Eliminar la instantánea libvirt "huérfana"

11

Estoy tratando de hacer una instantánea en vivo usando KVM según este procedimiento .

Debo haberme equivocado en algún momento porque estoy en un estado que no entiendo.

Mi VM se llama prod. Fue creado en archivo /srv/vm/prod.qcow2.

Aparentemente, no hay una instantánea en ejecución: estoy trabajando en el archivo base. Puedo adivinar porque la fecha de modificación del archivo /srv/vm/prod.qcow2cambia cada minuto más o menos. Además, este comando lo confirma:

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

Y no hay nada que bloquear:

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

Sin embargo, libvirt mantiene el rastro de una foto antigua:

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

Su archivo descriptor es /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>
[...]

El archivo fuente /srv/vm/snap.qcow2fue eliminado.

Teniendo en cuenta el método que estoy tratando de implementar, es muy probable que esta instantánea se haya creado con el siguiente comando:

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

No puedo eliminarlo:

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

Así que estoy en un estado donde se creó una instantánea, aparentemente ya no se usa y no se puede eliminar.

¿Hay algo que pueda hacer al respecto?

¿Debería importarme o puedo ignorarlo?

Editar

Acabo de eliminar el descriptor del archivo de instantánea.

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

Mi VM está funcionando nuevamente y ya no veo ninguna referencia a la instantánea.

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

Nada en virt-manager tampoco.

¿Estoy bien o todavía hay algo de limpieza que hacer?

Editar 2

Aparentemente, pasar -–no-metadataa virsh snapshot-create-asevitaría este problema al no crear el archivo .xml, sin dejar rastro de la instantánea.

Jérôme
fuente
1
Después de eliminar el descriptor del archivo de instantánea, todavía debe haber alguna evidencia de una instantánea existente en la propia imagen de VM con la que se pueda verificar qemu-img info /srv/vm/prod.qcow2. Pero no estoy seguro de cómo eliminar ese rastro yo mismo ...
sdittmar
@sdittmar, puede ponerse en contacto con la lista de correo libvirt-users (vea mi respuesta) para obtener una respuesta precisa a esto.
Jérôme

Respuestas:

16

El método apropiado fue

virsh snapshot-delete prod --metadata snap

(Este comando se puede encontrar en la wiki . Lo probé antes de preguntar aquí, pero falló debido a un error tipográfico que se ha corregido desde entonces).

No sé qué hace que no se cubra eliminando el archivo .xml mientras libvirtd está inactivo. Quizás la única diferencia es que no es necesario detener libvirtd. Aun así, tal vez esto podría evolucionar en el futuro. En cualquier caso, se recomienda usar la API de libvirt en lugar de jugar con archivos directamente.

De hecho, esta llamada no es necesaria si la instantánea se creó con el --no-metadataargumento.

Obtuve esta aclaración en este hilo de la lista de correo libvirt-users .

Cualquiera que esté dispuesto a hacer copias de seguridad a través de instantáneas en vivo debe leer la página wiki mencionada anteriormente y puede estar interesado en el hilo del foro que responde a mis preguntas novatas y señala las diapositivas de Eric Blake , así como esta publicación de blog y los siguientes comentarios.

Jérôme
fuente