我在 ESXi 5.5 服务器中有一些虚拟机。我的 ESXi 服务器已达到最大存储量。显示可用空间为 4 GB。我从其中一台虚拟机中删除了大约 300GB 的无用数据,但 ESXi 5.5 服务器仍显示 4 GB 空间。我的所有虚拟机磁盘均已精简配置。我该如何解决此问题?我还重新启动了 ESXi 服务器,但无济于事。
答案1
当数据被删除时,精简配置的 .vmdk 文件不会自行缩小,它们始终保持其最大填充状态的大小。
您想要的是将 .vmdk 大小减少到实际使用的空间大小,这称为“缩减”。
VMware 知识库给出了以下说明:
在大多数文件系统中删除文件并不能完全移除它们;只是文件表会被更改。使用免费安全文件删除实用程序(如 Eraser 或 SDelete)将空间清零以将卷上的可用空间“清零”,从而有效地清除数据的可用空间。然后,可以正确精简磁盘。然后,您可以使用 vmkfstools -K 命令(ESXi/ESX 4.1 及更高版本)完成块回收或使用 Storage vMotion 将虚拟机迁移到具有不同 VMFS 块大小的数据存储。
所以:
- 使用建议的工具之一将虚拟机内的磁盘空间清零
- 关闭虚拟机,否则.vmdk 将被锁定。
vmkfstools -K <file.vmdk>
在本地 ESXi 控制台上或通过 SSH运行。
请注意,将虚拟机迁移到其他数据存储的替代方法仅当数据存储上的块大小不同时才释放空间!
此后,.vmdk 应该只具有当前存储在其上的数据的大小。
查看详细信息请参阅知识库文章。
答案2
5.5 已经很旧了,但是如果您能够升级到 6.0,您可以使用 in-guest UNMAP:
问:运行 UNMAP 需要哪些先决条件?
必须满足一些先决条件。这些是:
- VMDK 必须采用精简配置
- 虚拟机硬件版本必须为 11 (ESXi 6.0)
- 高级设置 EnableBlockDelete 必须设置为 1
- 客户操作系统必须能够将磁盘识别为薄磁盘(Windows 2012 [2015 年 10 月 30 日更新] 使用 B2 模式页面来实现这一点)
VSPHERE 6.0 存储功能第 8 部分:VAAI UNMAP 更改
在 6.5 中,in-guest UNMAP 也应该使用Linux。
答案3
我使用 vSphere Client 将虚拟机导出为 OVF 模板。然后,从主机中移除虚拟机并部署 OVF 模板。确保在部署期间选择精简配置。作为奖励,您将在本地或网络驱动器上拥有虚拟机备份。此方法适用于免费版 ESXi。