HyperAI초신경

원격 직접 메모리 액세스(RDMA) 

컴퓨터 컴퓨팅 분야에서원격 직접 메모리 액세스(RDMA)는 직접 메모리 액세스 기술입니다.이는 어느 쪽의 운영 체제도 개입하지 않고 한 컴퓨터의 메모리에서 다른 컴퓨터의 메모리로 직접 데이터를 전송합니다. RDMA는 많은 리소스를 확보하여 시스템 처리량과 성능을 향상시킵니다. 읽기, 쓰기와 같은 작업은 해당 컴퓨터의 CPU를 방해하지 않고 원격 컴퓨터에서 수행할 수 있습니다. 이 기술은 데이터 전송 속도를 높이고 지연 시간이 짧은 네트워크를 구축하는 데 도움이 되며, 특히 대규모 병렬 컴퓨터 클러스터에서 사용하기에 적합합니다. RDMA는 네트워크 어댑터가 데이터를 시스템 버퍼로 직접 전송할 수 있도록 하여 제로 복사 네트워킹을 사용합니다.

RDMA 워크플로

RDMA는 InfiniBand나 RoCE(RDMA over Converged Ethernet)와 같은 RDMA 지원 네트워크 인터페이스 컨트롤러(NIC)를 사용하여 작동합니다. 이러한 NIC는 CPU의 개입 없이 연결된 시스템의 메모리에 직접 액세스할 수 있는 전용 하드웨어를 갖추고 있습니다. 시스템이 RDMA를 사용하여 데이터를 전송하려면 NIC에 요청을 보내야 하며, NIC는 특수 하드웨어를 사용하여 해당 데이터를 다른 시스템의 메모리로 직접 전송합니다.

RDMA의 장점:

  • 고성능:RDMA는 낮은 지연 시간과 높은 대역폭을 통해 시스템 간의 데이터 전송에 높은 성능을 제공합니다.
  • CPU 효율성:RDMA는 CPU를 사용하지 않고 시스템 간에 데이터를 직접 전송하므로 다른 작업에 시스템 리소스를 사용할 수 있습니다.
  • 네트워크 혼잡을 줄이세요:RDMA는 시스템 간의 직접 데이터 전송을 가능하게 하여 네트워크 혼잡을 줄이고, 이를 통해 네트워크 트래픽을 줄입니다.
  • 보안:RDMA는 시스템 간에 데이터가 전송될 때 암호화하여 보안을 강화합니다.
  • 확장성:RDMA는 확장성이 매우 뛰어나 시스템 간에 대량의 데이터 전송을 지원할 수 있습니다.

원격 직접 메모리 액세스(RDMA)의 단점:

  • 호환성:RDMA에는 특수한 하드웨어와 소프트웨어가 필요하며 모든 시스템에서 지원되지 않을 수 있습니다.
  • 비용:RDMA는 비용이 많이 들고 전문적인 하드웨어와 소프트웨어가 필요하므로 모든 조직에 비용 효율적이지 않을 수 있습니다.
  • 복잡성:RDMA는 설정 및 관리가 복잡할 수 있으며 전문적인 지식과 기술이 필요합니다.
  • 제한된 범위:RDMA는 일반적으로 서로 매우 가까운 시스템 간의 데이터 전송에 사용되므로 적용 범위가 제한적입니다.
  • 제한된 계약:RDMA는 특정 프로토콜과만 호환되므로 다른 시스템과의 호환성이 제한될 수 있습니다.

 RDMA의 특징:

  • 제로 카피 네트워크: 네트워크 계층 간에 데이터를 복사하지 않고도 애플리케이션의 버퍼 간에 직접 보내고 받을 수 있습니다.
  • CPU 참여 줄이기: 애플리케이션은 원격 서버의 CPU 시간을 소모하지 않고 원격 서버에서 직접 데이터에 액세스할 수 있습니다. 또한, 원격 서버의 CPU 캐시는 액세스된 콘텐츠로 채워지지 않습니다.
  • 유효한 거래: 데이터는 스트림이 아닌 개별 메시지로 송수신되므로 별도의 메시지가 필요 없습니다.

참고문헌

【1】https://www.geeksforgeeks.org/remote-direct-memory-access-rdma/

【2】https://en.wikipedia.org/wiki/Remote_direct_memory_access