회사소개
뉴스
제품 역학
RDMA란 무엇인가요?
RDMA란 무엇인가요?
Time 2026-04-23

RDMA (RDMA, Remote Direct Memory Access)는 DMA(Direct Memory Access)에서 파생된 네트워크 통신 기술입니다. 이 기술을 통해 사용자 애플리케이션은 운영 체제 커널(CPU)을 우회하고 네트워크 인터페이스 카드(NIC)와 직접 통신하여 데이터를 전송함으로써, 초고속 대역폭과 초저지연성을 제공합니다. 초기에는 고성능 컴퓨팅(HPC)을 위해 개발되었으나, 현재 RDMA는 데이터 센터에서 널리 채택되고 있습니다.

1. RDMA 기술적 원리

RDMA의 핵심 원리는 네트워크 어댑터에 탑재된 전용 하드웨어(예: NIC의 RDMA 엔진)를 활용하여 운영 체제 커널을 우회하고, 네트워크 전송 계층 아래에서 직접 메모리 전송을 수행하는 데 있습니다. 이 메커니즘은 지연 시간과 CPU 오버헤드를 최소화하는 동시에 네트워크 효율성을 높여줍니다.


RDMA에서 송신자와 수신자 간의 통신은 RDMA 어댑터를 통해 이루어집니다. 먼저, 송신자는 전송할 데이터 버퍼를 RDMA 어댑터의 메모리에 등록하고, 해당 디스크립터(데이터의 주소, 크기 및 기타 정보를 포함)를 수신자에게 전송합니다. 수신자는 수신 버퍼를 RDMA 어댑터에 등록하고 어댑터에 수신 버퍼의 주소를 알립니다. 그런 다음, 송신자는 운영 체제의 개입 없이 RDMA 어댑터를 통해 송신 버퍼의 데이터를 수신 버퍼로 직접 전송합니다. 이 과정을 RDMA 쓰기 작업이라고 합니다. 수신자는 또한 RDMA 읽기 작업을 통해 발신자의 메모리에서 직접 데이터를 읽을 수 있습니다.


RDMA는 쓰기 작업, 읽기 작업, 원자 작업이라는 세 가지 기본 작업 유형을 지원합니다. 쓰기 연산을 통해 노드는 다른 노드의 메모리에 데이터를 직접 쓸 수 있습니다. 읽기 연산을 통해 노드는 다른 노드의 메모리에서 데이터를 직접 읽을 수 있습니다. 원자 연산은 비교 및 교환(CAS)과 같이 원격 노드에서 특정 원자 연산을 수행할 수 있는 특수한 연산입니다.


RDMA의 작동 원리는 주로 하드웨어 수준의 직접 메모리 액세스를 통해 데이터 전송 지연 시간을 줄이고 CPU 부하를 경감하는 데 있습니다. 기존의 TCP/IP 통신 방식과 비교할 때, RDMA는 송신자와 수신자 간에 연결을 설정할 필요가 없으며 복잡한 프로토콜 처리를 수행할 필요도 없어 더 높은 성능과 더 낮은 지연 시간을 제공합니다. 또한 RDMA는 제로 카피(zero copy) 및 커널 바이패스(kernel bypass)와 같은 기능을 지원하여 데이터 전송 효율을 한층 더 높일 수 있습니다.


일반적으로 RDMA의 기술적 원리는 네트워크 어댑터의 전용 하드웨어를 통해 직접 메모리 액세스(DMA)를 수행함으로써 운영 체제 커널을 우회하고, 효율적이며 지연 시간이 짧고 CPU 사용률이 낮은 네트워크 통신을 구현하는 것입니다.


2. RDMA의 기술적 특징은 주로 다음과 같은 측면을 포함합니다:


* CPU 개입 불필요: RDMA 기술의 핵심 특징 중 하나는 CPU 개입이 필요하지 않다는 점입니다. 애플리케이션은 원격 호스트의 CPU 리소스를 전혀 소모하지 않고도 원격 호스트 메모리에 직접 액세스할 수 있습니다. 이를 통해 데이터 전송 시 지연 시간과 CPU 점유율을 크게 줄일 수 있으며, 전반적인 성능이 향상됩니다.


* 커널 우회: RDMA는 커널 우회 기술을 지원하므로, 애플리케이션은 커널 모드와 사용자 모드 간에 컨텍스트 전환 없이 사용자 모드에서 직접 데이터 전송을 수행할 수 있습니다. 이를 통해 데이터 전송 지연 시간을 더욱 줄이고 효율성을 높일 수 있습니다.


* 제로 카피: RDMA 기술은 제로 카피 기능을 갖추고 있어, CPU가 한 저장소에서 다른 저장소로 데이터를 복사하는 과정을 생략합니다. TCP/IP 통신에서 호스트 간 데이터 전송에는 빈번한 복사 작업이 필요하지만, RDMA는 직접 메모리 액세스(DMA)를 통해 이러한 불필요한 복사 작업을 줄여 데이터 전송 효율을 높입니다.


* 높은 대역폭과 낮은 지연 시간: RDMA는 운영 체제가 제공하는 프로토콜 스택을 우회하고 네트워크 전송 계층에서 직접 데이터 전송을 수행하기 때문에, 대역폭 활용도가 높고 지연 시간이 짧습니다. 따라서 RDMA는 높은 성능과 낮은 지연 시간이 요구되는 네트워크 통신 환경에 매우 적합합니다.


* 하드웨어 지원: RDMA는 특정 네트워크 카드의 하드웨어 지원을 필요로 하며, 이러한 네트워크 카드에는 일반적으로 RDMA 통신을 처리하기 위한 전용 RDMA 엔진이 탑재되어 있습니다. 이러한 하드웨어 지원 덕분에 RDMA는 높은 성능과 낮은 지연 시간이라는 특성을 구현할 수 있습니다.


일반적으로 RDMA의 기술적 특징으로는 CPU 개입 없음, 커널 우회, 제로 카피, 높은 대역폭 및 낮은 지연 시간, 그리고 하드웨어 지원 등이 있습니다. 이러한 특징 덕분에 RDMA는 효율적이고 지연 시간이 짧은 네트워크 통신 기술로, 특히 대량의 데이터 처리와 고성능 네트워크 통신이 필요한 환경에 적합합니다.


3. RDMA의 적용 사례


RDMA 기술의 적용 분야는 매우 광범위합니다. 다음은 주요 적용 사례 중 일부입니다:


* 데이터 센터: 데이터 센터에서는 서버들이 대량의 데이터를 빈번하게 전송하고 교환해야 합니다. RDMA는 뛰어난 성능과 낮은 지연 시간을 갖추고 있어 데이터 센터 내 네트워크 통신에 매우 적합하며, 이를 통해 데이터 전송 효율을 높이고 지연 시간을 줄이며 전반적인 성능을 향상시킬 수 있습니다.


* 고성능 컴퓨팅(HPC): 고성능 컴퓨팅 분야는 대량의 데이터를 처리하고 복잡한 계산을 수행해야 합니다. RDMA의 직접 메모리 액세스(DMA) 및 제로 카피 기술은 데이터 전송 오버헤드를 줄이고 컴퓨팅 효율을 향상시킬 수 있습니다. 동시에 RDMA는 대규모 병렬 처리를 지원하며, HPC 환경에서의 다중 노드 병렬 컴퓨팅에 매우 적합합니다.


* 분산 스토리지 시스템: 분산 스토리지 시스템에서 노드들은 빈번하게 데이터 읽기 및 쓰기 작업을 수행해야 합니다. RDMA의 효율적인 데이터 전송 및 직접 메모리 액세스(DMA) 기능은 노드 간 데이터 읽기 및 쓰기 효율을 높여 분산 스토리지 시스템의 전반적인 성능을 향상시킬 수 있습니다.


* 클라우드 컴퓨팅: 클라우드 컴퓨팅 환경에서는 가상 머신(VM) 간의 통신 및 데이터 전송이 흔히 요구되는 사항입니다. RDMA를 활용하면 가상 머신 간의 효율적인 통신을 구현하고 클라우드 컴퓨팅 환경의 전반적인 성능을 향상시킬 수 있습니다.


일반적으로 RDMA에는 몇 가지 단점과 한계가 있지만, 여전히 많은 고성능·저지연 시나리오에서 매우 효과적인 네트워크 통신 기술입니다. RDMA 사용 여부를 결정할 때는 구체적인 애플리케이션 요구 사항과 환경을 바탕으로 그 적용 가능성과 성능을 평가해야 합니다.

Service
联系我们