1 问题我们内网有一个vmware的集群,以前年少无知,所以vmdk的格式选择了「厚置备延迟置零」,也就是分配多少,vmdk文件就会占用多大的空间,这里的好处是能提供较好的io,但我们虚拟机大部分用来做测试的,所以对io要求不高,而且实际并不需要这么大的空间,这里是第一个问题,我们需要将vmdk转换为「Thin Provisioning」,就是按需使用,并不是一开始就分配所有空间。 后来的虚拟机,我们选用了「Thin Provisioning」,部分虚拟机在一开始写了大量文件,现在不需要存了,需要回收这部分空间,这是第二个问题。 2 转换有2个方式 vShpere Client就是迁移虚拟机,只需要转移存储就可以了,当然也可以连主机也迁移了,原来就是在迁移选择存储时,可以在「选择虚拟磁盘格式」下拉菜单中选择「Thin Provisioning」,我感觉原理和vmkfstools是一样的,就是在迁移的过程中,做一次转换 vmkfstools由于我没有使用此方法,直接贴参考资料好了 Cloning and converting virtual machine disks with vmkfstools (1028042) 3 回收空间在转换的时候, 发现部分机器已经回收空间了,但有些没有自动回收,暂时不知道什么原因,下面讲下手动回收。 大概原理是先在虚拟机里标记哪些磁盘块是已经删除了,然后再通过vmkfstools进行回收 Windows虚拟机可以用
Linux虚拟机比较粗暴,用dd填满磁盘,再删除文件
开始回收经过上面2种虚拟机的处理后,就可以ssh到vmware物理机上进行回收
处理完后,在「vShpere Client」中,可以选择「刷新存储使用情况」来获取最新的使用情况 4 注意
5 参考资料 |
|