关于 vSphere Storage APIs – Array Integration
vSphere Storage APIs – Array Integration 可帮助存储供应商提供硬件协助,从而加快 vSphere I/O 操作速度,在存储硬件中更高效地完成这些操作。
vSphere Storage APIs – Array Integration 是一组协议和 VMkernel 功能,支持 ESXi 和存储阵列之间集成:
- 借助硬件加速 API,阵列能够与 vSphere 进行集成,以便采用透明方式将特定存储操作的负载分流到阵列。
- Array Thin Provisioning API 有助于防止出现空间不足的情况并执行空间回收。
用于数据块存储的硬件加速 API
使用硬件加速 API,ESXi 主机可以将特定虚拟机和存储管理操作负载分流到存储硬件:
- 使用这些 API 可以大大减少主机的 CPU 开销。
- 块存储设备(如光纤通道和 iSCSI 设备),支持硬件加速。
- 数据块存储设备的硬件加速支持多种阵列操作。
| 阵列操作 | 应用场景 |
|---|---|
| 完整复制(也称为克隆数据块、副本卸载或 XCOPY) | 由 vSphere Storage vMotion 使用,克隆虚拟机以及使用模板部署虚拟机 |
| 数据块清零(也称为同时写入 write same) | 在创建立即清零的厚置备虚拟磁盘时使用 |
| 硬件辅助锁定(也称为原子测试和设置 atomic test and set) | 提高了 VMFS 元数据更改的性能 |
NAS 的硬件加速
借助网络附加存储 (NAS) 的硬件加速功能,NAS 阵列可以与 vSphere 集成,以便将某些存储操作(如脱机克隆)卸载到阵列。此集成可减少主机的 CPU 开销。
NAS 的硬件加速支持以下 NAS 操作:
- 完整文件克隆:克隆整个文件,而不是文件段。
- 预留空间:以厚格式分配虚拟磁盘的空间。
- 原生快照支持:VMware Horizon 可将链接克隆的创建负载分流到 NAS 阵列。
- 延展的文件统计信息
Array Thin Provisioning API
借助 Array Thin Provisioning API,主机可以与物理存储集成,并在精简置备的 LUN 中检测空间使用情况:
- 在精简置备的 LUN 上部署的 VMFS 数据存储只能检测 LUN 的逻辑大小。 例如,如果阵列报告 2 TB 的存储,但仅提供 1 TB 的存储,则数据存储会将 2 TB 视为 LUN 的大小。
- 使用精简置备集成,主机可以执行以下任务:
- 监控精简置备的 LUN 上的空间使用情况,避免物理空间耗尽。
- 通知阵列有关执行以下操作时释放的数据存储空间:
- 从数据存储中删除虚拟磁盘和虚拟机文件。
- 通过 vSphere Storage vMotion 将虚拟磁盘和虚拟机文件从数据存储中迁出。
- 删除并整合虚拟机快照。
关于空间回收
在虚拟化环境中,存储层存在不同的抽象化级别:
- 用户文件位于客户机操作系统层。客户机操作系统负责管理这些文件。
- 客户机操作系统驻留在由VMFS数据存储管理的VMDK文件中。
- VMFS数据存储位于LUN上,作为存储设备呈现给ESXi主机。
![图片[1]-vSphere Storage APIs – Array Integration (VAAI)-宸玚的知识库](https://doc.chario.cn/wp-content/uploads/2026/03/image-53.png)
从 VMFS 数据存储中删除数据的方式如下:
- 删除客户机操作系统中的数据。
- 从数据存储中删除一个 VMDK 文件。
无论哪种情况,都不会释放阵列上的空间。
此空间称为无效空间 (dead space) 或脏空间 (dirty space)。
除非明确要求重复使用此空间(例如通过执行 SCSI UNMAP 命令),否则阵列无法这样做。
![图片[2]-vSphere Storage APIs – Array Integration (VAAI)-宸玚的知识库](https://doc.chario.cn/wp-content/uploads/2026/03/C__Users_qi.hx_Documents_NoteGen_assets_9e9b28dd-560e-425b-b47e-66911ea7663a.png)
使用 VMFS 进行空间回收
ESXi 支持回收可用空间。运行 SCSI unmap 命令时,ESXi 主机会通知存储阵列回收可用空间:
- 对于 VMFS5 数据存储,您可以使用
esxcli命令手动发送 unmap 命令。 - 对于 VMFS6 数据存储,ESXi 主机会自动将 unmap 命令发送到存储阵列。
| 功能特性 | VMFS5 | VMFS6 |
|---|---|---|
| 自动执行空间回收 | 否 | 是 |
| 通过 ESXCLI 手动回收空间 | 是 | 是 |
在 VMFS5 数据存储上手动执行空间回收
要在 VMFS5 数据存储上手动回收空间,可以运行 esxcli 命令:
esxcli storage vmfs unmap
您可以通过在 PowerCLI 脚本中使用此命令并安排该脚本在非工作时间运行来自动执行该过程。
| 命令选项 | 说明 |
|---|---|
| `-l | –volume-label=volume_label` |
| `-u | –volume-uuid=volume_uuid` |
| `-n | –reclaim-unit=number` |
在 VMFS6 数据存储上启用自动空间回收
创建 VMFS6 数据存储时,您可以修改默认设置以便自动执行异步空间回收:
- Space Reclamation Granularity(空间回收精确度):定义 UNMAP 命令的单元大小。默认大小为 1 MB。
- Space Reclamation Priority(空间回收优先级):控制在支持数据存储的 LUN 上回收已删除或取消映射的数据块的速率。默认优先级为 低,取消映射速率为 25 MBps。
![图片[3]-vSphere Storage APIs – Array Integration (VAAI)-宸玚的知识库](https://doc.chario.cn/wp-content/uploads/2026/03/image-54-1024x325.png)
配置自动取消映射速率
在vSphere 6.7 中推出,可为数据存储设置固定的取消映射速率。取消映射速率是处理自动unmap 命令的速率。
您可以更改取消映射速率以匹配存储阵列的功能。
![图片[4]-vSphere Storage APIs – Array Integration (VAAI)-宸玚的知识库](https://doc.chario.cn/wp-content/uploads/2026/03/image-55-1024x311.png)
针对客户机操作系统的空间回收支持
VMFS5 和 VMFS6 数据存储均支持源自客户机操作系统的 unmap 命令。
某些客户机操作系统(如 Windows Server 2012 R2)可以向阵列发送 unmap 命令。
客户机 unmap 命令将向下转换为可回收的阵列和空间。
对于精简置备的 VMDK 文件,虚拟磁盘空间将基于回收的空间量进行缩减。
VMFS5 支持有限数量的客户机操作系统的自动空间回收请求。
要将取消映射请求从客户机操作系统发送到阵列,虚拟机必须满足以下先决条件:
- 虚拟磁盘必须为精简置备。
- 客户机操作系统必须能够将虚拟磁盘标识为精简置备。
- 必须将
EnableBlockDelete高级 ESXi 主机设置设为 1。
![图片[5]-vSphere Storage APIs – Array Integration (VAAI)-宸玚的知识库](https://doc.chario.cn/wp-content/uploads/2026/03/image-57-1024x332.png)
对于VMFS6,请使用数据存储上的“SpaceReclamation Priority”(空间回收优先级)设置。忽略“EnableBlockDelete”选项。
使用ⅤMFS6 数据存储回收空间时,需要考虑以下注意事项:
- 仅当要回收的空间等于1MB 或是1MB的倍数时,VMFS6 才会处理来自客户机操作系统的取消映射请求。
关于 vSphere Storage APls – Array Integration
vSphere Storage APls- Array Integration 可帮助存储供应商提供硬件协助,从而加快 vSphere l/O 操作速度,在存储硬件中更高效地完成这些操作。
vSphere Storage APls- Array Integration 是一组协议和VMkernel 功能,支持 ESXi 和存储阵列之间集成:
- 借助硬件加速APl,阵列能够与vSphere 进行集成,以便采用透明方式将特定存储操作的负载分流到阵列。
- Array Thin Provisioning APl 有助于防止出现空间不足的情况并执行空间回收。








暂无评论内容