Esxi 支持精简置备和厚置备。对于我们设备容量比较紧缺并且对性能要求不高的个人用户而言。精简置备是首选。
但是精简置备存在一个问题,一旦跨磁盘移动之后,精简置备的容量会变成满容量。
所以实用指令进行收缩:
1 | vmkfstools -K xxx.vmdk |
这个指令仅支持因为移动虚拟机导致的磁盘增大。
还有种情况是,一开始选择了厚置备,则可以通过转换的方式了来转成精简置备:
1 | vmfstools -i old.vmdk -d thin new.vmdk |
thin 指的是精简置备
完成转换的的 vmdk 默认就是是压缩过的。
注意一点,如果虚拟机中途达到过一个容量,再删除内容,这样的情况不认为是初始化。例如一个虚拟机初始化 200GB,并且中间使用了 180GB 容量,再进行删除,这个情况通过压缩,可能依然会使磁盘保持在 180GB 左右。
1)将虚拟机内所有未使用的空间归零:
dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero
从知乎原文来看,需要进行空间归零操作,但是这个操作存在风险,建议不要使用。因为你已经使用到这个容量,未来依然会使用到这个程度。
如果真的需要临时处理大文件,可以额外申请一个大容量的虚拟盘,再使用完之后进行释放即可。