Certaines instances de niveau entreprise prennent en charge eRDMA, un service de mise en réseau RDMA offrant une latence ultra-faible, un débit élevé et une grande élasticité, sans nécessiter de modification de votre architecture réseau existante. Cette rubrique explique comment activer eRDMA sur ces instances.
Limitations
Limitation | Description |
Type d'instance | Les types d'instance suivants prennent en charge eRDMA : |
Image |
Remarque Les images disponibles varient selon le type d'instance. La page d'achat d'instance n'affiche que les images compatibles avec le type d'instance sélectionné. |
Nombre de périphériques eRDMA | Pour déterminer le nombre maximal d'ERI pris en charge par un type d'instance, consultez la valeur du paramètre EriQuantity dans la réponse de l'opération DescribeInstanceTypes. Une valeur de 0 indique que le type d'instance ne prend pas en charge les ERI. |
Limitations réseau |
|
Configurer eRDMA pour une instance de niveau entreprise
Lors de la création de l'instance
Si le système d'exploitation ne prend pas en charge l'installation automatique du pilote eRDMA, ou si celle-ci échoue, vous pouvez installer le pilote manuellement ou via un script après la création de l'instance. Pour plus d'informations, consultez Configurer eRDMA pour une instance existante.
L'installation du pilote eRDMA commence après le démarrage de l'instance et peut prendre un certain temps.
-
Créez une instance de niveau entreprise prenant en charge la fonctionnalité ERI. Tenez compte des paramètres suivants lors de la création de l'instance. Pour obtenir des informations sur les autres paramètres, consultez Créer une instance à l'aide de l'assistant.
-
Instances & Images : Sélectionnez un type d'instance prenant en charge eRDMA et installez le pilote eRDMA.
Instance : Consultez les Limitations.
-
Images : Sélectionnez Public Image puis sélectionnez Install eRDMA Driver. Le pilote eRDMA est automatiquement installé au démarrage de l'instance.

-
ENIs : À droite de Primary ENI, activez la fonctionnalité ERI pour lier une ERI à l'instance ECS.
RemarqueLors de la création d'une instance de niveau entreprise, vous ne pouvez activer la fonctionnalité ERI que pour l'ENI principale. Si vous devez configurer eRDMA pour une ENI secondaire, vous pouvez activer la fonctionnalité ERI pour l'ENI secondaire dans la console ou en appelant une opération API. Pour plus d'informations, consultez Interface réseau RDMA élastique (ERI).
-
Pour une instance existante
-
Vérifiez que le type d'instance figure dans la liste des types d'instance prenant en charge eRDMA.
Vous devez sélectionner un type d'instance prenant en charge eRDMA.
-
Vérifiez que eRDMA est correctement configuré sur l'instance.
Vérifiez que eRDMA est correctement configuré sur l'instance. Pour plus d'informations, consultez Vérifier la configuration eRDMA.
Si eRDMA n'est pas configuré sur l'instance, suivez les étapes ci-dessous pour installer le pilote eRDMA et lier une ERI à l'instance.
-
Installez le pilote eRDMA pour l'instance.
Si vous n'avez pas sélectionné eRDMA Driver lors de la création de l'instance, vous devez installer le pilote eRDMA manuellement ou via un script.
Méthode par script : Cette méthode télécharge par défaut la dernière version stable du package de pilotes.
Méthode manuelle : Vous pouvez télécharger une version spécifique du package de pilotes.
Installation par script en un clic
-
Exécutez la commande suivante pour télécharger la dernière version stable du package de pilotes.
curl -O http://mirrors.cloud.aliyuncs.com/erdma/env_setup.sh -
Exécutez la commande suivante pour installer le package de pilotes téléchargé.
sudo /bin/bash env_setup.sh > /var/log/erdma_install.log 2>&1Après l'exécution du script d'installation, celui-ci installe automatiquement les dépendances logicielles requises et le pilote eRDMA. Attendez la fin de l'installation.
RemarqueSi l'installation du pilote échoue, vérifiez le journal d'installation situé dans
/var/log/erdma_install.log.
Installation manuelle
-
Exécutez la commande suivante pour mettre à jour les packages prérequis.
-
Alibaba Cloud Linux 3, CentOS ou Anolis OS :
sudo yum update -y Ubuntu : Aucune mise à jour n'est requise. Vous pouvez ignorer cette étape.
-
-
Exécutez les commandes suivantes dans l'ordre pour vérifier la dernière version du package du noyau et la version du noyau en cours d'exécution.
rpm -qa | grep kernel # Check the latest kernel package version. uname -r # Check the running kernel version.La sortie d'exemple indique que les versions sont incohérentes. Vous devez redémarrer l'instance pour appliquer le nouveau noyau. Après le redémarrage, exécutez à nouveau la commande uname -r pour confirmer que la version du noyau en cours d'exécution correspond à la dernière version du package du noyau.
[ecs-user@iZbp1xxxxxxxxxxxxx ~]$ rpm -qa | grep kernel kernel-tools-5.10.134-16.1.al8.x86_64 kernel-5.10.134-16.1.al8.x86_64 kernel-modules-extra-5.10.134-16.1.al8.x86_64 kernel-hotfix-13383560-5.10.134-15-1.0-20230724161633.al8.x86_64 kernel-devel-5.10.134-16.1.al8.x86_64 kernel-5.10.134-15.al8.x86_64 kernel-modules-5.10.134-16.1.al8.x86_64 kernel-tools-libs-5.10.134-16.1.al8.x86_64 kernel-core-5.10.134-16.1.al8.x86_64 kernel-core-5.10.134-15.al8.x86_64 kernel-modules-internal-5.10.134-16.1.al8.x86_64 kernel-devel-5.10.134-15.al8.x86_64 kernel-modules-5.10.134-15.al8.x86_64 kernel-headers-5.10.134-16.1.al8.x86_64 [ecs-user@iZbp1xxxxxxxxxxxxx ~]$ uname -r 5.10.134-15.al8.x86_64 -
Exécutez la commande suivante pour installer les packages de dépendance.
-
Pour les instances x86, effectuez les opérations suivantes :
-
Alibaba Cloud Linux 3, CentOS ou Anolis OS :
sudo yum install gcc-c++ dkms cmake kernel-devel kernel-headers libnl3 libnl3-devel -
Ubuntu :
sudo apt-get install dkms cmake libnl-3-dev libnl-route-3-dev linux-headers-generic
-
Pour les instances Arm, qui nécessitent des tâches de compilation à partir des sources, les packages de dépendance sont nombreux et peuvent changer. Par conséquent, vous pouvez ignorer cette étape et exécuter directement le script d'installation. Si le script d'installation échoue, il vous invite à installer les packages de dépendance nécessaires. Installez-les comme indiqué, puis exécutez à nouveau le script d'installation.
-
-
Exécutez la commande suivante pour télécharger le package d'installation du pilote.
-
Obtenez le package depuis une URL interne :
wget http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-latest.tar.gz -
Obtenez le package depuis une URL publique :
wget https://mirrors.aliyun.com/erdma/erdma_installer-latest.tar.gz
Par défaut, la dernière version du package d'installation du pilote est téléchargée. Vous pouvez également télécharger une version spécifique selon vos besoins. Pour les informations de publication des différentes versions du package d'installation eRDMA, consultez Étape 2 : Installer le pilote eRDMA pour une instance ECS.
-
-
Exécutez la commande suivante pour décompresser le package d'installation et accéder au répertoire du package décompressé.
tar -xvf erdma_installer-latest.tar.gz && cd erdma_installer -
Exécutez la commande suivante pour installer le pilote.
-
Méthode 1 : Confirmez manuellement les étapes de désinstallation et de téléchargement automatique pendant l'installation.
sudo sh install.sh -
Méthode 2 : Exécutez l'installation sans invites de confirmation.
sudo sh install.sh --batch
Vérifiez la sortie pour confirmer le résultat de l'installation.
Si les informations suivantes sont renvoyées, le pilote est installé avec succès.
================================= Installation Information ====== architecture : x86_64 distributor : alinux release : 3 binary path : RPMS/alinux3 build from source : erdma(N) rdma-core(N) eadm(N) install requires : gcc make patch gcc-c++ dkms cmake kernel- build requires : gcc make patch gcc-c++ dkms cmake kernel- vel redhat-rpm-config rpm-build libnl3-devel ninja-build perl-gen hon3-docutils temp dir : /tmp/ERDMA.120833 log file : /tmp/install-erdma.log.120833 ==================================================================== Checking for Linux headers availability... Verifying dependencies... Removing erdma package... Start to uninstall rdma-core libraries... Installing erdma Reloading erdma modules Installation finished successfully. Update erdma.ko in initramfsSi les informations suivantes sont renvoyées, l'installation du pilote a échoué. Suivez les instructions de l'invite, puis essayez d'installer à nouveau le pilote.
========================== Installation Information ======================================== architecture : x86_64 distributor : alinux release : 3 binary path : RPMS/alinux3 build from source : erdma(Y) rdma-core(Y) eadm(Y) install requires : gcc make patch gcc-c++ dkms cmake kernel-headers kernel-devel build requires : gcc make patch gcc-c++ dkms cmake kernel-headers kernel-devel gcc make patch gcc-c++ dkms cmake kernel-headers kernel-devel redhat-rpm-config rpm-build libnl3-devel ninja-build perl-generators pandoc systemd-devel valgrind-devel kernel-rpm-macros python3-Cython python3-docutils temp dir : /tmp/ERDMA.172873 log file : /tmp/install-erdma.log.172873 =========================================================================================== Checking for Linux headers availability... Verifying dependencies... ERDMA requires the following Packages(s) to be installed: libnl3-devel ninja-build perl-generators pandoc systemd-devel valgrind-devel python3-Cython python3-docutilsRemarqueSi vous utilisez CentOS 7 et qu'un package manque lors de la réinstallation du pilote mais que vous ne pouvez pas l'obtenir via
yum, vous devrez peut-être exécuter la commandeyum install -y epel-releasepour installer le dépôt EPEL. Vous pourrez ensuite obtenir le package requis. -
-
Liez une ERI à l'instance.
Vous pouvez lier une ERI à une instance de l'une des manières suivantes.
RemarquePour déterminer le nombre maximal d'ERI pris en charge par un type d'instance, consultez la valeur du paramètre EriQuantity dans la réponse de l'opération DescribeInstanceTypes. Une valeur de 0 indique que le type d'instance ne prend pas en charge les ERI.
-
Modifiez les attributs d'une ENI liée pour activer l'interface eRDMA
Consultez la section Modifier les attributs d'une ENI.
-
Créez une ERI et liez-la à une instance ECS
Pour créer une ERI, consultez la section Créer une ERI autonome.
Pour lier une ERI à une instance ECS, consultez la section Lier une ENI secondaire.
-
Créez une ENI secondaire avec l'interface eRDMA activée et liez-la à une instance à l'aide d'une opération API
Créez et liez une ENI secondaire à l'aide d'opérations API :
-
Appelez une opération API pour créer une ERI.
Vous pouvez appeler l'opération CreateNetworkInterface pour créer une ENI. Pour créer une ENI avec une ERI activée, définissez le paramètre NetworkInterfaceTrafficMode sur HighPerformance.
Enregistrez l'ID de l'ENI renvoyé dans le paramètre
NetworkInterfaceId. -
Appelez l'opération AttachNetworkInterface. Définissez NetworkInterfaceId sur l'ID de l'étape précédente et InstanceId sur l'ID de l'instance cible pour lier l'ENI activée pour eRDMA.
ImportantSi votre type d'instance prend en charge plusieurs ERI, spécifiez un NetworkCardIndex différent pour chaque ERI lors de leur liaison afin de maximiser la bande passante réseau. Cela garantit que les ERI sont liées à des canaux différents. Consultez la section Index de carte réseau.
-
-
Tester la latence d'écriture eRDMA
Vous pouvez installer perftest sur deux instances de niveau entreprise avec eRDMA activé et utiliser ib_write_lat pour tester la latence d'écriture. Pour plus d'informations sur perftest, consultez la suite de tests perftest.
Prérequis
Préparez deux instances de niveau entreprise avec eRDMA configuré. Cela signifie que chaque instance doit avoir la pile logicielle eRDMA installée et la fonctionnalité ERI activée pour son ENI. Une instance sert de serveur et l'autre de client.
Assurez-vous que les deux instances peuvent communiquer entre elles via le réseau interne. Pour plus d'informations, consultez Activer la communication interne entre les instances ECS.
Procédure
-
Connectez-vous à distance à chacune des deux instances.
Pour plus d'informations, consultez Se connecter à une instance Linux à l'aide de Workbench.
-
Vérifiez que eRDMA est correctement configuré sur les deux instances.
Pour plus d'informations, consultez Vérifier la configuration eRDMA.
-
Sur chaque instance, exécutez les commandes suivantes pour installer l'outil perftest.
Installez perftest depuis le dépôt officiel (nécessite une adresse IP publique) ou depuis un dépôt YUM/APT.
Dépôt officiel
Attribuez une adresse IP publique à l'instance ECS.
Téléchargez et installez perftest depuis le dépôt officiel perftest.
Dépôt YUM ou APT
RemarqueLes versions de
perftestdans les dépôts logiciels peuvent différer selon les distributions Linux, ce qui peut entraîner des problèmes de compatibilité. Utilisez la même distribution sur toutes les instances communicantes. Si cela n'est pas possible, installez depuis le dépôt officiel.-
Alibaba Cloud Linux 3, CentOS ou Anolis OS
sudo yum install perftest -y -
Ubuntu
sudo apt install perftest -y
-
Testez la latence du réseau eRDMA.
-
Sur l'instance serveur, exécutez la commande suivante pour démarrer
ib_write_laten tant que serveur qui écoute les connexions du client.ib_write_lat -R -a -F-
-R: utilise le Gestionnaire de connexions RDMA (RDMA_CM) pour établir une connexion.ImportantPour les types d'instance basés sur CPU prenant en charge eRDMA, le pilote noyau eRDMA est installé en mode Standard par défaut, qui prend en charge uniquement la méthode d'établissement de connexion RDMA_CM. Pour plus d'informations, consultez la section Méthode d'établissement de connexion.
Par défaut, perftest utilise une connexion hors bande (OOB). Lorsque vous exécutez un test perftest sur une instance basée sur CPU, vous pouvez utiliser le paramètre -R à la fois sur le serveur et sur le client pour spécifier la méthode d'établissement de connexion RDMA_CM. Sinon, la connexion peut échouer.
Vous pouvez également utiliser la ligne de commande pour rendre compatibles les méthodes d'établissement de connexion RDMA_CM et OOB. Pour plus d'informations, consultez la section Modifier le mode d'établissement de connexion d'eRDMA et bRPC pour assurer la compatibilité. Après avoir activé la compatibilité, le paramètre -R n'est plus requis.
-a: exécute des tests pour toutes les tailles de message de 2 octets à 2^23 octets. Cela vous permet de tester l'impact de différentes tailles de message sur la latence.-F: Force l'écrasement de toutes les connexions existantes. Cela signifie que si une connexion a déjà été établie, l'utilisation de l'option-Fignore ces connexions et force l'établissement d'une nouvelle connexion.
-
-
Sur l'instance client, exécutez la commande suivante pour démarrer
ib_write_latet vous connecter au serveur.ib_write_lat -R -a -F <server_ip>Remplacez
<server_ip>par l'adresse IP privée de l'ENI activée pour eRDMA du serveur. Pour obtenir l'adresse IP, consultez la section Afficher les adresses IP. -
Consultez les résultats du test.
Une fois le test terminé sur le client,
ib_write_lataffiche les informations de configuration du test, les informations de connexion et les résultats du test de performance, y compris les statistiques de latence telles que la latence minimale, maximale et moyenne.[root@xxx ~]# ib_write_lat -R -a -F 172.17.0.131 RDMA_Write Latency Test Dual-port : OFF Device : erdma_0 Number of qps : 1 Transport type : IW Connection type : RC Using SRQ : OFF PCIe relax order: OFF ibv_wr* API : OFF TX depth : 1 Mtu : 1024[B] Link type : Ethernet GID index : 0 Max inline data : 96[B] rdma_cm QPs : ON Data ex. method : rdma_cm local address: LID 0000 QPN 0x000b PSN 0xaf51c5 GID: 00:22:62:22:161:180:00:00:00:00:00:00:00:00:00:00 remote address: LID 0000 QPN 0x000a PSN 0x347ff0 GID: 00:22:62:09:142:189:00:00:00:00:00:00:00:00:00:00 #bytes #iterations t_min[usec] t_max[usec] t_typical[usec] t_avg[usec] t_stdev[usec] 99% percentile[usec] 99.9% percentile[usec] 2 1000 12.26 16.79 12.59 12.65 0.19 14.32 16.79 4 1000 12.10 18.10 12.54 12.60 0.24 14.57 18.10 8 1000 12.04 18.75 12.42 12.48 0.31 14.09 18.75 16 1000 12.45 14.77 12.77 12.81 0.11 14.10 14.77 32 1000 12.28 15.55 12.75 12.81 0.21 14.67 15.55 64 1000 12.41 16.10 12.79 12.84 0.16 14.31 16.10 128 1000 12.86 16.22 13.19 13.21 0.15 14.78 16.22 256 1000 13.11 20.85 13.53 13.64 0.35 15.43 20.85 512 1000 13.09 16.54 13.44 13.47 0.17 15.16 16.54
-