组是为了视图一致
主机组(各厂商叫 host group、initiator group 或 storage group)把多台主机或它们的启动器端口组织成一个对象,目的是让一组主机共享同一批卷,并在这些卷上看到一致的 LUN 号。最典型的用途是集群:集群每个节点都要看到同一组共享卷,集群软件还依赖各节点设备视图一致,用主机组可以避免逐台维护映射、避免编号错位。设计动作其实只有三件:谁和谁属于一组、每个节点贡献哪些 WWN、这一组能看到哪些卷。
基本信息
| 适用环境 | 块存储阵列(FC 与 iSCSI) |
|---|---|
| 对象含义 | 一组主机或启动器端口的集合 |
| 设计目标 | 视图一致、编号一致、便于批量维护 |
| 成员内容 | 主机名(说明用)与每个 HBA 端口的 pWWN |
| 归属规则 | 同一集群放同一组,一台主机尽量只属一个组 |
| 编号策略 | 同一组内 LUN 号统一,便于排障与扩容 |
设计原则
- 按业务与故障域划分分组,而不是按机柜或采购批次
- 同一集群的所有节点放入同一组,保证共享卷视图一致
- 一台主机所有 HBA 端口(含两个 fabric)都加入同一组
- 尽量避免一台主机跨多个组,跨组最容易出现 LUN 号冲突
- 组名与主机名保持可追溯,排障与审计时无需靠记忆还原
成员与一致性核对
成员与一致性核对
# 主机侧:逐个 HBA 端口取 pWWN,交给存储侧登记
cat /sys/class/fc_host/host*/port_name
systool -c fc_host -v | grep -E 'port_name|port_state' # 端口名与状态
# 集群一致性:各节点可见设备是否一致
for n in node1 node2; do ssh $n 'lsblk -o NAME,SIZE,WWN'; done
# 按 WWID 比对各节点看到的同一批卷
multipath -ll | grep -E 'size|wwid'设计项与风险
| 设计项 | 推荐做法 | 偏离后的风险 |
|---|---|---|
| 分组维度 | 按业务与故障域 | 混装后单机故障牵连多业务 |
| 集群成员 | 同集群同组 | 视图不一致,集群误判 |
| HBA 端口 | 全部端口加入同组 | 单路径或某节点看不到盘 |
| 主机归属 | 一台主机一个组 | 跨组 LUN 号冲突,卷只认一个 |
| 命名 | 与主机名可追溯 | 排障时对象与实物对不上 |
有的阵列把主机与主机组分开管理(先建主机再加组),有的在组内直接维护启动器列表。集群场景推荐先建单机对象再组合,单机维护时改动面更小。
一台主机同时属于多个组时,如果不同组把不同卷分配成相同 LUN 号,主机侧会表现为少一个设备,排查方向常常被误导到链路层。