맨위로가기

원격 직접 메모리 접근

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

원격 직접 메모리 접근(RDMA)은 네트워크를 통해 컴퓨터의 메모리에 직접 접근하여 데이터 전송 속도를 향상시키는 기술이다. 2018년에는 RoCE, iWARP와 같은 기술의 발전으로 더욱 널리 사용되고 있으며, 100Gbit/s 이상의 속도를 지원하는 네트워크 어댑터 개발이 진행되고 있다. RDMA는 가상 인터페이스 아키텍처, 인피니밴드, RoCE, iWARP 등 다양한 방식으로 구현되며, IETF와 Interconnect Software Consortium과 같은 표준화 단체에서 관련 프로토콜 및 API 표준을 제정하고 있다. RDMA는 프로토콜 오버헤드를 줄이는 장점이 있지만, 메모리 등록 처리와 같은 추가적인 오버헤드, 그리고 구현 및 관리의 복잡성이 단점으로 꼽힌다.

더 읽어볼만한 페이지

  • 근거리 통신망 - 가상 랜
    가상 랜(VLAN)은 물리적 제약 없이 네트워크를 논리적으로 분할하여 확장성, 보안, 관리를 용이하게 하는 기술로, IEEE 802.1Q 표준을 통해 이더넷 프레임에 VLAN 태그를 삽입하여 네트워크를 분리하고 유연한 네트워크 설계를 가능하게 한다.
  • 근거리 통신망 - Open vSwitch
  • 컴퓨터 메모리 - 플래시 메모리
    플래시 메모리는 전기적으로 데이터의 쓰기 및 삭제가 가능한 비휘발성 메모리 기술로, 마스오카 후지오 박사가 발명하여 카메라 플래시와 유사한 소거 방식으로 인해 명명되었으며, NOR형과 NAND형으로 나뉘어 각기 다른 분야에 적용된다.
  • 컴퓨터 메모리 - 메모리 계층 구조
    메모리 계층 구조는 CPU 데이터 접근 속도 향상을 위해 레지스터, 캐시, RAM, 보조 기억 장치 등으로 구성되며, 속도, 용량, 비용이 다른 계층들을 통해 효율적인 메모리 관리를 가능하게 한다.
  • 운영체제 기술 - 프로세스
    프로세스는 컴퓨터에서 실행되는 프로그램의 인스턴스로, 운영 체제가 시스템 자원을 효율적으로 관리하며 멀티태스킹 환경에서 독립적인 실행 흐름을 유지한다.
  • 운영체제 기술 - 커널 (컴퓨팅)
    커널은 운영 체제의 핵심으로, 하드웨어와 소프트웨어 간 상호 작용을 관리하며 시스템 보안, 자원 관리, 하드웨어 추상화, 프로세스 스케줄링, 프로세스 간 통신, 다중 작업 환경 지원 등의 기능을 제공하고, 모놀리식, 마이크로, 혼합형 커널 등으로 구현되며 가상화 및 클라우드 컴퓨팅 환경에서 중요성이 커지고 있다.
원격 직접 메모리 접근
원격 직접 메모리 접근 (RDMA)
정의컴퓨터 메모리 사이에서 네트워크를 거쳐 데이터를 직접 주고받을 수 있게 하는 기술이다.
설명RDMA를 사용하면 CPU의 개입 없이 한 컴퓨터의 메모리에서 다른 컴퓨터의 메모리로 데이터를 복사할 수 있어 고성능, 낮은 지연 시간, 낮은 CPU 사용률을 달성할 수 있다.
주요 특징
제로 카피 (Zero-Copy)RDMA는 데이터를 복사할 때 CPU를 거치지 않고 직접 메모리에 접근하므로 CPU 오버헤드를 줄이고 대기 시간을 단축한다.
커널 바이패스 (Kernel Bypass)RDMA는 사용자 영역에서 네트워크 인터페이스 카드 (NIC)로 직접 데이터를 전송할 수 있어 커널의 개입을 최소화하고 효율성을 높인다.
CPU 오프로드 (CPU Offload)RDMA는 데이터 전송 작업을 NIC와 같은 전용 하드웨어로 오프로드하여 CPU의 부담을 줄이고 다른 작업을 수행할 수 있도록 한다.
작동 방식
1단계클라이언트가 데이터를 읽거나 쓰기 위해 RDMA 요청을 시작한다.
2단계RDMA 요청은 네트워크를 통해 대상 서버로 전송된다.
3단계대상 서버는 CPU의 개입 없이 데이터를 직접 메모리에 읽거나 쓴다.
4단계작업이 완료되면 완료 신호 (completion signal)가 클라이언트로 전송된다.
프로토콜
InfiniBand고성능 컴퓨팅 (HPC) 환경에서 주로 사용되는 RDMA 프로토콜이다.
RoCE (RDMA over Converged Ethernet)이더넷 네트워크에서 RDMA를 사용할 수 있도록 하는 프로토콜이다.
iWARP (Internet Wide Area RDMA Protocol)TCP/IP 네트워크에서 RDMA를 사용할 수 있도록 하는 프로토콜이다.
활용 분야
고성능 컴퓨팅 (HPC)클러스터 내 노드 간 빠른 데이터 전송을 통해 계산 속도를 향상시킨다.
데이터 센터서버와 스토리지 간 빠른 데이터 전송을 통해 데이터베이스 및 가상화 환경의 성능을 향상시킨다.
빅 데이터대규모 데이터 처리 시스템에서 데이터 전송 병목 현상을 줄여 전체 처리량을 높인다.
금융 서비스고빈도 거래 시스템에서 낮은 대기 시간을 요구하는 애플리케이션의 성능을 향상시킨다.
장점
낮은 대기 시간CPU 개입을 최소화하여 데이터 전송 지연 시간을 줄인다.
높은 처리량CPU 오버헤드를 줄여 네트워크 대역폭을 효율적으로 사용한다.
낮은 CPU 사용률CPU 부담을 줄여 서버의 다른 애플리케이션 성능에 영향을 미치지 않는다.
단점
복잡성RDMA 구현 및 구성이 일반적인 네트워크 프로그래밍보다 복잡할 수 있다.
하드웨어 요구 사항RDMA를 지원하는 네트워크 인터페이스 카드 (NIC)와 인프라가 필요하다.
보안 문제커널 바이패스를 통해 보안 취약점이 발생할 수 있으며, 적절한 보안 메커니즘이 필요하다.
관련 기술
GPUDirect RDMAGPU 메모리에서 직접 데이터를 전송하는 기술이다.
NVMe over Fabrics (NVMe-oF)RDMA를 사용하여 NVMe 스토리지를 네트워크를 통해 공유하는 기술이다.
참고 자료
한국어 위키백과원격 직접 메모리 접근
영어 위키백과Remote direct memory access

2. 역사와 발전

2018년 현재, RDMA는 일반적인 네트워킹 인프라에서 우수한 성능을 낼 수 있도록 구현이 개선되면서 더 넓은 범위에서 수용되고 있다.[1] 예를 들어, RoCE는 손실이 있거나 없는 인프라에서 실행될 수 있다. iWARP는 TCP/IP를 전송 계층으로 사용하여 이더넷 RDMA를 물리 계층에서 구현하여 RDMA의 성능과 대기 시간 이점과 저비용, 표준 기반 솔루션을 결합한다.[2]

하드웨어 공급업체들은 100Gbit/s의 속도를 보고하면서, 더 높은 용량의 RDMA 기반 네트워크 어댑터 개발에 착수했다.[5][6] 엔지니어들은 이더넷을 통한 RDMA를 구현하는 네트워크 어댑터를 개발하기 시작했다.[9]

2. 1. 표준화 및 구현

인터넷 기술 특별 태스크 포스(IETF)와 Interconnect Software Consortium 등 여러 단체에서 RDMA 프로토콜 및 응용 프로그래밍 인터페이스(API) 표준화가 진행되었다.[4] RDMA 컨소시엄 및 DAT 협업[3]이 이러한 표준화 작업에 중요한 역할을 수행했다.[4]

일반적인 RDMA 구현에는 다음이 포함된다.

IBM,[7] 레드햇, 오라클과 같은 소프트웨어 공급업체들은 최신 제품에서 RDMA API를 지원한다.[8] 레드햇 엔터프라이즈 리눅스와 레드햇 엔터프라이즈 MRG 모두 RDMA를 지원하며,[10] 마이크로소프트SMB Direct를 통해 윈도우 서버 2012에서 RDMA를 지원한다. VMware ESXi 또한 2015년부터 RDMA를 지원하고 있다.

RDMA 보급이 더디었던 이유 중 하나는 기존과 다른 네트워크 환경을 구축해야 했기 때문이다. 그러나 RoCE는 물리 계층이더넷을, 전송 계층에 TCP/IP를 사용하여[2] 저비용 환경에서도 RDMA의 이점을 누릴 수 있게 되었다.

3. 작동 방식

RDMA는 네트워크 어댑터가 데이터를 애플리케이션 메모리로 직접 전송하거나, 애플리케이션 메모리에서 네트워크로 직접 전송할 수 있도록 하여 제로 카피 네트워킹을 지원한다. 따라서 운영 체제의 애플리케이션 메모리와 데이터 버퍼 간에 데이터를 복사할 필요가 없다. 이러한 전송에는 CPU, 캐시 또는 문맥 교환을 통한 작업이 필요하지 않으며, 전송은 다른 시스템 작업과 병행하여 계속된다. 이렇게 하면 메시지 전송의 대기 시간이 줄어든다.[11]

애플리케이션은 인피니밴드 프로토콜용으로 설계된 잘 정의된 API를 사용하여 RDMA 작업을 수행하며, 전송 큐(SQ, Send Queue)와 완료 큐(CQ, Completion Queue)를 통해 작업 요청 및 완료 알림을 처리한다.[11]

RDMA에서는 호스트 버스 어댑터(HBA)를 통해 애플리케이션 메모리(사용자 메모리 공간)의 데이터가 직접 전송되므로, 제로 카피 네트워킹이 가능해진다. 즉, 메모리와 운영체제의 데이터 버퍼 간 데이터 전송이 생략되어 CPU, 캐시 사용 및 컨텍스트 스위칭 없이 다른 처리와 병렬로 데이터를 전송할 수 있다. 결과적으로 읽기/쓰기 요청을 발행하는 애플리케이션 입장에서 보면 메모리의 데이터가 직접 네트워크로 전송되므로, 지연 시간이 감소하고 빠른 데이터 전송이 가능하다.

이러한 메커니즘을 활용하여 보조 기억 장치가 SCSI 통신을 하는 RDMA 프로토콜을 SCSI RDMA 프로토콜이라고 부른다.

3. 1. 전송 유형

RDMA는 신뢰적 연결(RC, Reliable Connection)과 비신뢰적 데이터그램(UD, Unreliable Datagram) 전송 프로토콜을 통해 데이터를 신뢰성 있게 또는 신뢰성 없이 전송할 수 있다.[12] 신뢰적 연결(RC)은 요청 손실이 없는 장점이 있는 반면, 비신뢰적 데이터그램(UD)는 여러 연결을 처리할 때 더 적은 큐 쌍을 필요로 한다. UD는 비연결형이기 때문에 단일 호스트가 단일 큐를 사용하여 다른 모든 호스트와 통신할 수 있기 때문이다.[12]

4. 장점 및 단점

RDMA는 CPU 개입을 최소화하여 지연 시간을 줄이고, 빠른 데이터 전송을 가능하게 하는 등 여러 장점을 가지고 있지만, 몇 가지 단점과 해결해야 할 과제도 존재한다.

'''장점'''


  • 제로 카피 네트워킹을 지원하여 CPU, 캐시, 문맥 교환 없이 빠른 데이터 전송이 가능하다.
  • 메시지 전송 지연 시간을 줄여준다.


'''단점 및 해결 과제'''

  • 단방향 통신으로 인해 요청 완료 확인을 위한 추가 메커니즘이 필요하며, 이는 CPU 사이클을 소모하고 지연 시간을 증가시킬 수 있다.
  • 제로 카피 네트워킹을 지원하지만, 메모리 등록이라는 추가적인 오버헤드가 발생한다. 이를 해결하기 위한 다양한 기술(처리를 크리티컬 패스에서 지연, 캐시 기술 이용, 처리와 데이터 전송 파이프라인화, 처리 자체를 제거)이 연구 및 개발되고 있다.

4. 1. 장점

RDMA는 네트워크 어댑터가 데이터를 애플리케이션 메모리로 직접 전송하거나, 애플리케이션 메모리에서 직접 전송할 수 있도록 하여 제로 카피 네트워킹을 지원한다.[1] 이렇게 하면 운영 체제의 데이터 버퍼를 거치지 않고 데이터를 전송할 수 있다.[1] 이러한 전송에는 CPU, 캐시, 문맥 교환 등의 작업이 필요하지 않으며, 다른 시스템 작업과 병행하여 전송이 진행된다.[1] 이는 메시지 전송의 지연 시간을 줄여준다.[1]

RDMA는 호스트 버스 어댑터를 통해 애플리케이션 메모리(사용자 메모리 공간)의 데이터를 직접 전송하여 제로 카피 네트워킹을 가능하게 한다.[3] இதனால், 메모리와 운영 체제의 데이터 버퍼 간에 발생하는 데이터 전송이 생략되므로, CPU나 캐시를 사용하지 않고, 컨텍스트 스위칭 없이 다른 처리와 병렬로 데이터를 전송할 수 있다.[3] 애플리케이션 입장에서 보면 메모리의 데이터가 직접 네트워크로 전송되므로, 지연 시간이 감소하고 빠른 메시지 전송이 가능하다.[3]

4. 2. 단점 및 해결 과제

RDMA는 대상 노드에 요청 완료를 알리지 않는 단방향 통신 방식을 사용하기 때문에 몇 가지 문제점이 발생한다.[1] 이러한 단점은 다음과 같다.

  • 단방향 통신: RDMA는 기본적으로 단방향 통신이므로, 요청 완료를 알리기 위한 추가적인 메커니즘이 필요하다. 일반적인 방법은 완료 통지 영역을 대상 노드의 메모리에 마련하고, 송신 노드가 폴링을 통해 변경 사항을 확인하는 것이다. 그러나 이 방법은 CPU 사이클을 소모하고, 통신 노드 수에 비례하여 지연 시간이나 필요 메모리량이 증가하기 때문에 슈퍼컴퓨팅에는 적합하지 않다.[3]
  • 메모리 등록: RDMA는 제로 카피 네트워킹을 지원하지만, 메모리 등록이라는 추가적인 오버헤드가 필요하다. 제로 카피 통신에서는 데이터 전송 중에 통신에 필요한 메모리 영역이 주 기억 장치에 확보되어야 한다. 이를 위해 대상 메모리 영역이 스왑 아웃되지 않도록 묶어두는 처리가 필요하며, 이 처리량은 데이터 영역 크기에 비례하여 오버헤드를 발생시킨다.[4]


이러한 문제점을 해결하기 위해 다음과 같은 방법들이 연구 및 개발되고 있다.[4]

  • 처리를 크리티컬 패스에서 지연시켜 지연 시간 증가를 방지한다.
  • 캐시 기술을 이용하여 데이터를 가능한 한 주 기억 장치에 유지한다. 동일한 메모리 영역을 반복적으로 사용하는 경우 오버헤드를 줄일 수 있다.
  • InfiniBand나 Myrinet처럼 처리와 데이터 전송을 파이프라인화한다.
  • Quadrics처럼 처리 자체를 제거한다.

5. 활용 분야

RDMA는 제로 카피 네트워킹을 지원하여 네트워크 어댑터가 데이터를 애플리케이션 메모리로 직접 전송하거나, 애플리케이션 메모리에서 와이어로 직접 전송할 수 있게 한다. 이를 통해 애플리케이션 메모리와 운영 체제의 데이터 버퍼 간에 데이터를 복사할 필요가 없어진다. 이러한 전송은 CPU, 캐시, 컨텍스트 스위치에 의한 작업 없이 이루어지며, 다른 시스템 작업과 병렬로 계속된다. 이는 메시지 전송의 지연 시간을 줄인다.[1]

하지만 이 방식은 대상 노드에 요청 완료가 통지되지 않는 문제(단일 측면 통신)를 야기한다.[1]

6. 관련 기술

RDMA와 관련된 기술로는 가상 인터페이스 아키텍처, RoCE, 인피니밴드, 옴니패스, iWARP 등이 있다. 2018년 현재, RDMA는 일반적인 네트워킹 인프라에서 우수한 성능을 낼 수 있도록 구현이 개선되면서 더 넓은 범위에서 수용되고 있다.[1] IBM,[7] 레드햇, 오라클과 같은 소프트웨어 공급업체들은 최신 제품에서 RDMA 관련 API를 지원하며,[8] 하드웨어 공급업체들은 100Gbit/s의 속도를 지원하는 RDMA 기반 네트워크 어댑터 개발에 착수했다.[5][6] 엔지니어들은 이더넷을 통한 RDMA를 구현하는 네트워크 어댑터를 개발하기 시작했다.[9]

레드햇 엔터프라이즈 리눅스와 레드햇 엔터프라이즈 MRG 모두 RDMA를 지원한다.[10] 마이크로소프트SMB Direct를 통해 윈도우 서버 2012에서 RDMA를 지원한다. VMware ESXi 또한 2015년부터 RDMA를 지원하고 있다.

6. 1. InfiniBand

인피니밴드는 고성능 컴퓨팅 및 엔터프라이즈 데이터 센터를 위해 설계된 고속 네트워킹 기술이다. 일반적인 RDMA 구현에는 가상 인터페이스 아키텍처, RoCE, 인피니밴드, 옴니패스 및 iWARP가 포함된다.

6. 2. RoCE (RDMA over Converged Ethernet)

RoCE는 손실이 있거나 없는 인프라에서 실행될 수 있어, RDMA의 성능과 대기 시간 이점을 유지하면서 저비용, 표준 기반 솔루션을 결합할 수 있다.[2] iWARP는 TCP/IP를 전송 계층으로 사용하여 이더넷 RDMA를 물리 계층에서 구현한다.[2]

RDMA 보급이 더뎠던 이유 중 하나는 기존과 다른 네트워크 환경을 구축해야 했기 때문이다. 그러나 RoCE는 물리 계층이더넷을, 전송 계층에 TCP/IP를 사용할 수 있어 저비용 환경에서도 RDMA의 이점을 누릴 수 있다.

6. 3. iWARP (Internet Wide Area RDMA Protocol)

iWARP는 TCP/IP를 전송 계층으로 사용하여 이더넷 RDMA를 물리 계층에서 구현함으로써, RDMA의 성능과 대기 시간 이점을 저비용의 표준 기반 솔루션과 결합한다.[2] RDMA 컨소시엄 및 DAT 협업은[3] 인터넷 기술 특별 태스크 포스 및 Interconnect Software Consortium과 같은 표준 그룹에서 고려할 RDMA 프로토콜 및 API 개발에 중요한 역할을 해왔다.[4]

참조

[1] 논문 RoCE Rocks over Lossy Network https://dl.acm.org/c[...]
[2] 웹사이트 Understanding iWARP https://www.intel.co[...] Intel Corporation 2018-05-16
[3] 웹사이트 DAT Collaborative website http://www.datcollab[...] 2014-10-14
[4] 웹사이트 The Interconnect Software Consortium website http://www.opengroup[...] 2005-08-30
[5] 웹사이트 Microsoft Based Solutions - Mellanox Technologies http://www.mellanox.[...] 2014-10-14
[6] 웹사이트 40Gbe SMB Direct RDMA Over Ethernet For Windows Server 2012 - Chelsio Communications http://www.chelsio.c[...] Chelsio Communications 2013-04-02
[7] 웹사이트 SOFA-STORAGE: CREATING A VENDOR AGNOSTIC FRAMEWORK TO ENABLE SEAMLESS STORAGE OFFLOAD USING SMARTNICS https://www.openfabr[...]
[8] 웹사이트 What RDMA hardware is supported in Red Hat Enterprise Linux? https://access.redha[...] 2016-06-02
[9] 웹사이트 40Gbe SMB Direct RDMA Over Ethernet For Windows Server 2012 - Chelsio Communications http://www.chelsio.c[...] Chelsio Communications 2013-04-02
[10] 웹사이트 Red Hat Enterprise MRG 2.0 Now Available https://investors.re[...] 2011-06-23
[11] 논문 Storm: a fast transactional dataplane for remote data structures https://dl.acm.org/d[...]
[12] 논문 Storm: a fast transactional dataplane for remote data structures https://dl.acm.org/d[...]
[13] 웹사이트 The Interconnect Software Consortium website. http://www.opengroup[...]
[14] 웹사이트 DAT Collaborative website. http://www.datcollab[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com