Comment recréer une AMI fonctionnelle à partir d'un instantané de récupération après une panne du 8 août?

11

Après la panne d' Amazon le 8 août , toutes les AMI (basées sur EBS) ont cessé de fonctionner pour de nombreux utilisateurs . Cela est dû à la corruption de certains secteurs dans les instantanés sur lesquels les AMI sont basées.

Cependant, Amazon a créé des instantanés de récupération où les problèmes de disque doivent être résolus. Ceux-ci sont nommés sur le modèle de "Instantané de récupération pour vol-xxxxxxxx".

J'ai créé une nouvelle AMI à partir d'un instantané de récupération qui a bien fonctionné, mais les instances lancées à partir de cette nouvelle AMI ne fonctionnent pas: leur état est "En cours d'exécution", mais je ne peux pas accéder à la machine ni accéder aux services Web qui devraient y être exécutés. Cela se résume à ceci (à partir du journal système, accessible via la console de gestion AWS):

EXT3-fs: sda1: couldn't mount because of unsupported optional features (240).

EXT2-fs: sda1: couldn't mount because of unsupported optional features (244).

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)

J'ai monté un volume créé à partir de cet instantané de récupération sur un autre serveur sur AWS, et tout semble tout à fait normal cependant. Par exemple, fsck dit:

$ sudo fsck -a /dev/xvdg
fsck from util-linux-ng 2.17.2
uec-rootfs: clean, 53781/524288 files, 546065/2097152 blocks

Dans l'une des discussions du forum AWS, j'ai trouvé ce conseil d'une personne ayant des problèmes similaires:

Une solution consiste à créer un volume à partir de l'instantané et à le joindre à une instance en cours d'exécution, à utiliser fsck --force pour forcer la vérification du système de fichiers et une fois effacé, vous pouvez créer un instantané et l'utiliser pour l'AMI.

Mais je ne sais pas comment forcer fsck sur Ubuntu (11.04):

$ sudo fsck --force /dev/xvdg
fsck from util-linux-ng 2.17.2
fsck.ext3: invalid option -- 'o'

Quelqu'un sait comment forcer la vérification du système de fichiers sur le volume sur Ubuntu? Avez-vous d'autres idées sur la façon de lancer des instances de travail basées sur l'instantané de récupération?

À l'heure actuelle, il semble qu'il serait plus rapide de recommencer à partir d'une AMI Ubuntu propre et de reconfigurer tous nos services. :-( Mais bien sûr, je préférerais ne pas le faire s'il existe un moyen de faire fonctionner l'instantané de récupération.

Jonik
la source

Réponses:

14

J'ai rencontré le même problème en essayant de dupliquer une machine.

Le problème s'est avéré être le noyau. Lors de la création de l'AMI et de l'instance que j'ai sélectionnée par défaut pour l'image du noyau.

Pour résoudre le problème, j'ai recréé l'AMI en utilisant la même image de noyau que l'instance d'origine.

DCYorke
la source
Pour clarifier, l'image du noyau par défaut n'a pas de support ext4, mais le noyau qui a été utilisé pour construire l'AMI doit toujours être utilisé de toute façon.
DCYorke
S'il ne reste que l'instantané, il sera très difficile à récupérer. Pouvez-vous suggérer une méthode pour sauvegarder ce type de métadonnées (également, quels groupes de sécurité et données utilisateur sont utilisés) avec l'instantané ou ailleurs?
Martijn Heemels
2

Pourriez-vous essayer la commande suivante (notez l'option -f au lieu de --force): sudo fsck -f /dev/xvdg

J'espère que cela t'aides. Fred

Fred
la source
fsck -ffait en effet quelque chose de plus (je ne sais pas exactement quoi; man fsckne dit rien à ce sujet), donc +1. Mais en tout cas, cela ne résout pas tout le problème; J'ai créé un instantané, puis une AMI à partir du volume fscked, et lancé une instance à partir de cela, et j'obtiens toujours la même erreur "Panique du noyau ... Impossible de monter la racine" dans le journal système.
Jonik
0

Je ne voulais pas perdre plus de temps à lutter contre d'étranges problèmes spécifiques à AWS, j'ai donc créé une nouvelle instance propre à partir d'une des AMI Ubuntu officielles (dans mon cas, ami-359ea941qui est une image 32 bits soutenue par EBS d'Ubuntu 11.04 dans le eu-west-1), et y a recréé la configuration de mon serveur.

Le fait que j'ai pu monter un volume créé à partir de l'instantané de récupération dans la nouvelle instance a cependant rendu la réinstallation beaucoup plus rapide. Par exemple, j'ai fait quelque chose comme cp -a /mnt/recovery/usr/local /usrrestaurer beaucoup de choses sous /usr/local.

Donc, dans mon cas, les sauvegardes de récupération étaient loin d'être inutiles car je pouvais accéder aux données sur elles. Mais bien sûr, il aurait toujours été plus agréable de simplement créer une AMI à partir de l'instantané et de continuer à utiliser (des instances de) qui, comme tout l'incident ne s'est jamais produit. (N'hésitez pas à ajouter une réponse si vous savez comment y parvenir!)

Jonik
la source