@Hammer님의 질문에 대한 의견

(*)아래과 같은 정리를 할 때 오류가 있지 않을까 염려합니다. 지적해주시면 기쁜 마음으로 수정하겠습니다.

1.
아래 ZeroFeeder와 ZeroM에 대한 댓글중 Hammer님이 다음과 같은 글을 남기셨습니다.

TOE가 RoCE같은 건가요?
비슷한 것이라면 상당히 관심이 있는 대목입니다.
제가 본 어떤자료에는 10G RoCE가 InfiniBand RDMA보다 빠르다고 하더군요. 그래서 더 궁금합니다.. ㅎㅎ

RDMA와 RoCE라는 말이 1년사이에 대중화되었다는 깜짝 놀랐습니다.(^^) 증권사 IT가 RDMA와 관련된 기술에 높은 관심을 가졌다는 생각도 듭니다. 그래서 한동안 관심을 놓았던 RDMA와 관련된 기술을 정리하려고 합니다. 작년에 정리했던 내용이 틀린 부분도 있고 제가 이해가 부족했던 점도 있기때문에 저를 위해서도 필요했습니다.

RDMA와 관련된 여러기술을 논하기 전에 다시금 “왜 이런 기술들이 등장하였는가”를 살펴볼 필요가 있습니다. 현대 네트워크기술의 핵심인 TCP를? 처리하기 위해선 너무 많은 CPU자원을 사용하고 있고 이를 회피하기 위한 기술로? TOE, iWARP, RoCE, Infiniband 등이 등장하였고 발전하고 있습니다. 처음 이에 다루었던 글은 14개월전입니다.

TOE, iWARP 및 InfiniBand

제가 위의 글에서 헷갈렸던 부분이 있었습니다. TOE와 Kernel Bypass(=OS Bypass)입니다. 처음 TOE라는 개념위에 OS Bypass가 포함된 것으로 이해를 했습니다. 그런데 다시금 보니까 아니네요.(^^)

The TOE was developed to remove the TCP packet?processing from the CPU and put it on a dedicated processor. In most?cases, the TOE is put on a NIC. It handles the TCP packet processing and?then passes the data to the kernel, most likely over the PCI bus.


제가 대충 읽었기때문입니다. 덧붙여 TOE를 소개한 자료중 Chelsio나 Solarflare의 자료가 많았고 이 회사들의 카드가 제공하는 Kernel Bypass기능때문이지 않았나 합니다. 하여튼 그래도 제 잘못이죠.

전통적인 시스템에서 TCP패킷을 처리하기 위하여 커널은 TCP packet Processing과 Memory Copying을 합니다. 따라서 Context Switching이 빈번하게 일어납니다.

This process means the user space process context data must be saved and?the kernel context data must be loaded. This step of saving the user?process information and then loading the kernel process information is?known as a context switch.

모두 CPU의 부하를 줍니다. 때문에 OSl Bypass와 붙어다니는 개념이 Zero-(Memory) Copy입니다.

Zero-Copy networking is a technique where the?CPU does not perform the data copy from the kernel space to user space?(the application memory). This trick can be done for both send operations and receive operations. This can be accomplished in a number?of ways including using DMA (Direct Memory Access) copying or memory?mapping using a MMU (Memory Management Unit) equipped system.

이를 구현하는 방법은 다양하지만 RDMA를 지원하는 네트워크카드는 이를 Network Processor에 구현했다고 할 수 있습니다.

Kernel Bypass, also called OS bypass, is a concept to improve the network performance, by going “around” the kernel or OS. Hence the term, “bypass.” In Kernel bypass, the user space applications communicate with the I/O library that has been modified to communicate directly with the user space application. This process takes the kernel out of the path of communication between the user space process and the I/O subsystem that handles the network ?communication. This change eliminates the context switching and potentially the copy from the kernel space to user space (it depends upon how the I/O library is designed).

이상과같은 Kernel Bypass를 소프트웨어적으로 구현한 오픈소스가 Solarflare의 OpenOnLoad입니다. Chelsio가 공급하는 Wire Direct도 같은 I/O라이브러리라고 할 수 있습니다.


결국 RDMA라는 기술은 TOE + OS Bypass + Avoid Context Switching 을 더한 것이라고 할 수 있습니다.

Remote Direct Memory Access (RDMA) is a concept that allows NICs to place data directly into the memory of another system. The NICs have to be RMDA enabled on both the send and receive ends of the communication. The process begins with the sending RDMA NIC establishes a connection with the receiving RDMA NIC. Then the data is transferred from the sending NIC to the receiving NIC. The receiving NIC then copies the data directly to the application memory bypassing the data buffers in the OS. RDMA is most commonly used in Infiniband implementations, but other high-speed interconnects use it as well.

2.
RDMA를 구현한 기술들이 무엇이 있을까요? 아래의 그림을 보시면 세가지를 언급하고 있습니다.
IB=Infiniband, RoCE=RDMA ove Convegered Ethernet, iWARP= Internet Wide Area RDMA Protocol입니다. 그런데 여기에 하나더 추가를 하면 IPoIB=IP over Infiniband입니다.
? ?
iWARP versus Infiniband. 물리적인 인터페이스를 달리 합니다. iWARP은 전통적인 이더넷을 사용하지만 인피니밴드는 HCA나 TCA를 적용합니다.

iWARP bears many similarities to InfiniBand, especially in its use of RDMA and the verbs. But the main difference is in the transport implementation choices. iWARP was designed to ride on IP allowing it try to ride on the coattails of the whole IP world and on the volume of Ethernet. Some folks have issues with whether this whole stack is rather awkward and ungainly, especially on TCP. But frankly the commercial side ignores all of that because the Ethernet TCP/IP base is key to the perceived market opportunity.

RoCE versus InfiniBand. Infiniband와 달리 RoCE는 L2 Layer(Link Layer)환경에서 RDMA를 구현할 기술이므로 일반적인 Ethernet환경에서 적용가능합니다.

RoCE defines how to perform RDMA over Ethernet while the InfiniBand Architecture Specification defines how to perform RDMA over an InfiniBand network. RoCE is expected to bring InfiniBand applications which are predominantly based on clusters on to a common Ethernet converged fabric.

RoCE versus iWARP. 두 기술 모두 Ethernet을 기반으로 하지만 iWARP는 Direct Data Placement를? TCP/IP를 기반으로 하지만 RoCE는 Ethernet converged fabric으로 구성된 Layer 1,2계층위에서 RDMA를 구현하였습니다. Converged Ethernet이 아마 광케이블로 구성되는 10G이상의 이더넷환경을 말하나 봅니다. 문서상으로 보면 iWARP이 만들어졌을 때가 2000년 초반이기때문에 이후의 기술발전에 따라 iWARP이 TCP를 기반으로 하기때문에 가지는 오버헤드를 RoCE에서 줄였다고 하네요.

While the RoCE specification defines how to perform RDMA over the Ethernet link layer, iWARP is a standard that defines how to perform RDMA over a connection-oriented transport like TCP. That means that unlike RoCE, iWARP is neither bound to Ethernet nor limited to a single Ethernet broadcast domain.

Infiniband, RoCE 및 iWARP은 모두 Verbs를 이용하여 어플리케이션을 개발하여야 합니다. TCP/IP로 구현된 어플리케이션을 수정하여야 하는 비용이 발생합니다. 이와 달리 IPoIB는 Infiniband환경위에서 TCP/IP를 구현할 수 있는 환경으 제공해주는 기술입니다.

3.
이상과 같은 기술을 시험하려면 10G Ethernet 카드나 Infiniband HCA Adaptor를 구매하여야 합니다. 작지 않은 비용이 들어갑니다. 단순히 기술습득이나 시험을 위해서 다른 방법이 필요합니다. 이런 경우 소프트웨어적인 솔류션이 대안입니다.

How to install Soft-iWARP on Ubuntu 10.10
Soft RoCE, an alternative to Soft iWarp

각각 Ubuntu환경에서 Soft RoCE와 Soft iWARP를 설치하여 RDMA환경을 구축할 수 있습니다.앞서 IPoIB를 소개했는데 관련된 프로그램은 아래를 확인하시면 됩니다.

IP over InfiniBand™ (IPoIB)

이상의 내용을 InfiniBand를 기준으로 잘 설명한 자료입니다.TCP Bypass를 주제로 기술적인 설명을 자세히 하고 있습니다.

아래 자료는 어떤 분이 올려놓은 자료입니다. 직접 시험을 한 결과입니다. 혹시 도움이 되었으면 합니다.
<

4 Comments

  1. Hammer

    햐.. 궁금했던 내용들을 정리해주시고 친절히 설명까지 해주시니 너무 좋네요.
    수업료(?)로 식사대접 하겠습니다.
    언제든지 연락주세요. ^^

    Reply
    1. smallake

      옆동네 사시면서..ㅋㅋㅋ

      저보다는 더 바쁘실테니까 연락주세요.(^^)
      건강하세요. 추석 잘 보내시고.

      Reply
  2. Hammer

    마지막에 테스트한 자료는 올해 6월이니 아주 최근이네요.
    누가 저런 고급자료를 잘 정리해서 공개했을까요?
    솔루션 업체에서 만든 테스트자료들은 이해관계가 얽혀서 항상 의심이 들곤했는데요.
    이 자료는 그런 흔적을 전혀 느낄 수 없네요. Fact만 있는 것 같아요.
    혹시 직접 테스트하신 자료인가요? ^^
    암튼 자료를 공개해주신 분께 정말 감사하다고 전하고 싶습니다.
    저도 무언가 테스트하면 자료를 공개해야 겠다고 생각이 드네요.

    추석 보내고 함 뵈시죠. ^^

    Reply
    1. smallake

      맞습니다. 누군지 모르지만 훌륭하신 분입니다.

      저도 우연히 찾았어요. 구글의 승리하고나 할까…ㅋㅋㅋ

      추석 잘 보내세요…

      Reply

Leave a Comment

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

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