目录

简介

要求

使用的组件

问题：

解决方案：

在HyperFlex群集上回收Microsoft Windows VM中的空间

回收Microsoft Windows VM上精简调配磁盘上的空间

在HyperFlex群集上回收Linux VM中的空间

相关信息

简介

本文档介绍如何回收位于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大小。

相关信息

- 技术支持和文档 - Cisco Systems

- 思科HyperFlex容量管理白皮书

- 从ESXi上精简调配的VMDK文件回收磁盘空间