我有一个 qcow2 映像。映像大小为 200 GB,但实际使用量只有 30 GB。我使用它qemu-img convert -O qcow2 source.qcow2 shrunk.qcow2
来删除稀疏空间,映像正确地缩小到 30 GB。此映像具有使用 virt-manager 拍摄的内部快照。转换映像后,快照丢失。有没有办法从映像中删除未使用的空间但仍保留内部快照?
答案1
我已经测试了您所要求的内容。如果您使用 virt-sparsify --in-place,它会保留快照。但为了安全起见,请确保您有可用空间,然后先复制,然后再使用 virt-sparsify。
cp source.qcow2 target.qcow2
virt-sparsify --in-place target.qcow2
qemu-img version 7.1.0
virt-sparsify 1.48.2
Linux 6.0.9-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 16 Nov 2022 17:01:17 +0000 x86_64 GNU/Linux
编辑:
我使用 virt-sparsify 然后 pigz 备份机器。我不转换它们。此外,机器在 NVME 上,我对 ...../ACTIVE_VMs 目录执行 fstrim。这样我就可以让 nvme 从备份到备份都保持持久性。
尝试使用 ZFS 对原始图像进行重复数据删除和压缩。Qcow2 好得多。现在我要搜索快照分支可视化,因为显然你可以创建分支并来回添加新内容。
如果您通过 ssh 将快照命令发送到基地,创建一个 UUID 代码作为快照的名称,并将内核和其他软件信息转储到 xml 中,那就太棒了。您可以在一个磁盘文件和一个 xml 中真正创建安装组合的平行宇宙 :)。这应该是默认的。也许是我不知道。