压缩qcow2虚拟机镜像文件

在虚拟机的使用过程中,虚拟机内的文件经过大量的增、删、改等操作后,会使得虚拟机磁盘的体积变大。即使删除了虚拟机内的文件,已经分配给虚拟磁盘的空间却并不会被回收。不过我们可以进行手动回收这些虚拟机没有使用的空间。

首先在虚拟机内部执行如下命令

dd if=/dev/zero of=/dev/ext_disk/junk
rm -rf /dev/ext_disk/junk

执行这个命令的目的,是把虚拟磁盘内部所有未被占用的空间用 0 字节填充。

其中 /dev/ext_disk是我们的虚拟磁盘,在虚拟机内部挂载在了/dev/ext_disk上。

之后关闭虚拟机,在宿主机上执行如下命令。

qemu-img convert -c -O qcow2 vm-db.qcow2 vm-db-new.qcow2

在进行转换的时候,qemu-img 命令不拷贝虚拟磁盘中的0数据块。这样就达到了压缩磁盘的目的。

猜你喜欢

转载自blog.csdn.net/stpice/article/details/103648187