VMware vSAN 节点存储链路故障分析报告
一、事件概述
2026 年 4 月 3 日凌晨(UTC 06:09 起),vSAN 集群节点 esxi04 在运行过程中突发存储 I/O 链路级故障,导致直连 SAS 磁盘设备出现介质错误(Medium Error)、I/O 超时以及命令被强制取消等连锁反应。
由于该主机处于 vSAN 集群中,故障磁盘是 vSAN 分布式存储池的组成部分,本次事件不仅是单节点故障,更对整个 vSAN 集群的数据冗余保护和存储服务可用性构成了直接威胁。
二、故障时间线
| 时间(UTC+8) | 事件描述 |
|---|---|
| 14:09 | 首次检测到 故障盘 A(slot 4)出现介质错误,sense key [0x04, 0x4c, 0xa7],LBA: 0 |
| 14:16 | 同一设备出现 Medium Error(sense [0x03, 0x13, 0x0]),分区表读取失败(I/O Error),HPP 开始对该设备限流 |
| 14:17–14:19 | 连续出现多起 Medium Error,涉及 LBA: 2 及 LBA: 3516328367(磁盘末端区域),分区表读取再次失败 |
| 14:19 | HPP 触发命令中止(TM Abort),故障盘 B(slot 7)也同步报介质错误(sense [0x04, 0x4c, 0xa7]),READ CAPACITY 失败 |
| 14:20–14:57 | 两块设备交替出现 I/O 错误,HPP 持续限流(hppAction = 1 / 3),大量 SCSI 命令被取消 |
| 15:06 | 故障盘 A 出现严重 I/O 超时,多条同步命令(opcode 0x28, 0x1a)完全超时(Expiry time occurred 3ms in the past),HPP 触发最高级别报警 |
| 15:27–15:30 | 错误持续恶化,HPP 限流计数器不断刷新,Active 命令队列被强制清空,多个 VPD 查询超时 |
| 后续 | 错误呈周期性重复出现,故障未自动恢复 |
三、故障根因分析
1. 硬件层面:SAS 磁盘介质损坏
日志中最核心的错误信息集中在两块 LUN:
Device: 故障盘 A (Enclosure Slot 4, Phy 4)
Device: 故障盘 B (Enclosure Slot 7, Phy 7)两块磁盘均报告了 sense key 0x03(Medium Error) 和 sense key 0x04(Hardware Error),且错误发生在多个 LBA 位置(LBA: 0、LBA: 2、LBA: 3516328367),说明:
- LBA 0 区域损坏:分区表所在扇区损坏,导致 VMFS 无法正常解析分区
- LBA 3516328367 区域损坏:磁盘末端(接近最大 LBA)出现介质缺陷
- 多个 LBA 受损:不是单点比特翻转,而是磁盘介质大面积失效
Sense Key 参考:
[0x03, 0x13, 0x00]→ Medium Error,地址格式无效[0x03, 0x11, 0x01]→ Medium Error,数据同步错误[0x04, 0x4c, 0xa7]→ Hardware Error,逻辑块关联失败
2. 存储路径层:HPP 限流与命令中止
ESXi 的 HPP(High-Performance Path) 存储插件检测到持续错误后,触发了三层响应:
| HPP Action | 含义 | 触发条件 |
|---|---|---|
hppAction = 1 | 标记错误,限流处理 | 首次检测到有效 sense data |
hppAction = 3 | 强制取消命令,退出设备 | 命令积压超过阈值(Active: 1~2) |
多次出现的日志:
HPP: HppThrottleLogForDevice:1144: Error status H:0x0 D:0x2 P:0x0 Valid sense data: 0x3 0x11 0x1. hppAction = 1
ScsiDeviceIO: 4173: ... Medium Error, LBA: 3516328367
ScsiDeviceIO: 4160: ... Cancelled from driver layer. Cmd count Active:2说明 HPP 的自动恢复机制未能奏效,设备进入持续降级状态。
3. 影响范围分析
从受影响设备的映射关系来看:
Enclosure Logical ID: (脱敏)
├── Slot 4 → 故障盘 A ⚠️ 严重故障
└── Slot 7 → 故障盘 B ⚠️ 同步故障两块磁盘来自同一磁盘框(Enclosure) 的不同槽位,且属于同一 SAS 链路的两个 Phy(phy 4 和 phy 7),这暗示:
- 可能是磁盘框背板或SAS 扩展器故障,波及多块磁盘
- 也可能是两块磁盘同时到达寿命终点(写入量耗尽)
- vSAN 环境:两块盘同时故障意味着 vSAN 分布式存储池中该节点的存储组件减少,可能触发 FTT(Failures To Tolerate)边界
4. vSAN 集群层面影响
以下分析针对 vSAN 环境特性。esxi04 是 vSAN 集群中的一个节点,该主机的 13 块磁盘共同组成了 vSAN 分布式存储池,供集群内所有虚拟机共享。
worldId: 2103895:ESXi 系统进程,持续处理超时和重试,CPU 资源异常消耗worldId: 0x201a57:某虚拟机进程(world ID 在 vSAN 环境下对应具体的 VM),发出的 I/O 命令被 HPP 强制中止,该虚拟机可能已出现无响应或强制重启- vSAN 数据冗余风险:vSAN 默认按存储策略(FTT=1 或 FTT=2)将数据副本分布到不同节点。esxi04 上的两块故障盘可能导致:
- 部分数据副本所在组件离线
- 若 FTT=1,剩余副本所在节点承载压力增大
- 若 FTT=0 或多块副本同时受影响,存在数据不可用甚至数据丢失的风险
- vSAN 健康状态:建议检查 vSphere Client → vSAN → Physical Disk Health,确认是否有组件(Component)处于已降级(Degraded) 或已关闭(Absent) 状态
- 集群整体存储性能下降:故障期间 vSAN 会触发数据重建(Resync),集群 I/O 性能将显著下降
四、影响与后果
vSAN 集群级影响
vSAN 环境特殊说明:esxi04 的 13 块磁盘均为 vSAN 存储池的成员,承担着为集群内所有虚拟机提供分布式存储的任务。任意磁盘故障的影响都会通过 vSAN 策略扩散到集群层面。
- vSAN 组件降级 / 重建
- 两块盘故障直接导致 vSAN 存储池中该节点的 2 个磁盘组件离线
- vSAN 会自动触发数据重建(Resyncing Objects),将受影响数据的副本同步到其他健康节点
- 重建期间集群存储 I/O 性能将明显下降
- 存储策略边界风险
- 若该集群的 FTT(Failures To Tolerate)设置为 1,故障期间数据仅剩 1 份有效副本,处于 FTT 边界状态
- 若同时有其他节点出现波动或 FTT=0 的虚拟机,存在数据不可用甚至数据丢失风险
- HPP 路径阻塞 → vSAN 写入失败
- HPP 持续限流和命令取消,意味着发往故障盘的写入请求全部失败
- vSAN 分布式写入依赖所有组件确认才能完成,部分组件离线会导致写入超时或 I/O 报错
- 受影响虚拟机的应用层可能出现:数据库事务失败、文件写入异常、快照操作超时
- 虚拟机可用性风险
- 若故障盘承载了虚拟机的 vSWAP 或快照对象,相关 VM 可能出现无响应或蓝屏
worldId: 0x201a57的 VM 发出的 I/O 命令已被强制中止,该 VM 大概率已受影响
- 数据完整性隐患
- Medium Error 出现在 LBA: 0(分区表区)和 LBA: 3516328367(磁盘末端)两个极端区域
- vSAN 存储对象校验和(Checksum)可能检测到不一致,进一步触发 vSAN 健康告警
五、故障影响截图
以下是故障期间 vSphere Client 监控界面截图,展示了存储路径告警和设备错误状态:

六、iDRAC 日志补充分析
1. iDRAC 系统信息
服务器型号: Dell PowerEdge R740xd
服务标签: XXXXXXXX
iDRAC版本: 9 (Firmware 4.20.20.20)
存储控制器: Dell PERC H750 (NonRAID.Slot.4-1, FW 16.17.01.00)
磁盘框: Enclosure.Internal.0-1:NonRAID.Slot.4-1 (内部 SAS 背板)
操作系统: VMware ESXi (主机名: esxi04)
磁盘总数: 13块 (Disk.Direct.0 ~ Disk.Direct.11),均通过同一背板2. SMART 数据关键发现
iDRAC TSR 收集包中,SmartLogs.json 仅记录了 2块处于异常状态的盘的 SMART 数据(Bay 0 和 Bay 7),其余 11 块健康盘的 SMART 数据未被纳入报告(这是 Dell TSR 收集机制——仅主动上报异常盘的 SMART,健康盘默认不输出):
| 属性 | Slot 4 (Bay 0) Disk.Direct.0 | Bay 7 Disk.Direct.1 |
|---|---|---|
| 磁盘型号 | Kioxia KPM5XVUG960G | Seagate AL15SEB18EQY |
| 通电时间 | 37,979 小时 (~4.3年) | 37,985 小时 (~4.3年) |
| 剩余寿命 | 49% | 60% |
| Reallocated Block Count | 2(已有扇区重分配) | 0 |
| volatileMemoryBackupSourceFailures | 1249 | 1375 |
| exceptionModeStatus | 517 (Predictive Failure) | 515 (Predictive Failure) |
| uncorrectableErrorCount | 0 | 0 |
| Current Pending Sector | 0 | 0 |
| Media Write Count | 7,401 | 50,227 |
| Drive Temp | 30°C | 30°C |
3. iDRAC 告警事件
mctpmed.c:rt_mpi2SendPacket错误:iDRAC 与 PERC HBA 通信失败,累计 15,152 次,从 2026-04-02 22:12 CST 开始持续Recover i2c bus for segment 6:iDRAC 反复执行 i2c 总线恢复,segment 6 是背板管理总线(磁盘框供电/状态监控)
4. HBA 故障分析
HBA(PERC H750)本身故障可能性极低,证据如下:
- 其余 11块盘全部正常在线,无任何 I/O 错误
- 如果 HBA 有问题,应该所有连接的盘都会受影响,而非只有 2块
- 两块故障盘属于同一背板的不同物理槽位,不在同一 SAS 链路
5. 根因定位:磁盘背板(SAS Expander)
综合所有证据,根因指向磁盘背板的 SAS Expander 芯片局部故障,理由:
(a) 背板供电/管理异常
- 两块盘的
volatileMemoryBackupSourceFailures高达 1249 和 1375——这是 Dell 特有的 SMART 属性,记录磁盘断电保护电容失效次数 - 高值说明背板对这两块槽位的电源管理信号异常,导致磁盘无法可靠地执行电容供电保护
- 两块盘同时出现极高的相同属性,说明它们共用了背板上的同一路供电或管理通道
(b) Dell exceptionModeStatus 告警
exceptionModeStatus = 517/515对应 Dell 内部定义的 Predictive Media Failure(预测性介质故障) 告警- 意味着 Dell 存储管理已独立检测到这两块盘即将失效
(c) i2c 背板管理总线持续恢复
Recover i2c bus for segment 6反复出现:segment 6 是 R740xd 内部背板的管理总线- 持续恢复说明该总线存在硬件卡滞或信号完整性问题
(d) iDRAC ↔ PERC 通信中断
mctpmed.c错误累计 15,152 次:iDRAC 通过 MCTP 与 PERC 通信的路径受阻- 这不是 HBA 挂了(ESXi 还能直接访问 SAS 设备),而是 iDRAC 到 HBA 的带外管理通道出现问题
- 很可能也是背板 expander 局部故障引起的
(e) 两块盘为何同时损坏(vSAN 环境特殊关注)
- 两块盘属于同一批 2020年8月生产的 Toshiba/Kioxia 盘(同批次采购)
- 同批次盘的介质特性接近,同时到达寿命临界点的概率较高
- 但背板供电异常(
volatileMemoryBackupSourceFailures高值)加速了它们的损坏进程 - vSAN 环境中,同节点多盘故障的破坏力远大于传统存储:传统存储中一块盘故障只影响本地 VM,vSAN 中一块盘故障就可能导致集群级别的数据冗余降级
6. 根因结论
主机名 esxi04 的存储故障,根因不是 HBA 卡,而是内部磁盘背板(Backplane)的 SAS Expander 芯片局部故障,影响了 Bay 0 和 Bay 7 两槽位的电源管理和 i2c 通信,导致这两块同批老盘提前失效并产生介质错误。
七、建议处置措施
vSAN 环境紧急处置
vSAN 特殊性:esxi04 是 vSAN 集群节点,操作顺序至关重要——必须先确认集群状态,再对节点动手,避免触发级联故障。
- 立即检查 vSAN 健康状态:vSphere Client → vSAN → Cluster → Health,确认是否有组件处于 Degraded / Absent 状态,记录受影响对象列表
- 评估 FTT 边界:确认有多少虚拟机的存储策略 FTT=0 或 FTT=1 且当前已处于单副本状态,这些 VM 优先保护
- 暂停非必要虚拟机:将可迁移的虚拟机 vMotion 到其他健康节点,降低故障节点承载压力
- 不要立即强制重启或关闭 esxi04,先完成集群状态评估,避免在 vSAN 重建期间人为制造更多离线组件
故障节点处置
- 第一优先:更换磁盘背板——联系 Dell 申请 RMA,在背板未更换前不要盲目换盘,新盘仍会受同样命运
- 同步更换故障的两块盘(Bay 0 和 Bay 7):型号为 Kioxia KPM5XVUG960G 和 Seagate AL15SEB18EQY,新盘容量和型号必须与 vSAN 存储策略兼容
- 收集故障盘日志后下电,避免反复通电极加速盘片进一步损坏
- 检查其余 11 块盘的
exceptionModeStatus,确认无隐性故障盘混入存储池 - 收集以下命令输出备用:
esxcli storage core device listesxcli storage core path listesxcli vsan storage listesxcli vsan cluster get
根因验证
- 检查 Dell PERC H750 的 PD(Physical Disk)状态:iDRAC → Storage → Physical Disks
- 查看背板 FRU/序列号,联系 Dell 申请 RMA(背板本身需要更换)
- 确认 SAS 线缆(背板到 PERC H750)是否老化,必要时一并更换
- 检查
racadm GET System.Storage确认其他 Bay 是否存在隐性异常
长期改进(vSAN 环境)
- 更换背板后,在 iDRAC 中启用 Predictive Disk Failure Alerting,将
exceptionModeStatus变化纳入监控 - 部署每日 SMART 主动巡检告警,对
volatileMemoryBackupSourceFailures > 0的盘提前预警——这是 vSAN 环境最有效的预防性告警 - 对剩余 11 块同批次盘建立更换计划,该批 2020 年产盘已接近寿命末期,建议在 6~12 个月内分批更换;vSAN 支持热添加磁盘,可在线完成
- 考虑升级 iDRAC 固件至最新稳定版(当前 4.20.20.20)
- 评估将 FTT 从 1 提升到 2 的成本与收益,特别是在高价值业务 VM 上
八、总结
本次 vSAN 集群节点 esxi04 存储故障的根本原因是 Dell PowerEdge R740xd 内部磁盘背板的 SAS Expander 芯片局部故障,具体表现为 Bay 0(Kioxia KPM5XVUG960G)和 Bay 7(Seagate AL15SEB18EQY)两块盘的背板供电/i2c 管理信号异常,加速了这两块 2020年同批老盘的失效,最终导致 HPP 存储路径进入持续错误和命令中止的死循环。
HBA 卡本身故障的可能性已被排除——其余 11块盘全程正常在线,无任何 I/O 错误;故障仅集中在同一背板的不同槽位。
vSAN 环境特殊性:本次故障不是单台虚拟机的存储故障,而是整个分布式存储池中两个组件同时离线,可能导致集群处于 FTT 边界状态。vSAN 的自动重建会消耗大量集群 I/O 资源,并存在数据冗余降级的窗口期风险。
iDRAC 日志中最具诊断价值的三个信号:
volatileMemoryBackupSourceFailures高达 1249/1375(背板供电/i2c 信号异常)exceptionModeStatus= 517/515(Dell 预测性介质故障告警)- iDRAC ↔ PERC 通信失败 15,152 次 + i2c 总线持续恢复(背板管理通道异常)
核心建议:更换磁盘背板(Backplane)是第一优先级,在背板未更换前不要盲目更换磁盘。同时优先评估集群 FTT 边界和受影响 VM 范围,避免在 vSAN 重建期间制造二次故障。
以上仅个人的分析以及未雨绸缪的储备,不代表本人实施,本人只分析日志