J'ai remplacé mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2) par un type d'instance basé sur Nitro, mais elle ne démarre plus.
Brève description
Voici quelques raisons courantes derrière l’échec du démarrage d’une instance Linux remplacée par un type basé sur Nitro :
- L'attribut enaSupport de l'adaptateur réseau élastique (ENA) est désactivé pour cette instance.
- Le module ENA n'est pas installé sur l'instance.
- Le module NVMe n'est pas installé sur l'instance ou, s'il est installé, il n'est pas chargé dans l'image initramfs de l'instance.
- Au moment du démarrage, vous tentez de monter les systèmes de fichiers dans le fichier « /etc/fstab » en utilisant un nom de périphérique. Les volumes Amazon Elastic Block Store (Amazon EBS) sont alors présentés comme périphériques NVMe à ces types d'instances, et les noms des périphériques sont modifiés. Pour éviter ce problème, montez les systèmes de fichiers à l'aide de l'UUID/label. Pour en savoir plus, consultez la section Amazon EBS et NVMe sur les instances Linux.
Pour résoudre ces problèmes, vérifiez que le module ENA est activé et que votre instance Linux répond aux exigences de montage du système de fichiers et du module d'instance basées sur Nitro.
Vous pouvez également exécuter le runbook AWSSupport-MigrateXenToNitroLinux d’AWS Systems Manager Automation. Ce runbook permet de migrer un Amazon EC2 Linux Xen sans configuration manuelle. Pour en savoir plus, consultez la section AWSSupport-MigrateXenToNitroLinux.
Résolution
Vérification de l’activation du module ENA
1. Pour confirmer que le module ENA est bien activé, consultez la section Tester l’activation des réseaux améliorés, puis suivez les instructions de la section Attribut de l'instance (enaSupport).
2. Si le module ENA n'est pas activé, exécutez l'action modify-instance-attribute. Pour en savoir plus, consultez la section Activer les réseaux améliorés sur l'AMI Amazon Linux.
Exécution du script NitroInstanceChecks
Le script NitroInstanceChecks vérifie l’instance et indique si les exigences suivantes sont remplies :
- Il vérifie que le module NVMe est installé sur l’instance. S'il est installé, le script vérifie que le module est chargé dans l'image initramfs.
- Il vérifie que le module ENA est installé sur l’instance.
- Il analyse le fichier /etc/fstab et recherche les périphériques de stockage en mode bloc montés à l'aide des noms de périphériques.
Ce script est pris en charge sur les versions de système d'exploitation suivantes :
- Dérivés de Red Hat : Red Hat Linux, Red Hat Enterprise Linux, CentOS
- Amazon Linux, Amazon Linux 2 et Amazon Linux 2023
- Dérivés de Debian : Debian, Ubuntu
Remarque : pour en savoir plus sur le pilote ENA sur Red Hat, consultez la page Comment installer et activer la dernière version du pilote ENA pour une prise en charge réseau améliorée sur une instance Amazon EC2 qui exécute Red Hat 6/7 ?
Pour exécuter le script NitroInstanceChecks :
1. Créez un instantané de votre volume ou créez une Amazon Machine Image (AMI) de l’instance avant d'effectuer vos modifications, afin de disposer d'une sauvegarde.
2. Remplacez le type d'instance par son type d'origine.
3. Téléchargez le script depuis GitHub sur votre instance et rendez-le exécutable :
# chmod +x nitro_check_script.sh
4. Exécutez le script en tant qu'utilisateur root ou sudo :
# sudo ./nitro_check_script.sh
5. Dans l'invite, saisissez y ou n (ou No) : Saisissez y pour que le script régénère et modifie le fichier /etc/fstab, puis remplacez le nom de périphérique de chaque partition par son UUID. Le fichier fstab d'origine est enregistré sous /etc/fstab.backup.$(date +%F-%H:%M:%S). Par exemple, /etc/fstab.backup.2019-09-01-22:06:05. Saisissez n ou No pour imprimer le fichier /etc/fstab correct dans les données générées, mais sans le remplacer.
Exemple de résultat correct :
------------------------------------------------
OK NVMe Module is installed and available on your instance
OK ENA Module is installed and available on your instance
OK fstab file looks fine and does not contain any device names.
------------------------------------------------
6. Une fois toutes les critères remplis, remplacez l'instance par un type d'instance basé sur Nitro.