qcow2 格式的压缩
首先,需要对虚拟机系统对剩余空间写零操作:
$ dd if=/dev/zero of=/zero.dat
删除 zero.dat:
$ rm /zero.dat
关闭虚拟机,进入虚拟机镜像文件的目录,通过 qemu-img 的 convert 来操作:
$ qemu-img convert -c -O qcow2 /path/old.img.qcow2 /path/new.img.qcow2
随后改变 VM 的配置测试 new.img.qcow2,正常的话,删除 old.img.qcow2 即可。
raw 格式的压缩。
附带说一下 raw 格式的压缩。
也是先进虚拟机系统对剩余空间写零操作,随后删除 zero.dat,关闭虚拟机。最后通过 cp 的稀疏复制,把零全部释放
$ cp --sparse=always /path/old.raw /path/new.raw
raw 镜像比 qcow2 镜像速度略快,但是 qcow2 镜像有增量功能,一般情况下,我们都采用 qcow2 镜像格式,
qemu-img 的 convert 也能转化 raw 成 qcow2:
$ qemu-img convert -c -f raw -O qcow2 /path/old.raw /path/new.qcow2