Tabla de contenido
-
-
-
-
-
-
1. Introducción al acceso directo a memoria remota (RDMA)
El acceso directo a la memoria remota (RDMA) es una excelente tecnología que permite que las computadoras puedan transferir datos a través de la red sin solicitar recursos de la CPU o el SO de los hosts involucrados (procesamiento/almacenamiento), lo cual mejora el rendimiento y reduce la latencia y la sobrecarga de la CPU.
Hoy, existen dos implementaciones de RDMA populares:
RoCE
- Transporte: UDP/IP (RoCE v2)
- Depende del DCB (protocolo de puente del centro de datos)
iWarps
- Red subyacente: TCP/IP
- TCP proporciona administración del control de flujo y la congestión
RoCE depende en gran medida de la configuración del DCB, como ETS (servicio de transmisión mejorada) y PFC (control de flujo de prioridad), lo que puede convertirse en un problema si los switches de red no están configurados correctamente. iWARP no requiere ninguna configuración de switch.
Microsoft comenzó a admitir RDMA en Windows Server 2012 y agregó nuevas funciones en los sistemas operativos Windows Server posteriores. Una función disponible en el sistema operativo más reciente de Microsoft, Windows Server 2019, es la capacidad de presentar RDMA al SO huésped (VM). Esto permite que el huésped tenga el mismo acceso de baja latencia a un almacenamiento de red que el host nativo, lo cual reduce la sobrecarga de CPU y mejora el rendimiento directamente en la máquina virtual.
Dell EMC ofrece excelentes opciones para RDMA de 25 Gbps, como Cavium QLogic FastLinQ 41262 SFP28 de puerto doble y 25 GbE (iWarp/RoCE), y Mellanox ConnectX-4 Lx RDMA de 25 Gbps (RoCE). En este ejemplo, se utiliza Mellanox ConnectX-4 Lx RDMA (modo RoCEv2) para demostrar la función de RDMA huésped.
Servidores: 2 Dell EMC R7425 (procesador AMD Epyc 7551 de 32 núcleos), memoria de 256 GB, Mellanox ConnectX-4 LX totalmente actualizado (BIOS, firmware, controladores y SO)
Roles o características instaladas: Hyper-V, DCB, agrupación en clústeres de conmutación por error, S2D
Switch: Dell EMC S5048F-ON: MGMT VLAN 2, SMB VLAN 15
Dell EMC recomienda actualizar el BIOS, el firmware, los controladores y el sistema operativo como parte del ciclo programado de actualización. Las actualizaciones del BIOS, el firmware, el controlador y el SO están diseñadas para mejorar la confiabilidad, estabilidad y seguridad del sistema.
1. Reinicie los servidores y vaya a la configuración del sistema (presione F2 durante la POST).
2. Seleccione Configuración de dispositivos.
Figura 1: Configuración de dispositivos del BIOS
3. Seleccione la NIC en la ranura 1, puerto 1, Mellanox
Figura 2: Mellanox ranura 1 puerto 1 Device Settings
4. Vaya a Device Level Configuration
Figura 3: Device Level Configuration
5. Seleccione SR-IOV en Virtualization Mode.
Figura 4: Configuración de SR-IOV
6. Repita los pasos anteriores en la NIC en la ranura 1, puerto 2: Mellanox.
Figura 5: Device Settings de Mellanox ranura 1, puerto 2
7. Vuelva a System Setup Main Menu y, a continuación, seleccione System BIOS.
Figura 6: System BIOS
8. Seleccione Integrated Devices.
Figura 7: Integrated Devices del BIOS
9. Active la opción SR-IOV Global Enable.
Figura 8: SR-IOV Global
10. Guarde la configuración y reinicie el servidor.
1. Instale Windows Server 2019+
2. Instale el rol Hyper-V y la función Puente del centro de datos (DCB).
3. Configure QoS (calidad de servicio), DCB, PFC, ETS. Asegúrese de que la configuración de la NIC y QoS del servidor coincida con la configuración del switch.
4. Configure Hyper-V SET (equipo integrado de switch).
Figura 9: Configuración de vSwitch
5. Pruebe la comunicación de RDMA entre los servidores físicos antes de configurar las máquinas virtuales. Descargue Microsoft Diskspd y el script Microsoft Test-RDMA PowerShell. Continúe con los pasos que se indican más adelante solo si la comunicación funciona correctamente. De lo contrario, compruebe la configuración del switch o la configuración del DCB en el host.
Figura 10: Probar hosts físicos Rdma
6. Verifique si SR-IOV está habilitado en los adaptadores RDMA de ambos servidores.
Figura 11: SR-IOV habilitado
7. Cree dos máquinas virtuales Gen 2 (SO huésped), una en cada servidor; luego, instale Windows Server 2019. En este ejemplo, se crea un SO huésped con dos vNIC, una para el tráfico de MGMT (VLAN 2) y otra para el tráfico de SMB (VLAN 15).
Figura 12: Host de configuración de red del SO huésped R7425-01
Figura 13: Host de configuración de red de la máquina virtualR7425-02
8. Apague las máquinas virtuales.
9. Habilite SR-IOV y RDMA en el SO huésped.
Figura 14: Habilitar SR-IOV/RDMA en SO huésped
10. Inicie las máquinas virtuales y abra el Administrador de dispositivos. La función virtual (VF) Mellanox debe aparecer en la lista Network Adapters. La VF no se presenta como un adaptador de red normal en las conexiones de red, como se muestra en la Figura 15.
Figura 15: Administrador de dispositivos y conexiones de red del sistema operativo huésped
NOTA: Es posible que deba instalar un controlador de NIC para habilitar RDMA en el sistema operativo huésped.
11. Habilite RDMA en SMB vNIC. La funcionalidad RDMA ya está habilitada en la VF Mellanox (Ethernet4: Figura 16).
Figura 16: Habilitar RDMA en SMB vNIC
12. Pruebe el RDMA huésped.
Nota: Es importante especificar el IfIndex (índice de la interfaz de vNIC) y el VfIndex (índice de la interfaz de VF Mellanox).
Figura 17: Prueba de RDMA en SO huésped
#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
¿Tienes algún comentario, pregunta o sugerencia? Comuníquese con nosotros al correo
WinServerBlogs@dell.com