我正在尝试按照此过程使用KVM进行实时快照。
我一定在某种程度上搞砸了,因为我处于一种我不了解的状态。
我的VM被称为prod
。它是在file中创建的/srv/vm/prod.qcow2
。
显然,没有运行的快照:我正在处理基本文件。我可以猜测,因为文件的修改日期/srv/vm/prod.qcow2
每分钟左右更改一次。此外,此命令可以确认:
# virsh domblklist prod
Target Source
------------------------------------------------
vda /srv/vm/prod.qcow2
并没有什么可以阻止的:
# virsh blockcommit prod vda --active --pivot
error: invalid argument: top '/srv/vm/prod.qcow2' in chain for 'vda' has no backing file
但是,libvirt会跟踪旧快照:
# virsh snapshot-list prod
Name Creation Time State
------------------------------------------------------------
snap 2015-06-09 12:11:33 +0200 disk-snapshot
它的描述符文件是/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>
[...]
源文件/srv/vm/snap.qcow2
已删除。
考虑到我要实现的方法,很可能使用以下命令创建了此快照:
virsh snapshot-create-as --domain prod snap --diskspec vda,file=/srv/vm/snap.qcow2 --disk-only --atomic
我无法删除它:
# virsh snapshot-delete prod snap
error: Failed to delete snapshot snap
error: unsupported configuration: deletion of 1 external disk snapshots not supported yet
因此,我处于创建快照的状态,显然快照已不再使用,并且无法删除。
有什么我可以做的吗?
我应该关心还是可以忽略它?
编辑
我只是删除了快照文件描述符。
# systemctl stop libvirt
# mv /var/lib/libvirt/qemu/snapshot/prod/snap.xml /home/jerome
# systemctl start libvirt
我的虚拟机再次启动,并且看不到快照的任何引用。
# virsh snapshot-list prod
Name Creation Time State
------------------------------------------------------------
virt-manager中也没有。
我可以吗,还是还有一些家务要做?
编辑2
显然,通过不创建.xml文件-–no-metadata
来virsh snapshot-create-as
避免传递快照,从而避免了此问题。
qemu-img info /srv/vm/prod.qcow2
。但是我不确定如何自己删除该痕迹……