목차
-
-
-
-
-
-
1. RDMA(Remote Direct Memory Access) 소개
RDMA(Remote Direct Memory Access)는 컴퓨터에서 관련 호스트(컴퓨팅/스토리지)의 CPU 또는 OS 리소스를 사용하지 않고 네트워크를 통해 데이터를 전송할 수 있도록 하여 처리량과 성능을 개선하고 레이턴시 및 CPU 오버헤드를 줄이는 뛰어난 기술입니다.
현재 RDMA 구현 방법으로 널리 이용되는 방법은 다음 두 가지입니다.
RoCE
- 전송: UDP/IP(RoCE v2)
- DCB(Data Center Bridging)에 의존
iWarp
- 기본 네트워크: TCP/IP
- TCP는 흐름 제어 및 혼잡 관리를 지원
RoCE는 ETS(Enhanced Transmission Service) 및 PFC(Priority Flow Control)와 같은 DCB 구성에 크게 의존합니다. 이는 네트워크 스위치가 올바르게 구성되지 않을 경우 문제가 될 수 있습니다. iWARP에는 스위치 구성이 필요하지 않습니다.
Microsoft는 Windows Server 2012에서 RDMA 지원을 시작했으며 이후의 Windows Server OS에 새로운 기능을 추가했습니다. Microsoft의 최신 OS인 Windows Server 2019에서 사용할 수 있는 기능 중 하나는 Guest OS(VM)에 RDMA를 제공하는 기능입니다. 이를 통해 Guest는 기본 호스트와 동일한 네트워크 스토리지에 대한 낮은 레이턴시 액세스를 확보하여 CPU 오버헤드를 줄이고 VM에서 직접 처리량/성능을 향상시킬 수 있습니다.
Dell EMC는 Cavium QLogic FastLinQ 41262 듀얼 포트 25GbE SFP28(iWARP/RoCE) 및 Mellanox ConnectX-4 LX 25Gbps RDMA(RoCE) 같은 25Gbps RDMA를 위한 뛰어난 옵션을 제공합니다. 이 예에서는 Mellanox ConnectX-4 Lx RDMA(RoCEv2 모드)를 사용하여 Guest RDMA 기능을 시연합니다.
서버: Dell EMC R7425(AMD EPYC 7551 32코어 프로세서) 2개, 256GB 메모리, 완전히 업데이트된 Mellanox ConnectX-4 Lx(BIOS, 펌웨어, 드라이버 및 OS)
설치된 역할 및 기능: Hyper-V, DCB, 페일오버 클러스터링, S2D
스위치: Dell EMC S5048F-ON – MGMT VLAN 2, SMB VLAN 15
예약된 업데이트 주기의 일부로 BIOS, 펌웨어, 드라이버 및 운영 체제를 업데이트하는 것이 좋습니다. BIOS, 펌웨어, 드라이버 및 OS 업데이트는 시스템의 신뢰성, 안정성 및 보안을 개선하기 위한 것입니다.
1. 서버를 재부팅하고 System Setup으로 이동합니다(POST 중에 F2 키를 누름).
2. Device Settings를 선택합니다.
그림 1 - BIOS 디바이스 설정
3. NIC in Slot 1 Port 1 - Mellanox를 선택합니다.
그림 2 - Mellanox 슬롯 1 포트 1 디바이스 설정
4. Device Level Configuration으로 이동합니다.
그림 3 - 디바이스 수준 구성
5. Virtualization Mode에서 SR-IOV를 선택합니다.
그림 4 - SR-IOV 설정
6. NIC in Slot 1 Port 2 - Mellanox에서 위 단계를 반복합니다.
그림 5 - Mellanox 슬롯 1 포트 2 디바이스 설정
7. System Setup 기본 메뉴로 돌아가서 System BIOS를 선택합니다.
그림 6 - 시스템 BIOS
8. Integrated Devices를 선택합니다.
그림 7 - BIOS 내장형 디바이스
9. SR-IOV Global Enable 옵션을 활성화합니다.
그림 8 - SR-IOV 글로벌
10. 구성을 저장하고 서버를 재부팅합니다.
1. Windows Server 2019+
2를 설치합니다. Hyper-V 역할 및 DCB(Data Center Bridging) 기능을 설치합니다.
3. QoS(Quality-of-Service), DCB, PFC, ETS를 구성합니다. 서버 NIC 및 QoS 구성이 스위치 구성과 일치하는지 확인합니다.
4. Hyper-V SET(Switch Embedded Team)를 구성합니다.
그림 9 - vSwitch 구성
5. VM을 구성하기 전에 물리적 서버 간에 RDMA 통신을 테스트합니다. Microsoft Diskspd 및 Microsoft Test-RDMA PowerShell 스크립트를 다운로드합니다. 통신이 제대로 작동하는 경우에만 아래 단계를 진행하십시오. 그렇지 않으면 호스트에서 스위치 구성 및/또는 DCB 설정을 확인합니다.
그림 10 - Test-Rdma 물리적 호스트
6. SR-IOV가 두 서버의 RDMA 어댑터에서 활성화되었는지 확인합니다.
그림 11 - SR-IOV 활성화
7. 각 서버에 하나씩 2개의 Gen 2 VM(Guest OS)을 생성한 다음 Windows Server 2019를 설치합니다. 이 시나리오에서는 MGMT 트래픽(VLAN 2)에 대해 1개, SMB 트래픽(VLAN 15)에 1개 등 2개의 vNIC를 사용하여 Guest OS를 생성합니다.
그림 12 - Guest OS 네트워크 구성 호스트 R7425-01
그림 13 - 가상 머신 네트워크 구성 호스트 R7425-02
8. VM을 종료합니다.
9. Guest OS에서 SR-IOV 및 RDMA를 활성화합니다.
그림 14 - Guest OS에서 SR-IOV/RDMA 활성화
10. VM을 시작한 다음 Device Manager를 엽니다. Mellanox VF(Virtual Function)는 Network Adapters 아래에 나열되어야 합니다. VF는 그림 15와 같이 네트워크 연결에서 일반 네트워크 어댑터로 표시되지 않습니다.
그림 15 - Guest OS 디바이스 관리자 및 네트워크 연결
참고: Guest 운영 체제에서 RDMA를 활성화하려면 NIC 드라이버를 설치해야 할 수 있습니다.
11. SMB vNIC에서 RDMA를 활성화합니다. RDMA 기능은 Mellanox VF에서 이미 활성화되었습니다(이더넷 4 - 그림 16).
그림 16 - SMB vNIC에서 RDMA 활성화
12. Guest RDMA를 테스트합니다.
참고: IfIndex(vNIC 인터페이스 인덱스)와 VfIndex(Mellanox VF 인터페이스 인덱스)를 지정하는 것이 중요합니다.
그림 17 - Test-RDMA Guest OS
#Create new virtual switch with SRIOV option enabled
New-VMSwitch -Name xxxx -NetadapterName xxxx,xxxx -AllowManagementOS $true -EnableEmbeddedTeaming $true -EnableIov $true
#Verify if SRIOV is enabled on physical adapter
Get-NetAdapterSriov -Name xxxx
#Get VM network configuration
Get-VM -Name xxxx| Get-VMNetworkAdapter
#Get VM network VLAN configuration
Get-VM -Name | Get-VMNetworkAdapterVlan
#Set VM SRIO and RDMA on Virtual Machine(Guest OS) vNIC
Get-VM -Name xxxx | Set-VMNetworkAdapter -Name xxx -IovWeight 100 -IoVQueuePairsRequested 2
Get-VM -Name xxxx | Set-VMNetworkAdapterRdma -Name xxx -RdmaWeight 100
#Enable RDMA on NetAdapter
Enable-NetAdapterRdma -Name xxxx
#Test-Rdma Physical Host
.\Test-Rdma.ps1 -IfIndex xx -IsRoCE $true -RemoteIpAddress xxx.xxx.xxx.xxx -PathToDiskspd xxxxx
#Test-Rdma Virtual Machine (Guest OS)
.\Test-Rdma.ps1 -IfIndex xx -IsRoCE $true -RemoteIpAddress xxx.xxx.xxx.xxx -PathToDiskspd xxxxx -VfIndex xx
의견, 질문 또는 제안이 있으십니까?
WinServerBlogs@dell.com으로 문의하십시오.