Remote Direct Memory Access (RDMA)

Remote Direct Memory Access (RDMA) is a technology used to improve network performance by bypassing the CPU and memory when transferring data between network interfaces. RDMA is useful in virtualized environments where multiple virtual machines require high-speed network access.

Hyper-V supports RDMA by allowing virtual machines to directly access RDMA-capable network interfaces. This provides low-latency and high-bandwidth connectivity for virtual machines.

To configure RDMA in Hyper-V, the following steps can be followed:

  1. Install the RDMA-capable network interface card (NIC) on the Hyper-V host.
  2. Install the Hyper-V role on the host, if not already installed.
  3. Enable the RDMA feature on the host by running the following PowerShell command:powershell
  1. Enable-NetAdapterRdma -Name "Ethernet 1" This command enables RDMA on the NIC named “Ethernet 1”.
  2. Create a virtual switch in Hyper-V Manager with the “Allow management operating system to share this network adapter” option unchecked. This ensures that the virtual switch uses the RDMA-capable NIC exclusively.
  3. Create a virtual machine and attach it to the RDMA-enabled virtual switch.

Once configured, the virtual machine can use RDMA to communicate with other RDMA-capable devices on the network.

To verify that RDMA is working, the following PowerShell command can be used:

Test-NetConnection -ComputerName <remote computer> -Port 445 -InformationLevel "Detailed"

This command tests connectivity to a remote computer using the SMB protocol over port 445. If RDMA is working, the command will show “DirectAccess” as the “NetworkInformation” property. If RDMA is not working, the property will show “NameResolutionFailure” or “ConnectionFailure”.

Author: tonyhughes