我使用 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)。不过,这可能会对性能产生一些影响,但可能仅在启动和初始加载服务期间。