vSphere 6.5 et les versions ultérieures prennent en charge la communication RDMA (remote direct memory access) entres des machines virtuelles qui disposent d'adaptateurs réseau RDMA paravirtualisés (PVRDMA).
Présentation de RDMA
RDMA offre un accès direct à la mémoire depuis la mémoire d'un ordinateur vers la mémoire d'un autre ordinateur sans impliquer le système d'exploitation ni le CPU. Le transfert de la mémoire est déplacé vers les adaptateurs HCA compatibles avec la technologie RDMA. Un adaptateur réseau PVRDMA fournit un accès direct à la mémoire distante dans un environnement virtuel.
Utilisation de RDMA dans vSphere
Dans vSphere, une machine virtuelle peut utiliser un adaptateur réseau PVRDMA pour communiquer avec d'autres machines virtuelles équipées de périphériques PVRDMA. Les machines virtuelles doivent être connectées au même vSphere Distributed Switch.
Le périphérique PVRDMA sélectionne automatiquement la méthode de communication entre les machines virtuelles. Pour les machines virtuelles qui s'exécutent sur le même hôte ESXi avec ou sans périphérique RDMA physique, le transfert de données est un memcpy entre les deux machines virtuelles. Le matériel RDMA physique n'est pas utilisé dans ce cas.
Pour les machines virtuelles qui résident sur des hôtes ESXi différents et qui disposent d'une connexion RDMA physique, les périphériques RDMA physiques doivent être des liaisons montantes sur le commutateur distribué. Dans ce cas, la communication entre les machines virtuelles au moyen de PVRDMA utilise les périphériques RDMA physiques sous-jacents.
Pour deux machines virtuelles qui s'exécutent sur des hôtes ESXi différents, lorsque l'un des hôtes au moins ne dispose pas de périphérique RDMA physique, la communication se fait alors par le biais d'un canal TCP et les performances sont réduites.
Attribuer un adaptateur PVRDMA à une machine virtuelle
Pour activer une machine virtuelle afin d'échanger des données à l'aide de RDMA, vous devez associer la machine virtuelle à un adaptateur réseau PVRDMA.
Conditions préalables
- Vérifiez que l'hôte sur lequel la machine virtuelle s'exécute est configuré pour RDMA. Reportez-vous à la section Configurer un hôte ESXi pour PVRDMA.
- Vérifiez que l'hôte est connecté à un vSphere Distributed Switch.
- Vérifiez que la machine virtuelle utilise la version 13 du matériel virtuel et les versions ultérieures.
- Vérifiez que le système d'exploitation invité est une distribution Linux 64 bits.
Procédure
Configurer une machine virtuelle pour utiliser les points de terminaison natifs PVRDMA
Les points de terminaison natifs PVRDMA sont disponibles pour une configuration avancée de la machine virtuelle.
Les points de terminaison natifs PVRDMA sont pris en charge dans la version de matériel 18 et versions ultérieures de la machine virtuelle à partir de vSphere 7.0 Update 1 et versions ultérieures. Pour utiliser des points de terminaison natifs PVRDMA, vous devez activer les espaces de noms PVRDMA. Pour en savoir plus sur l'activation des espaces de noms PVRDMA sur le matériel spécifique de votre environnement, reportez-vous à la documentation du fournisseur.
Vous pouvez utiliser vSphere Client pour configurer des points de terminaison natifs ou modifier le fichier VMX de la machine virtuelle. Si vous modifiez le fichier VMX directement, ajoutez le paramètre vrdmax.nativeEndpointSupport = "TRUE"
, où x
correspond à l'index de l'adaptateur PVRDMA. La procédure suivante utilise vSphere Client pour configurer des points de terminaison natifs.
Conditions préalables
Vérifiez que votre environnement prend en charge PVRDMA. Reportez-vous à la section Prise en charge de PVRDMA.
Procédure
Configurer une machine virtuelle pour utiliser le mode VRDMA asynchrone
Apprenez à configurer une machine virtuelle pour utiliser le mode PVRDMA asynchrone. Il est disponible en tant que configuration de machine virtuelle avancée.
Le mode PVRDMA asynchrone est disponible sur les machines virtuelles s'exécutant sur vSphere 8.0 et versions ultérieures. Le mode asynchrone peut améliorer le débit et la latence des charges de travail RDMA s'exécutant sur la machine virtuelle. Lorsque le mode asynchrone est activé, une augmentation de l'utilisation du CPU peut être observée sur l'hôte. Lorsque le mode asynchrone est utilisé, il est recommandé que la machine virtuelle soit configurée pour une sensibilité de latence élevée.
Conditions préalables
Vérifiez que votre environnement prend en charge PVRDMA. Reportez-vous à la section Prise en charge de PVRDMA.
Procédure
- Localisez la machine virtuelle dans vSphere Client.
- Sélectionnez un centre de données, un dossier, un cluster, un pool de ressources ou un hôte, puis cliquez sur l'onglet VM
- Cliquez sur Machines virtuelles, puis cliquez sur la machine virtuelle dans la liste.
- Cliquez avec le bouton droit sur la machine virtuelle et sélectionnez Modifier les paramètres.
- Cliquez sur Options VM.
- Développez Avancé.
- Sous Paramètres de configuration, cliquez sur le bouton Modifier la configuration.
- Dans la boîte de dialogue qui apparaît, cliquez Ajouter ligne pour saisir un nouveau paramètre et sa valeur.
- Entrez le paramètre vrdma.asyncMode et définissez la valeur sur TRUE.
Configuration de réseau requise RoCE (RDMA over Converged Ethernet)
Le protocole RoCE (RDMA over Converged Ethernet) garantit une communication RDMA à faible latence, légère et à haut débit sur un réseau Ethernet. Le protocole RoCE nécessite un réseau configuré à des fins de trafic sans perte d'informations sur la couche 2 seule ou sur les couches 2 et 3.
Le protocole RoCE (RDMA over Converged Ethernet) est un protocole réseau qui utilise RDMA pour fournir un transfert de données plus rapide aux applications utilisant le réseau de manière intensive. Le protocole RoCE permet le transfert de mémoire direct entre les hôtes sans solliciter les CPU des hôtes.
Il existe deux versions du protocole RoCE. Le protocole RoCE v1 fonctionne au niveau de la couche du réseau de liaison (couche 2). Le protocole RoCE v2 fonctionne au niveau de la couche du réseau Internet (couche 3). Les protocoles RoCE v1 et RoCE v2 nécessitent une configuration réseau sans perte. Le protocole RoCE v1 nécessite un réseau de couche 2 sans perte et le protocole RoCE v2 nécessite que les couches 2 et 3 soient configurées pour un fonctionnement sans perte.
Réseau de couche 2 sans perte
Pour garantir un environnement de couche 2 sans perte, vous devez pouvoir contrôler les flux du trafic. Le contrôle de flux s'obtient en activant une interruption globale sur le réseau or ou à l'aide du protocole PFC (Priority Flow Control) défini par le groupe DCB (Data Center Bridging). Le protocole PFC est un protocole de couche 2 qui utilise la classe du champ de services de la balise VLAN 802.1Q afin de définir des priorités de trafic individuelles. Il interrompt le transfert de paquets vers un récepteur conformément à la classe individuelle de priorités de service. Ainsi, une simple liaison transporte le trafic RoCE sans perte et un autre trafic Meilleur effort avec perte. En cas d'encombrement du flux du trafic, un trafic avec perte important peut être affecté. Pour isoler différents flux les uns des autres, utilisez le protocole RoCE dans un VLAN sur lequel la priorité PFC est activée.
Réseau de couche 3 sans perte
Le protocole RoCE v2 nécessite que le transfert de données sans perte soit maintenu au niveau des périphériques de routage de la couche 3. Pour activer le transfert de priorités sans perte PFC de couche 2 entre des routeurs de couche 3, configurez le routeur pour mapper le paramètre de priorité reçu d'un paquet au paramètre QoS DSCP (Differentiated Serviced Code Point) correspondant fonctionnant au niveau de la couche 3. Les paquets RDMA transférés sont marqués d'un DSCP de couche 3, de PCP (Priority Code Points) de couche 2 ou des deux. Pour extraire des informations de priorité des routeurs de paquets, utilisez DSCP ou PCP. Si vous utilisez des PCP, le paquet doit porter une balise VLAN et le routeur doit copier les bits PCP de la balise et les transférer au réseau suivant. Si le paquet est marqué d'un DSCP, le routeur doit laisser les bits DSCP inchangés.
Comme le protocole RoCE v1, le protocole RoCE v2 doit s'exécuter sur un VLAN sur lequel la priorité PFC est activée.
Pour obtenir des informations de configuration spécifiques du fournisseur, reportez-vous à la documentation officielle du fournisseur du périphérique ou du commutateur respectif.