Datastore UNMAP回收背景和简单介绍
在VMware环境中,VM的创建、删除、迁移以及快照操作都会影响底层存储的空间利用率。VMware通过UNMAP机制来释放未使用的存储块,从而提高存储效率。
简单来说,UNMAP其实就是SCSI协议中的一条命令,用来通知存储设备去回收已经删除或不再使用的数据块,从而优化存储空间利用率。
VMware在vSphere 8.0 Update 3版本中提供了Datastore级别的UNMAP速率调控选项,允许管理员根据存储系统的特性调整 UNMAP 速率,平衡存储空间回收与系统性能之间的关系。
注意,这是ESXi 8.0 U3的新功能,新版本才有这样的可以控制回收速率的设置。

不合理UNMAP潜在影响与风险
不合理的 UNMAP 速率设置可能会导致:
- 存储阵列在短时间内处理大量 UNMAP 请求,造成性能下降;
- UNMAP 操作与其他 I/O 请求争抢存储资源,影响虚拟机的正常运行;
- 由于未能及时回收空间,导致存储利用率降低。
因此,一直以来,调整UNMAP速率时是需要结合存储阵列厂商的建议的,确保不会影响整体存储性能。
如何调整UNMAP速率
在vSphere 8.0 U3及更高版本中,管理员可以通过vSphere Client配置Datastore级别的UNMAP速率,或完全禁用UNMAP操作。
1. 进入 vSphere 客户端
- 打开 vSphere Client,进入 Datastore 视图,选择需要调整的 Datastore。
2. 修改空间回收设置
- 右键点击目标 Datastore,选择 “Edit Space Reclamation”(编辑空间回收)。
- 在弹出的配置窗口中,选择合适的 UNMAP 速率模式: 选项说明启用固定速率的自动空间回收以设定的速率执行 UNMAP 操作,可在下拉菜单中选择回收速率(例如 10MB/s、100MB/s、200MB/s、300MB/s,最高可达 1900MB/s)。禁用自动空间回收不执行 UNMAP 操作,删除或未映射的存储块不会自动回收。

3. 保存并应用更改
- 点击 “OK” 保存新的配置。
4. 重新挂载 Datastore 使设置生效
- 需要 卸载(Unmount) 并 重新挂载(Mount) 该 Datastore,以使修改生效。
- 该步骤需要在所有访问该 Datastore 的 ESXi 主机上重复执行。
5. 验证 UNMAP 设置是否生效
- 在 vSphere UI 中导航至:
vCenter vSphere UI > Datastore View > 选择目标 Datastore > Configure > General > Space Reclamation > Edit - 确保已正确显示所选的 UNMAP 速率。
技术细节:UNMAP机制及优化策略
1. UNMAP在VMware环境中的触发场景
在VMFS Datastore上,存储空间的回收(UNMAP)会在以下场景中发生:
- 删除虚拟机;
- 使用 vSphere Storage vMotion 迁移虚拟机;
- 删除或合并快照;
- Guest OS 内部删除文件(部分现代操作系统会自动向 VMFS 发送 UNMAP 命令,但并非所有 OS 都支持此功能)。
在 VMFS6 上,VMware 引入了自动追踪空闲块的机制,使得UNMAP操作能够 在后台异步执行,避免对前台 I/O 造成干扰。
2. 异步 UNMAP 的优势
- 受控的资源占用:避免短时间内 UNMAP 负载激增,防止存储阵列过载。
- 高效的空间回收:批量处理回收请求,提高存储利用率。
- 最小化性能影响:UNMAP 操作不会阻塞正常 I/O,确保虚拟机性能稳定。
3. UNMAP相关的SCSI命令
在 VMware vSphere 的存储架构中,UNMAP 依赖于VAAI(VMware vStorage APIs for Array Integration)提供的SCSI命令,其中常见的操作码包括:
SCSI 命令 | 操作描述 |
---|---|
0x42 | UNMAP(空间回收指令) |
0x93 | WRITE SAME(16) |
0x41 | WRITE SAME(10) |
0x89 | ATS(SCSI COMPARE and WRITE) |
0x83 | EXTENDED COPY |
VMware最佳实践与注意事项
- VMware官方建议:除非存储厂商或 VMware 明确要求,否则不建议完全禁用UNMAP,以免影响存储空间利用率。
- 合理设置UNMAP速率:建议根据存储阵列的特性进行测试,选择适合的回收速率,避免对存储 I/O 产生负面影响。
- 监控UNMAP影响:可以通过 vSphere Performance Metrics 监控 UNMAP 相关 I/O 指标,确保调整后不会对整体性能造成不利影响。
总结
在VMware vSphere 8.0 U3及更高版本中,管理员可以手动调整UNMAP速率,在存储空间回收与I/O性能之间找到平衡点。合理设置UNMAP速率,能够减少存储阵列的瞬时负载,提高存储空间利用率,并确保虚拟机的稳定运行。
在执行配置调整前,建议参考存储厂商的最佳实践,避免因不当设置导致系统性能下降。如需进一步监控 UNMAP影响,可以结合vSphere Performance Metrics或存储设备的性能监控工具进行分析。