Dell Unity/VNX:从版本 5.5 u2 及更高版本开始,ESXi 主机上出现随机临时连接丢失和/或性能下降(用户可纠正)

Summary: 负载较重的阵列、网络或结构可能会减慢 ATS 命令的速度,以致阵列对 ATS 命令返回 ESXi 意想不到的误比较检查条件。 由于 VMFS HeartBeat 插槽上的此 ATS 错误比较,ESXi 主机会尝试重新获得对设备的控制权。为此,主机会在持有 VMFS 的 LUN 上发出 SCSI 设备重置命令。此 LUN 上的所有活动 I/O 都将中止,SCSI 设备将重置。VMkernel 日志中显示连接临时中断。 ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

场景:

  • 主机升级到 ESXi 5.5 update 2 或 ESXi 6.0
  • 一个或多个 ESXi 主机在短时间内失去与 VMFS 数据存储区的连接。数据存储区上的任何虚拟机都可能会崩溃或出现 I/O 错误。
  • 由于 VMFS 心跳插槽上的原子测试和设置 (ATS) 错误比较,ESXi 主机会尝试通过在持有 VMFS 的 LUN 上发出 SCSI 设备重置指令来重新获得对设备的控制权。
  • 此 LUN 上的所有活动 I/O 都将中止,SCSI 设备将重置。  
  • VMkernel 日志中显示连接临时中断。
 

NMP 和 PowerPath 都可能发生 ATS 误比较。
/var/log/vmkernel.log 中显示指示类似以下内容的 ATS 误比较的错误消息:

2015-11-20T22:12:47.194Z cpu13:33467)ScsiDeviceIO: 2645: Cmd(0x439dd0d7c400) 0x89, CmdSN 0x2f3dd6 from world 3937473 to dev "naa.50002ac0049412fa" failed H:0x0 D:0x2 P:0x0 Valid sense data: 0xe 0x1d 0x0.
 


可能发生的其他问题:

  • 主机与 vSphere vCenter 断开连接
  • 虚拟机在 I/O作上挂起

Cause

此问题已出现在过载程度足以使主机取消 I/O 请求的阵列、网络或结构上。

一些阵列供应商(包括戴尔)在 ESXi 5.5u2 中引入的 ATS 心跳功能方面遇到了问题。

NOTE: 根据 Broadcom (VMware) KB 326437 (外部链接), 此问题影响 ESXi 版本 VMware ESXi 5.5.xVMware ESXi 6.0.x,未提供所有特定版本,因此此知识库文章假设所有版本为 5.5u2 及更高版本的 ESXi 主机和所有 ESXi 6.0 版本都会受到影响。
 

VMware ESXi 版本 5.5.0 Update 2(内部版本 2068190)和 ESXi 6.0 及更高版本使用原子测试和设置 (ATS) 进行 VMFS 心跳锁定。在版本 5.5.0 u2 之前,SCSI-2 非持久保留用于此目的。

主机通过定期对给定卷上的心跳执行 I/O 来指示其活动状态。因此,如果在一段时间内主机的心跳槽上看不到任何活动,则可以断定主机已失去与卷的连接。

ATS 心跳 I/O 具有非常低的超时值,可能会导致主机断开连接和应用程序中断,从而导致磁盘连接丢失和/或主机性能下降。

然后,主机在心跳槽上注册误比较,并在发出重置时中止 LUN 上的所有活动 IO。  此 LUN 上所有挂起的 IO 都将失败,主机感知 8(H:0x8 SCSI 重置)。

Resolution

如果观察到此情况,建议的临时解决方法是禁用 VAAI ATS 心跳机制。有关详细信息,请参阅 Broadcom (VMware) 知识库文章326437(外部链接)。   禁用 ATS 心跳机制会将主机恢复为传统模式。处理负载后,重新启用 ATS 心跳机制。

请联系 VMware 以确认问题,或提供具有 vmsupport 的 ESXi emcgrab 以进行确认。在负载问题得到解决之前,仅建议受影响的客户在 ESX 服务器上禁用 VAAI ATS 心跳功能。

Additional Information

Unity 日志可用于识别此特定类型的中止(感知键 = 0e、ASC = 1d、ASCQ = 00)。

提取的日志中的日志位置为: 

spX\EMC\C4Core\log\c4_safe_ktrace.log(同一位置可在阵列 /EMC/C4Core/log/c4_safe_ktrace.log 上实时使用)


要检查日志,请在上面的位置提取所有 c4_safe_ktrace.log* 日志,然后查找“SK = 0x0e,ASC/Q = 0x1d00”。

Linux 系统或类似系统的示例:

grep -i "SK = 0x0e, ASC/Q = 0x1d00" spa/EMC/C4Core/log/c4_safe_ktrace.* | wc -l
15744 <<<< count of aborts on SPA in this example.

如果未添加 ktrace 日志,只需使用 zgrep:

zgrep -i "SK = 0x0e, ASC/Q = 0x1d00" spa/EMC/C4Core/log/c4_safe_ktrace.* | wc -l
15744 <<<< count of aborts on SPA in this example.

 

Affected Products

Dell EMC Unity Family

Products

Dell Unity 300, Dell EMC Unity 300F, Dell EMC Unity 350F, Dell EMC Unity 400, Dell EMC Unity 400F, Dell EMC Unity 450F, Dell EMC Unity 500, Dell EMC Unity 500F, Dell EMC Unity 550F, Dell EMC Unity 600, Dell EMC Unity 600F, Dell EMC Unity 650F , Dell EMC Unity Family |Dell EMC Unity All Flash, Dell EMC Unity Family, Dell EMC Unity Hybrid, VNX5100, VNX5200, VNX5300, VNX5400, VNX5500, VNX5600, VNX5700, VNX5800, VNX7500, VNX7600, VNX8000, VNX/VNXe ...
Article Properties
Article Number: 000035613
Article Type: Solution
Last Modified: 27 Feb 2025
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.