Comment installer et activer le dernier pilote ENA pour mise en réseau améliorée sur une instance Amazon EC2 qui exécute RHEL ?

Lecture de 6 minute(s)
0

Je souhaite utiliser le dernier pilote Elastic Network Adapter (ENA) pour mise en réseau améliorée sur une instance Red Hat Enterprise Linux (RHEL) Amazon Elastic Compute Cloud (Amazon EC2).

Résolution

Pour installer le dernier pilote ENA sur votre instance Amazon EC2, reportez-vous à la section qui s'applique à votre version de RHEL. Certaines versions antérieures du système d'exploitation RHEL n'incluent pas de pilote ENA. Pour les instances Nitro, le pilote ENA doit modifier le type de votre instance EC2 pour la connectivité réseau.

**Remarque :**Avant d'installer ou de mettre à jour un pilote ENA, il est recommandé de créer un instantané de votre instance.

Pour plus d'informations sur la mise à jour des pilotes Linux, consultez le guide des bonnes pratiques et d’optimisation de performance du pilote ENA sur Linux sur le site web GitHub.

RHEL version 7.4 et versions ultérieures

Le module pour une mise en réseau améliorée avec un ENA est préinstallé sur la version 7.4 Amazon Machine Images (AMI) de RHEL et toutes les versions ultérieures de RHEL. Pour plus d'informations, consultez Activation de la mise en réseau améliorée avec l'adaptateur réseau élastique (ENA) sur les instances Linux.

Versions RHEL antérieures à 7.4

  1. Exécutez la commande suivante pour mettre à niveau le noyau vers la dernière version :

    sudo yum upgrade kernel -y
  2. Arrêtez l’instance.
    **Remarque :**Lorsque vous arrêtez une instance, les données contenues dans les volumes de stockage de l'instance sont perdues. Pour en savoir plus, consultez la section Identification du type de périphérique racine de votre instance. Veillez à sauvegarder toutes les données que vous souhaitez conserver sur le volume de stockage d’instance.

  3. Vous pouvez également exécuter la commande d’interface de la ligne de commande AWS (AWS CLI) suivante :

    aws ec2 modify-instance-attribute --instance-id i-xxxxxxxxxxxxxxxxx --ena-support --region xx-xxxxx-x

    Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes AWS CLI, consultez la page Correction des erreurs liées à AWS CLI. Vérifiez également que vous utilisez la version la plus récente d’AWS CLI.

  4. Démarrez l'instance.

  5. Exécutez la commande suivante pour confirmer que le pilote ENA est chargé sur l'instance. Remplacez le nom de l'interface par défaut eth0 par le nom de l'interface que vous souhaitez vérifier. Si votre système d'exploitation utilise desnoms de réseau prévisibles, il se peut que le nom du réseau soit différent.

    $ ethtool -i eth0

RHEL 6

**Remarque :**RHEL 6 n'inclut pas les pilotes NVMe prêts à la production pour Amazon EC2, et vous ne pouvez pas effectuer de mise à niveau vers des pilotes NVME. Pour utiliser une instance basée sur Nitro ou tout autre type d'instance avec des volumes de stockage d'instances NVMe, effectuez une mise à niveau vers RHEL 7.4 ou une version ultérieure.

Téléchargez et installez le pilote ENA

  1. Mettez à jour le noyau, puis redémarrez le système pour que la dernière version du noyau soit effective :

    sudo yum upgrade kernel -y && sudo reboot
  2. Installez le pack de développement pour créer des modules de noyau correspondant au noyau :

    sudo yum install kernel-devel-$(uname -r) gcc git patch rpm-build wget -y
    cd /usr/src/
    sudo wget https://github.com/amzn/amzn-drivers/archive/master.zip
    sudo unzip master.zip
    cd amzn-drivers-master/kernel/linux/ena
    sudo make
  3. Copiez le module dans le répertoire de module :

    sudo cp ena.ko /lib/modules/$(uname -r)/
  4. Régénérez les fichiers de mappage des dépendances des modules du noyau :

    sudo depmod
  5. Utilisez la commande modinfo pour confirmer la présence du module ENA :

    modinfo ena

    La sortie de la commande modinfo affiche les informations du pilote ENA.
    **Remarque :**Lorsque vous compilez et installez le pilote ENA sur votre système, la version peut être ultérieure à 2.2.11g.

    filename:       /lib/modules/2.6.32-754.33.1.el6.x86_64/ena.ko
    version:        2.2.11g
    license:        GPL
    description:    Elastic Network Adapter (ENA)
    author:         Amazon.com, Inc. or its affiliates
    retpoline:      Y
    srcversion:     17C7CD1CEAD3F0ADB3A5E5E
    alias:          pci:v00001D0Fd0000EC21sv*sd*bc*sc*i*
    alias:          pci:v00001D0Fd0000EC20sv*sd*bc*sc*i*
    alias:          pci:v00001D0Fd00001EC2sv*sd*bc*sc*i*
    alias:          pci:v00001D0Fd00000EC2sv*sd*bc*sc*i*
    alias:          pci:v00001D0Fd00000051sv*sd*bc*sc*i*
    depends:        
    vermagic:       2.6.32-754.33.1.el6.x86_64 SMP mod_unload modversions
    parm:           debug:Debug level (0=none,...,16=all) (int)
    parm:           rx_queue_size:Rx queue size. The size should be a power of 2. Max value is 8K
     (int)
    parm:           force_large_llq_header:Increases maximum supported header size in LLQ mode to 224 bytes, while reducing the maximum TX queue size by half.
     (int)
    parm:           num_io_queues:Sets number of RX/TX queues to allocate to device. The maximum value depends on the device and number of online CPUs.
     (int)
  6. Ajouteznet.ifnames=0 à /boot/grub/grub.conf pour désactiver la dénomination de l'interface réseau :

    sudo sed -i '/kernel/s/$/ net.ifnames=0/' /boot/grub/grub.conf
  7. Arrêtez l’instance. Activez ensuite la mise en réseau améliorée au niveau de l'instance. L'exemple suivant modifie l'attribut de l'instance depuis l'AWS CLI :

    aws ec2 modify-instance-attribute --instance-id i-xxxxxxxxxxxxxxxxx --ena-support --region xx-xxxxx-x
  8. Remplacez le type d'instance par l'un des types d'instancepris en charge par l'ENA.

  9. Démarrez l'instance, utilisez SSH pour vous connecter à l'instance, puis exécutez la commande ethtool :

    ethtool -i eth0

    Le résultat de l’exemple suivant inclut la version du pilote ENA :

    driver: ena
    version: 2.2.11g
    firmware-version:
    bus-info: 0000:00:05.0
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: no
    supports-priv-flags: no
    

Configurez le programme DKMS pour vous assurer que le pilote est inclus dans les futures mises à niveau du noyau

**Remarque :**AWS et RHEL ne prennent pas en charge les logiciels du référentiel EPEL. Si vous utilisez Dynamic Kernel Module Support (DKMS), vous annulez le contrat de support pour votre abonnement.

Pour configurer le programme DKMS :

  1. Installez le fichier Red Hat Package Manager (rpm) suivant :

    sudo yum install https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm -y

    **Remarque :**Pour obtenir une liste des packs .rpm les plus récents, consultez Extra Packages for Enterprise Linux (EPEL) sur le site web du Projet Fedora.

  2. Exécutez la commande d’installation :

    sudo yum install dkms -y
  3. Détectez la version actuelle :

    VER=$( grep ^VERSION /usr/src/amzn-drivers-master/kernel/linux/rpm/Makefile | cut -d' ' -f2 )
  4. Copiez les fichiers sources dans le répertoire source :

    sudo cp -a /usr/src/amzn-drivers-master /usr/src/amzn-drivers-${VER}
  5. Créez le fichier de configuration DKMS, puis compilez et installez le module ENA :

    sudo cat <<EOM | sudo tee /usr/src/amzn-drivers-${VER}/dkms.conf
    PACKAGE_NAME="ena"
    PACKAGE_VERSION="$VER"
    CLEAN="make -C kernel/linux/ena clean"
    MAKE="make -C kernel/linux/ena/ BUILD_KERNEL=\${kernelver}"
    BUILT_MODULE_NAME[0]="ena"
    BUILT_MODULE_LOCATION="kernel/linux/ena"
    DEST_MODULE_LOCATION[0]="/updates"
    DEST_MODULE_NAME[0]="ena"
    AUTOINSTALL="yes"
    EOM
    
    sudo dkms add -m amzn-drivers -v $VER
    sudo dkms build -m amzn-drivers -v $VER
    sudo dkms install -m amzn-drivers -v $VER
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 mois