起初我以为它会被存储,/var/lib/libvirt/images/
但是当我为域创建快照时centos7
,这个目录中没有任何变化:
drwx--x--x 2 root root 4096 Feb 29 21:28 .
drwxr-xr-x 7 root root 4096 Feb 28 23:47 ..
-rw------- 1 libvirt-qemu kvm 5370216574 Feb 29 22:09 centos7-1.qcow2
-rw------- 2 libvirt-qemu kvm 5931597824 Feb 29 22:12 centos7.qcow2
-rw------- 1 root root 1499267135 Feb 28 21:07 centos7-server.qcow2
接下来我检查了/var/lib/libvirt/qemu/snapshot/centos7
哪些显示了这些 xml 文件:
client2.xml client.xml disks.xml
这是我给我的快照起的名字。
有人可以告诉我为什么快照是 xml 文件而不是磁盘映像吗?这些 xml 文件存储的是什么,我猜他们需要我images
目录中的原始 qcow2 图像才能工作,并且不能与任何图像一起工作 - 对吗?
xml 文件代表快照元数据,如果您打开它,您会看到类似这样的内容(为简洁起见,域定义被缩短):
你的快照.xml
该文件记录了快照的名称、域创建时的状态、创建时间、内存是否也是快照、磁盘以及当时的域定义。
此域定义相当于您将获得的相同信息
virsh dumpxml your-domain
。这是快照时您的设备、CPU、内存等的配置。例如,如果在快照之后您更改了某些设备、内存大小等,这允许您返回到拍摄快照时的确切设置。现在在该
disks
部分中,您可以看到实际快照的磁盘设备。您希望创建一个磁盘映像,但对于qcow2
文件,它的工作方式略有不同。qcow2
实现写时复制图像。在像这样的其他写时复制文件系统上,btrfs
这意味着文件不会在原地更改,而是在修改时将它们的副本与更改一起存储在磁盘上的其他位置。对于
qcow2
快照,图像始终在原地修改,但如果已创建快照,则在该qcow2
文件中,每当在快照之后修改文件时,将保存应用修改之前的副本以用于快照。这意味着图像和快照都在qcow2
文件中。qcow2
(可以在此处找到有关文件格式和快照如何工作的更深入的说明。qemu-img
您可以使用该命令列出这些磁盘快照并与之交互(列出、恢复、创建、删除) 。例如,您可以像这样列出快照:这里的 TAG 应该与您的快照 XML 文件的名称和
name
XML 本身内部的条目相匹配,这就是知道它应该恢复到图像libvirt
中的哪个快照的方式。qcow2