Google PlusFacebookTwitter

OMG… Mon instance Nova OpenStack est cassée !!!

By on Août 25, 2013 in Linux, OpenStack | 2 comments

Share On GoogleShare On FacebookShare On Twitter

Et oui… ça n’arrive pas qu’aux autres !

Une instance nova qui ne démarre plus et c’est le drame, les collègues courent dans tous les sens.

Avons-nous des sauvegardes ? Non ? Quoi ?
Ahhhhh !!! Mais qu’allons-nous dire au client ?

En théorie il existe une solution, je dis bien en théorie car si l’image de l’instance est gravement corrompue alors dans ce cas c’est le drame. 😀

qemu-nbd, un ami qui vous veut du bien

Les instances nova sont dans notre cas des instances KVM/Qemu et donc par conséquent encapsulée dans un disque de type QCOW2 ou RAW.

La solution consiste à utiliser la commande qemu-nbd qui permet de monter le disque d’une instance dans un répertoire et donc :

Le disque de l’instance sera accessible via le périphérique de bloc /dev/nbd0. Par défaut il existe 16 blockdevice de ce type, cela ce paramètre lors du chargement du module via la commande modprobe (nbd max_part=24). Un petit modinfo sur le module nbd nous permet d’obtenir cette information :

Résultat :

Go Go Go !

Dans un premier temps il est nécessaire d’obtenir des informations sur l’instance en question :

  1. Le compute sur lequel est exécutée l’instance
  2. Le nom de l’instance en question

Ces informations s’obtiennent via la commande nova show ID. C’est bon, toutes les informations sont entre vos mains ? Dans l’exemple ci-dessous, notre instance aura pour nom : instance-00000682

On liste les instances en cours d’exécutions :

Résultat :

L’instance doit être suspendue :

Par défaut, les instances nova se trouvent dans le répertoire /var/lib/nova/instances/ (en fonction de comment nova a été configuré).

Passons aux choses sérieuses !

Si aucun message d’erreur apparaît alors un fichier périphérique de bloc nommé /dev/nbd0p1 est créé. Il ne reste plus qu’à monter le disque (et sa partition) /dev/nbd0p1 dans le répertoire /mnt/

À partir de maintenant les données de l’instance nova sont accessibles depuis le répertoire /mnt ! Alors, heureux ?

Maintenant que tout va bien dans le meilleur des mondes, il reste à démonter le disque de l’instance et à résumer cette dernière.

Conclusion

Cette technique a fonctionner plusieurs fois, que se soit après le crash d’un compute qui endommagea le disque de l’instance ou bien une erreur de configuration réseau sur une instance Ubuntu ou aucun mot de passe root n’était défini… En fonction de l’état de l’instance il se peut que cette dernière ne puisse pas être démarrée par nova, ce n’est pas grave qemu-nbd sait se débrouiller comme un grand.

The following two tabs change content below.

Gaëtan Trellu (goldyfruit)

Technical Operation Manager chez Ormuco
Autodidacte en informatique, depuis 2005 je parcours l’écosystème Unix à la recherche de nouvelles connaissances et de nouvelles rencontres.

CC BY 4.0 OMG… Mon instance Nova OpenStack est cassée !!! par Gaëtan Trellu (goldyfruit) est sous Licence Creative Commons Internationale Attribution 4.0.