分区粒度决定可见性
分区(zone)定义一组允许互相通信的成员,多个 zone 组成分区集(zoneset),只有被激活的分区集才会真正生效。单分区做法是把所有主机与存储端口放进同一个 zone,等于全互通:配置量最少,但任何主机都能看到全部存储端口,一旦主机侧多路径或操作系统配置出错,就可能访问到本不属于它的卷,而且这种访问关系在配置里完全看不出来,审计时也无从核对。多分区做法是按访问关系拆分,最常见的是单发起端分区——每个 zone 只放一台主机的端口与其需要访问的存储端口,可见范围被精确限制在业务需要之内。当多台主机需要共享同一存储端口时(如集群共用卷),才把它们放进同一个多发起端 zone。
两种粒度对比
| 维度 | 单分区 | 多分区 |
|---|---|---|
| 可见范围 | 所有成员互相可见 | 仅能看到授权路径 |
| 配置工作量 | 少,改动集中在少数规则 | 多,按主机与存储对应关系展开 |
| 误写风险 | 高,主机可见多余设备 | 低,访问范围被严格限制 |
| 可审计性 | 差,看不出业务访问关系 | 好,每台主机对应明确的 zone |
| 扩展性 | 成员增多后难以维护 | 新增主机只增加一个 zone |
| 适用场景 | 极小的测试环境 | 生产环境与多业务共存环境 |
基本信息
| 生效机制 | zone 需被包含在已激活的分区集中才生效 |
|---|---|
| 常见做法 | 单发起端分区,每台主机单独一个 zone |
| 例外情况 | 集群共享卷时使用多发起端 zone,成员仅限于集群节点 |
| 级联影响 | 分区集在 fabric 内的传播方式因厂商实现而异,需确认是否全网一致 |
| 默认分区 | 未加入任何 zone 的设备能否通信取决于厂商的默认策略 |
| 变更要求 | 分区变更应纳入变更流程,并记录变更前后的可见性差异 |
典型使用场景
- 生产环境标准化:按「一台主机一个 zone」建区,新增主机只追加规则而不改动现有结构
- 集群共享卷:把集群内所有节点放入同一个多发起端 zone,保证共享路径一致
- 多业务共用一个存储:不同业务的 host zone 分离,防止跨业务误访问
- 多交换机级联:变更前确认分区集能否在全部交换机上同步生效,避免部分交换机策略不一致
- 迁移与割接:按新旧主机分别建 zone,实现访问关系的平滑切换与回退
默认分区的行为差异容易被忽略:在部分实现中,未加入任何 zone 的设备默认可以互相通信,新增设备若忘记建区就会自动获得访问能力;另一些实现则默认拒绝。新增设备前应确认当前 fabric 的默认策略。
级联 fabric 中分区变更影响面更大:分区集需要在整个 fabric 内保持一致,若某台交换机未同步成功,可能出现「部分主机可访问、部分不可访问」的状态。变更应在维护窗口进行,变更后逐台核对生效情况。