Estou tentando fazer um snapshot instantâneo usando o KVM de acordo com este procedimento .
Eu devo ter errado em algum momento porque estou em um estado que não entendo.
Minha VM é chamada prod
. Foi criado no arquivo /srv/vm/prod.qcow2
.
Aparentemente, não há snapshot em execução: estou trabalhando no arquivo base. Eu posso adivinhar porque a data de modificação do arquivo /srv/vm/prod.qcow2
muda a cada minuto ou mais. Além disso, este comando confirma:
# virsh domblklist prod
Target Source
------------------------------------------------
vda /srv/vm/prod.qcow2
E não há nada para bloquear:
# virsh blockcommit prod vda --active --pivot
error: invalid argument: top '/srv/vm/prod.qcow2' in chain for 'vda' has no backing file
No entanto, o libvirt mantém o rastreio de um instantâneo antigo:
# virsh snapshot-list prod
Name Creation Time State
------------------------------------------------------------
snap 2015-06-09 12:11:33 +0200 disk-snapshot
Seu arquivo de descritor é /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>
[...]
O arquivo de origem /srv/vm/snap.qcow2
foi excluído.
Considerando o método que estou tentando implementar, é bem provável que esse instantâneo tenha sido criado com o seguinte comando:
virsh snapshot-create-as --domain prod snap --diskspec vda,file=/srv/vm/snap.qcow2 --disk-only --atomic
Não consigo removê-lo:
# virsh snapshot-delete prod snap
error: Failed to delete snapshot snap
error: unsupported configuration: deletion of 1 external disk snapshots not supported yet
Portanto, estou em um estado em que um instantâneo foi criado, aparentemente não é mais usado e não pode ser excluído.
Existe algo que eu possa fazer sobre isso?
Eu deveria me importar ou posso simplesmente ignorá-lo?
Editar
Acabei de remover o descritor do arquivo de instantâneo.
# systemctl stop libvirt
# mv /var/lib/libvirt/qemu/snapshot/prod/snap.xml /home/jerome
# systemctl start libvirt
Minha VM está ativa novamente e não vejo mais nenhuma referência ao instantâneo.
# virsh snapshot-list prod
Name Creation Time State
------------------------------------------------------------
Nada no virt-manager também.
Estou bem ou ainda há alguma limpeza para fazer?
Editar 2
Aparentemente, passar -–no-metadata
para virsh snapshot-create-as
evitaria isso problema ao não criar o arquivo .xml, mantendo assim nenhum traço do instantâneo.