L’accès direct à la mémoire à distance (Remote Direct Memory Access, ou RDMA) permet à un périphérique réseau de transférer des données directement depuis et vers une mémoire d’application sur un autre système, ce qui augmente le débit tout en réduisant la latence dans certains environnements réseau.
La principale différence est que le protocole iWARP exécute RDMA sur TCP, alors que le protocole RoCEv2 utilise UDP.
Pour éviter une dégradation des performances due aux pertes de paquets, activez le contrôle de flux au niveau du lien ou le contrôle de flux prioritaire sur tous les commutateurs et interfaces réseau.
REMARQUES :
|
Ces instructions d'installation de base de RDMA Linux sont valables pour les appareils suivants :
Des informations concernant l'installation et la configuration sont fournies dans le fichier README (Lisez-moi) du pilote RDMA Linux qui se trouve dans l'archive .tar du pilote pour les périphériques Ethernet Intel® prenant RDMA en charge.
Cet exemple est spécifique à RHEL. Les spécificités de votre système d'exploitation peuvent être différentes.
# 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
Ces instructions d'installation de base de RDMA FreeBSD sont valables pour les appareils suivants :
# 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
Des informations concernant l'installation et la configuration sont fournies dans le fichier README (Lisez-moi) du pilote RDMA FreeBSD qui se trouve dans l'archive .tar du pilote pour les périphériques Ethernet Intel® prenant RDMA en charge.
Network Direct (ND) permet aux applications en mode utilisateur d’utiliser les fonctionnalités RDMA.
REMARQUE : les applications en mode utilisateur peuvent avoir des conditions requises telles que Microsoft HPC Pack ou la bibliothèque Intel MPI. Reportez vous à la documentation de votre application pour plus de détails. |
Intel® Ethernet User Mode RDMA Provider est pris en charge sur Microsoft* Windows Server* 2012 R2 (ou une version ultérieure).
Suivez les étapes ci-dessous pour installer les fonctionnalités Network Direct (ND) en mode utilisateur.
REMARQUE : si le Pare-feu Windows est désactivé ou que vous utilisez un pare-feu tiers, vous devrez ajouter cette règle manuellement. |
La fonctionnalité RDMA Network Direct Kernel (NDK) est incluse dans les pilotes réseau de base Intel et aucune autre fonctionnalité ne doit être installée.
Si vous souhaitez autoriser la fonctionnalité RDMA de NDK sur les sous-réseaux, vous devez sélectionner « Activer le routage RDMA sur les sous-réseaux IP » dans l’écran des options de configuration RDMA lors de l’installation des pilotes de base.
Pour éviter une dégradation des performances due aux pertes de paquets, activez le contrôle de flux prioritaire (PFC) ou le contrôle de flux au niveau du lien sur tous les commutateurs et interfaces réseau.
REMARQUE : sur les systèmes utilisant un système d'exploitation Microsoft Windows Server, l'activation du *QoS/contrôle de flux prioritaire désactivera le contrôle de flux au niveau du lien. |
Utilisez les commandes PowerShell suivantes pour activer le PFC sur un système d'exploitation 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"
Vous pouvez confirmer l'activation de RDMA sur toutes les interfaces réseau en utilisant la commande Microsoft* PowerShell* suivante :
Get-NetAdapterRDMA
Utilisez la commande PowerShell suivante pour confirmer que les interfaces réseau sont compatibles avec RDMA et que la fonctionnalité multicanale est activée :
Get-SmbClientNetworkInterface
Utilisez la commande PowerShell suivante pour confirmer que la fonctionnalité Network Direct est activée dans le système d'exploitation :
Get-NetOffloadGlobalSetting | Select NetworkDirect
Utilisez netstat pour confirmer que chaque interface réseau compatible avec RDMA a un écouteur sur le port 445 (les SE des clients Windows prenant en charge l’accès RDMA ne doivent pas configurer d’écouteur). Par exemple :
netstat.exe -xan | ? {$_ -match "445"}
Pour activer la fonctionnalité RDMA sur une carte réseau virtuelle connectée à un commutateur VMSwitch, les propriétés avancées SRIOV (Single Root IO Virtualization) et VMQ (Virtual Machine Queues) doivent être activées sur chaque port. Dans certaines circonstances, ces paramètres peuvent être désactivés par défaut. Ces options peuvent être configurées manuellement sous l’onglet Avancé de la boîte de dialogue des propriétés de la carte réseau, et vous pouvez également utiliser les commandes Powershell suivantes :
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *SRIOV -RegistryValue 1
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *VMQ -RegistryValue 1
Le mode NDK 3 permet aux composants Windows en mode noyau d'utiliser les fonctionnalités RDMA dans les partitions invitées Hyper-V. Pour activer le mode NDK 3 sur un périphérique Ethernet Intel, procédez comme suit :
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 permet aux composants Windows (le stockage SMB Direct, par exemple) d’utiliser les fonctionnalités RDMA.
Cette section recommande une méthode pour tester l’accès RDMA pour la fonctionnalité Intel Ethernet et les performances sur les systèmes d’exploitation Microsoft* Windows*.
Remarque : SMB Direct étant une charge de travail de stockage, les performances du banc d’essai peuvent être limitées à la vitesse du périphérique de stockage plutôt qu’à l’interface réseau testée. Intel recommande d’utiliser le stockage le plus rapide possible afin de tester les vraies capacités du ou des périphériques réseau testés.
Instructions de test :
Copyright (C) 2019 - 2020, Intel Corporation. Tous droits réservés.
Intel Corporation décline toute responsabilité pour toute erreur ou omission dans ce document. Intel ne s'engage aucunement à mettre à jour les informations contenues dans ce document.
Intel est une marque de commerce d’Intel Corporation aux États-Unis et/ou dans d’autres pays.
* Les autres marques et noms de produits sont des marques commerciales appartenant à leurs propriétaires respectifs.
Ce logiciel est fourni sous licence et ne peut être utilisé ou copié que conformément aux termes de cette licence. Les informations contenues dans ce manuel sont fournies à titre de référence uniquement et peuvent être modifiées sans préavis. Elles ne constituent en aucun cas un engagement de la part d'Intel Corporation. Intel Corporation n'accepte aucune responsabilité pour d'éventuelles erreurs ou inexactitudes figurant dans ce document ou dans aucun logiciel susceptible d'être fourni en association avec ce document. Sauf autorisation figurant dans cette licence, aucune partie de ce document ne peut être reproduite, stockée dans un système de récupération ou transmise, sous quelque forme ou par quelque moyen que ce soit, sans l'autorisation écrite explicite d'Intel Corporation.