背景
虚拟磁盘瘦分配(Thin Provisioning)可以大大节省存储空间,实现存储空间按需分配。但是因为客户机(Guest OS)删除文件的时候,仅仅只是把相应文件的inode做一个删除标识,而不会将其物理空间清零(Zero Filling)释放。所以从主机测看来,经常会看到,客户机中报告磁盘使用空间是1G,但是对应的虚拟镜像文件(vmdk, qcow2, vhd...)实际大小甚至会达到7,8G.
解决方法
首先需要在客户机中将磁盘清零(Zero Filling), 如果是Linux,可以使用dd命令,把整个磁盘用零清满,直到报告out of space.
$ dd if=/dev/zero of=/some/file bs=10M
在客户机中,将/some/file删除掉,然后关闭虚拟机
$ rm -rf /some/file
使用qemu-img将对应虚拟磁盘的空间回收:
$qemu-img convert -O qcow2 original_image.qcow2 deduplicated_image.qcow2
本文介绍了一种通过清零磁盘空间并利用qemu-img工具回收未使用的虚拟磁盘空间的方法,有效减少虚拟磁盘占用的实际空间。
901

被折叠的 条评论
为什么被折叠?



