아래 이야기는 특정한 제품을 옹호하기 위한 글이 아닙니다. 국내 10G NIC시장을 둘러싸고 다양한 이야기가 흘러나오기 때문에 정리된 정보를 제공하기 위함입니다. ?덧붙여 RNIC이라는 단어는 RDMA Enabled NIC이라는 말의 약자입니다. RDMA기능을 지원하는 네트워크카드라는 뜻입니다. 또 Infiniband를 지원하는 NIC이면 Infiniband NIC, Ethernet를 지원하는 Ethernet NIC입니다. Solarflare는 (Accelerated) Ethernet NIC이고 Chelsio는 RDMA Enabled And Accelerated Ethernet NIC입니다.
1.
현재 국내시장에서 Low Latency용으로 판매되고 있는 10G NIC은 두 종류입니다. Chelsio와 Solarflare입니다. 그동안 블로그를 통해 이름을 언급했던 회사들입니다. 최근 Solarflare가 본격적으로 영업을 하면서 경쟁이 치열해지는 듯 합니다.
먼저 공통점을 살펴보도록 하죠. Solarflare를 이야기하면 가장 먼저 떠오르는 단어가 OpenOnload라는 프로코톨 가속기(Protocol Stack Accelerator)입니다. 비교하는 제품인 Chelsio 보다 먼저 제품화하여 현재에 이르고 있습니다. ?그렇지만 OpenOnload가 오래된 기술이지만 독자적인 기술은 아닙니다.
OpenOnLoad를 소개하는 글입니다.
OpenOnload? is a high performance network stack from Solarflare that dramatically reduces latency and cpu utilisation, and increases message rate and bandwidth. OpenOnload runs on Linux and supports TCP/UDP/IP network protocols with the standard BSD sockets API, and requires no modifications to applications to use. It achieves performance improvements in part by performing network processing at user-level, bypassing the OS kernel entirely on the data path. Networking performance is improved without sacrificing the security and multiplexing functions that the OS kernel normally provide
이와 비슷한 발상으로 만든 제품을 Chelsio와 Mellonox도 제공하고 있습니다. Chelsio가 제공하는 기술은 WireDirect라고 합니다.
WireDirect™ technology consists of three main software modules that enable direct wire access from user space to the Chelsio T4 network adapter with complete bypass of the kernel. This results in a 10Gb Ethernet solution with an ultra-low 3μS deterministic latency perfectly suited for high frequency trading and other delay-sensitive applications. The three Chelsio WireDirect (WD) modules are: WD-QP (Queue Pair), WD-UDP with Multicast, and WD-TRACE.
Mellonox는 VMA(Mellanox’s Messaging Accelerator)라고 합니다.
Mellanox’s Messaging Accelerator (VMA) boosts performance for message-based and streaming applications such as those found in financial services market data environments and Web2.0 clusters. The result is a reduction in latency by as much as 300% and an increase in application throughput by as much as 200% per server as compared to applications running on standard Ethernet or InfiniBand interconnect networks.
저의 기억이 맞다면 제가 처음 Chelsio 카드를 사용할 때 WireDirect기술은 없었습니다. 시간이 흘러 T3 제품을 공급하던 2011년 가을부터 WireDirect가 나왔습니다. 그리고 현재에 이르고 있습니다.
이상의 기술을 무엇이라고 이름짓든 넓게 보면 TOE(TCP Offload Engine)기술입니다. 제조사별로 특화된 하드웨어와 짝을 이루는 기술입니다. 표준이 없습니다. 그래서 Linux는 지원을 하지 않습니다. ?Dell이 발표한 자료를 보면 TOE기술을 구성하는 요소중 첫째는 하드웨어입니다.Processor기반 혹은 Chip기반의 유형이 있다고 합니다. 둘째는 소프트웨어입니다.
The second component of a standardized TOE implementation comprises TOE extensions to the TCP/IP stack, which are completely ansparent to the higher-layer protocols and applications that run on top of them. Applications interact the same way with a TOE-enabled stack as they would with a standard TCP/IP stack. This transparmakes the TOE approach attractive because it requires no changes to the numerous applications and higher-level protocols that alruse TCP/IP as a base for network transmission.
때문에 앞서 OpenOnLoad, WireDirect 및 VMA는 TCP/IP와 호환하도록 해주고 가속기능을 덧붙인 소프트웨어 미들웨어라고 할 수 있습니다.
그러면 다른 점은 무엇일까요? 저의 느낌으론 최초 공략하려고 하는 시장이 달랐던 것같습니다.
Solarflare는 Infiniband기반의 RoCE의 약점을 공략하여 데이타센터내에서 고성능 TCP/IP환경을 구축하는 시장을 본 듯 합니다. 그래서 RDMA와 관련된 지원은 하지 않고 TCP/IP가속기능을 최적화하였습니다.
Solarflare OpenOnload provides superior ultra-low latency forhigh-performance networking
반면 Mellanox는 이터넷카드도 만들지만 Infinband기술을 중심으로 한 시장을 겨냥하였고 IPoIB와 같은 기술로 TCP/IP요구까지를 수용한 제품을 내놓고 있습니다. Chelsio는 중간쯤이라고 해야 하나, RDMA기술인 iWARP과 TOE기술 모두를 지원하는 제품을 내놓고 있습니다.
2.
이제 무엇을 선택할지 결정하여야 합니다.선택은 구매자의 정책에 따릅니다. 다만 의사결정을 할 때 세가지를 고려하여야 할 듯 합니다.
첫째 TCP 이외에 UDP 성능측정입니다. Latency측정을 할 때 TCP와 관련된 시험을 합니다. 그렇지만 모든 트레이딩의 출발은 시세입니다. UDP/Multicast의 성능이 무척이나 중요합니다. 만약 Chelsio가 2011년 초반과 같은 제품이었다고 하면 Solarflare제품이 UDP에 더 좋은 성능을 보였을 듯 합니다. 그렇지만 Chelsio가 이후 T3 및 T4제품을 출시하면 비슷한 기술을 내놓으면서 미세한 차이로 변했다고 생각합니다.
둘째 RDMA기술을 향후 적용할지 여부입니다. 네트워킹 기술과 관련된 로드맵을 작성하여야 합니다. 현재 대부분의 네트워크는 TCP/IP기반을 구성되어 있습니다. 10G로 전화하면서 단순히(?) 대역폭을 늘리고 레이턴시를 늘리는 수준으로 접근을 할 수 있습니다. 반면 중기적으로 RDMA기술을 도입하는 방향으로 전환할 수 있습니다. 이 때 RDMA는 iWARP이거나 ROCE 혹은 InfiniBand일 수 있습니다. ?RDMA를 도입할 계획이라고 하면 TOE와 RDMA 모두를 지원하는 구매를 하시는 것이 옳지 않을까 합니다.?셋째 운용비입니다. (R)NIC을 도입한다고 모든 것이 끝나지 않습니다. TOE기능만을 사용한다고 하면 AS-IS 어플리케이션을 수정하지 않아도 됩니다. 반면 RDMA와 관련된 고려를 한다고 할 경우 CAPEX(구매/설비투자 비용)과 OPEX(운용비용)을 모두 고려하여야 합니다. 비용을 고려하지 않는 투자는 없기때문입니다.가장 일반적인 기준점이라고 생각합니다. 어떤 기준을 정하더라도 출발점은 측정입니다. 측정장비를 이용할 수 있고 아니면 측정을 위한 방법론을 정립하여 측정을 할 수 있습니다. 이와 관련하여 Sockperf라는 프로그램을 이용하는 곳도 있네요. Google Code에 등록된 프로그램입니다.
혹 10G때문에 고민하는 분이 있을 듯 하여 제가 받았던 자료를 소개합니다. 혹 Solarflare자료가 있는 분이 있으면 도움을 주셨으면 합니다. 아래 측정치를 보면 1 마이크로초정도의 차이입니다. 이런 차이가 결정적이라고 생각할 수도 있고 아닐 수도 있습니다.
앞서도 이야기했듯이 참고용이며 도입사의 환경과 방법론에 따라 직접 측정하셨으면 합니다. 또한 판단과 해석은 구매자의 몫입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
//Example sockperf command with a load of 500K messages per second: sockperf ul <protocol> -i <ip> ?msg-size=12 ?pps=500000 ?burst=128 //Example sockperf command for TCP sockperf ul ?tcp -i <ip> ?msg-size=12 ?pps=500000 ?burst=128 Chelsio: 4.7us Solarflare: 5.6us (user mode) Solarflare: 7us (kernel mode) //Example sockperf command for UDP sockperf ul -i <ip> ?msg-size=12 ?pps=500000 ?burst=128 Chelsio: 3.1us Solarflare: 4.4us Example sockperf command for UDP Multicast sockperf ul -i <mcast ip> ?msg-size=12 ?pps=500000 ?burst=128 ?mc-tx-if=<tx ip> ?mc-rx-if==<rx ip> Chelsio: 3.1us Solarflare: 4.6us |
3.
하나 덧붙이고자 합니다. 최근 10G 스위치시장도 10G 이터넷시장만큼이나 확대되고 있는 듯 합니다. 현재 특정 제품이 시장을 지배하고 있다는 이야기가 들립니다. ?여러 BMT에서 좋은 결과를 보였기때문입니다. ?또 방화벽도 NP기반의 제품이 막 소개되는 단계입니다. ?이런 조건에서 제품의 경쟁은 소비자의 선택을 다양하게 합니다. 그래서 조만간 좀더 빠른 스위치와 FPGA로 개발된 방화벽을 소개하도록 하겠습니다. ?그중 FPGA로 개발된 방화벽은 1 마이크로초이내의 지연을 보여주는 국산제품이라고 합니다. 개인적으로 국산이고 FPGA라는 점이 맘에 듭니다. 물론 저는 구매할 의사도 여력도 없지만.
솔직히 앞서 살펴본 제품들이 다 외산이라 우울합니다. 예전에 퓨처시스템등 국내 네트워크카드 브랜드도 있었지만 지금은 무엇하는지 궁금합니다.(^^)? 혹 좋은 제품을 개발했다고 하면 막 소개해드리고 싶습니다. ?같은 값이고 기술이면 국산을 애용하는 것이 좋다는 소박한 민족주의자입니다. 저는!(^^)