PowerStore:在具有 NVMe/TCP 的 vSphere 环境中的单个 PowerStore 节点不可用时观察到 I/O 超时

摘要: 使用 vSphere 8.0U2 和 NVMe/TCP 时,在单个 PowerStore 节点不可用的情况下,可能会观察到 I/O 超时。(用户可纠正)

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

使用 vSphere 8.0U2 和 NVMe/TCP 作为存储协议时,在单个 PowerStore 节点不可用的情况下可能会观察到 I/O 超时。

 

此类方案的示例:

  • PowerStore NDU
  • 关闭 PowerStore 节点
  • 节点死机或网络中断等意外情况

 

在以下情况下可能会观察到此问题:

  • 使用 ESXi 版本 8.0U2
  • 使用 NVMe/TCP 协议
  • 一个 PowerStore 节点由于某种原因变得不可用,另一个节点保持可用
  • 在 ESXi 托管的虚拟机中运行的应用程序或虚拟机上安装的操作系统观察到 I/O 超时
  • PowerStore I/O 指标不显示长时间运行的 I/O

 

只有 NVMe/TCP 受此问题的影响。NVMe/FC、iSCSI 和 FC 协议不受影响。该问题仅影响 ESXi 主机,其他类型的主机不受该问题的影响。

此问题可能表现为应用程序错误或在 ESXi 主机托管的虚拟机内运行的应用程序服务影响。它还可能导致来宾操作系统(安装在 ESXi 主机上运行的虚拟机上的操作系统)中出现错误。影响级别归因于应用程序软件处理 I/O 超时的方式。

问题是间歇性的。如果连接了多个主机,则只有其中一些主机可能会遇到此问题。

该问题同时影响 vVol 和非 vVol 数据存储区。

 

原因

这是由于 ESXi 8.0U2 中的问题造成的。当一个 PowerStore 节点的 NVMe/TCP 控制器由于某种原因变得不可用,而另一个节点可用并能够处理 I/O 时,路径的故障切换过程将出现延迟。延迟可能会导致 I/O 超时。

 

解决方案

对于使用 NVMe/TCP 的客户,我们建议不要使用 ESXi 8.0U2。

 

提醒:

  • 早于修补程序 2 的 ESXi 8.0U1 在相同情况下存在另一个问题,也应避免。链接 VMware 知识库文章 https://kb.vmware.com/s/article/94106此超链接会将您带往 Dell Technologies 之外的网站。
  • 只有 ESXi 版本很重要。可以将 vCenter 8.0U2 与 ESXi 8.0Uone 修补程序 2 或任何其他配置配合使用,只要版本兼容即可。

 

计划将该修复包含在即将推出的 ESXi 8.0U3 中。

 

VMFS 和 NFS 数据存储区的解决方法

使用经典(非 vVol)数据存储区的客户提供解决方法。解决方法是在创建 NVMe/TCP I/O 控制器时应用较低的保持活动超时。
无法更改已存在的控制器的超时。如果已创建控制器,则可以删除它们,然后使用减小的超时值重新创建。
默认超时值为 30 秒。如果所需的 I/O 故障切换时间为 N 秒,则减少的超时值不应超过 N/2 - 10 秒。例如,如果所需的故障切换时间为 60 秒,则应使用 20 秒 (60/2 - 10 = 20)

步骤 1:删除 NVMe/TCP 控制器(如果它们已经存在)

vSphere UI

  1. 在 vSphere UI 中选择主机
  2. 转至 Configure → Storage Adapters
  3. 选择 NVMe/TCP 适配器
  4. 转至适配器列表下的 Controllers 选项卡
  5. 选择一个控制器,然后单击“Remove”

在卸下控制器之前,请确保控制器未用于 I/O。否则,通过控制器的 I/O 可能会中断。
检查控制器未用于 I/O

 

命令行界面 (CLI)
使用“列出控制器”esxcli nvme controller list“,然后使用”断开它们的连接”esxcli nvme fabrics disconnect'.

[root@hoABCDEF:~] esxcli nvme controller list
Name                                                                                   Controller Number  Adapter  Transport Type  Is Online  Is VVOL
-------------------------------------------------------------------------------------  -----------------  -------  --------------  ---------  -------
nqn.xxx-11.com.xxxx:powerstore:00:042d0bc302a61CBF6EA0#vmhba67#xx.xxx.x.xxx:4420                    4435  vmhba67  TCP                  true    false
nqn.xxx-11.com.xxxx:powerstore:00:042d0bc302a61CBF6EA0#vmhba67#xx.xxx.x.xxx:4420                    4436  vmhba67  TCP                  true    false
nqn.xxx-08.org.xxxxyyy.discovery#vvol#vmhba67#xx.xxx.x.xxx:8009                                  4488  vmhba67  TCP                  true     true
nqn.xxx-11.com.xxxx:powerstore:00:042d0bc302a61CBF6EA0#vvol#vmhba67#xx.xxx.x.xxx               4490  vmhba67  TCP                  true     true
nqn.xxx-11.com.xxxx:powerstore:00:042d0bc302a61CBF6EA0#vvol#vmhba67#xx.xxx.x.xxx               4489  vmhba67  TCP                  true     true
nqn.xxx-08.org.xxxxyyy.discovery#vvol#xx.xxx.x.xxx:8009                                  4491  vmhba67  TCP                  true     true
 
[root@hop051108:~] esxcli nvme fabrics disconnect -a vmhba67 -n 4435

 

步骤 2:重新创建具有减小超时值的控制器。

创建控制器需要以下参数:

  • PowerStore 群集 NQN
  • PowerStore 存储 IP 地址

 

这些值可以在删除控制器之前从 vSphere UI 或 esxcli nvme 控制器列表输出中复制,也可以从 PowerStore Manager 中获取。

可以通过导航到“Settings”→“Properties”并复制“NVMe Qualified Name”的值来获取 NQN。
复制NVMe Qualified Name的值

存储 IP 可在 Settings → Network IPs → Select storage network → Modify中找到。
存储 IP 在选定存储网络上可用

获得这些值后,可以按如下方式创建控制器:

 

vSphere UI
选择主机 →配置→存储适配器→选择适配器→手动添加控制器→。

超时值应复制到“Keepalive Timeout”字段。
“Keepalive 超时”字段

 

命令行界面 (CLI)
esxcli nvme fabrics connect -i <storage ip> -p 4420 -a <adapter id> -s <powerstore's NQN> -t <timeout>

[root@hoABCDEF:~] esxcli nvme fabrics connect -i 10.xxx.x.xx -p 4420 -a vmhba67 -s

 

受影响的产品

PowerStore
文章属性
文章编号: 000223711
文章类型: Solution
上次修改时间: 14 6月 2025
版本:  4
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。