TUR 命令反复返回重试请求时,存储路径未进行故障切换。

问题

通常存储路径遇到问题时,ESXi 主机会发送 Test Unit Ready (TUR) 命令确认路径是否出现故障,然后启动路径故障切换。但是,如果 TUR 命令失败并反复返回重试操作请求 (VMK_STORAGE_RETRY_OPERATION),则主机会继续重试该命令而不触发故障切换。通常,以下错误会导致主机重试 TUR 命令:
  • SCSI_HOST_BUS_BUSY 0x02
  • SCSI_HOST_SOFT_ERROR 0x0b
  • SCSI_HOST_RETRY 0x0c

原因

要解决此问题,您可以使用 enable|disable_action_OnRetryErrors 参数。启用此参数时,ESXi 主机会将问题路径标记为不活动。将路径标记为不活动后,主机可能会触发故障切换,然后使用备用工作路径。

解决方案

  1. 通过运行相应的命令设置参数:
    操作 命令
    启用将问题路径标记为不活动的功能 # esxcli storage nmp satp generic deviceconfig set -c enable_action_OnRetryErrors -d naa.XXX
    禁用将问题路径标记为不活动的功能 # esxcli storage nmp satp generic deviceconfig set -c disable_action_OnRetryErrors -d naa.XXX
  2. 通过运行以下命令检查参数的状态:
    # esxcli storage nmp device list
    以下示例输出结果指示参数已被禁用:
    naa.XXX
    Device Display Name: DGC Fibre Channel Disk (naa.XXX)
    Storage Array Type: VMW_SATP_CX Storage Array Type Device
    Config: {navireg ipfilter action_OnRetryErrors}

    enable|disable_action_OnRetryErrors 参数在重新引导过程中是持久性的。

解决方案

您还可以在配置 SATP 声明规则时设置此参数:

# esxcli storage nmp satp rule add -t device -d naa.XXX -s VMW_SATP_EXAMPLE -P VMW_PSP_FIXED -o enable_action_OnRetryErrors