1장. InfiniBand 및 RDMA 이해

InfiniBand는 다음 두 가지 사항을 나타냅니다.

  • InfiniBand 네트워크의 물리적 링크 계층 프로토콜
  • InfiniBand Verbs API - 원격 직접 메모리 액세스(RDMA) 기술 구현

RDMA는 운영 체제, 캐시 또는 스토리지를 포함하지 않고 두 컴퓨터의 기본 메모리 간의 액세스를 제공합니다. RDMA를 사용하여 높은 처리량, 짧은 대기 시간이 짧고 CPU 사용률이 낮은 데이터 전송.

일반적인 IP 데이터 전송에서는 한 시스템의 애플리케이션이 다른 머신의 애플리케이션에 데이터를 보내면 수신 끝에서 다음 작업이 수행됩니다.

  1. 커널은 데이터를 수신해야 합니다.
  2. 커널은 데이터가 애플리케이션에 속하는지 확인해야 합니다.
  3. 커널이 애플리케이션을 활성화합니다.
  4. 커널은 애플리케이션이 커널에 대한 시스템 호출을 수행할 때까지 기다립니다.
  5. 애플리케이션은 커널의 내부 메모리 공간에서 애플리케이션에서 제공하는 버퍼로 데이터를 복사합니다.

이 프로세스는 호스트 어댑터가 직접 메모리 액세스(DMA)를 사용하거나 두 번 이상 사용하는 경우 대부분의 네트워크 트래픽이 시스템의 기본 메모리에 복사됩니다. 또한 컴퓨터는 일부 컨텍스트 스위치를 실행하여 커널과 애플리케이션 간에 전환합니다. 이러한 컨텍스트 스위치는 다른 작업이 느려지는 동안 트래픽 속도가 높은 CPU 부하를 증가시킬 수 있습니다.

기존 IP 통신과 달리 RDMA 통신은 통신 프로세스의 커널 개입을 우회합니다. 이렇게 하면 CPU 오버헤드가 줄어듭니다. RDMA 프로토콜을 사용하면 호스트 어댑터가 패킷이 수신되는 네트워크와 해당 애플리케이션의 메모리 공간에 저장할 위치를 결정할 수 있습니다. 호스트 어댑터는 커널에 처리할 패킷을 보내고 사용자 애플리케이션의 메모리에 복사하는 대신 패킷 콘텐츠를 애플리케이션 버퍼에 직접 배치합니다. 이 프로세스에는 별도의 API, InfiniBand Verbs API가 필요하며 애플리케이션은 RDMA를 사용하려면 InfiniBand Verbs API를 구현해야 합니다.

Red Hat Enterprise Linux는 InfiniBand 하드웨어와 InfiniBand Verbs API를 모두 지원합니다. 또한 InfiniBand 비 하드웨어에서 InfiniBand Verbs API를 사용하도록 다음 기술을 지원합니다.

  • IWARP(Internet Wide Area RDMA Protocol) IP 네트워크를 통해 RDMA를 구현하는 네트워크 프로토콜
  • RDMA over Converged Ethernet (RoCE)은 IBoE (InfiniBand over Ethernet)라고도합니다. 이더넷 네트워크를 통해 RDMA를 구현하는 네트워크 프로토콜

추가 리소스