症状往往不像分区问题
分区配置错了,表现常常不像「分区有问题」,而像链路或存储故障:主机少了一条路径、看不到新加的 LUN、多路径出现异常设备,甚至本不该互通的两台主机互相干扰。定位方法把故障分三层看:物理链路层、fabric 分区层、阵列映射层。分区层错误的典型特征是「同一主机一条路径好、另一条不通」,或者「改动之后新设备才出问题」。
基本信息
| 适用环境 | FC SAN(iSCSI 环境的分区由网络访问控制替代) |
|---|---|
| 常见症状 | 路径数少于预期、LUN 看不到、变更后设备消失 |
| 定位顺序 | 物理层、fabric 分区层、掩码层 |
| fabric 层检查项 | 名称服务登录情况、zone 成员、是否被激活 cfg 引用 |
| 高频错误 | 拼写错误、未加入激活 cfg、只改一个 fabric、误用 nWWN |
| 处理原则 | 先核对并修正交换机配置,再动主机与光纤 |
典型故障与原因
- 只看到一条路径:该 HBA 端口未加入分区,或另一台交换机的 fabric 未配置
- 新 LUN 看不到:目标端口不在同一 zone,或 zone 建好但没有加入激活的 cfg
- 看到多余设备:分区过宽,多台主机与同一存储端口同区
- 设备突然消失:zone 成员被删或 cfg 被切换,主机收到 RSCN
- 分区看着正确却不通:zone 未进激活 cfg、WWN 拼错、把 nWWN 写进成员
fabric 与主机两侧对照
fabric 与主机两侧对照
# fabric 侧:先看登录,再看分区
switchshow # 端口状态与所在 fabric
nsshow | grep -i <pWWN> # 主机与存储端口是否已登录名称服务
zoneshow "Z_H01_S01" # 成员是否包含两侧、写法是否正确
cfgactvshow # 当前激活的 cfg 名称
cfgshow | grep -c 'Z_H01_S01' # 该 zone 是否被某个 cfg 引用
# 主机侧对照
multipath -ll | grep -c running # 路径数量是否与规划一致
lsscsi -t # 是否出现新设备症状与验证方向
| 症状 | 可能原因 | 验证方法 |
|---|---|---|
| 路径数偏少 | 单个 HBA 未入 zone 或单 fabric 未配置 | 两台交换机分别 zoneshow 核对 |
| 新 LUN 看不到 | 目标端口不在同区、cfg 未激活 | zoneshow 与 cfgactvshow 对照 |
| 看到多余设备 | 分区过宽,多主机同区 | 列成员与主机清单比对 |
| 设备忽隐忽现 | 分区变更或链路抖动触发 RSCN | 查交换机日志与错误计数 |
| 名称服务里没有设备 | 物理层或登录问题,不是分区 | switchshow 端口状态与光功率 |
RSCN 是 fabric 的正常通知机制,分区正确也会在变更时发生;主机侧看到设备被移除又重新加入,通常是变更生效的表现,需要观察的是它有没有恢复稳定。
排障时不要在分区还没核对清楚前反复重扫主机或重启多路径服务,这会掩盖真实原因,把一次可回滚的配置错误扩大成业务中断。