Latency와 가상화는 이율배반?

1.
최근 ELW나 파생상품을 운용하는 프랍트레이더들이 Low Latency에 기반한 전략을 사용하고 있다고 합니다. 어떤 분은 ELW 슈퍼메뚜기들이 전쟁을 벌였던 때처럼 조금 늦어도 물량이 없어진다고 푸념을 합니다. 기계트레이더가 등장하여 세력을 넓혀 나가는 징조입니다. 기계트레이딩을 하려면 남과 다른 조건을 가져야 합니다. 증권사의 도움을 받으려면 운용자금이 많아야 합니다. 보통 거래실적을 보여달라고 합니다. 수수료 수입을 예측하여 IT투자할 지를 판단합니다. 아니면 스스로 돈을 들여서 시스템을 개발하거나 비싼 인력을 채용하여야 합니다. 모두가 장벽입니다. 여기서 부익부빈익빈이 생깁니다.

ZeroAOS의 서비스모델로 클라우드방식(가상화)를 선택할 때 기준이 된 요소는 두가지입니다. 하나는 증권사의 IT투자비용을 최소화하여 최대수익을 하는 원칙입니다. 둘째는 서비스를 이용할 수 있는 트레이더를 최대한 늘리자는 기준입니다. x.86서버의 효용성을 최대로 하여 증권사의 투자비용을 줄이고 트레이더의 진입장벽을 낮춘 결정이 가상화입니다. 그런데 약점이 있습니다. DMA와 비교할 때 가상화로 인한 지연(Latency)을 피할 수 없습니다. 피할 수 없으면 즐겨야 하지만 즐길 수 없기에 줄여야 합니다. 어제 쓴 글중 Soft iWARP도 그런 고민중 하나였습니다. 다만 틀린 상상이었습니다. 다시금 고민하고 토론을 하였습니다.

역시나 뜻이 있으면 길이 있고 필요가 있고 수요가 있으면 기술이 나옵니다. SR-IOV와 VEB라는 기술입니다. 기술을 소개하기전에 가상화와 관련된 자료를 읽다 보니 지식이 엄청 짧더군요. 그동안 제가 사용했던 방식은 Hosted Mode라 하네요. Host OS가 있고 가상화 어플리케이션을 이용하여 Guest OS를 설치하는 방식입니다. 또다른 모델은 Bare-Metal Mode라고 합니다. Host OS가 없는 경우입니다. 상용제품이고 비싸다고 하네요. 하여튼 Bare-Metal Mode로 설치하고 시험할 수 없기때문에 Hosted Mode를 적용하였습니다.

2.
그동안 궁금했던 부분이 가상화환경에서 네트워킹이 어떤 구조로 이루어지는지입니다. HP가 만든 자료에 있는 그림입니다. vSwitch라는 기능이 들어가 있네요. VM간의 통신을 할 경우 vSwitch를 통합니다. 지연이 발생합니다.


그런데 SR-IOV와 VEB는 좀 다릅니다. 흔히 가상화를 말하면 CPU를 가상화하는 개념입니다. 하나 혹은 여러개의 CPU를 가상으로 나누어 사용한다는 개념에서 출발하였습니다. 비슷한 개념을 I/O에 적용을 하면 어떻게 될까요? 이 때 등장하는 개념이 IOV=I/O Virtualization입니다. SR은 Single Root입니다. 뿌리는 하니인데 줄기는 여럿이라는 의미겠죠. 어떤 논문은 SR-IOV를 다음과 같이 정의합니다.

SR-IOV(Single Root I/O Virtualization)는 시스템 가상화의 일종으로 PCI-Express에서 정의된 I/O 가상화 기술이다. SR-IOV는 하나의 물리적인 PCI I/O 자원에 복수의 가상시스템에서 직접 접근하여 이를 사용할 수 있도록 해주는 기술이다. 이를 위해 SR-IOV는 경량화된 PCIe 기능을 가지고 있는 VF(Virtual Function)와 이들을 제어할 수 있는 온전한 PCIe 기능을 가진 PF(Physical Function)로 나뉘게 된다. 특히, SR-IOV기술이 적용된 NIC에서는 하나의 물리적인 경로로 유입된 패킷을 각각의 VF가 소유한 수신대기열로 Queueing하기 위해 패킷 내부의 목적지의 주소, VLAN ID등을 이용한다.


SR-IOV기술을 적용하면 Guest OS는 VF를 통하여 Physical NIC과 직접 연결할 수 있습니다. 그러면 VEB는 무엇일까요? Virtual Ethernet Bridging의 약자입니다. 앞서 vSwitch와 같습니다.

SR-IOV나 VEB가 무엇인지 알았습니다. 그럼 왜 이런 기술이 Latency단축에 도움이 될까요? 최근에 나오는 RNiC를 보면 SR-IOV와 VEB를 하드웨어적으로 지원합니다. 두번째 그림을 자세히 보시면 SR-IOV와 VEB가 네트워크카드안에 내장되어 있습니다. 하드웨어방식으로 I/O Acceleration입니다. Chelsio나 Solarflare제품들이 지원을 합니다. TCP Offload처럼 Hardware offload of virtual switching입니다.

3.
물론 I/O Acceleration을 이용한다고 하지만 어느정도의 지연은 감수해야 할 듯 합니다. 그렇지만 어느정도일지는 시험을 해봐야 할 듯 합니다. CentOS 6.0을 이용한 가상화에서 수행했던 작업을 SR-IOV를 적용하여 시험을 해야 합니다.

최소한 DMA와 비교하여 지연을 더 줄일 수 있는 방법을 찾았습니다. 네트워크장비를 통해서 가상화의 약점을 줄일 수 있습니다. 이제 저와 파트너들이 담당하고 있는 어플리케이션부분에서 더 줄일 수 있도록 하여 DMA와 경쟁할 수 있는 ZeroAOS를 만드는 것이 남았습니다.

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.