将 NVMe 技术与 VMware 结合使用时,请遵循特定准则和要求。

NVMe over PCIe 的要求

ESXi 存储环境必须包含以下组件:
  • 本地 NVMe 存储设备。
  • 兼容的 ESXi 主机。
  • 硬件 NVMe over PCIe 适配器。安装该适配器后,ESXi 主机会检测到该适配器并将其作为存储适配器 (vmhba) 显示在 vSphere Client 中,且将协议指示为 PCIe。无需配置该适配器。

NVMe over RDMA (RoCE v2) 的要求

NVMe over Fibre Channel 的要求

  • 支持 NVMe 的光纤通道存储阵列。有关信息,请参见将 ESXi 与光纤通道 SAN 配合使用
  • 兼容的 ESXi 主机。
  • 硬件 NVMe 适配器。通常,它是支持 NVMe 的光纤通道 HBA。安装该适配器后,ESXi 主机会检测到该适配器并将其作为标准光纤通道适配器 (vmhba) 显示在 vSphere Client 中,且将存储协议指示为 NVMe。您无需配置硬件 NVMe 适配器即可进行使用。
  • NVMe 控制器。无需配置该控制器。安装所需的硬件 NVMe 适配器后,它会自动连接到当前可访问的所有目标和控制器。您可以稍后断开这些控制器的连接,或者连接在主机引导期间不可用的其他控制器。请参见为 NVMe over Fabrics 添加控制器

NVMe over TCP 的要求

VMware NVMe over Fabrics 共享存储支持

ESXi 环境中,NVMe 存储设备的显示类似于 SCSI 存储设备,并且可用作共享存储。使用 NVMe-oF 存储时,请遵循以下规则。
  • 请勿混合使用传输类型来访问同一个命名空间。
  • 确保将活动路径提供给主机。在发现活动路径之前,无法注册命名空间。
共享存储功能 SCSI over Fabric 存储 NVMe over Fabric 存储
RDM 支持 不受支持
核心转储 支持 支持
SCSI-2 预留 支持 不受支持
集群 VMDK 支持 支持
带多写入者标志的共享 VMDK 支持 支持

(vSphere 7.0 Update 1 及更高版本)。

有关详细信息,请参见知识库文章

Virtual Volumes 支持 支持

在 vSphere 8.0 及更高版本中。

有关详细信息,请参见NVMe 和 Virtual Volumes

具有 VAAI 插件的硬件加速 支持 不受支持
默认 MPP NMP HPP(NMP 无法声明 NVMe-oF 目标)

为 NVMe over RDMA 配置无损以太网

ESXi 中的 NVMe over RDMA 需要使用无损以太网网络。

要建立无损网络,您可以选择一个可用的 QoS 设置。

启用全局暂停流量控制

在此网络配置中,请确保在网络交换机端口上启用了全局暂停流控制。此外,请确保主机中支持 RDMA 的网卡可自动协商以使用正确的流控制。

要检查流量控制,请运行以下命令:

#esxcli network nic get -n vmnicX
   Pause RX: true
   Pause TX: true

如果以上命令选项未设置为 true,请运行以下命令。

#esxcli network nic pauseParams set -r true -t true -n vmnicX

启用优先级流控制

要确保 RoCE 流量无损,必须在物理交换机和主机中将 PFC 优先级值配置为 3。可以通过两种方式在 ESXi 主机中配置 PFC:
  • 自动配置。如果 RNIC 驱动程序支持 DCB 和 DCBx,则在主机 RNIC 上自动应用 DCB PFC 配置。

    您可以通过运行以下命令验证当前的 DCB 设置:

    #esxcli network nic dcb status get -n vmnicX
  • 手动配置。在某些情况下,RNIC 驱动程序提供了一种使用驱动程序特定的参数手动配置 DCB PFC 的方法。要使用此方法,请参阅供应商特定的驱动程序文档。例如,在 Mellanox ConnectX-4/5 驱动程序中,可以通过运行以下命令,然后重新引导主机,将 PFC 优先级值设置为 3。
    #esxcli system module parameters set -m nmlx5_core -p "pfctx=0x08 pfcrx=0x08"

启用基于 DSCP 的 PFC

基于 DSCP 的 PFC 是配置无损网络的另一种方式。在物理交换机和主机中,必须将 DSCP 值设置为 26。要使用此选项,请参阅供应商特定的驱动程序文档。例如,在 Mellanox ConnectX-4/5 驱动程序中,可以通过运行以下命令将 DSCP 标记值设置为 26。
  1. 启用 PFC 和 DSCP 信任模式。
    #esxcli system module parameters set -m nmlx5_core -p "pfctx=0x08 pfcrx=0x08 trust_state=2"
    
  2. 将 DSCP 值设置为 26。
    #esxcli system module parameters set -m nmlx5_rdma -p "dscp_force=26"
  3. 验证要检查的参数,以确认设置是否正确并且已设置。
    esxcli system module parameters list -m nmlx5_core | grep 'trust_state\|pfcrx\|pfctx'
  4. 重新引导主机。