第268篇:FC 交换机基础:Domain ID、WWN、Zone

关键词

FC 交换机、Domain ID、WWN、Zone、Fabric、FSPF、端口类型、E_Port、N_Port、FC 寻址


一、FC 交换机基础

1.1 FC 交换机的角色

FC 交换机是 FC-SAN 的核心设备,负责在服务器(Initiator)和存储(Target)之间转发数据:

FC-SAN 中的 FC 交换机:

Server A HBA: WWN-A Port: N_Port └──────────────┘ ─────► F_Port(N→F) FC Switch Domain 1 Port Type: └──────────────┘ ◄───── Storage A WWN-C Port: N_Port
│ E_Port(F→F) │
Server B HBA: WWN-B └──────────────┘ ─────► ─── ISL ────► Domain 2 FC Switch └──────────────┘ ◄───── Storage B WWN-D
--- --- --- --- ---
└──────────────┘

核心概念: WWN(World Wide Name):每个 FC 端口的全球唯一标识(64-bit) Domain ID:FC 交换机在 Fabric 中的地址 Port ID(FCID):24-bit 端口地址(Domain_ID + Port_ID + Area) N_Port:节点端口(服务器/存储) F_Port:交换机的节点连接端口 E_Port:交换机之间的级联端口 ISL(Inter-Switch Link):交换机间链路

1.2 端口类型

FC 端口类型详解:

┌──────────┬──────────────────────┬────────────────────┐
│ 端口类型 │ 连接对象              │ 用途               │
├──────────┼──────────────────────┼────────────────────┤
│ N_Port   │ 节点(HBA/存储)      │ 终端设备接入        │
│ F_Port   │ N_Port                │ 交换机面向设备端口  │
│ E_Port   │ 另一 FC 交换机的 E_Port │ 交换机级联         │
│ NL_Port  │ FC-AL 环路节点        │ 仲裁环(已淘汰)    │
│ FL_Port  │ NL_Port               │ 环路接入            │
│ G_Port   │ 通用(自动协商)       │ 自动识别 F/E       │
│ EX_Port  │ 另一 Fabric 的 E_Port  │ 跨 Fabric 连接     │
└──────────┴──────────────────────┴────────────────────┘

华为 FC 交换机配置:
  # 查看端口类型
  display interface fc 1/0/1

  # 配置端口类型(通常自动协商)
  interface fc 1/0/1
   port-type auto                                # 自动协商(推荐)
   trunk enable                                  # 开启 Trunk(多 VSAN)

二、Domain ID

2.1 FC 地址格式

FC 地址(FCID)是 24-bit 地址,格式如下:

Domain 8-bit Area 8-bit Port 8-bit

例子:0x010101 Domain = 0x01(交换机标识) Area = 0x01(端口组) Port = 0x01(具体端口)

Domain ID 范围: 1-239(有效 Domain) 0:未初始化 255:广播 FF-FF-FF:未分配 FF-FF-FE:名称服务器

FC 地址空间限制: 最大 239 个 Domain 每 Domain 最大 256 Area × 256 Port = 65536 端口 总计:239 × 65536 ≈ 1560 万端口(理论上) 实际限制:Domain 数量 239

2.2 Domain ID 分配

Domain ID 分配方式:

方式 1:静态分配(推荐)

  FC Switch1:Domain ID = 1
  FC Switch2:Domain ID = 2
  FC Switch3:Domain ID = 3

  配置:
    # 华为 FC 交换机
    fabric domain 1
    #
    # Brocade FC 交换机
    configure
      domain 1

  优点:
    可预测的地址规划
    易于排错
    避免冲突

方式 2:动态分配

  新交换机加入 Fabric 时:
    1. 发送 Domain ID 请求
    2. Principal Switch 分配未使用的 Domain ID
    3. 全网更新 FSPF 路由表

  缺点:
    地址不可预测
    可能引起路由振荡

Principal Switch 选举:
  FC Fabric 中有一台 Principal Switch
  负责 Domain ID 分配和管理
  选举规则:最高 WWN 或最低 Priority

2.3 Domain ID 冲突

Domain ID 冲突场景:

  场景:两个 Fabric 合并

  Fabric A:Domain 1, 2, 3
  Fabric B:Domain 1, 4, 5

  合并时 Domain 1 冲突!

  解决:
    1. 自动解决
      Principal Switch 要求重复的交换机重新分配 Domain

    2. 手动解决
      预先规划,不重复
      合并前修改一方的 Domain

  配置 Domain ID 冲突检测:
    # 华为 FC 交换机
    fabric domain 1
     domain-check enable                        # 开启冲突检测

  Domain ID 耗尽:
    最大 239 个 Domain
    大型数据中心可能有 100+ FC 交换机
    规划原则:预留增长空间
    跨数据中心:使用不同的 Fabric

三、WWN(World Wide Name)

3.1 WWN 格式

WWN 是 FC 设备的全球唯一标识符(类似以太网的 MAC 地址):

  WWN 格式(64-bit / 8 字节):

    WWN: 10:00:00:90:FA:12:34:56
         │  │              │
         │  │              └─ 厂商分配的序列号
         │  └─ OUI(厂商编码)
         └─ NAA(Network Address Authority)

  NAA(Network Address Authority)类型:

    NAA=1:IEEE 48-bit 地址(OUI + 序列号)
    NAA=2:IEEE Extended(OUI + 扩展 + 序列号)
    NAA=3:Locally Administered
    NAA=5:IEEE Registered Name

  WWN 的种类:

    WWNN(Node WWN):设备本身(每台设备一个)
    WWPN(Port WWN):每个端口(用于 Zone 配置)

      服务器 HBA 卡:
        WWNN: 20:00:00:90:FA:12:34:00(设备)
        WWPN: 10:00:00:90:FA:12:34:01(端口 1)
        WWPN: 10:00:00:90:FA:12:34:02(端口 2)

3.2 WWN 用途

WWN 在 FC-SAN 中的用途:

1. 设备标识
   每台设备有唯一的 WWNN
   每个端口有唯一的 WWPN

2. Zone 配置
   Zone 基于 WWPN 实现访问控制
   Zone 成员 = WWPN 列表

3. 名称服务器(Name Server)
   FC 交换机的名称服务器记录所有设备信息
   包括 WWPN、FCID、端口类型等

   # 查看名称服务器
   display fc name-service

   FCID      WWPN                  Type       
   0x010100  10:00:00:90:FA:12:34:01  N_Port
   0x010200  10:00:00:90:FA:56:78:01  N_Port
   0x010201  10:00:00:90:FA:AB:CD:01  N_Port

4. 多路径(MPIO)
   服务器使用多个 HBA 端口(多个 WWPN)
   存储端看到多个路径
   MPIO 软件做负载分担和故障切换

四、Zone(分区)

4.1 Zone 的概念

Zone 是 FC-SAN 中的"VLAN"——用于隔离设备:

  没有 Zone:
    所有服务器可以看到所有存储 LUN
    不安全、不可控

  有 Zone:
    服务器 A 只能看到存储 A
    服务器 B 只能看到存储 B
    隔离、可控

Zone 的作用:
  1. 访问控制——指定哪些设备可以通信
  2. 安全隔离——不同业务隔离
  3. 减少资源消耗——设备只看到需要的 LUN
  4. Zoning 是软隔离(不是物理隔离)

Zone vs VLAN 对比:
  Zone(FC)           VLAN(以太网)
  ─────────────────────────────────
  WWPN 做成员         MAC/VLAN ID 做成员
  软隔离              硬隔离
  无广播域概念        广播域隔离
  基于 FC 名称服务器  基于 MAC 表

注意:Zone 不能阻止 FC 交换机之间的 ISL 流量转发
      Zone 只控制终端设备的可见性

4.2 Zone 类型

Zone 成员标识方式:

1. WWPN Zoning(推荐)

   zone name DB_Zone
    member 10:00:00:90:FA:12:34:01     # 服务器 HBA
    member 10:00:00:90:FA:56:78:01     # 存储端口 A
    member 10:00:00:90:FA:56:78:02     # 存储端口 B
   #

   优点:WWPN 不变(换交换机也不变)
   缺点:更换 HBA 后 WWPN 改变

2. Domain/Port Zoning

   zone name DB_Zone
    member 0x010100                     # Domain 1, Port 0
    member 0x020100                     # Domain 2, Port 0
   #

   优点:配置简单
   缺点:换端口后需要修改

3. FCID Zoning(最不推荐)

   zone name DB_Zone
    member 0x010101
    member 0x020101
   #

   问题:FCID 是动态分配的

推荐配置方式:
  WWPN Zoning(WWPN 在设备生命周期内不变)
  如换 HBA 卡 → 更新 Zone 的 WWPN 即可

4.3 Zone 配置

华为 FC 交换机 Zone 配置:

# 1. 创建 Zone
zone name DB_Zone
 member 10:00:00:90:FA:12:34:01        # Server HBA1
 member 10:00:00:90:FA:56:78:01        # Storage Port1
 member 10:00:00:90:FA:56:78:02        # Storage Port2
#
zone name Web_Zone
 member 10:00:00:90:FA:AB:CD:01        # Server HBA2
 member 10:00:00:90:FA:56:78:03        # Storage Port3
#

# 2. 创建 Zoneset(激活 Zone)
zoneset name Production
 member DB_Zone
 member Web_Zone
#
# 3. 激活 Zoneset
zoneset activate name Production

# 查看 Zone
display zone
display zoneset
display zoneset active                      # 查看已激活的 Zone

# Brocade 交换机配置示例
alicreate "DB_Zone", "10:00:00:90:FA:12:34:01; 10:00:00:90:FA:56:78:01; 10:00:00:90:FA:56:78:02"
cfgcreate "Production", "DB_Zone; Web_Zone"
cfgenable "Production"

4.4 Zone 最佳实践

Zone 规划最佳实践:

1. 单 Initiator + 多 Target(推荐)

   zone name App1_Zone1
    member 10:00:00:90:FA:12:34:01    # App Server
    member 10:00:00:90:FA:56:78:01    # Storage A
    member 10:00:00:90:FA:56:78:02    # Storage B (冗余)
   #

   每个 Zone 只包含一台服务器的端口
   避免多服务器共享 Zone(减少变更影响)

2. 不推荐:多 Initiator + 多 Target

   zone name Huge_Zone
    member Srv1, Srv2, Srv3           # 多个服务器
    member Storage_ALL                 # 多个存储端口
   #

   问题:所有服务器看到所有 LUN → 不可控

3. VSAN(Virtual SAN)隔离

   使用 VSAN 做物理级隔离:
     VSAN 100:生产
     VSAN 200:测试
     VSAN 300:备份

   每 VSAN 独立运行 FSPF
   完全隔离

五、FSPF 路由协议

5.1 FSPF 原理

FSPF(Fabric Shortest Path First)是 FC 交换机的路由协议:

  FSPF = FC 版的 OSPF

  特性:
    链路状态协议
    基于 Cost 计算最短路径
    支持 ECMP
    快速收敛

  配置:
    # FSPF 默认启用,无需配置
    # 查看 FSPF 路由表
    display fc routing-table

    FC Routing Table:
      Dest Domain  Next Hop(Domain)  Cost   Interface
      0x01         -                 0      Local
      0x02         0x02              1000   fc1/0/1
      0x03         0x03              1000   fc1/0/2
      0x04         0x02              2000   fc1/0/1
                  0x03              2000   fc1/0/2  ← ECMP

  Cost 计算:
    默认:每 ISL 链路 Cost = 1000
    可手动修改:
      interface fc1/0/1
       fc cost 500                           # 更低 Cost → 优先选择

六、总结

知识点 核心要点
Domain ID FC 交换机地址(1-239),类似 OSPF Router-ID
FCID 24-bit 地址(Domain + Area + Port)
WWN 全球唯一标识(64-bit),WWNN(设备)/WWPN(端口)
Zone 基于 WWPN 的访问控制,类似以太网 VLAN
Zoneset Zone 的集合,激活后才生效
端口类型 N(节点)、F(Fabric)、E(级联)
FSPF FC 交换机的链路状态路由协议
最佳实践 单 Initiator 单 Zone,WWPN Zoning

七、思考

  1. FC 地址(FCID)的格式是什么?Domain ID、Area、Port 各占多少位?Domain ID 的最大数量是多少?
  2. WWN 和以太网 MAC 地址在功能上有什么异同?WWPN 和 WWNN 有什么区别?
  3. Zone 在 FC-SAN 中的作用是什么?为什么建议使用 WWPN Zoning 而不是 Domain/Port Zoning?
  4. Zone 和 Zoneset 的关系是什么?为什么需要先创建 Zone 再创建 Zoneset 并激活?
  5. FSPF 是做什么的?如果两个 FC 交换机之间有两条 ISL,FSPF 如何实现负载分担?

下篇预告:第269篇《NVMe over Fabric 协议演进》——从 SCSI 到 NVMe 的存储协议演进,NVMe over Fabrics 的架构与关键协议。