简介:面向数据中心网络运维、存储管理员及SAN架构师,这份15KB的PDF文档聚焦Brocade与Cisco光纤交换机级联配置场景,针对异构SAN环境下统一管理的实际需求,提供清晰的命令行实施指南。内容依次介绍激活前8个端口、配置VSAN互操作模式、预设Domain ID、激活VSAN等核心步骤,并给出show running和show interface brief等验证命令及典型输出,帮助读者快速确认端口状态与配置生效情况。资源为单个PDF文件,篇幅精炼、可直接按步骤操作,适合已具备光纤交换机基础知识、需要完成异构级联调试的中级网络工程师使用。目前已有193人学习下载,对理解两家主流厂商FC交换协议互操作机制具有直接的实战参考价值。
1. 光纤交换机级联为什么会卡在互操作模式上
SAN 里两台不同厂商的光纤交换机做级联,很多时候不是插上光纤就能通的。Cisco MDS 9120 和刀片中心里的 Brocade 交换机模块,一个默认跑 VSAN 原生模式,一个跑标准 Fabric 模式,两侧 E-Port 在协商阶段就会因为互操作模式不一致进入 Segmented 状态,Fabric 建不起来,后面主机和存储的 WWN 注册、zone 下发全都是空谈。这个场景在做存储运维和基础设施的工程师里很常见:刀片服务器要接 DS4300 双控制器存储,存储又挂在独立的光纤交换机上,两端必须先在同一个 Fabric 里协同工作。下面直接按操作顺序给出配置命令链,把 Cisco 侧 Interop 模式配置、Brocade 侧互操作切换、再到 zone 划分与验证完整走一遍,顺带说清哪些参数必须两边对齐、哪些坑最容易踩。
2. Cisco 9120 侧 Interop 模式与域 ID 配置
2.1 先理清三个关键参数的关系
在敲命令之前,需要先理解 VSAN、互操作模式、Domain ID 三者之间的关系。VSAN 在 Cisco MDS 上是虚拟 SAN,相当于把一个物理 Fabric 划分成多个逻辑 Fabric;级联到 Brocade 交换机,则要把参与互操作的端口放进同一个 VSAN,并且把该 VSAN 的互操作模式打开。Cisco 的互操作模式分 1 和 2,模式 1 对应与遵循 FC-SW-2 标准的交换机互操作,Brocade 侧的 interoper mode 1 正好和它对齐;模式 2 主要用于对接老式 McData 设备。所以这里不能凭感觉配,Cisco 侧写成 interop 2,Brocade 侧即使切了 interoper mode 1,E-Port 协商依旧会在 Fabric 参数上卡住。
Domain ID 在 FC Fabric 里是一个 8 bit 的标识,参与 Fabric 构建的所有交换机必须拥有唯一值,交换机用它生成 FCID。原文场景里 Cisco 把 Domain ID 设为 100(十六进制 0x64),Brocade 侧通过 configure 改成 99(0x63),这正好解释了后面show fcns database里为什么刀片服务器的 FCID 以 0x63 开头,存储控制器以 0x64 开头。如果两边 Domain ID 撞车,Fabric 里会出现 PID 冲突,轻则设备注册异常,重则 Fabric 反复重建。还有一个容易被忽略的参数是 PID 格式,Cisco 默认 Core PID 格式,Brocade 侧Switch PID Format必须保持默认值 1,两边格式一致,FCID 的 Domain 段才能对上。
2.2 激活级联端口与进入互操作模式
配置过程按以下顺序执行,先激活端口,再改 VSAN 属性,最后固定 Domain ID:
Cisco-9120# config t Cisco-9120(config)# interface fc1/1-8 Cisco-9120(config-if)# no shutdown Cisco-9120(config-if)# end Cisco-9120(config)# vsan database Cisco-9120(config-vsan-db)# vsan 1 interop Cisco-9120(config-vsan-db)# end Cisco-9120(config)# fcdomain domain 100 preferred vsan 1 Cisco-9120(config)# end第一组命令是把 fc1/1 到 fc1/8 的管理状态置为 up。MDS 的部分端口默认是 shutdown 状态,很多人级联不上第一反应是查光模块,实际先看show interface brief里端口是不是被 Admin Down 掉。第二组命令是关键动作:vsan 1 interop不写参数时默认就是 interop mode 1,把 VSAN 1 切换到标准互操作模式。第三组命令把 VSAN 1 的 Domain ID 优先值设为 100,preferred的含义是“希望分配到 100”,而不是强制占用,如果 Fabric 里已经有交换机占用了 100,协商会失败,所以对端 Brocade 的 Domain ID 必须避开 100。
这里有一个生产环境中容易忽略的动作——VSAN 属性和 Domain ID 修改后不会立即对运行态生效,需要把 VSAN 重新初始化一次:
Cisco-9120# config t Cisco-9120(config)# vsan database Cisco-9120(config-vsan-db)# vsan 1 suspend Cisco-9120(config-vsan-db)# no vsan 1 suspend Cisco-9120(config-vsan-db)# end通过 suspend 再 no suspend 的方式把 VSAN 挂起再恢复,让逻辑 Fabric 重新拉起。我一般会在做这一步前先确认 VSAN 1 上没有正在跑业务的流量,因为挂起 VSAN 会中断该 VSAN 内所有端口的通信,放在维护窗口执行更稳妥。另外注意,切换到互操作模式后,VSAN 内原有的部分配置项会被清掉,比如旧 zone 定义,后面第 4 章会重新划分 zone,这是正常现象,别误以为配置丢了。
2.3 用 show 输出确认 Cisco 侧配置生效
配置完成后,先看 running-config 是否已经包含 interop 和 domain 信息:
Cisco-9120# show running输出中与级联直接相关的是这些行:
vsan database vsan 1 interop 1 fcdomain domain 100 preferred vsan 1 fcdomain fcid persistent vsan 1vsan 1 interop 1表示 VSAN 1 已经处于模式 1 互操作状态;fcdomain domain 100 preferred表示 100 只是优先值,最终生效的 Domain ID 要看 Active 状态;fcdomain fcid persistent表示开启了 FCID 持久绑定,固定 PWWN 的设备会拿到稳定 FCID,方便后续 zone 和监控脚本维护。
再确认端口状态:
Cisco-9120# show interface brief输出简化之后关键信息如下:
| 接口 | VSAN | Admin | Trunk | Status | Oper Mode | Speed |
|---|---|---|---|---|---|---|
| fc1/1 | 1 | auto | on | up | F | 2G |
| fc1/2 | 1 | auto | on | up | F | 2G |
| fc1/3 | 1 | auto | on | up | E | 2G |
| fc1/4 | 1 | auto | on | notConnected | -- | -- |
fc1/3 的 Oper Mode 是 E,说明这个端口已经被识别为 E-Port,也就是级联端口,链路对端是 Brocade 交换机。fc1/1 和 fc1/2 是 F-Port,向下连接服务器 HBA。如果这里看到的状态是 Segmented 或者 Disabled,问题通常不在 Cisco 侧,而在对端 Brocade 的互操作模式、Domain ID 或 Fabric 参数配置,这就进入下一章的内容了。
3. Brocade 刀片中心模块的级联参数调整与重启生效
3.1 Brocade 侧配置的先后顺序
Brocade 刀片中心交换机模块(brocadessm)和 Cisco MDS 的命令体系差异很大:没有 VSAN 概念,用的是 Fabric 参数配置界面,通过interoper mode命令切换互操作模式。它默认跑 Brocade 原生 Fabric 模式,直接级联到 Cisco MDS 上,E-Port 协商会因为模式不匹配失败。配置顺序不能乱:先禁用交换机,再修改 Fabric 参数里的 Domain ID,停掉管理服务,打开 interoper mode,重启交换机,最后重新使能。
先执行:
Brocade-switch:admin> switchdisable Brocade-switch:admin> configureswitchdisable把交换机转为 Offline 状态,避免修改 Fabric 参数的过程中交换机继续参与 Fabric 通信,引起不必要的拓扑震荡。configure进入交互式参数配置,这一步要逐个参数回车确认,误改其他参数的代价很高,所以只改必须改的项,其余保持默认直接回车跳过。生产环境操作前,我习惯先执行一次configupload把当前配置备份到 FTP 或本地,切换互操作模式会丢失有效配置,有备份才能快速回退。
3.2 Domain ID 与 PID 格式的对齐
在 configure 交互中需要重点关注两个参数,第一个是 Domain,第二个是 Switch PID Format:
Fabric parameters (yes, y, no, n): [no] yes Domain: (1..239) [1] 99 R_A_TOV: (4000..120000) [10000] E_D_TOV: (1000..5000) [2000] WAN_TOV: (0..30000) [0] MAX_HOPS: (7..19) [7] Data field size: (256..2112) [2112] Sequence Level Switching: (0..1) [0] Disable Device Probing: (0..1) [0] Suppress Class F Traffic: (0..1) [0] Switch PID Format: (1..2) [1] Per-frame Route Priority: (0..1) [0] Long Distance Fabric: (0..1) [0] BB credit: (1..27) [16] Insistent Domain ID Mode (yes, y, no, n): [no]Domain 从默认的 1 改成 99,这一项必须和 Cisco 侧错开。Cisco 用 100,这里选 99,两者在 PID 格式一致的情况下,FCID 前两位分别是 0x63 和 0x64,Fabric 中不会出现重复 PID。注意 Domain 范围是 1 到 239,1 是单交换机环境下的默认域,级联环境必须改掉,否则两个交换机都是 Domain 1,E-Port 协商会直接隔离。
Switch PID Format保持默认 1。这个参数控制 FCID 的组成格式,格式 1 是 Core PID 格式,Cisco 侧默认使用相同格式。如果 Brocade 切到格式 2,两边生成 FCID 的解析规则不同,Fabric 也许能建立,但show fcns database看到的 FCID 无法与物理端口一一对应,排障时非常痛苦。这里的原则是:宁可不改也别动。
Insistent Domain ID Mode保持 no,意味着 Domain ID 是协商式的。Cisco 侧配了 preferred 100,Brocade 配了 99,Fabric Principal Switch 选举完成后会自动收敛。如果两边都开启 Insistent 模式且 ID 冲突,交换机会直接进入 Segmented 状态,这也是异构级联里最典型的问题之一。一般只有在多交换机大规模 Fabric 里才建议开启,小型级联保持默认即可。
3.3 切换到互操作模式并重启
Fabric 参数改完,继续执行切换动作:
Brocade-switch:admin> msPlMgmtDeactivate Switch is in Offline state. Brocade-switch:admin> interoper mode 1 The switch effective configuration will be lost when the operating mode is changed; do you want to continue? (yes, y, no, n): [no] y Interopmode is enabled Note: It is recommended that you reboot this switch for the new change to take effect. Brocade-switch:admin> fastbootmsPlMgmtDeactivate是停掉平台管理服务,在刀片中心模块上这个服务会占用部分 Fabric 资源,切换到互操作模式前先停掉它是标准流程。interoper mode 1和 Cisco 侧的vsan 1 interop 1是配套的,系统会明确提示切换模式将丢失当前有效配置,确认后模式生效。
这里最关键的坑是:interoper mode 切换后必须重启才真正生效,所以执行fastboot。重启后的 Brocade 交换机会以 Interop 模式重新加入 Fabric,与 Cisco 的 E-Port 重新协商。在重启间隙,Cisco 侧的 E-Port 会短暂进入 Isolation 状态,等 Brocade 回来后再自动恢复,这属于正常现象,不要在中途去手动 shutdown 端口。
3.4 重启后确认 Interop 模式与 E-Port
重启完成后依次执行:
Brocade-switch:admin> switchenable Brocade-switch:admin> switchshowswitchshow输出里的关键行如下:
switchState: Online switchMode: Interop switchRole: Principal switchDomain: 99 switchWwn: 10:00:00:05:1e:02:78:c6 Area Port Media Speed State ============================== 0 0 id 2G No_Light 1 1 cu 2G Online F-Port 21:00:00:14:5e:24:a9:04 ... 15 15 id 2G Online E-Port 20:01:00:0d:ec:06:b4:41 (downstream)switchMode: Interop表示互操作模式已经生效,switchDomain: 99表示配置的域 ID 被实际分配。端口 15 状态 Online 且是 E-Port,对端 WWN 是 20:01:00:0d:ec:06:b4:41,这就是 Cisco 9120 的级联端口 WWN。看到E-Port Online并且显示(downstream),说明两个异构交换机的 Fabric 已经成功合并。到这里物理级联就通了,接下来才是真正对业务有意义的 zone 划分。
4. 级联后的 Zone 划分与路径隔离
4.1 先通过 FNS 数据库拿到设备 WWN
Fabric 合并后,Cisco 侧可以查看包括 Brocade 端口在内的所有登录设备,这一步是划分 zone 的前提:
Cisco-9120# show fcns database vsan 1输出节选如下:
VSAN 1: -------------------------------------------------------------------------- FCID TYPE PWWN (VENDOR) FC4-TYPE:FEATURE -------------------------------------------------------------------------- 0x630100 N 21:00:00:14:5e:24:a9:04 scsi-fcp 0x630200 N 21:00:00:14:5e:24:a9:36 scsi-fcp 0x630300 N 21:00:00:14:5e:24:a9:7a scsi-fcp 0x630400 N 21:00:00:14:5e:24:a9:b6 scsi-fcp 0x640000 N 20:07:00:a0:b8:21:19:9f (SymBios) scsi-fcp:both 0x640100 N 20:06:00:a0:b8:21:19:9f (SymBios) scsi-fcp:bothFNS(Fabric Name Server)数据库记录的是 Fabric 中所有 N 端口注册信息。PWWN 是端口世界名称,每个 HBA 和存储控制器端口都有唯一值,zone 划分必须用 PWWN 而不是 FCID,因为 FCID 在交换机重启或链路易主后可能变化,PWWN 终身不变。scsi-fcp 表示设备注册的是 FCP 块设备服务,两台 SymBios 设备是 DS4300 存储的双控制器。这里能看到一个典型场景:8 台刀片服务器(FCID 以 0x63 开头)和 2 个存储控制器端口(FCID 以 0x64 开头)注册在同一个 VSAN 里,如果没有 zone,任意一台刀片都能看到存储的两个控制器端口,误操作风险和 RSCN 风暴影响范围都会被放大。
4.2 用 PWWN 建 zone 和 zoneset
规划两个 zone:blade_hs20_1-4 放前 4 台刀片的 WWN 加存储双控制器 WWN,blade_hs20_5-8 放后 4 台刀片加存储双控制器 WWN。存储的两个控制器都加入每个 zone,是为了保证 zone 内主机在控制器故障切换后还能访问另一条路径。
Cisco-9120# config t Cisco-9120(config)# zone name blade_hs20_1-4 vsan 1 Cisco-9120(config-zone)# member pwwn 21:00:00:14:5e:24:a9:04 Cisco-9120(config-zone)# member pwwn 21:00:00:14:5e:24:a9:36 Cisco-9120(config-zone)# member pwwn 21:00:00:14:5e:24:a9:7a Cisco-9120(config-zone)# member pwwn 21:00:00:14:5e:24:a9:b6 Cisco-9120(config-zone)# member pwwn 20:07:00:a0:b8:21:19:9f Cisco-9120(config-zone)# member pwwn 20:06:00:a0:b8:21:19:9f Cisco-9120(config-zone)# exit Cisco-9120(config)# zone name blade_hs20_5-8 vsan 1 Cisco-9120(config-zone)# member pwwn 21:00:00:14:5e:24:a9:28 Cisco-9120(config-zone)# member pwwn 21:00:00:14:5e:24:aa:f6 Cisco-9120(config-zone)# member pwwn 21:00:00:14:5e:24:aa:f0 Cisco-9120(config-zone)# member pwwn 21:00:00:14:5e:24:a9:38 Cisco-9120(config-zone)# member pwwn 20:07:00:a0:b8:21:19:9f Cisco-9120(config-zone)# member pwwn 20:06:00:a0:b8:21:19:9f Cisco-9120(config-zone)# end需要注意,zone name 是大小写敏感的,后面 zoneset 里引用必须完全一致。每个 zone 都包含存储的两个控制器端口,这是双活控制器存储的标准做法。如果某个刀片需要同时访问两个 zone 里的存储端口,就把对应 PWWN 追加到相应 zone,不要通过跨 zone 共享来扩大访问范围,否则 zone 隔离就失去意义了。
然后创建 zoneset 并加入两个 zone:
Cisco-9120# config t Cisco-9120(config)# zoneset name ds4300_blade vsan 1 Cisco-9120(config-zoneset)# member blade_hs20_1-4 Cisco-9120(config-zoneset)# member blade_hs20_5-8 Cisco-9120(config-zoneset)# end Cisco-9120# config t Cisco-9120(config)# zoneset activate name ds4300_blade vsan 1 Cisco-9120(config)# end一个 VSAN 里可以定义多个 zoneset,但同时只能激活一个。激活后,Fabric 中所有交换机都会收到同一份有效 zone 配置,这就是异构级联下 zone 管理的核心机制:配置在 Cisco 侧下发,通过 Fabric 的 zone server 同步给 Brocade。激活 zoneset 时如果某个 zone 成员在 FNS 数据库里不存在,命令依然能成功但会给出告警,zone 不会自动剔除无效成员,所以激活前最好核对一遍show fcns database。
4.3 验证 zone 在 Cisco 和 Brocade 两侧的同步
激活后用show zone active确认 Cisco 侧生效:
Cisco-9120# show zone active vsan 1输出里每个 zone 下的成员同时带出 FCID 和 PWWN,比如 blade_hs20_1-4 中包含 fcid 0x630100 对应 pwwn 21:00:00:14:5e:24:a9:04,以及存储控制器的 0x640000 和 0x640100。此时 FCID 前两位 0x63 和 0x64 分别对应 Brocade Domain 99 和 Cisco Domain 100,说明前面第 2、3 章的域 ID 规划在 zone 层面得到了验证。最后保存配置:
Cisco-9120# copy running startupBrocade 侧不需要敲任何 zone 命令,直接查看有效配置:
Brocade-switch:admin> cfgshow输出中 Defined configuration 显示 no configuration defined,是因为 zone 定义在 Cisco 侧,Brocade 本地没有定义区;但 Effective configuration 里能看到完整的 cfg: ds4300_blade 以及两个 zone 各自的 PWWN 成员列表,证明 Fabric 已经通过 zone server 把有效配置同步下来。这也是判断级联是否真正可用的关键证据:Brocade 侧能看到 Cisco 下发的 zone,说明互操作模式、域 ID、E-Port 三层全部打通。
两侧验证命令可以按这个对照表操作:
| 检查项 | Cisco 命令 | Brocade 命令 |
|---|---|---|
| 级联端口状态 | show interface brief | switchshow |
| 设备注册信息 | show fcns database vsan 1 | nsshow |
| 激活 zone 内容 | show zone active vsan 1 | cfgshow |
| 保存配置 | copy running startup | cfgsave / configupload |
5. 级联收尾验证与常见故障定位
5.1 用三层验证确认级联真的可用
配置全部完成后,按从底向上的顺序验证,避免在 zone 问题上反复排查物理层故障。
第一层验证 Fabric 是否合并。Cisco 侧show fcns database vsan 1能看到 Brocade 端口下注册的刀片 WWN,Brocade 侧switchshow能看到 C isco 侧级联端口对应的 E-Port。只要有一侧看不到对端设备,说明 Fabric 合并有问题,回到第 2、3 章检查互操作模式和 Domain ID,不要急着改 zone。
第二层验证 zone 是否同步。Cisco 侧show zone active vsan 1与 Brocade 侧cfgshow的成员必须完全一致。常见异常是 Cisco 侧已激活、Brocade 侧 Effective configuration 为空,原因通常是 Brocade 没有处于 Interop 模式,或者重启后没重新加入 Fabric。此时在 Brocade 侧执行cfgdisable再cfgenable,强制重新读取 Fabric 有效配置,多数情况下能恢复。
第三层验证业务路径。在刀片服务器操作系统里确认 HBA 是否识别到存储控制器。Linux 环境可以用systool -c fc_host -v或cat /sys/class/fc_host/host*/port_name查看,Windows 环境在设备管理器里查看 FC 适配器状态。能看到 DS4300 两个控制器的 WWN,且多路径软件认到两条路径,才算真正完成。
5.2 高频故障与处理手法
E-Port 显示 Segmented 而不是 Online。优先对比两侧互操作模式:Cisco 侧show running确认vsan 1 interop 1,Brocade 侧switchshow确认switchMode: Interop。两端不一致时,链路无法建立,这是级联失败的最高频原因。
Domain ID 冲突导致 Fabric 反复重建。Cisco 配了 100,Brocade 就必须避开 100,反过来也一样。建议在级联前先确定域 ID 分配表,把两个平台的 Domain 和用途记录在变更文档里,别等 Fabric 报错再改。
Brocade 侧修改 Domain ID 后端口显示 No_Light。先确认是不是忘记执行switchenable,Brocade 交换机处于禁用状态时端口一律不发光,这个现象最容易误导排障方向,我见过有人因此换了一轮光模块。
Cisco 侧 E-Port 起来后,刀片 HBA 链路闪断。这通常是 Brocade 侧fastboot重启的间隙造成的,属于预期行为。如果刀片上跑着生产数据库,整个级联操作必须放在维护窗口内执行,并且在操作前用switchshow和cfgshow完整留档,方便出现异常时快速回退。
本文还有配套的精品资源,点击获取