ESXi6.x、7.x和vcenter精简置备(Thin)虚拟机的硬盘空间回收
背景:有客户提及到之前没合理为虚拟机分配磁盘空间,虚拟机磁盘类型虽然选择精简置备,但是运行一段时间之后,虚拟机OS系统内看到的实际使用空间远小于存储占用空间。
原理:精简置备vmdk文件容量是随着写入置备增加,即虚拟机某个时间使用磁盘达到历史峰值后,即便删除文件,甚至格式化磁盘,vmdk文件所占用的空间依然是历史峰值容量。删除操作是在OS层面进行的,但是虚拟化底层并不能感知这个删除操作,因此也就不会回收。
因为NTFS文件系统的机制,被写入过的文件即使将文件删除系统也不会将磁盘区块置零,下次再写入数据只会优先操作标记为零的区块来写。
解决思路:分两步:
1、使用磁盘置零工具(Windows下有SDelete工具,Linux下有DD工具)将虚拟机未使用的空间填零;
2、使用vmkfstools 移除置零的块,收缩VMDK文件。
下文以一台Win7虚拟机为例,介绍回收过程。
1、前提:开启主机SSH权限,登录到当前虚拟机所在的存储路径,使用
du - sh *

查看当前vmdk所占空间为16.5G
2、在虚拟机操作系统内拷贝文件,拷贝大约5G文件之后,并删除。
3、因为Windows不会自动将已删除的块清零。Windows下可以使用 SDelete工具 填零,SDelete v2.04工具下载,运行sdelete.exe -z 盘符,运行过程比较慢,耐心等待,期间在操作系统中会看见你的磁盘会被占满,等运行完成后又会回到正常的容量。

请注意,在此过程中,该虚拟磁盘vmdk文件将增长到精简置备分配完整大小。
4、第一次查询为拷贝并删除5G文件后vmdk占用的文件大小为21.5G,可见删除文件后并不会减少vmdk的占用空间大小。如下图:

第二次查询为运行 SDelete工具 之后vmdk的占用空间大小为37.3G。(这里注意:一定要确保存储有足够空间以允许该虚拟机磁盘空间增长到其置备的最大值,否则撑爆存储后果不堪设想。)
5、将虚拟机关机,并使用vmkfstools进行磁盘回收。(备注:不关机强制运行vmkfstools会提示Failed to open virtual disk ‘new-win7.vmdk’: Failed to lock the file (16392);)
vmkfstools -K [disk-name].vmdk

vmdk回收中,有进度百分比。
需要注意:转换过程中需要用到的文件是vmdk磁盘文件,有两种vmdk,一种是”虚拟机名.vmdk”,另一种是”虚拟机名-flat.vmdk”,vmdk文件很小,存放了虚拟磁盘的一些配置信息(如虚拟磁盘数据文件等),实际数据都存放在flat.vmdk文件中,转换时需要使用vmdk文件而不是flat.vmdk文件。
6、直到显示100%表示回收成功,查询vmdk占用空间已经减少到15.5G。

7、打开虚拟机电源,验证虚拟机可以正常使用。
注意事项:
回收前请注意备份虚拟机;虚拟机不能有快照,虚拟机需要关机或者将虚拟磁盘移除以确保磁盘未在使用(需要评估停机窗口,回收时间取决于vmdk大小),并确保存储空间足够。
经验证,Storage vMotion过程修改厚置备和精简置备,来回迁移两次,实际并不能回收vmdk空间。
如果以上方式满足不了要求,VMware vCenter Converter也是可行的。
-
强力保险箱全国售后服务电话24小时人工服务热线售后服务体系——以专业守护您的资产安全.强力保险箱全国售后服务电话24小时人工服务热线客服全国售后服务点热线400-605-8619一、强力保险箱全国售后服务电话24小时人工服务热线全周期保修服务标准保修政策新品购买后提供3年整机免[详细]
-
杰宝大王保险柜售后服务全国热线故障预约电话故障原因及使用维护指南杰宝大王保险柜售后服务全国热线故障预约电话作为存放贵重物品的重要工具,其稳定性和安全性直接影响用户财产安全。然而,长期使用中可能出现故障,影响正常使用。本文将从常见故障原因、使用技巧及售后服务三方面展开分析,帮助用户延长杰宝大[详细]
-
恒发保险柜全国24小时售后维修服务电话售后服务与故障维修全指南恒发保险柜全国24小时售后维修服务电话作为财产安全的重要保障工具,其售后服务与故障维修服务直接影响用户的使用体验和财产安全。恒发保险柜全国24小时售后维修服务电话服务内容、维修流程及售后服务的核心要点。恒发保险柜全国24小时[详细]
-
彩月保险箱售后电话全国服务24小时400人工客服热线售后维修服务指南及常见故障解决方案彩月保险箱售后电话全国服务24小时400人工客服热线全国各售后服务电话400-605-8619一、彩月保险箱售后电话全国服务24小时400人工客服热线售后维修服务流程服务预约彩月保险箱售后电话[详细]
-
《新宝塔保险箱全国各售后服务热线号码故障处理与售后服务指南》,采用模块化结构便于阅读:新宝塔保险箱全国各售后服务热线号码售后网点全国各市售后服务电话400-605-8619一、新宝塔保险箱全国各售后服务热线号码常见故障类型解析无法正常开启原因:密码错误次数超限/电路板故障/机械[详细]