标准操作流程里,是没有办法对VMDK进行磁盘空间压缩,只能加不能减的。但是,如果一定有这个需求,也是可以通过技术手段实现的,流程如下:


1、首先,进入到操作系统里面将要压缩磁盘空间的VMDK的磁盘分区进行空间压缩,以Windows 10为例,直接进入到磁盘管理器里按需压缩空间,例如:20GB;


2、完成第一步之后,进入到这个VMDK所属VM所在的ESXi主机,进入到命令行,用vi编辑器打开VMDK磁盘描述文件,类似下图所示:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


记录下图中红框部分RW后面那个83886080值,40GB磁盘的值就等于这个大小;


3、以压缩将40GB VMDK压缩到20GB为例,用vi编辑器将这个值改为:41943040,这个值的算法如下:

  • 40GB = 40 * 1024 * 1024 * 1024 / 512 = 83886080

  • 20GB = 20 * 1024 * 1024 * 1024 / 512 = 41943040


更改完成后,保存,结果如下图所示:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


4、最后,将包含这个VMDK的VM迁移到其它Datastore之后,就会发现成功完成了磁盘尺寸的压缩动作了。


来源为 转发猫猫佳作