KVM 快照。如何查看 qcow2 文件里面的内容?

KVM 快照。如何查看 qcow2 文件里面的内容?

我使用 qcow2 文件格式并使用 Virt-manager GUI 创建快照。我假设我有 100GB 的磁盘空间,目前 VM 使用了 70%。qcow2 文件大小约为 70GB。我创建了一个快照。我们知道它存储在 qcow2 文件中。几天后,qcow2 文件大小上升到 120GB。好的,我们明白为什么。我删除了这个快照,但 qcow2 文件大小没有变化!

“qemu-img info” 没有显示此 qcow2 文件的任何快照!如何查看此文件的内容以及如何清理它?

我曾经使用过“qemu-img convert”,但我内心觉得这不是减小文件大小的正确方法。

答案1

qcow2可以使用 检查和安装图像quemu-nbd

qemu-nbd --connect=/dev/nbd0 /path/to/your/vm-image.qcow2
fdisk /dev/nbd0 -l
mount /dev/nbd0p1 /mnt/your/mountpoint/

列出/创建/删除快照使用qemu-img snapshot

例如列出可用的快照

qemu-img snapshot -l /path/to/your/vm-image.qcow2

检查快照内容挂载快照

qemu-nbd --connect=/dev/nbd0 /path/to/your/vm-image.qcow2 --load-snapshot=1

快照标识符是其 ID 或名称

答案2

为了缩小图像,我建议使用 virt-sparsify

export TMPDIR=/var/tmp/
virt-sparsify --check-tmpdir=continue <name>.qcow2 <name>_sparsed.qcow2

确保 TMPDIR 中有足够的空间,否则转换将崩溃。

不要在正在运行的 VM 映像上使用 virt-sparsify。您最终可能会得到损坏的映像!(请参阅手册)


然后,您还可以使用 qemu-img convert 的压缩选项 (-c)。不过,这可能会对性能产生一些影响,但可能仅在启动和初始加载服务期间。

相关内容