光纤通道交换机中断导致由 IBM SVC 管理的 LUN 上的 SCSI 预留处于挂起状态
search cancel

光纤通道交换机中断导致由 IBM SVC 管理的 LUN 上的 SCSI 预留处于挂起状态

book

Article ID: 301271

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明:本文为 Fibre Channel switch outage leaves pending SCSI reservations on LUNs managed by an IBM SVC (2008333) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


<content></content>由 IBM SVC 管理的 LUN 上发生光纤通道中断后,可能会出现以下症状:
  • 发生光纤通道中断后,日志消息可能会显示 HBA 的路径已标记为脱机:

    vmkernel:2:17:25:49.804 cpu7:4340)<3> rport-5:0-0: blocked FC remote port time out: saving binding
    vmkernel:2:17:25:49.804 cpu7:4340)<3> rport-5:0-1: blocked FC remote port time out: saving binding

  • 进行故障切换时,系统不知道先前的预留已存在于该设备上。因此,未发出 LUN 重置以清除挂起的预留。出现这种情况时,您可能会看到类似以下内容的日志条目:

    cpu19:4150)WARNING:NMP: nmp_DeviceRetryCommand:Device "naa.60050768018080cdb8000000000004c5": awaiting fast path state update for failover with I/O blocked.No prior reservation exists on the device.
    cpu1:5750)vmw_psp_fixed: psp_fixedSelectPathToActivateInt:Changing active path from vmhba1:C0:T4:L1 to vmhba2:C0:T3:L1 for device "naa.60050768018080cdb8000000000004c5".

  • 故障切换成功完成后,发生预留冲突。VMkernel 日志显示了来自 IBM SVC SATP 报告的消息,类似于以下内容:

    cpu12:4286)VMW_SATP_SVC: satp_svc_UpdatePath:Failed to update path "vmhba2:C0:T5:L1" state.Status=SCSI reservation conflict

  • 如果您由于命令未完成而无法确定预留的状态,应进一步确认此行为。
  • 您会看到类似以下内容的日志条目:

    cpu1:4620)NMP: nmp_CompleteCommandForPath:Command 0x16 (0x4102bf7b0840) to NMP device "naa.60050768018080cdb8000000000004c5" failed on physical path "vmhba1:C0:T4:L1" H:0x2 D:0x0 P:0x0 Possible sense data:0x0 0x0 0x0.
    cpu1:4620)NMP: nmp_PathDetermineFailure:SCSI cmd RESERVE failed on path vmhba1:C0:T4:L1, reservation state on device naa.60050768018080cdb8000000000004c5 is unknown.

注意:上述日志摘录仅为示例。日期、时间和环境变量可能会因环境而有所不同。



Environment

VMware vSphere ESXi 5.5
VMware ESXi 4.0.x Installable
VMware vSphere ESXi 5.1
VMware ESXi 3.5.x Embedded
VMware ESXi 4.1.x Embedded
VMware ESX Server 3.5.x
VMware vSphere ESXi 5.0
VMware ESX 4.0.x
VMware ESXi 4.1.x Installable
VMware ESXi 3.5.x Installable
VMware ESXi 4.0.x Embedded
VMware ESX 4.1.x

Cause

当不再登录到架构的 HBA 的 LUN 上保留了 SCSI 预留时,将发生预留冲突。

如果光纤通道在向阵列发送 SCSI 预留命令时脱机,将出现这种情况。SCSI 预留命令将访问该阵列并放置预留,但 SCSI 命令的确认从未将该预留返回到主机,因为光纤通道当前已脱机并且未在进行路径故障切换时发出 LUN 重置。

如果发生以下情况,可能会出现此行为:
  • IBM SVC 正在运行 5.1 之前版本的固件



  • 光纤通道和 IBM SVC(任何固件修订版本)同时出现硬故障

Resolution

要解决此问题,请执行以下操作:
  1. 按照 IBM 的建议将 IBM SVC 固件更新到版本 7.1 或更高版本。从 SVC 固件版本 5.1 开始,引入了用于在启动器从架构中注销时清除挂起的 SCSI-2 预留的代码。IBM 的最新建议包含了此更改。

  2. 尝试路径故障切换之前,在启用另一个 ESXi 多路径 reset_on_attempted_reserve 选项的情况下运行可强制 ESXi 有条件地将预留重置到 LUN,以防止预留在光纤通道交换机发生硬故障后卡住。使用此选项,ESXi 可以跟踪已尝试的 (SCSI-2) 预留,如果由于该路径上的预留而触发了路径故障切换,NMP 将发送 LUN 重置以清除该预留。

    注意:运行使用任何固件版本的 IBM SVC(必须接收注册状态更改通知 (Registered State Change Notification, RSCN))时,需要使用此选项才能对报告 SCSI 预留冲突的 LUN 执行 LUN 重置。RSCN 指示设备已从架构中注销。需要执行 LUN 重置的原因是,在发生硬故障后不</u>保证会发送 RSCN。

要对 IBM 存储阵列的声明规则启用 reset_on_attempted_reserve 选项,请发出以下 esxcli 命令:
  • 对于 ESXi 5.5/5.1/5.0

    1. esxcli storage nmp satp rule remove --satp VMW_SATP_ALUA --vendor IBM --model 2145
    2. esxcli storage nmp satp rule add --satp VMW_SATP_ALUA --psp VMW_PSP_RR --vendor IBM --model 2145 --option reset_on_attempted_reserve

  • 对于具有 MSCS 配置的 ESXi 5.0/5.1:

    1. esxcli storage nmp satp rule remove --satp VMW_SATP_SVC --vendor IBM --model 2145
    2. esxcli storage nmp satp rule add --satp VMW_SATP_SVC --psp VMW_PSP_FIXED --vendor IBM --model 2145 --option reset_on_attempted_reserve
注意:用于 ESX/ESXi 4.1 的 esxcli 命令稍有不同:
  1. 删除现有规则:

    esxcli nmp satp deleterule --vendor IBM --model 2145 --satp VMW_SATP_SVC

  2. 添加新规则:

    esxcli nmp satp addrule --satp VMW_SATP_ALUA --psp VMW_PSP_RR --vendor IBM --model 2145 --option reset_on_attempted_reserve


Additional Information

有关从 ESXi/ESX 主机执行 LUN 重置的详细信息,请参见 Resolving SCSI reservation conflicts (1002293)

有关 IBM 存储阵列固件和推荐设置的详细信息,请联系存储阵列供应商。 Fibre Channel switch outage leaves pending SCSI reservations on LUNs managed by an IBM SVC