路径冗余的判断口径
多路径软件把主机 HBA、交换机、阵列控制器端口之间可能的多条通路聚合成一个逻辑卷,任一条通路失效时 IO 能继续走其他通路。判断冗余是否真的存在,要看这些通路是否落在不同故障域:同一块 HBA、同一台交换机、同一个控制器上的两条路径,在其中任一点故障时会同时失效。因此「路径条数」不等于「容错能力」。
基本信息
| 关键概念 | HBA 端口、交换机 zone、阵列目标端口、ALUA 属主关系、多路径聚合设备 |
|---|---|
| 常见状态 | active / ready、ghost / standby、failed、faulty,各厂商命名略有差异 |
| 冗余判定 | 同一故障域内独立通路至少两条,且分属不同控制器与交换机 |
| 配置要点 | zone 需同时覆盖两侧控制器端口,路径与设备需在重启后自动恢复 |
| 性能相关 | ALUA 优化路径与非优化路径混用会造成延迟差异,需按策略优选 |
| 验证入口 | 主机侧多路径工具输出与阵列侧端口状态需要互相印证 |
典型使用场景
- 上线验收时确认每个卷的路径数量与分属控制器是否满足设计要求
- 交换机或控制器维护窗口前,核对停机一侧后剩余路径能否独立支撑业务
- 故障演练前先验证冗余,避免把演练变成真实事故时
- 日常巡检发现路径数量比设计值少,定位是 zone 漏配还是端口故障时
- 重启后业务正常但路径只剩一条,排查路径恢复是否具备持久化与时序依赖时
核对路径与故障域
核对路径与故障域
# 列出聚合设备、路径数量与每条路径的状态与所属控制器
multipath -ll
# 查看路径与设备映射关系,确认是否存在单点
lsblk -S
# FC 场景看远端端口与本地端口是否成对出现
# 设备名与编号随环境变化,以本机输出为准
ls /sys/class/fc_remote_ports/
# 路径抖动与 fail / reinstate 会落在内核日志里
journalctl -k --since '2 hours ago' | grep -Ei 'path|fail|reinstate'路径状态读法
| 状态 | 含义 | 正常/异常 |
|---|---|---|
| active / ready | 可承载 IO 的通路 | 至少两条且分属不同控制器为正常 |
| ghost / standby | 可切换但不承载 IO 的通路 | 需确认属主关系与业务预期一致 |
| failed / faulty | 当前不可用的通路 | 出现即视为冗余下降,需定位原因 |
| 路径组优先级 | 多路径选路依据 | 全部集中在一组时需检查策略 |
路径检查要包括恢复能力:重启后路径能否自动回来、多路径服务是否开机自启、zone 配置是否已持久化。能切过去但切不回来,是运维中最常见的隐蔽故障。
做交换机或控制器维护前必须先核对剩余路径,并在窗口内持续观察 IO 状态;只按设计文档相信冗余,是演练变事故的典型路径。