Tous les produits
Search
Centre de documentation

Elastic Compute Service:Enable eRDMA on enterprise-level instances

Dernière mise à jour :Aug 18, 2026

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 :

Cliquez pour afficher les types d'instance pris en charge

Image

  • Alibaba Cloud Linux 3 (recommandé)

  • Alibaba Cloud Linux 2 (systèmes x86 uniquement)

  • CentOS 7.9 (systèmes x86 uniquement)

  • Ubuntu 18.04/20,04/22,04/24.04

  • Anolis OS 8.4 ANCK/8.6 ANCK (versions Arm uniquement)

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

  • Une fois la fonctionnalité ERI activée pour une interface réseau élastique (ENI), vous ne pouvez pas attribuer d'adresse IPv6 à cette ENI.

  • Le chemin de communication eRDMA entre deux instances ne peut pas traverser des éléments réseau tels que les instances Server Load Balancer (SLB).

  • Une instance accélérée par GPU et une instance de niveau entreprise, toutes deux avec eRDMA activé, ne peuvent pas communiquer directement car elles fonctionnent dans des modes eRDMA différents. Pour permettre la communication, vous devez déployer eRDMA sur l'instance de niveau entreprise en utilisant la même méthode que pour les instances accélérées par GPU. Cela implique l'installation du pilote eRDMA et du pilote OpenFabrics Enterprise Distribution (OFED), puis la liaison d'une ERI à l'instance. Pour plus d'informations, consultez Activer eRDMA sur les instances accélérées par GPU.

Configurer eRDMA pour une instance de niveau entreprise

Lors de la création de l'instance

Important
  • 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.

  1. Accédez à la page d'achat d'instances ECS.

  2. 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.

        image

    • ENIs : À droite de Primary ENI, activez la fonctionnalité ERI pour lier une ERI à l'instance ECS.

      Remarque

      Lors 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

  1. 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.

  2. 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.

  3. 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

    1. 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
    2. 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>&1

      Aprè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.

      Remarque

      Si l'installation du pilote échoue, vérifiez le journal d'installation situé dans /var/log/erdma_install.log.

    Installation manuelle

    1. 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.

    2. 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
    3. 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.

    4. 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.

    5. 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
    6. 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 initramfs

      Si 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-docutils
      Remarque

      Si 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 commande yum install -y epel-release pour installer le dépôt EPEL. Vous pourrez ensuite obtenir le package requis.

  4. Liez une ERI à l'instance.

    Vous pouvez lier une ERI à une instance de l'une des manières suivantes.

    Remarque

    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.

    • 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 :

      1. 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.

      2. 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.

        Important

        Si 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

  1. 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.

  2. 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

  1. Connectez-vous à distance à chacune des deux instances.

    Pour plus d'informations, consultez Se connecter à une instance Linux à l'aide de Workbench.

  2. Vérifiez que eRDMA est correctement configuré sur les deux instances.

    Pour plus d'informations, consultez Vérifier la configuration eRDMA.

  3. 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

    1. Attribuez une adresse IP publique à l'instance ECS.

    2. Téléchargez et installez perftest depuis le dépôt officiel perftest.

    Dépôt YUM ou APT

    Remarque

    Les versions de perftest dans 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
  4. Testez la latence du réseau eRDMA.

    1. Sur l'instance serveur, exécutez la commande suivante pour démarrer ib_write_lat en 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.

        Important
        • Pour 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 -F ignore ces connexions et force l'établissement d'une nouvelle connexion.

    2. Sur l'instance client, exécutez la commande suivante pour démarrer ib_write_lat et 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.

    3. Consultez les résultats du test.

      Une fois le test terminé sur le client, ib_write_lat affiche 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

      Description des champs de résultat du test ib_write_lat

      • #bytes : La taille de la charge utile du message utilisée dans le test, en octets. La taille varie de 2 octets à 8 388 608 octets. Différentes tailles de message vous aident à comprendre les performances sous différentes charges.

      • #iterations : Le nombre de répétitions du test pour chaque taille de message. Un nombre d'itérations plus élevé fournit des moyennes et des statistiques plus stables.

      • t_min[usec] : La latence minimale enregistrée sur toutes les mesures, en microsecondes. Cette valeur fournit une référence pour la meilleure latence réseau possible.

      • t_max[usec] : La latence maximale enregistrée sur toutes les mesures, en microsecondes. Une latence maximale élevée peut indiquer des problèmes réseau ou une congestion transitoire.

      • t_typical[usec] : La latence typique observée pendant le test, en microsecondes. Il s'agit généralement de la médiane de toutes les valeurs mesurées.

      • t_avg[usec] : La latence moyenne de toutes les mesures, en microsecondes. Cette valeur donne une vue d'ensemble de la latence réseau.

      • t_stdev[usec] : L'écart-type des valeurs de latence, en microsecondes. Cette valeur indique le degré de variation de la latence. Un écart-type plus faible indique une latence plus stable, tandis qu'un écart-type plus élevé indique des fluctuations plus importantes.

      • 99% percentile[usec] : Le 99e percentile de la latence, en microsecondes. Cela indique que 99 % des valeurs mesurées sont inférieures à cette valeur. Ce point de données vous aide à comprendre les performances de latence dans les cas limites.

      • 99.9% percentile[usec] : Le 99,9e percentile de la latence, en microsecondes. Cela indique que 99,9 % des valeurs mesurées sont inférieures à cette valeur. Ce point de données vous aide à comprendre les performances de latence dans les cas extrêmes.

      L'analyse de ces métriques vous aide à comprendre les performances de votre réseau RDMA pour l'optimisation et le dépannage. Par exemple, une augmentation soudaine de la latence à une taille de message spécifique peut indiquer que vous devez vérifier la configuration de votre réseau ou les performances matérielles. Des fluctuations de latence importantes peuvent nécessiter une enquête sur la congestion ou l'instabilité du réseau.