无论是运维,或者是售前方面,验证 High Availability (HA) 和存储多路径配置的正确性至关重要。这需要能够模拟 Fibre Channel (FC) Host Bus Adapters (HBAs) 的“链路故障”或“路径失效”场景,以确保流量能够正确地切换到冗余路径。本文将详细介绍在 ESXi 主机上模拟 FC 链路故障的完整方法。
适用场景
这个方法适用于以下场景:
- 验证存储多路径软件的故障切换机制
- 测试业务连续性和灾难恢复方案
- 验证 HA 配置的正确性
- 进行 Epic 医疗系统的特定验证测试
三种模拟方法
方法一:逻辑模拟(路径隔离)
这种方法在不物理断开电缆的情况下,向存储层模拟“链路故障”状态,是最常用且安全的测试方法。
步骤 1:连接到 ESXi 主机
# 使用 SSH 连接到 ESXi 主机
ssh root@
步骤 2:识别 HBA 和活动路径
# 列出 FC HBA 信息
esxcli storage san fc list
# 列出特定 HBA 的路径信息
esxcli storage core path list | grep -i
步骤 3:禁用特定路径
# 禁用路径(使用运行时名称或 UID)
esxcli storage core path set --state off --path
# 示例(运行时名称格式:vmhba1:C0:T0:L1)
esxcli storage core path set --state off --path vmhba1:C0:T0:L1
步骤 4:验证路径状态
# 验证路径状态是否已变为 "off"
esxcli storage core path list | grep -A 10
步骤 5:恢复路径状态
# 测试完成后,恢复路径状态
esxcli storage core path set --state active --path
方法二:物理模拟
这种方法触发实际硬件级别的链路故障事件,提供最真实的测试环境。
注意: 这种方法需要与物理光纤交换机厂商配合,并且可能会影响生产环境。
步骤 1:登录到 FC 交换机
# 登录到 Brocade 交换机
ssh admin@
# 登录到 Cisco MDS 交换机
ssh admin@
步骤 2:识别连接到 ESXi HBA 的端口
# 在 ESXi 上获取 WWPN(World Wide Port Name)
esxcli storage san fc list
步骤 3:禁用交换机端口
Cisco MDS 交换机:
switch# config t
switch(config)# interface fc1/1
switch(config-if)# shutdown
Brocade 交换机:
switch:admin> portdisable
步骤 4:验证链路状态
# 在 ESXi 上验证链路状态
esxcli storage san fc list
# 应该显示状态为 "LINK DOWN"
步骤 5:恢复端口状态
Cisco MDS 交换机:
switch(config-if)# no shutdown
Brocade 交换机:
switch:admin> portenable
方法三:链路重置(驱动程序重置)
这种方法用于测试驱动程序恢复机制(LIP/FLOGI 重置),而不会产生永久状态变更。
# 重置 FC HBA 以触发链路重置
esxcli storage san fc reset -A
常见问题和解决方案
路径繁忙错误
在使用逻辑模拟方法时,可能会遇到以下错误:
Unable to set path state. Error was: Unable to change path state, the path is marked as 'busy' by the VMkernel.: Busy: VSI node (1966:VSI_NODE_storage_scsifw_paths_state)
原因分析: 该错误表示 VMkernel 正在使用该路径进行关键 I/O(如活动的 VM 流量、VMFS 心跳或引导设备),并且拒绝优雅地禁用该路径。
解决方案: 由于内核正在阻止逻辑模拟,您必须使用物理模拟方法强制进行故障切换。







