简介
本文档介绍如何回收位于HyperFlex上的精简调配虚拟机(VM)中的空间的选项。
要求
本文档没有任何特殊要求
使用的组件
本文档中的示例已在VMware vSphere虚拟机监控程序(ESXi)6.5上进行验证。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
问题:
HyperFlex没有回收已释放的精简调配VM中空间的机制。精简调配支持虚拟磁盘的按需增长。与厚调配相比,这允许更高效地利用存储系统中的空间。删除精简调配的虚拟驱动器上的文件时,磁盘大小不会自动减小。原因是操作系统仅从文件系统表中删除索引。这会导致文件的快速删除,但不会回收空间。
解决方案:
在HyperFlex群集上回收Microsoft Windows VM中的空间
本节提供一些有关如何回收精简调配的虚拟驱动器上的空间的选项。这些工具将您删除的数据块归零。在执行任何将阻止零化的操作之前,请确保您有备份。此外,请确保在VM上没有您完成上的步骤的以前快照。这包括SENTINEL快照。删除SENTINEL快照会使虚拟机长时间瘫痪。您可以选择在删除所有快照之前关闭虚拟机,以便不停止虚拟机。
有关VMware和快照管理的其他信息包含在以下文章中:
快照删除可以长时间停止虚拟机
在vSphere环境中使用快照的最佳实践
回收Microsoft Windows VM上精简调配磁盘上的空间
SDelete是Microsoft Sysinternals Suite中用于回收空间的免费实用程序。
警告:SDelete -z使虚拟机操作系统在空间归零时使用100%的可用空间磁盘。这会导致数据存储上的已用空间临时增加。
如果达到ENOSPC条件或将Hyperflex群集置于只读模式,请注意这一点,因为可能会产生反效果。也就是说,如果一个或多个VMDK的使用率增加了100%(由于SDelete的影响),表示Hyperflex总体集群存储容量的显着增加,则必须谨慎使用
此屏幕截图显示运行SDelete之前的VM VMDK端:
将SDelete下载到目标VM后,解压文件。
输入cmd以打开命令提示符应用程序。右键单击并选择“以管理员身份运行”。
导航至未压缩SDelete的目录。
输入sdelete.exe -z <驱动器号>:命令,然后单击Agree。
此屏幕截图显示SDelete操作后的VM VMDK大小:
在HyperFlex群集上回收Linux VM中的空间
您可以使用dd实用程序将删除的数据所在的区域归零。输入df -h以检查Linux操作系统上的可用空间。
输入dd bs=1M count=90112 if=/dev/zero of=zero命令,以便将空空间归零。
此命令将90GB的空间为零。修改此命令以适合您的使用案例。
命令输入细分:
bs是使用的块大小
count是块数
如果是输入文件
的是输出文件
完成此操作后,VMDK文件将增长。
此屏幕截图显示vCenter中VMDK的大小:
要回收空间,请输入rm zero 命令:
/$ sudo rm zero
[sudo] password for user: <---Enter password for user
此屏幕截图显示删除零个文件后vCenter中的VM VMDK大小。
相关信息