Comment puis-je installer et activer le pilote Elastic Network Adapter (ENA) le plus récent afin d'améliorer la prise en charge du réseau sur une instance Amazon EC2 exécutant Red Hat Enterprise Linux version 6 ou 7 ?

Certaines versions antérieures du système d'exploitation Red Hat Enterprise Linux ne comportent pas de pilote ENA. Le pilote ENA est nécessaire pour modifier votre type d'instance Amazon Elastic Compute Cloud (Amazon EC2) pour la connectivité réseau.

Remarque : une ancienne version du pilote ENA est préinstallée dans RHEL version 7.4 et versions ultérieures. Exécutez cette procédure si vous souhaitez la version la plus récente du pilote réseau ENA.

1.    Téléchargez et installez le pilote ENA :

sudo -i    # Become root. The rest of the steps assume that they are being run by root user.
yum install kernel-devel-$(uname -r) gcc git patch rpm-build wget
wget https://github.com/amzn/amzn-drivers/archive/master.zip
unzip master.zip
cd amzn-drivers-master/kernel/linux/ena
make
cp ena.ko /lib/modules/$(uname -r)/                          # Copy the module to the modules directory    
insmod ena.ko                                                # Insert the module to validate it loads successfully
depmod                                                       # Regenerate kernel module dependency map files
echo 'add_drivers+=" ena "' >> /etc/dracut.conf.d/ena.conf   # Append once                         
dracut -f -v                                                 # Generate the new initrd image
lsinitrd /boot/initramfs-xxx.el6.x86_64.img | grep ena.ko    # Validate that the initramfs image contains the ena driver

La sortie de la commande lsinitrd doit contenir l'emplacement du pilote lib/modules /.../ena.ko. Vérifiez que le ena.ko est présent dans le initramfs pour vous assurer que le pilote ENA sera initialisé au démarrage.

Remarque : si la commande make affiche l'erreur « kcompat.h : 219:27 : erreur : net/busy_poll.h : No such file or directory » (kcompat.h : 219:27 : erreur : net/busy_poll.h : aucun fichier ou répertoire de ce type), mettez le noyau à niveau, redémarrez et exécutez à nouveau les commandes d'installation ENA depuis le début :

yum upgrade kernel && reboot

2.    Configurez le programme Dynamic Kernel Module Support (DKMS) afin de vous assurer que le pilote est inclus lors de futures mises à niveau du noyau.

Installez l'un des fichiers Red Hat Package Manager (rpm) suivants :

RHEL 6

yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

RHEL 7

yum install https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

3.    Installez le DKMS :

yum install dkms

VER=$( grep ^VERSION /root/amzn-drivers-master/kernel/linux/rpm/Makefile | cut -d' ' -f2 )   # Detect current version

sudo cp -a /root/amzn-drivers-master /usr/src/amzn-drivers-${VER}   # Copy source into the source directory.

cat > /usr/src/amzn-drivers-${VER}/dkms.conf <<EOM                  # Generate the dkms config file.
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

dkms add -m amzn-drivers -v $VER
dkms build -m amzn-drivers -v $VER
dkms install -m amzn-drivers -v $VER

4.    Utilisez la commande modinfo afin de confirmer que le module ENA est présent.

modinfo ena

5.    Ajoutez net.ifnames=0 au fichier de démarrage afin de désactiver la dénomination de l'interface réseau.

RHEL 6

Ajoutez net.ifnames=0 à la ligne du noyau dans le fichier /boot/grup/menu.lst.

vi /boot/grub/menu.lst

RHEL 7

Ajoutez net.ifnames=0 à GRUB_CMDLINE_LINUX dans le fichier /etc/default/grub , comme le montre l'exemple suivant :

GRUB_CMDLINE_LINUX="selinux=0 console=tty0 crashkernel=auto console=ttyS0,115200 nvme_core.io_timeout=4294967295 net.ifnames=0"

Vous pouvez également utiliser la commande sed :

sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub

Ensuite, régénérez les fichiers de configuration pour grub2 :

grub2-mkconfig -o /boot/grub2/grub.cfg 

6.    Exécutez « poweroff » pour arrêter l'instance à partir d'un terminal SSH, ou arrêtez l'instance à l'aide de l'interface de ligne de commande AWS (AWS CLI) ou de la console Amazon EC2.

7.    Activez la prise en charge du réseau améliorée au niveau de l'instance. L'exemple suivant modifie l'attribut de l'instance à partir de l'interface de ligne de commande AWS :

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

8.    Remplacez le type d'instance par l'un des types d'instance pris en charge par ENA.

9.    Démarrez l'instance, SSH dans l'instance, puis exécutez la commande ethtool :

ethtool -i eth0

La sortie doit inclure la version du pilote ENA.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 21/03/2019