El Acceso directo remoto a la memoria, o RDMA por sus siglas en inglés, permite que un dispositivo de red transfiera datos directamente a y desde la memoria de aplicaciones en otro sistema, aumentando el rendimiento y disminuyendo la latencia en ciertos entornos de red.
La diferencia principal es que iWARP realiza RDMA a través de TCP, mientras que RoCEv2 utiliza UDP.
Para evitar la degradación de rendimiento de los paquetes descartados, habilite el control de flujo o el control de flujo de prioridad en todas las interfaces de red y conmutadores.
NOTAS:
|
Estas sencillas instrucciones de instalación de RDMA de Linux se aplican a los siguientes dispositivos:
Para obtener información detallada de instalación y configuración, vea el archivo README del controlador RDMA de Linux en el archivo .tar del controlador para los dispositivos Ethernet Intel® que admiten RDMA.
Este ejemplo es específico para RHEL. Las especificaciones de su sistema operativo pueden ser diferentes.
# tar zxf irdma-<x.x.x>.tar.gz
# cd irdma-<x.x.x>
# ./build.sh
# modprobe irdma
NOTE: By default, the irdma driver is loaded in iWARP mode. It uses the devlink interface to enable RoCEv2 per port. To load all irdma ports in RoCEv2 mode, use the following:# modprobe irdma roce_ena=1 |
# yum erase rdma-core
# wget https://github.com/linux-rdma/rdma-core/releases/download/v27.0/rdma-core-27.0.tar.gz
NOTE: Download the rdma-core version that matches the version of the libirdma patch file included with the driver. For example, libirdma-27.0.patch requires rdma-core-27.0.tar.gz . |
# tar -xzvf rdma-core-<version>.tar.gz
# cd rdma-core-<version>
# patch -p2 <<path-to-component-build>/libirdma-<version>.patch
# cd ..
# chgrp -R root <path-to-rdma-core>/redhat
# tar -zcvf rdma-core-<version>.tgz rdma-core-<version>
# mkdir -p ~/rpmbuild/SOURCES
# mkdir -p ~/rpmbuild/SPECS
# cp rdma-core-<version>.tgz ~/rpmbuild/SOURCES/
# cd ~/rpmbuild/SOURCES
# tar -xzvf rdma-core-<version>.tgz
# cp ~/rpmbuild/SOURCES/rdma-core-<version>/redhat/rdma-core.spec ~/rpmbuild/SPECS/
# cd ~/rpmbuild/SPECS/
# rpmbuild -ba rdma-core.spec
# cd ~/rpmbuild/RPMS/x86_64
# yum install *<version>*.rpm
Estas sencillas instrucciones de instalación de RDMA FreeBSD se aplican a los siguientes dispositivos:
# tar -xf ixl-<version>.tar.gz
# tar -xf iw_ixl-<version>.tar.gz
# cd ixl-<version>/src directory
# make
# make install
# cd iw_ixl-<version>/src
# make clean
# make IXL_DIR=$PATH_TO_IXL/ixl-<version>/src
# make install
# sysctl dev.ixl.<interface_num>.fc=3
Para obtener información detallada de instalación y configuración, vea el archivo README del controlador RDMA FreeBSD en el archivo .tar del controlador para los dispositivos Intel® Ethernet que admiten RDMA.
Network Direct (ND) permite que las aplicaciones de modo de usuario utilicen características de RDMA.
NOTA: Las aplicaciones en modo de usuario pueden tener requisitos previos, como Microsoft HPC Pack o Intel MPI Library; consulte la documentación de su aplicación para obtener más detalles. |
El proveedor de RDMA en modo de usuario Intel® Ethernet es compatible con Microsoft* Windows Server* 2012 R2 y posteriores.
Siga los pasos indicados más abajo para instalar las características en modo de usuario de Network Direct.
NOTA: Si el firewall de Windows está deshabilitado o utiliza un firewall de terceros, tendrá que añadir esta regla manualmente. |
La funcionalidad RDMA Network Direct Kernel (NDK) está incluida en los controladores de red base de Intel y no requiere la instalación de características adicionales.
Si desea habilitar la característica RDMA de NDK a través de subredes, tendrá que seleccionar "Habilitar enrutamiento de RDMA a través de subredes IP" en la pantalla Opciones de configuración de RDMA durante la instalación del controlador base.
Para evitar la degradación de rendimiento de los paquetes descartados, habilite el control de flujo basado en prioridades (PFC) o el control de flujo de nivel de enlace en todas las interfaces de red y conmutadores de la red.
NOTA: en sistemas que ejecutan un sistema operativo de Microsoft Windows Server, habilitando el control de flujo *QoS/prioridad se desactivará el control de flujo de nivel de enlace. |
Utilice los siguientes comandos de PowerShell para habilitar el PFC en un sistema operativo con Microsoft Windows Server:
Install-WindowsFeature -Name Data-Center-Bridging -IncludeManagementTools
New-NetQoSPolicy "SMB" -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3
Enable-NetQosFlowControl -Priority 3
Disable-NetQosFlowControl -Priority 0,1,2,4,5,6,7
New-NetQosTrafficClass -Name "SMB" -Priority 3 -BandwidthPercentage 60 -Algorithm ETS
Set-NetQosDcbxSetting -Willing $FALSE
Enable-NetAdapterQos -Name "Slot1 4 2 Port 1"
Puede comprobar que RDMA esté habilitado en las interfaces de red mediante el siguiente comando de Microsoft* PowerShell*:
Get-NetAdapterRDMA
Use el siguiente comando de PowerShell para comprobar si las interfaces de red son compatibles con RDMA y si está habilitado el multicanal:
Get-SmbClientNetworkInterface
Use el siguiente comando de PowerShell para comprobar si Network Direct está habilitado en el sistema operativo:
Get-NetOffloadGlobalSetting | Select NetworkDirect
Use netstat para asegurarse de que cada interfaz de red compatible con RDMA tiene un receptor en el puerto 445 (los sistemas operativos cliente de Windows que admiten RDMA no pueden publicar escuchas). Por ejemplo:
netstat.exe -xan | ? {$_ -match "445"}
Para habilitar la funcionalidad de RDMA en adaptadores virtuales conectados a un VMSwitch, las propiedades avanzadas SRIOV (Virtualización de E/S de raíz única) y VMQ (Colas de máquina virtual) deben estar habilitadas en cada de puerto. En determinadas circunstancias, estas configuraciones pueden estar deshabilitadas de manera predeterminada. Estas opciones se pueden configurar manualmente en la pestaña avanzada del cuadro de diálogo de propiedades del adaptador o con los siguientes comandos de Powershell:
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *SRIOV -RegistryValue 1
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *VMQ -RegistryValue 1
El modo NDK 3 permite que los componentes de Windows en modo de kernel utilicen las características de RDMA dentro de las particiones de invitados de Hyper-V. Para habilitar el modo NDK 3 en un dispositivo Intel Ethernet, haga lo siguiente:
New-VMSwitch -Name <switch_name> -NetAdapterName <device_name>
-EnableIov $true
Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaMaxVfsEnabled -RegistryValue <Value: 0 - 32>
Get-NetAdapterRdma | Disable-NetAdapter
Get-NetAdapterRdma | Enable-NetAdapter
Add-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -SwitchName <switch_name>
Set-VMNetworkAdapterRdma -VMName <vm_name> -VMNetworkAdapterName <device_name> -RdmaWeight 100
Set-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -IovWeight 100
Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaVfEnabled -RegistryValue 1
Get-NetAdapterRdma | Enable-NetAdapterRdma
NDK permite que los componentes de Windows (como el almacenamiento SMB Direct) utilicen características de RDMA.
Esta sección describe una forma recomendada de probar RDMA para la funcionalidad y el rendimiento de Intel® Ethernet en los sistemas operativos Microsoft* Windows*.
Tenga en cuenta que, dado que SMB Direct es una carga de trabajo de almacenamiento, el rendimiento de la prueba de referencia puede estar limitado a la velocidad del dispositivo de almacenamiento en lugar de a la interfaz de red que se está probando. Intel recomienda utilizar el almacenamiento más rápido posible para probar las prestaciones reales de los dispositivos de red sometidos a prueba.
Instrucciones de prueba:
Copyright (C) 2019 - 2020, Intel Corporation. Todos los derechos reservados.
Intel Corporation no asume ninguna responsabilidad por los errores y omisiones en esta guía. Del mismo modo, Intel no se compromete de ninguna forma a actualizar la información aquí contenida.
Intel es una marca comercial de Intel Corporation en los Estados Unidos y en otros países.
* Otros nombres y marcas pueden ser reclamados como propiedad de terceras partes.
Este software se proporciona bajo licencia y sólo se puede utilizar o copiar según los términos de la licencia. La información de este manual se ofrece sólo como referencia, está sujeta a cambios sin previo aviso y no debe interpretarse como un compromiso por parte de Intel Corporation. Intel Corporation no asumirá responsabilidad alguna por los errores o inexactitudes que aparezcan en este documento o en cualquier software que pueda proporcionarse en relación con este documento. Excepto tal y como lo permite dicha licencia, ninguna parte de este documento podrá ser reproducida, almacenada en un sistema de recuperación o transmitida en ningún formato o por ningún medio sin el consentimiento escrito expreso de Intel Corporation.