Supprimer l'instantané libvirt «orphelin»


11

J'essaie de vivre instantané en utilisant KVM selon cette procédure .

J'ai dû gâcher à un moment donné parce que je suis dans un état que je ne comprends pas.

Ma VM est appelée prod. Il a été créé dans un fichier /srv/vm/prod.qcow2.

Apparemment, il n'y a pas d'instantané en cours d'exécution: je travaille sur le fichier de base. Je peux deviner parce que la date de modification du fichier /srv/vm/prod.qcow2change toutes les minutes environ. Cette commande le confirme d'ailleurs:

# virsh domblklist prod
Target     Source
------------------------------------------------
vda        /srv/vm/prod.qcow2

Et il n'y a rien à bloquer:

# virsh blockcommit prod vda --active --pivot
error: invalid argument: top '/srv/vm/prod.qcow2' in chain for 'vda' has no backing file

Cependant, libvirt conserve la trace d'un ancien instantané:

# virsh snapshot-list prod
 Name                 Creation Time             State
------------------------------------------------------------
 snap                 2015-06-09 12:11:33 +0200 disk-snapshot

Son fichier descripteur est /var/lib/libvirt/qemu/snapshot/prod/snap.xml:

<domainsnapshot>
  <name>snap</name>
  <state>disk-snapshot</state>
  <creationTime>1433844693</creationTime>
  <memory snapshot='no'/>
  <disks>
    <disk name='vda' snapshot='external' type='file'>
      <driver type='qcow2'/>
      <source file='/srv/vm/snap.qcow2'/>
    </disk>
  </disks>
[...]

Le fichier source a /srv/vm/snap.qcow2été supprimé.

Compte tenu de la méthode que j'essaie d'implémenter, il est fort probable que cet instantané ait été créé avec la commande suivante:

virsh snapshot-create-as --domain prod snap --diskspec vda,file=/srv/vm/snap.qcow2 --disk-only --atomic

Je ne peux pas le supprimer:

# virsh snapshot-delete prod snap
error: Failed to delete snapshot snap
error: unsupported configuration: deletion of 1 external disk snapshots not supported yet

Je suis donc dans un état où un instantané a été créé, n'est apparemment plus utilisé et ne peut pas être supprimé.

Y a-t-il quelque chose que je puisse faire à ce sujet?

Dois-je m'en soucier ou puis-je simplement l'ignorer?

Éditer

Je viens de supprimer le descripteur de fichier d'instantané.

# systemctl stop libvirt
# mv /var/lib/libvirt/qemu/snapshot/prod/snap.xml /home/jerome
# systemctl start libvirt

Ma machine virtuelle est à nouveau opérationnelle et je ne vois plus aucune référence à l'instantané.

# virsh snapshot-list prod
 Name                 Creation Time             State
------------------------------------------------------------

Rien dans virt-manager non plus.

Suis-je bien ou y a-t-il encore du ménage à faire?

Modifier 2

Apparemment, passer -–no-metadataà virsh snapshot-create-aséviterait ce problème en ne créant pas le fichier .xml, ne conservant ainsi aucune trace de l'instantané.


1
Après avoir supprimé le descripteur de fichier d'instantané, il devrait toujours y avoir des preuves d'un instantané existant laissé dans l'image de la machine virtuelle elle-même qui peut être vérifiée avec qemu-img info /srv/vm/prod.qcow2. Mais je ne sais pas comment supprimer cette trace moi-même ...
sdittmar

@sdittmar, vous voudrez peut-être contacter la liste de diffusion des utilisateurs de libvirt (voir ma réponse) pour obtenir une réponse précise à cela.
Jérôme

Réponses:


16

La bonne méthode était

virsh snapshot-delete prod --metadata snap

(Cette commande peut être trouvée sur le wiki . Je l'ai essayée avant de demander ici mais elle a échoué en raison d'une faute de frappe qui a été corrigée depuis.)

Je ne sais pas ce qu'il fait qui n'est pas couvert par la suppression du fichier .xml pendant que libvirtd est arrêté. La seule différence est peut-être que l'arrêt de libvirtd n'est pas nécessaire. Néanmoins, cela pourrait peut-être évoluer à l'avenir. Dans tous les cas, il est recommandé d'utiliser l'API de libvirt plutôt que de jouer directement avec des fichiers.

Cet appel n'est en effet pas nécessaire si l'instantané a été créé avec l' --no-metadataargument.

J'ai obtenu cette clarification dans ce fil de la liste de diffusion libvirt-users .

Quiconque souhaite effectuer des sauvegardes via des instantanés en direct doit lire la page wiki susmentionnée et peut être intéressé par le fil du forum qui répond à mes questions noob et pointe vers des diapositives d'Eric Blake , ainsi que cet article de blog et les commentaires suivants.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.