Noop 转换 qcow2 图像但保留内部快照

Noop 转换 qcow2 图像但保留内部快照

我有一个 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 中真正创建安装组合的平行宇宙 :)。这应该是默认的。也许是我不知道。

相关内容