vSphere 6.5 이상 릴리스는 반가상화 RDMA(PVRDMA) 네트워크 어댑터가 있는 가상 시스템 간의 RDMA(Remote Direct Memory Access) 통신을 지원합니다.

RDMA 개요

RDMA를 사용하면 운영 체제 또는 CPU의 관여 없이 한 컴퓨터 메모리에서 다른 컴퓨터 메모리로 직접 메모리 액세스가 가능합니다. 메모리 전송은 RDMA 지원 HCA(호스트 채널 어댑터)에 오프로드됩니다. PVRDMA 네트워크 어댑터가 가상 환경에서 RDMA를 제공합니다.

vSphere에서 RDMA 사용

vSphere에서 가상 시스템은 PVRDMA 네트워크 어댑터를 사용하여 PVRDMA 디바이스가 있는 다른 가상 시스템과 통신할 수 있습니다. 가상 시스템을 동일한 vSphere Distributed Switch에 연결해야 합니다.

PVRDMA 디바이스는 가상 시스템 간의 통신 방법을 자동으로 선택합니다. 물리적 RDMA 디바이스 여부에 관계없이 동일한 ESXi 호스트에서 실행되는 가상 시스템의 경우 두 가상 시스템 간에 memcpy 방식으로 데이터가 전송됩니다. 이 경우 물리적 RDMA 하드웨어는 사용되지 않습니다.

다른 ESXi 호스트에 상주하고 물리적 RDMA 연결이 있는 가상 시스템의 경우 물리적 RDMA 디바이스가 Distributed Switch의 업링크여야 합니다. 이 경우 PVRDMA를 통한 가상 시스템 간 통신에 기본 물리적 RDMA 디바이스가 사용됩니다.

서로 다른 ESXi 호스트에서 실행되는 두 가상 시스템의 경우 호스트 중 적어도 하나에 물리적 RDMA 디바이스가 없으면 통신이 TCP 기반 채널로 폴백되고 성능이 저하됩니다.

가상 시스템에 PVRDMA 어댑터 할당

가상 시스템이 RDMA를 사용하여 데이터를 교환할 수 있으려면 가상 시스템을 PVRDMA 네트워크 어댑터에 연결해야 합니다.

vSphere 7.0.2 이상을 사용하는 경우 가상 시스템에 최대 10개의 PVRDMA 네트워크 어댑터를 추가할 수 있습니다.

사전 요구 사항

  • 가상 시스템이 실행되는 호스트가 RDMA를 사용하도록 구성되었는지 확인합니다. PVRDMA를 사용하도록 ESXi 호스트 구성의 내용을 참조하십시오.
  • 호스트가 vSphere Distributed Switch에 연결되어 있는지 확인합니다.
  • 가상 시스템이 가상 하드웨어 버전 13 이상을 사용하고 있는지 확인합니다.
  • 게스트 운영 체제가 Linux 64비트 배포인지 확인합니다.

프로시저

  1. vSphere Client에서 가상 시스템을 찾습니다.
    1. 데이터 센터, 폴더, 클러스터, 리소스 풀 또는 호스트를 선택하고 VM 탭을 클릭합니다.
    2. 가상 시스템을 클릭하고 목록에서 가상 시스템을 클릭합니다.
  2. 가상 시스템의 전원을 끕니다.
  3. [작업] 메뉴에서 [설정 편집]을 선택합니다.
  4. 설정을 표시하는 대화상자에서 가상 하드웨어 탭을 선택합니다.
  5. 새 디바이스 추가 드롭다운 메뉴에서 네트워크 어댑터를 선택합니다.
    [새 네트워크] 섹션이 가상 하드웨어 탭의 목록에 추가됩니다.
  6. [새 네트워크] 섹션을 확장하고 가상 시스템을 분산 포트 그룹에 연결합니다.
  7. 어댑터 유형 드롭다운 메뉴에서 PVRDMA를 선택합니다.
  8. 메모리 섹션을 확장하고 모든 게스트 메모리 예약(모두 잠김)을 선택한 다음 확인을 클릭합니다.
  9. 가상 시스템의 전원을 켭니다.

PVRDMA 네이티브 끝점을 사용하도록 가상 시스템 구성

PVRDMA 네이티브 끝점은 고급 가상 시스템 구성으로 사용할 수 있습니다.

PVRDMA 네이티브 끝점은 vSphere 7.0 업데이트 1 이상 릴리스부터 가상 시스템 하드웨어 버전 18 이상에서 지원됩니다. PVRDMA 네이티브 끝점을 사용하려면 PVRDMA 네임스페이스를 사용하도록 설정해야 합니다. 환경의 특정 하드웨어에서 PVRDMA 네임스페이스를 사용하도록 설정하는 방법을 알아보려면 벤더 설명서를 참조하십시오.

vSphere Client를 사용하여 네이티브 끝점을 구성하거나 가상 시스템의 VMX 파일을 편집할 수 있습니다. VMX 파일을 직접 편집하는 경우 vrdmax.nativeEndpointSupport = "TRUE" 매개 변수를 추가합니다. 여기서 x는 PVRDMA 어댑터의 인덱스입니다. 다음 절차에서는 vSphere Client를 사용하여 네이티브 끝점을 구성합니다.

사전 요구 사항

환경이 PVRDMA를 지원하는지 확인합니다. PVRDMA 지원의 내용을 참조하십시오.

프로시저

  1. vSphere Client에서 가상 시스템을 찾습니다.
    1. 가상 시스템을 찾으려면 데이터 센터, 폴더, 클러스터, 리소스 풀 또는 호스트를 선택합니다.
    2. VM 탭을 클릭합니다.
  2. 가상 시스템을 마우스 오른쪽 버튼으로 클릭하고 설정 편집을 선택합니다.
  3. VM 옵션을 클릭합니다.
  4. 고급을 확장합니다.
  5. 구성 매개 변수에서 구성 편집 버튼을 클릭합니다.
  6. 대화상자가 나타나면 행 추가를 클릭하여 새 매개 변수와 그 값을 입력합니다.
  7. vrdmax.nativeEndpointSupport 매개 변수를 입력합니다. 여기서 x는 PVRDMA 어댑터의 인덱스이며 값은 TRUE로 설정합니다.
    인덱스 x는 PVRDMA 어댑터의 번호에서 1을 뺀 값입니다. 예를 들어 네이티브 끝점을 사용하도록 설정하려는 PVRDMA 어댑터에 "네트워크 어댑터 2"라는 레이블이 지정된 경우 인덱스는 1입니다.

PVRDMA 비동기 모드를 사용하도록 가상 시스템 구성

PVRDMA 비동기 모드를 사용하도록 가상 시스템을 구성하는 방법을 알아봅니다. 고급 가상 시스템 구성으로 사용할 수 있습니다.

PVRDMA 비동기 모드는 vSphere 8.0 이상에서 실행되는 가상 시스템에서 사용할 수 있습니다. 비동기 모드는 가상 시스템에서 실행되는 RDMA 워크로드의 처리량 및 지연 시간을 향상시킬 수 있습니다. 비동기 모드를 사용하도록 설정하면 호스트에서 CPU 사용 증가가 관찰될 수 있습니다. 비동기 모드를 사용 중인 경우 가상 시스템을 높은 지연 시간 감도로 구성하는 것이 좋습니다.

사전 요구 사항

환경이 PVRDMA를 지원하는지 확인합니다. PVRDMA 지원의 내용을 참조하십시오.

프로시저

  1. vSphere Client에서 가상 시스템을 찾습니다.
    1. 데이터 센터, 폴더, 클러스터, 리소스 풀 또는 호스트를 선택하고 VM 탭을 클릭합니다.
    2. 가상 시스템을 클릭하고 목록에서 가상 시스템을 클릭합니다.
  2. 가상 시스템을 마우스 오른쪽 버튼으로 클릭하고 설정 편집을 선택합니다.
  3. VM 옵션을 클릭합니다.
  4. 고급을 확장합니다.
  5. 구성 매개 변수에서 구성 편집 버튼을 클릭합니다.
  6. 대화상자가 나타나면 행 추가를 클릭하여 새 매개 변수와 그 값을 입력합니다.
  7. 매개 변수 vrdma.asyncMode를 입력하고 값을 TRUE.로 설정합니다.

RDMA over Converged Ethernet의 네트워크 요구 사항

RDMA over Converged Ethernet은 이더넷 네트워크를 통해 지연 시간이 짧고 처리량이 높은 경량의 RDMA 통신을 보장합니다. RoCE를 사용하려면 정보 무손실 트래픽을 지원하도록 구성된 네트워크가 계층 2에만 있거나 계층 2와 계층 3 둘 모두에 있어야 합니다.

RoCE(RDMA over Converged Ethernet)는 네트워크를 많이 사용하는 애플리케이션에 데이터를 보다 빠르게 전송하기 위해 RDMA를 사용하는 네트워크 프로토콜입니다. RoCE는 호스트의 CPU를 관련시키지 않고 호스트 사이의 직접적인 메모리 전송을 허용합니다.

RoCE 프로토콜에는 두 가지 버전이 있습니다. RoCE v1은 링크 네트워크 계층(계층 2)에서 작동합니다. RoCE v2는 인터넷 네트워크 계층(계층 3)에서 작동합니다. RoCE v1과 RoCE v2 모두에는 무손실 네트워크 구성이 필요합니다. RoCE v1의 경우에는 무손실 계층 2 네트워크가 필요하고 RoCE v2의 경우에는 계층 2와 계층 3 모두 무손실 작업을 지원하도록 구성되어야 합니다.

무손실 계층 2 네트워크

무손실 계층 2 환경을 보장하려면 트래픽 흐름을 제어할 수 있어야 합니다. 흐름 제어는 네트워크에서 글로벌 일시 중지를 사용하도록 설정하거나 DCB(Data Center Bridging) 그룹을 통해 정의된 PFC(Priority Flow Control) 프로토콜을 사용하여 구현할 수 있습니다. PFC는 802.1Q VLAN 태그의 서비스 클래스 필드를 사용하여 개별 트래픽 우선 순위를 설정하는 계층 2 프로토콜입니다. 이 프로토콜은 개별 서비스 클래스 우선 순위에 따라 수신기를 대상으로 하는 패킷의 전송을 일시 중지합니다. 이 방법으로 단일 링크를 통해 무손실 RoCE 트래픽 및 손실이 허용되는 최상의 기타 트래픽 모두 전달할 수 있습니다. 트래픽 흐름 정체로 인해 중요한 손실 허용 트래픽이 영향을 받을 수 있습니다. 서로 다른 흐름을 분리하려면 PFC 우선 순위가 설정된 VLAN에서 RoCE를 사용할 수 있습니다.

무손실 계층 3 네트워크

RoCE v2의 경우 무손실 데이터 전송을 계층 3 라우팅 디바이스에 보존해야 합니다. 계층 3 라우터를 통해 계층 2 PFC 무손실 우선 순위를 전송할 수 있으려면 수신된 패킷의 우선 순위 설정을 계층 3에서 작동하는 해당 DSCP(Differentiated Serviced Code Point) QoS 설정에 매핑하도록 라우터를 구성해야 합니다. 전송된 RDMA 패킷에는 계층 3 DSCP, 계층 2 PCP(Priority Code Point) 또는 둘 모두가 표시됩니다. 패킷 라우터에서 우선 순위 정보를 추출하려면 DSCP 또는 PCP를 사용합니다. PCP를 사용하는 경우, 패킷에는 VLAN 태그가 지정되어야 하며 라우터는 태그의 PCP 비트를 복사하여 다음 네트워크에 전달해야 합니다. 패킷에 DSCP가 표시된 경우, 라우터는 DSCP 비트를 변경되지 않은 상태로 유지해야 합니다.

RoCE v1과 마찬가지로 RoCE v2도 PFC 우선 순위가 설정된 VLAN에서 실행해야 합니다.

참고: RoCE NIC에서 RDMA를 사용할 계획인 경우에는 해당 RoCE NIC를 팀으로 구성하지 않아야 합니다.

벤더별 구성 정보는 해당 디바이스 또는 스위치 벤더의 공식 설명서를 참조하십시오.