如何在ESXi 5.5服务器中从VM中回收已删除的存储

我在ESXi 5.5服务器上有一些虚拟机。 我的ESXi服务器达到了最大存储容量,显示4 GB的可用空间。 我从我的一台虚拟机中删除了大约300GB的无用数据,但ESXi 5.5服务器仍显示出4GB的空间。 我的所有虚拟机磁盘都是精简configuration的。 我该如何解决这个问题? 我也重新启动了ESXi服务器,但无济于事。

精简configuration的.vmdk文件在数据删除时不会自行缩小,它们始终保持其最大填充状态的大小。

你想要的,减小.vmdk的大小,以实际使用的空间大小,被称为“细化”。

VMwares知识库给出了这些说明:

在大多数文件系统中删除文件不会完全删除它们; 只是文件表将被改变。 使用免费的安全文件删除实用程序是很有用的,比如Eraser或者SDelete来清空这个空间来“清零”卷上的空闲空间,有效地清除数据的空闲空间。 那么,磁盘可以适当地变薄。 然后可以使用vmkfstools -K命令(ESXi / ESX 4.1及更高版本)完成块回收,或使用Storage vMotion将虚拟机迁移到具有不同VMFS块大小的数据存储。

所以:

  1. 使用build议的工具之一将虚拟机内的磁盘空间清零
  2. closures虚拟机,否则.vmdk将被locking。
  3. 在本地ESXi控制台或通过SSH运行vmkfstools -K <file.vmdk>

请注意,将VM迁移到其他数据存储的另一种方法, 只能在数据存储上的blocksize不同时释放空间

之后.vmdk应该只有当前存储的数据的大小。

有关详细信息,请参阅知识库文章 。

5.5是相当古老,但如果你能升级到6.0,你可以使用在客人的UNMAP:

问:UNMAP运行所需的先决条件是什么?

有一些必须满足的先决条件。 这些是:

  • VMDK必须进行精简configuration
  • 虚拟机硬件版本必须为11(ESXi 6.0)
  • 高级设置EnableBlockDelete必须设置为1
  • 来宾操作系统必须能够将磁盘标识为精简(Windows 2012 [更新30-Oct-2015]使用B2模式页面来实现此目的)

VSPHERE 6.0存储特性第8部分:VAAI UNMAP变更

在6.5中,客户内的UNMAP也应该和Linux一起工作 。

我使用vSphere Client将VM作为OVF模板导出。 然后,从主机中删除虚拟机,并部署OVF模板。 确保在部署期间select精简configuration。 作为奖励,您将在本地或networking驱动器上拥有虚拟机备份。 此方法适用于免费版本的ESXi。