官方原文链接: https://kb.vmware.com/s/article/2057513?lang=zh_CN
本文介绍如何通过运行 esxcli storage vmfs unmap 命令回收精简置备设备的 VMFS 数据存储上的未用存储块。
场景:
假如后端存储采用划分的卷采用瘦模式划分了30T,在存储管理控制台上面看到的已用了18T,但在vCenter管理控制台看到,只用了8T。
原因是以前vmware有用到18T,因为存储采用瘦模式划分卷,所以存储不会自动收缩,需要用vmware的命令去执行,本文有详细讲解。
1. Purpose
esxcli
命名空间中引入了一个新的命令,允许在支持 VAAI UNMAP 原语的精简置备 LUN 上回收删除的块。该命令可以在没有任何维护窗口的情况下运行,并增强了回收机制,如下:
- 可以用块数而非百分比值来指定回收大小,以便计算起来更直观。
- 回收无效空间时采用递增方式而不是一次全部回收,从而避免可能出现的性能问题。
随着 62 TB VMDK 的引入,现在 UNMAP 可以处理更大的无效空间区域。但是 UNMAP 操作仍是手动方式。这意味着 VMFS 上的 Storage vMotion 或快照整合任务不自动回收阵列 LUN 中的空间。
注意:ESXi 5.5 已弃用 vmkfstools -y
命令。有关如何在 vSphere 5.0 和 5.1 中回收空间的更多信息,请参见 Using vmkfstools to reclaim VMFS deleted blocks on thin-provisioned LUNs (2014849)。
2. Resolution
注意:如果您是在 ESXi 6.5 中使用 VMFS6,则此文档不适用。
要回收精简置设备的 VMFS 数据存储上的未用存储块,可运行以下命令:
# esxcli storage vmfs unmap --volume-label=volume_label|--volume-uuid=volume_uuid --reclaim-unit=number
该命令采用以下选项:
-l|--volume-label=volume_label
UNMAP 的 VMFS 卷的标签。该参数是必需项。如果指定该参数,则不要使用
-u|--volume-uuid=volume_uuid
。-u|--volume-uuid=volume_uuid
UNMAP 的 VMFS 卷的 UUID。该参数是必需项。如果指定该参数,则不要使用
-l|--volume-label=volume_label
。-n|--reclaim-unit=number
每次迭代 UNMAP 的 VMFS 块数。该参数为可选项。如果未指定此参数,则该命令使用默认值 200。
例如,对于名称为 MyDatastore
,UUID 为 509a9f1f-4ffb6678-f1db-001ec9ab780e
的 VMFS 卷,运行以下命令:
# esxcli storage vmfs unmap -l MyDatastore
或者
# esxcli storage vmfs unmap -u 509a9f1f-4ffb6678-f1db-001ec9ab780e
-n number
或--reclaim-unit=number
参数的默认值 200 适合大多数环境,但有些阵列供应商可能会根据阵列处理 SCSI UNMAP 命令的方式建议更大或更小的值。- 与以前的
vmkfstools -y
方法相似,esxcli storage vmfs unmap
命令在数据存储的最高级别创建临时隐藏文件,但名称使用.asyncUnmapFile
模式。默认情况下,临时文件的空间保留取决于基础 VMFS 文件系统的块大小(默认值为--reclaim-unit=200
):
根据使用情况,管理员可以选择不同的--reclaim-unit
值,例如,如果认为保留大小太大或者当卸载到阵列时存在 UNMAP 原语可能无法及时完成的危险。有关手动定义--reclaim-unit
值的最佳值或最佳做法,VMware 建议 vSphere 管理员咨询存储阵列提供商。- 1 MB 块 VMFS3 / VMFS5 为 200 MB
- 4 MB 块 VMFS3 为 800 MB
- 8 MB 块 VMFS3 为 1,600 MB
- 如果 UNMAP 操作中断(例如由于按下 CTRL-C),可能会在 VMFS 数据存储的根位置留下临时文件。但当针对数据存储再次运行该命令时,如果该命令成功完成,临时文件将被删除。
.asyncUnmapFile
的增长始终不会超出--reclaim-unit
大小。 - 如果由于升级 VMFS3 文件系统或使用第三方工具重新对卷进行分区造成卷分区表和/或块调整错误,则 UNMAP 操作在不执行任何动作的情况下就可能结束,或者失败。请参见 Thin Provisioning Block Space Reclamation (VAAI UNMAP) does not work (2048466)。
- 如果 UNMAP 操作失败,并且出现关于锁定文件或资源繁忙的错误,请参见: