Abilitare il supporto ENA su CentOS
Updated at: 07/01/2020


Per poter usare le nuove istanze t3 (almeno dalla large in su) è necessario che la macchina supporti ENA per la gestione della rete.

Per abilitarla su CentOS 7 i passi sono i seguenti:

sudo -s
yum update
# disabilitiamo il "predictable network interface name"
cp /etc/default/grub /etc/default/grub.orig
sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

#aggiungiamo i driver necessari
echo 'add_drivers+=" ena "' >> /etc/dracut.conf.d/ena.conf
echo 'add_drivers+=" nvme "' >> /etc/dracut.conf.d/ena.conf
dracut -f -v

# sulla base dell'ouput precedente, modifichiamo e lanciamo il seguente comando (deve ritornare un risultato)
lsinitrd /boot/initramfs-xxxxxx.img | grep ena.ko

wget https://raw.githubusercontent.com/awslabs/aws-support-tools/master/EC2/C5M5InstanceChecks/c5_m5_checks_script.sh
chmod +x c5_m5_checks_script.sh
./c5_m5_checks_script.sh
# dobbiamo passare tutti i test

poweroff

A questo punto andiamo a modificare l'istanza in modo che supporti la configurazione ENA, quindi dal nostro PC

aws ec2 modify-instance-attribute --instance-id xxxxxxxxxxx --ena-support
aws ec2 describe-instances --instance-ids xxxxxxxxxxx --query "Reservations[].Instances[].EnaSupport"
# deve ritornare TRUE

Modifichiamo l'istanza in una che supporti ENA, avviamola e una volta loggati eseguiamo:

sudo ethtool -i eth0
# alla prima riga dovremmo ottenere
# driver: ena


References:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html

https://aws.amazon.com/premiumsupport/knowledge-center/boot-error-linux-m5-c5/