Configure Guest RDMA on Windows Server 2019

1.Introduction of Remote Direct Memory Access (RDMA)

Remote Direct Memory Access (RDMA) is a great technology that enables computers to transfer data across the network without involving CPU or OS resources of the hosts involved (Compute/Storage), improving throughput and performance, reducing latency and CPU overhead.

There are two popular RDMA implementations today:

RoCE
- Transport: UDP/IP (RoCE v2)
- Rely on DCB (Data Center Bridging)

iWarp
- Underlying Network: TCP/IP
- TCP provides flow control and congestion management


RoCE relies heavily on DCB configuration such as ETS (Enhanced Transmission Service) and PFC (Priority Flow Control), which can become a problem if network switches are not configured properly. iWARP does not require any switch configuration.

Microsoft started supporting RDMA on Windows Server 2012 and added new features in the later Windows Server OS's. One feature available on Microsoft’s newest OS, Windows Server 2019, is the ability to present RDMA to the Guest OS (VM). This allows the Guest to have the same low-latency access to a network storage as the native host, reducing CPU overhead and improving throughput/performance directly in the VM.


Dell EMC offers great options for 25Gbps RDMA such as the Cavium QLogic FastLinQ 41262 Dual Port 25 GbE SFP28 (iWarp/RoCE) and the Mellanox ConnectX-4 Lx 25Gbps RDMA (RoCE). This example uses the Mellanox ConnectX-4 Lx RDMA (RoCEv2 mode) to demo the Guest RDMA feature.


2.Lab Environment

Servers: 2 x Dell EMC R7425 (AMD Epyc 7551 32-Core Processor), 256GB Memory, Mellanox ConnectX-4 Lx fully updated (BIOS, Firmware, Drivers and OS)
Roles/Features Installed: Hyper-V, DCB, Failover Clustering, S2D
Switch: Dell EMC S5048F-ON – MGMT VLAN 2, SMB VLAN 15
 

Dell EMC recommends updating BIOS, firmwares, drivers and Operating System as part of your scheduled update cycle. BIOS, firmware, driver and OS updates are intended to improve the reliability, stability and security of your system.


3.Hardware Configuration

1. Reboot the servers and go to the System Setup (press F2 during POST).

2. Select Device Settings.


Figure 1 - BIOS Device Settings
 
3. Select the NIC in Slot 1 Port 1 - Mellanox


Figure 2 - Mellanox Slot 1 Port 1 Device Settings
 
4. Go to Device Level Configuration


Figure 3 - Device Level Configuration
 
5. Select SR-IOV in Virtualization Mode.


Figure 4 - SR-IOV Setting 
 
6. Repeat the steps above on the NIC in Slot 1 Port 2 - Mellanox.


Figure 5 - Mellanox Slot 1 Port 2 Device Settings
 
7. Go back to System Setup Main Menu then select System BIOS.


Figure 6 - System BIOS
 
8. Select Integrated Devices.


Figure 7 - BIOS Integrated Devices
 
9. Enable SR-IOV Global Enable option.


Figure 8 - SR-IOV Global
 
10. Save your configuration and reboot the server.
 


 

 

 

 

 

 

 

4.Configuring Guest RDMA


1. Install Windows Server 2019
2. Install the Hyper-V Role and the Data Center Bridging (DCB) feature.
3. Configure QoS (Quality-of-Service), DCB, PFC, ETS. Make sure that the server NIC and QoS configuration matches the switch configuration.
4. Configure Hyper-V SET (Switch Embedded Team).
 


Figure 9 - vSwitch Configuration
 
5. Test RDMA communication between the physical servers prior configuring the VMs. Download Microsoft Diskspd and the Microsoft Test-RDMA PowerShell script. Continue with the steps below only if communication is working properly. Otherwise check the switch configuration and/or DCB settings on the host.


Figure 10 - Test-Rdma Physical Hosts
 
6. Verify if SR-IOV is enabled on the RDMA adapters on both servers.


Figure 11 - SR-IOV Enabled
 
7. Create two Gen 2 VMs (Guest OS), one on each server then install Windows Server 2019. In this scenario,  a Guest OS is created with two vNICs, one for MGMT traffic (VLAN 2) and one for SMB traffic (VLAN 15).


Figure 12 - Guest OS Network Configuration Host R7425-01


Figure 13 - Virtual Machine Network Configuration Host R7425-02
 
8. Shutdown the VMs.
9. Enable SR-IOV and RDMA on the Guest OS.


Figure 14 - Enable SR-IOV/RDMA on Guest OSes
 
10. Start the VMs then open Device Manager. The Mellanox Virtual Function (VF) should be listed under Network Adapters. The VF is not presented as a regular network adapter in Network Connections as seen on Figure 15. 


Figure 15 - Guest OS Device Manager and Network Connections
 

 

 

 

 

 

 

NOTE: A NIC driver may need to be installed to enable RDMA in the Guest Operating System.

11. Enable RDMA on SMB vNIC. RDMA functionality is already enabled on the Mellanox VF (Ethernet4 - Figure 16 ).


Figure 16 - Enable RDMA on SMB vNIC
 
12. Test Guest RDMA. 

 

Note: It is important to specify the IfIndex (vNIC Interface Index) and the VfIndex (Mellanox VF Interface Index).



Figure 17 - Test-RDMA Guest OS
 


 

5.Powershell Cmdlets


#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

Windows Server 2019 上搭建 NS(域名服务器)服务器,你可以按照以下步骤进行操作: 1. 安装 DNS 服务器角色: - 打开 Server Manager(服务器管理器)。 - 选择 "Add roles and features"(添加角色和功能)。 - 在 "Before you begin"(开始之前)页面上,点击 "Next"(下一步)。 - 选择 "Role-based or feature-based installation"(基于角色或基于功能的安装),然后点击 "Next"(下一步)。 - 选择你想要安装 DNS 服务器角色的服务器,然后点击 "Next"(下一步)。 - 在 "Server Roles"(服务器角色)页面上,选择 "DNS Server"(DNS 服务器),然后点击 "Next"(下一步)。 - 在 "Features"(功能)页面上,直接点击 "Next"(下一步)。 - 在 "DNS Server"(DNS 服务器)页面上,点击 "Next"(下一步)。 - 在 "Confirmation"(确认)页面上,点击 "Install"(安装)。 - 完成安装后,关闭向导。 2. 配置 DNS 服务器: - 打开 Server Manager(服务器管理器)。 - 在左侧导航栏中,选择 "Tools"(工具),然后选择 "DNS"。 - 在 DNS Manager(DNS 管理器)中,右键点击你的服务器名称,选择 "Configure a DNS Server..."(配置 DNS 服务器...)。 - 在 "Welcome to the Configure DNS Server Wizard"(欢迎使用配置 DNS 服务器向导)页面上,点击 "Next"(下一步)。 - 在 "DNS Server Options"(DNS 服务器选项)页面上,选择 "Create a forward lookup zone"(创建正向查找区域),然后点击 "Next"(下一步)。 - 在 "Zone Type"(区域类型)页面上,选择 "Primary zone"(主区域),然后点击 "Next"(下一步)。 - 在 "Zone Name"(区域名称)页面上,输入你要创建的区域名称,然后点击 "Next"(下一步)。 - 在 "Dynamic Update"(动态更新)页面上,根据你的需求选择动态更新的设置,然后点击 "Next"(下一步)。 - 在 "Completing the Configure a DNS Server Wizard"(完成配置 DNS 服务器向导)页面上,点击 "Finish"(完成)。 3. 配置 DNS 记录: - 在 DNS Manager(DNS 管理器)中,展开你的服务器名称,展开 "Forward Lookup Zones"(正向查找区域),然后展开你创建的区域名称。 - 右键点击该区域,选择相应的记录类型(如 A 记录、CNAME 记录等),进行添加、修改或删除操作。 以上是在 Windows Server 2019 上搭建 NS 服务器的基本步骤。请注意,在配置 DNS 服务器时,你需要根据你的网络环境和需求进行相应的设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

frank0060071

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值