Estou tentando fazer uma captura instantânea ao vivo usando o KVM conforme este procedimento .
Eu devo ter estragado em algum momento porque estou em um estado que não entendo.
Minha VM é chamada prod
. Foi criado em arquivo /srv/vm/prod.qcow2
.
Aparentemente, não há um instantâneo 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, libvirt mantém o rastreamento 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 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?
Devo me importar ou posso simplesmente ignorá-lo?
Editar
Acabei de remover o descritor de arquivo de captura instantânea.
# systemctl stop libvirt
# mv /var/lib/libvirt/qemu/snapshot/prod/snap.xml /home/jerome
# systemctl start libvirt
Minha VM voltou a funcionar 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á algumas tarefas domésticas para fazer?
Editar 2
Aparentemente, a passagem -–no-metadata
para virsh snapshot-create-as
evitaria esse problema ao não criar o arquivo .xml, mantendo assim nenhum rastro do instantâneo.
qemu-img info /srv/vm/prod.qcow2
. Mas não tenho certeza de como remover esse rastro ...