虚拟机镜像压缩

●qcow2 格式的压缩
首先,需要对虚拟机系统的剩余空间写零操作:

$ dd if=/dev/zero of=/zero.dat
$ rm /zero.dat                  # 删除 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 格式的压缩
先进虚拟机系统对剩余空间写零操作,随后删除 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

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在Linux分类目录。将固定链接加入收藏夹。