KVM : Snapshots de machines virtuelles

Comment effectuer un snapshot d'une machine virtuelle KVM ? 

Un « snapshot » d’une machine virtuelle KVM consiste à « prendre une photo », ou un instantané, de son état à un moment « t » de manière à pouvoir revenir à cet état plus tard.

C’est la commande « qemu-img » qui permet de gérer les snapshots KVM. La syntaxe est du type :

qemu-img snapshot [action] fichier_disque

[action] peut être :

  • « -l » : pour lister tous les snapshots disponibles pour une image disque ;
  • « -a snapshot » : pour restorer l’état « snapshot » enregistré ;
  • « -c snapshot » pour enregistrer l’état actuel sous le nom « snapshot » ;
  • « -d snapshot » : pour détruire l’instantané nommé «  »snapshot ».

et « fichier_disque » est la machine virtuelle (le disque de la machine virtuelle).

Note : La machine virtuelle DOIT être à l’arrêt pour effectuer le snapshot. Tous les tests effectués machine démarrée ce sont soldés par des échecs plus ou moins violents.

A l’usage nous obtenons :

  • Créer un « snapshot » nommé « 20110521 » d’une machine virtuelle :
    13:55:04 fhh@mafalda ~ $ qemu-img snapshot -c 20110521 kvm/hda2.xp.qcow2 
    13:58:11 fhh@mafalda ~ $
  • Lister les « snapshots » disponibles pour une image :
    14:00:55 fhh@mafalda ~ $ qemu-img snapshot -l kvm/hda.xp.qcow2 
    Snapshot list:
    ID        TAG                 VM SIZE                DATE       VM CLOCK
    1         20110521                  0 2011-05-21 13:57:38   00:00:00.000

    Si aucun instantané n’est disponible, l’affichage est vide :

    13:54:56 fhh@mafalda ~ $ qemu-img snapshot -l kvm/hda2.xp.qcow2 
    13:55:04 fhh@mafalda ~ $
  • Restaurer un instantané (un snapshot) :
    14:28:30 fhh@mafalda ~ $ qemu-img snapshot -a 20110521 kvm/hda.xp.qcow2 
    14:29:40 fhh@mafalda ~ $

    La machine virtuelle est alors revenue exactement à son état antérieure (au moment de la prise de l’instantané).

  • Supprimer un snapshot :
    14:31:11 fhh@mafalda ~ $ qemu-img snapshot -l kvm/hda.xp.qcow2 
    Snapshot list:
    ID        TAG                 VM SIZE                DATE       VM CLOCK
    1         20110521                  0 2011-05-21 13:57:38   00:00:00.000
    2         20110521.2                0 2011-05-21 14:28:12   00:00:00.000
    14:31:16 fhh@mafalda ~ $ qemu-img snapshot -d 20110521.2 kvm/hda.xp.qcow2
    14:31:53 fhh@mafalda ~ $ qemu-img snapshot -l kvm/hda.xp.qcow2 
    Snapshot list:
    ID        TAG                 VM SIZE                DATE       VM CLOCK
    1         20110521                  0 2011-05-21 13:57:38   00:00:00.000

ATTENTION : Tous les formats de fichiers de disque dur virtuel ne supportent pas les snapshots. Le format RAW, par exemple, n’intègre pas les snapshots :

14:31:57 fhh@mafalda ~ $ qemu-img snapshot -c 20110521 kvm/hda.xp.raw 
qemu-img: Could not create snapshot '20110521': -95 (Operation not supported)

Vous pouvez cependant convertir le disque de votre machine virtuelle dans un format supportant cette fonctionnalité (voir KVM : Conversions d’images disques).

Référence

Man qemu-img : http://linux.die.net/man/1/qemu-img
Première approche de KVM (« Kernel-based Virtual Machine ») : https://www.admin-linux.fr/?p=3969
KVM : Conversions d’images disques : https://www.admin-linux.fr/?p=4054

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *