VMware 提供高性能插件 (HPP) 来提高 ESXi 主机上的存储设备的性能。
HPP 替换高速设备(例如 NVMe)的 NMP。HPP 是声明 NVMe-oF 目标的默认插件。ESXi 支持没有端到端 NVMe 和 SCSI 到 NVMe 模拟。HPP 仅支持主动/主动和隐式 ALUA 目标。
从 vSphere 7.0 Update 2 开始,HPP 将成为本地 NVMe 和 SCSI 设备的默认插件,但可以将其替换为 NMP。
HPP 支持 | vSphere 7.0 Update 2 及更高版本 |
---|---|
存储设备 | 本地 NVMe 和 SCSI 共享 NVMe(仅限主动/主动和隐式 ALUA 目标) |
多路径 | 是 |
第二级插件 | 否 |
SCSI-3 永久预留 | 否 |
带软件模拟的 4Kn 设备 | 是 |
路径选择方案
为了支持多路径,HPP 在为 I/O 请求选择物理路径时使用路径选择方案 (PSS)。
可以使用 vSphere Client 或 esxcli 命令更改默认路径选择机制。
有关在 vSphere Client 中配置路径机制的信息,请参见更改路径选择策略。要使用 esxcli 命令进行配置,请参见 ESXi esxcli HPP 命令。
ESXi 支持以下路径选择机制。
- 固定
-
在此方案中,为 I/O 请求使用指定的首选路径。如果没有分配首选路径,主机将选择在引导时发现的第一个工作路径。如果首选路径不可用,主机将选择替代的可用路径。首选路径再次可用时,主机将返回到之前定义的首选路径。
将 FIXED 配置为路径选择机制时,请选择首选路径。
- LB-RR(负载均衡 - 循环)
-
这是 HPP 声明的设备的默认方案。在当前路径上传输指定数量的字节或 I/O 后,该方案将使用循环算法选择路径。
要配置 LB-RR 路径选择机制,请指定以下属性:
- IOPS 指示路径上要用作设备路径切换条件的 I/O 计数。
- 字节指示路径上要用作设备路径切换条件的字节计数。
- LB-IOPS(负载均衡 - IOPS)
-
在当前路径上传输指定数量的 I/O(默认值为 1000)后,系统将选择具有最少未完成 I/O 数量的最佳路径。
配置此机制时,请指定 IOPS 参数,以指示路径上要用作设备路径切换条件的 I/O 计数。
- LB-BYTES(负载均衡 - 字节)
-
在当前路径上传输指定数量的字节(默认值为 10 MB)后,系统将选择具有最少未完成字节数量的最佳路径。
要配置此机制,请使用字节参数指示路径上要用作设备路径切换条件的字节计数。
- 负载均衡 - 延迟 (LB-Latency)
-
为了实现更好的负载均衡结果,该机制将通过考虑以下路径特性动态选择最佳路径:
- 延迟评估时间参数指示必须以怎样的时间间隔评估路径延迟(以毫秒为单位)。
- 每个路径的采样 I/O 参数控制为了计算路径延迟必须在每个路径上发出多少采样 I/O。
HPP 最佳做法
要在高速存储设备上获得最快的吞吐量,请遵循这些建议。
- 使用支持 HPP 的 vSphere 版本。
- 将 HPP 用于本地 NVMe 和 SCSI 设备以及 NVMe-oF 设备。
- 如果使用 NVMe over Fibre Channel 设备,请遵循对光纤通道存储的常规建议。请参见将 ESXi 与光纤通道 SAN 配合使用。
- 如果使用 NVMe-oF,请勿混合使用传输类型来访问同一个命名空间。
- 使用 NVMe-oF 命名空间时,请确保将活动路径提供给主机。在发现活动路径之前,无法注册命名空间。
- 配置虚拟机时,可以使用 VMware 准虚拟控制器或添加 NVMe 控制器。这两种类型各有优缺点。要了解哪种方式最适合您的环境,请参见《vSphere 虚拟机管理》文档中的 SCSI、SATA 和 NVMe 存储控制器条件、限制和兼容性。
- 设置延迟敏感阈值。
- 如果设备的 I/O 工作负载很大一部分由单台虚拟机承担,请考虑将 I/O 分散到多个虚拟磁盘。将磁盘附加到虚拟机中单独的虚拟控制器。
否则,I/O 吞吐量可能会由于负责在特定虚拟存储控制器上处理 I/O 的 CPU 内核饱和而受到限制。
有关仅支持 NGUID ID 格式的 NVMe 设备的设备标识符信息,请参见具有 NGUID 设备标识符的 NVMe 设备。
启用高性能插件和路径选择方案
高性能插件 (HPP) 是声明本地 NVMe 和 SCSI 设备以及 NVMe-oF 目标的默认插件。如有必要,可以将其替换为 NMP。在 vSphere 版本 7.0 Update 1 及更低版本中,NMP 仍为本地 NVMe 和 SCSI 设备的默认插件,但您可以将其替换为 HPP。
使用 esxcli storage core claimrule add 命令在 ESXi 主机上启用 HPP 或 NMP。
要运行 esxcli storage core claimrule add,您可以使用 ESXi Shell 或 vSphere CLI。有关更多信息,请参见《《ESXCLI 入门》》和《《ESXCLI 参考指南》》。
前提条件
设置 VMware NVMe 存储环境。有关详细信息,请参见关于 VMware NVMe 存储。
过程
设置延迟敏感阈值
在为存储设备使用 HPP 时,设置该设备的延迟敏感阈值,使 I/O 可以绕过 I/O 调度程序。
默认情况下,ESXi 通过 I/O 调度程序传递每个 I/O。但是,使用调度程序可能会创建内部队列,这不是利用高速存储设备的有效方法。
您可以配置延迟敏感阈值并启用直接提交机制,帮助 I/O 绕过调度程序。若启用此机制,则 I/O 会通过 HPP 直接从 PSA 传递到设备驱动程序。
要顺利执行直接提交,观察到的平均 I/O 延迟必须低于您指定的延迟阈值。如果 I/O 延迟超过延迟阈值,系统会停止直接提交,并暂时恢复到使用 I/O 调度程序。当平均 I/O 延迟再次下降至低于延迟阈值时会恢复直接提交。
可以为一系列 HPP 声明的设备设置延迟阈值。使用供应商和型号对、控制器型号或者 PCIe 供应商 ID 和子供应商 ID 对,设置延迟阈值。
过程
ESXi esxcli HPP 命令
您可以使用 ESXi Shell 或 vSphere CLI 命令配置和监控高性能插件。
有关 esxcli 命令概况信息,请参见《ESXCLI 入门》;有关该命令的使用详细信息,请参见《ESXCLI 参考指南》。
命令 | 描述 | 选项 |
---|---|---|
esxcli storage hpp path list | 列出当前由高性能插件声明的路径。 | -d|--device=device 显示特定设备的信息。
|
esxcli storage hpp device list | 列出当前受高性能插件控制的设备。 | -d|--device=device 显示特定设备。 |
esxcli storage hpp device set | 为 HPP 设备配置设置。 | -B|--bytes=long 路径上的最大字节数,超过此值后,将切换该路径。
-P|--pss=pss_name 要分配给设备的路径选择方案。如果未指定值,系统将选择使用默认值。有关路径选择方案的说明,请参见
VMware 高性能插件和路径选择方案。选项包括:
|
esxcli storage hpp device usermarkedssd list | 列出已由用户标记或取消标记为 SSD 的设备。 | -d|--device=device 将输出限制到特定设备。 |