TOE, iWARP 및 InfiniBand

1.
예전에 RDMA가 왜 등장하였고 이를 구현하려면 어떻게 하여야 하는지를 살펴보았습니다.

마켓데이타와 RDMA

이제 RDMA 메카니즘을 구현한 기술들이 어떻게 진행되고 있는지를 알아보고자 합니다. 또한 TCP/IP Offload Engine과 RDMA가 어떤 차이가 있는지도 알아보겠습니다.? TCP/IP Offload Engine과 RDMA는 소개하고자 합니다. TOE기술의 등장배경은 다음과 같습니다.

네트워크 속도가 기가비트 이더넷(Gigabit Ethernet)과 10 기가비트 이더넷으로 발전함에 따라 호스트 프로세스는 실제 업무를 수행하는 것보다 TCP/IP 프로토콜 스택을 처리하는데 더 많은 CPU 사이클을 사용하게 되었다. 특히 IP를 통한 스토로지 데이터 전송을 수행하는 iSCSI 프로토콜에서 TCP/IP 오버헤더로 인한 성능 저하가 현격하게 발생하고 있다. 따라서 이러한 대용량의 IP 네트워크 처리에 있어 CPU의 부담을 덜어주기 위한 방법으로 TCP/IP 기능을 하드웨어로 구현하는 TCP Offload Engine(TOE) 기술이 부각되고 있다.

사용자 삽입 이미지그렇지만 TOE를 지원하기 위한 TCP Stack을 변경하여야 하고 벤더종속적인 문제점으로 리눅스에서는 커널에서 지원하지 않고 있습니다. TCP/IP Offload Engine과 같은 원리를 적용한 것이 TCP Chechsum Offload, Large Seqmentation Offload등이 있습니다.

이렇게 OS에서 해주어야 할 checksum을 Etherenet 카드에서 대신해 줌으로서 서버의 성능을 개선 시켜 줍니다. 일반적인 패킷의 경우에는 알려져 있기로 5% 정도의 성능 향상이 있고, jumbo 패킷의 경우에는 15% 정도까지 성능 향상이?있다고 합니다. (제가 실제 측정해 본 결과치는 아니고, 인터넷에서 말 그대로 알려져 있는 수치 입니다. )

TOE(TCP Offload Engine)의 메카니즘에 RDMA을 더한 것이 바로 iWARP입니다.

2.
iWARP는 The Internet Wide Area RDMA Protocol (iWARP)로써 TCP환경에서 RDMA가 가능하도록 한 것이며 TCP에서 zero-copy transmission이 가능하기 때문에 TOE를 구현한 것이라고 할 수 있습니다.

The main component is the Data Direct Protocol (DDP), which permits the actual zero-copy transmission. DDP itself does not perform the transmission; TCP does. However, TCP does not respect message boundaries; it sends data as a sequence of bytes without regard to protocol data units (PDU). In this regard, DDP itself may be better suited for SCTP, and indeed a focus of the IETF has been to standardize RDMA over SCTP. To run DDP over TCP requires a tweak known as marker PDU aligned (MPA) framing so as to guarantee boundaries of messages.

Furthermore, DDP is not intended be to accessed directly. Instead, a separate RDMA protocol (RDMAP) provides the services to read and write data. Therefore, the entire RDMA over TCP specification is really RDMAP over DDP over MPA over TCP. All of these protocols are intended to be implemented in hardware.

In all, iWARP is the basics of InfiniBand applied to Ethernet. This gives it tremendous capabilities for both legacy software and next generation applications.

What is iWARP?

iWARP은 크게 4가지 표준규격으로 구성되어 있습니다. RDMAP, DDP, MPA는 보통 하드웨어(R-Nic)영역에서 구현하는부분입니다. iWARP와 TCP/IP를 비교하면 아래와 같습니다.

사용자 삽입 이미지

iWARP를 구성하는 세가지구성부분을 간단히 살펴보죠.?RDMAP(RDMA Protocol)은 RDMA Write, RDMA Read, RDMA Send를 DDP 메시지로 변화하는 프로토콜입니다. DDP(Data Direct Protocol)은 DDP메시지를 하나 혹은 여러개의 DDP Segment로 변환하거나 하나 혹은 여러개의 DDP Segment를 하나의 DDP메시지로 조립하는 역할을 합니다. DDP는 자체적으로 전송규약을 가지고 있지 않기때문에? TCP+MPU 혹은 SCTP위에 동작을 합니다.
사용자 삽입 이미지점더 상세한 내용은 RDMAP and DDP Overview를 참조하세요.

이상을 통해 얻을 수 있는 성능향상을 그림으로 표현하면 아래와 같습니다.
사용자 삽입 이미지iWARP는 보통 RDMAP까지는 하드웨어로 구현하고 ULP(Upper Layer Protocol)영역을 소프트웨어로 구현합니다. iWARP 및 Infiniband을 사용할 수 있도록 하는 미들웨어 및 스택(Stack)중 가장 유명한 제품은 오픈소스인 OFED입니다.현재 리눅스와 윈도우버전이 나와 있습니다.

The OpenFabrics Alliance

증권사에서 가장 많이 사용하는 IBM서버와 관련된 자료는 아래에서 구하시면 됩니다.

RDMA Host Software Architecture

RNIC이 아니라 NIC에서도 iWARP프로토콜을 사용할 수 있도록 iWARP의 RDMAP,DDP를 소프트웨어영역에서 구현한 제품도 있습니다.

Software implementation and testing of iWARP protocol

3.
그러면 iWARP이 제안하는 방법과 현재의 방법을 비교하여 어떤 점을 개선하는지 알아도록 하겠습니다.?먼저 앞서 설명한 TOE(Offloading TCP/IP Processing)를 구현하였습니다.
사용자 삽입 이미지
다음으로 전통적인 TCP/IP모델에서는 받은 패킷을 NIC의 버퍼영역에서 서버의 메모리영역으로 옮기려면 DMA(Direct Memory Access)를 통해서 해야 했습니다. 이때문에 CPU에 부하가 걸렸습니다. iWARP은 바로 이런 일을 생략할 수 있도록 합니다.
사용자 삽입 이미지
마지막으로 OS영역에서의 Switching 없이 바로 어플리케이션으로 옮깁니다.
사용자 삽입 이미지4.
현재 상용화되어 제공되는 RDMA와? 관련된 인터페이스중 가장 보편적인 제품은 10Gbe iWARP과 Infinband입니다.

Comparing 10GbE iWARP and InfiniBand
Remote Direct Memory Access Networking for HPC: Comparative Review of 10GbE iWARP and InfiniBand

Ethernet와 같은 환경에서도 RDMA를 구현할 수 있도록? RoCE(RDMA Over Coverged Ethernet)이 제안되어 상용되었습니다.

RoCE: An Ethernet-InfiniBand Love Story

한국증권사들이 iWARP, RoCE, Infiniband와 같은 환경을 도입할지는 의문입니다. 한국증권산업을 관통하는 흐름중 ‘경쟁’ 말고 ‘동업자정신’이 있기때문입니다. KRX도 역시 다수의 증권사가 도입할 수 있는 수준의 전산환경을 기준으로 할 듯 합니다.? 그렇지만 남과 다른 기술로, 남과 다른 가치를 고객에게 제공하고자 하는 시장개척자가 있다면 – 외국계 자본이나 금융회사일 수도 – 상황은 달라지지 않을까 합니다.

그럼에도 불구하고 미래를 위해 준비한다면 시간이 있을 때 조금씩 공부하는 것도 나의 미래를 위한 투자가 아닐까 합니다.

(*)이상의 글을 정확히 쓰려면 RDMA Comsortium에서 발표한 RFC등을 읽어야 합니다. 개발자라고 한다면 더더욱 필요한 일입니다. 그렇지만 저의 역할을 소개 및 약간의 심화에 있기때문에 RFC를 읽지는 않았습니다. 그래서 잘못 이해한 부분이 있을 수 있지만 큰 틀은 틀리지 않았다고 판단합니다. 혹 잘못된 점이 있으면 알려주세요. 제가 수정하도록 하겠습니다.

7 Comments

  1. shursha

    등록하신 글 잘 읽고 배우고 갑니다~ 다만 삽입이미지들이 x박스 처리되어있는데 저같이 공부하는 사람을 위해 다시한번 등록해주실수 있으신가요?

    Reply
    1. smallake (Post author)

      안녕하세요. 이미지가 지워진 이유는 해킹때문입니다. 해외의 해커들이 미국사이트인 줄 오해하고.ㅋㅋㅋ 제가 찾아보도록 하겠습니다. 감사합니다.

      Reply
      1. shursha

        빠른 답변 감사드립니다!! iWARP InfiniBand RoCE에 관해 공부중인데 대부분 원서들이라 개념 이해하기가 쉽지가 않네요~ 혹시 잘 알고 계신다면 iWARP InfiniBand RoCE 세가지에대한 차이점 비교 설명도 간단하게 부탁드립니다 ^^

        Reply
        1. smallake (Post author)

          조만간 간단한 설명을 올리도록 하겠습니다.^^

          Reply
    2. smallake (Post author)

      조만간 짧더라도 정리해보겠습니다.

      Reply
  2. shlee

    RDMA에 관하여 공부하고 있는 직장인입니다. 이미지와 같이 참조하면 많은 도움이 될 듯 한데 X박스 표시라 아쉽네요. 기회가 되신다면 이미지 파일 업로드 부탁드립니다.

    Reply
    1. smallake (Post author)

      단순히 이미지를 올리는 것이 아니라 글 전체를 다시 써야 하는 수준의 작업입니다. shlee님이 구글링하면 찾아보실 수 있을 듯.

      Reply

Leave a Comment

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

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