
1. 项目概述从零上手博科SAN交换机刚接触存储区域网络SAN的时候很多人都会被那些专用的光纤通道交换机搞得一头雾水。它们不像我们熟悉的以太网交换机有Web界面点点鼠标就能配好。尤其是博科Brocade的交换机命令行风格独特概念也自成体系新手很容易在第一步就卡住。我最早接触的就是一批华为SNS系列交换机它们实际上是博科交换机的OEM产品内核和操作逻辑完全一致。今天我就以这批设备为例把博科SAN交换机从开箱到基本业务上线的配置流程掰开揉碎了讲清楚。无论你是运维、存储工程师还是刚入行的朋友这篇内容都能帮你绕过我当年踩过的坑快速掌握这套核心存储网络设备的配置要领。简单来说博科SAN交换机的核心任务是在服务器主机和存储阵列之间建立一条高速、可靠、隔离的专用数据通道。它的配置核心围绕着几个关键点交换机本身的基础网络参数方便管理、光纤通道域Fabric的构建、端口的划分与配置以及最终让主机和存储能够互相识别并通信。理解了这条主线配置就不再是一堆零散的命令而是一个有逻辑的过程。接下来我们就一步步拆解。2. 核心概念与配置前准备在动手敲命令之前必须理解几个基石概念这能让你明白每一步在做什么而不是机械地复制粘贴。2.1 理解光纤通道与Fabric你可以把光纤通道Fibre Channel, FC理解为存储领域的“专用高速公路”而以太网是“综合国道”。FC协议生来就是为了在服务器和存储之间传输大块数据Block Data设计的延迟极低吞吐量高而且与前端业务网络IP网络物理隔离安全性好。多个FC交换机通过ISLInter-Switch Link链路连接起来就构成了一个Fabric网络。在一个Fabric里每台设备交换机、主机HBA卡、存储阵列前端端口都会被分配一个唯一的光纤通道地址FCID就像IP地址一样用于寻址。我们配置交换机的很大一部分工作就是在管理和优化这个Fabric。2.2 华为SNS系列与博科的关系我手头这批华为SNS2224交换机就是典型的OEM产品。这意味着硬件由华为提供并贴牌。软件/操作系统完全运行博科的Fabric OSFOS。这是关键所有配置命令、管理逻辑、甚至BUG都和原厂博科交换机一模一样。管理你可以使用博科的官方管理工具如Brocade Network Advisor也可以用命令行。华为可能提供自己的管理界面外壳但底层调用的仍然是FOS的API。所以所有针对博科交换机的配置指南、最佳实践、故障排查方法都100%适用于华为SNS系列。在本文中我会统一使用“交换机”或“博科交换机”来指代。2.3 准备工作清单在登录交换机之前请确保准备好以下事项连接方式准备一根串口线Console线用于初始配置一根网线用于后续的带外管理IP网络。串口是救命稻草当IP配错或网络故障时它是唯一的入口。终端软件如SecureCRT、PuTTY、Xshell等设置串口连接参数波特率9600数据位8停止位1无奇偶校验无流控。这是标准配置。网络信息规划好交换机的管理IP地址、子网掩码、网关。这个IP用于SSH/Telnet登录和SNMP监控与FC数据网络无关。Fabric规划域名Domain IDFabric中每台交换机需要一个唯一Domain ID范围1-239。必须提前规划好避免冲突。端口规划哪些端口用于连接服务器主机端口哪些用于连接存储目标端口哪些用于连接其他交换机ISL端口。通常前几个端口如0-7用于ISL后面的端口用于设备连接。账户信息默认用户名通常是admin密码可能是password或空。首次登录后必须立即修改注意在生产环境中强烈建议在实施前在测试环境或离线环境下验证配置脚本。直接在生产Fabric上操作不熟悉的命令风险极高。3. 初始登录与基础系统配置拿到一台全新的或恢复出厂设置的交换机我们首先需要通过Console口为其“注入灵魂”——配置管理IP和基础参数。3.1 通过Console口登录用串口线连接电脑和交换机的Console口打开终端软件。给交换机上电你会看到一串启动信息。启动完成后会提示你登录。Brocade FOS login: admin password: 输入默认密码如 password可能直接回车登录成功后提示符会变为Switch:admin这表明你处于用户执行模式User EXEC mode。3.2 配置管理IP地址这是让交换机接入管理网络的关键一步。我们通常在configure模式下进行。Switch:admin enable Switch:admin# configure Switch:admin (config)# ipaddrset此时系统会进入一个交互式设置流程。你需要依次输入Ethernet IP Address [当前IP]输入你规划的管理IP例如192.168.1.100。Ethernet Subnetmask [当前掩码]输入子网掩码例如255.255.255.0。Gateway IP Address [当前网关]输入网关地址例如192.168.1.1。后续关于IPv6的配置如果不用可以一路回车跳过。配置完成后可以使用ipaddrshow命令来验证。Switch:admin ipaddrshow SWITCH Ethernet IP Address: 192.168.1.100 Ethernet Subnetmask: 255.255.255.0 Gateway IP Address: 192.168.1.1 ...3.3 基础安全与管理员配置默认密码必须修改并建议创建一个具有更高权限的超级用户通常使用root账户但需先启用。修改admin密码Switch:admin passwd Old password: 输入当前admin密码 New password: 输入新密码 Confirm new password: 再次输入新密码配置root用户可选但建议默认root用户可能被禁用。首先启用并设置密码。Switch:admin userconfig --add root -p 这里-p后面直接跟密码或者根据提示输入然后你可以切换到root用户获得最大权限提示符变为Switch:root。Switch:admin su root Password: 输入root密码实操心得很多批量配置脚本需要root权限。但在日常查看和简单操作时使用admin账户更安全遵循权限最小化原则。务必保管好root密码。4. Fabric构建与交换机级配置有了管理IP我们可以通过SSH远程登录了。接下来是构建Fabric的核心步骤。4.1 配置交换机域名Domain IDDomain ID是交换机在Fabric中的唯一标识至关重要。如果有多台交换机需要级联形成ISL必须确保它们的Domain ID不冲突。Switch:admin configure Switch:admin (config)# switchcfgpersistentenable # 启用配置持久化非常重要 Switch:admin (config)# switchcfgdefault # 将交换机恢复到一个干净的默认Fabric配置状态 Switch:admin (config)# switchcfgdomainid id # 例如switchcfgdomainid 10 Switch:admin (config)# switchcfgenable # 启用新的Domain ID配置 Switch:admin (config)# switchshow # 查看交换机状态确认Domain ID在switchshow的输出中第一行通常会显示switchName:和switchDomain:这里就能看到配置的Domain ID。4.2 配置交换机名称Switch Name给交换机起一个有意义的名字方便在多交换机的Fabric中识别。Switch:admin switchname 名称 # 例如switchname SNS2224_A4.3 配置Fabric相关参数Fabric OS版本与License使用version查看FOS版本licenseshow查看激活的许可证。某些高级功能如Trunking、高级监控需要特定License。查看基础信息chassisshow可以查看交换机型号、序列号、硬件模块等信息用于资产核对和故障排查时提供硬件详情。4.4 配置级联ISL如果需要连接两台交换机扩展Fabric需要使用ISL。将两台交换机的指定端口用光纤连接起来。确认端口类型使用portshow查看端口状态连接前端口可能是No_Light无光。连接光纤将光纤分别插入两台交换机的端口例如都插在端口0。观察端口状态再次使用portshow 0查看。如果物理连接正常端口类型会变为E-Port扩展端口用于ISL并且会显示对端交换机的WWN全球唯一名称和Domain ID。验证Fabric合并在任意一台交换机上使用fabricshow命令应该能看到两台交换机的信息表明它们已成功加入同一个Fabric。注意事项配置ISL前务必确保两台交换机的Fabric OS主版本号一致否则可能无法正常建立ISL或导致不稳定。同时检查并确保用于ISL的端口速率、长波/短波等物理参数匹配。5. 端口配置与设备连接这是将服务器和存储接入Fabric的关键环节。博科交换机端口有多种类型我们需要根据连接对象的角色来配置。5.1 理解端口类型F-Port (Fabric Port)最常见的类型用于连接服务器HBA或存储阵列前端端口。设备通过F-Port登录到Fabric。E-Port (Expansion Port)用于交换机之间的级联形成ISL。N-Port (Node Port)指服务器HBA卡或存储阵列端口本身的类型它们连接到交换机的F-Port。G-Port (Generic Port)通用端口由交换机自动协商决定最终变为F-Port还是E-Port。这是端口的默认状态。5.2 配置端口为F-Port连接服务器/存储通常连接终端设备的端口我们期望它固定为F-Port避免自动协商可能带来的问题。例如我们将端口10-20规划为连接服务器的端口。Switch:admin portcfgpersistentenable # 启用端口配置持久化 Switch:admin portcfgshow 10 # 先查看端口10的当前配置 Switch:admin portcfg 10 # 进入端口10的配置模式 portcfg porttype f_port # 将端口类型强制设置为F-Port portcfg exit对于批量配置可以写一个简单的脚本for port in {10..20}; do portcfg $port porttype f_port exit done5.3 配置端口别名Port Alias给端口设置一个易于理解的别名比记端口号方便得多。这在大型Fabric中尤其重要。Switch:admin alicreate DB_Server_01_HBA0, 10 # 创建别名将端口10命名为 DB_Server_01_HBA0 Switch:admin alicreate Storage_Controller_A_P0, 11 # 将端口11命名为 Storage_Controller_A_P0 Switch:admin alishow # 显示所有别名配置5.4 配置分区Zoning—— 安全与访问控制的核心分区是SAN安全的核心机制。它决定了Fabric中哪些设备通过WWN识别可以互相通信。没有分区所有登录到Fabric的设备理论上都能互相看见这是极大的安全风险。分区的基本元素成员Member可以是端口的别名Alias也可以是设备的WWN。分区Zone一组允许互相通信的成员的集合。分区配置Zone Configuration多个分区的集合。生效分区配置Enabled Zone Configuration被激活并应用于整个Fabric的分区配置。创建一个简单的分区配置示例假设服务器WWN: 10:00:00:00:c9:aa:bb:cc连接在端口10存储阵列端口WWN: 50:00:00:00:c9:11:22:33连接在端口11。我们要允许它们通信。创建分区Switch:admin zonecreate Zone_DB_to_Storage, 10:00:00:00:c9:aa:bb:cc; 50:00:00:00:c9:11:22:33更佳实践是使用别名Switch:admin zonecreate Zone_DB_to_Storage, DB_Server_01_HBA0, Storage_Controller_A_P0创建分区配置并添加分区Switch:admin cfgcreate Config_Production, Zone_DB_to_Storage # 创建名为Config_Production的配置并包含刚才的分区保存配置Switch:admin cfgsave # 将分区配置保存到闪存系统会提示你确认并可能要求你输入Fabric的密码如果设置了cfgpasswd。启用分区配置Switch:admin cfgenable Config_Production # 将此配置生效到整个Fabric验证分区Switch:admin zoneshow # 显示所有分区定义 Switch:admin cfgshow # 显示当前的分区配置及其成员 Switch:admin cfgactiveshow # 显示当前生效的分区配置核心技巧分区配置的生效是原子性的。当你执行cfgenable时交换机会计算新旧配置的差异然后瞬间切换业务中断时间极短。这是在线调整分区的基础。另外强烈建议使用**别名Alias**而非直接的WWN来创建分区这样即使服务器更换了HBA卡WWN变了也只需要更新别名到新WWN的映射而无需修改所有相关的分区定义可维护性大大提升。6. 日常维护与监控命令配置完成后日常运维需要一些命令来查看状态和健康度。6.1 查看交换机整体状态switchshow最全面的交换机状态概览显示所有端口状态、速度、类型等。fabricshow显示Fabric中所有交换机的信息包括Domain ID、WWN等。nsshow显示所有注册到本交换机的设备N_Port信息包括WWN、连接的端口、别名等。这是查看“谁连在Fabric上”的主要命令。porterrshow显示所有端口的错误计数器如CRC错误、编码错误、链路故障等。定期检查有助于发现潜在物理层问题。sfpshow显示SFP光模块的温度、电压、收发光功率等信息用于诊断物理链路质量。6.2 查看具体端口信息portshow portnumber查看指定端口的详细信息包括状态、速度、收发光功率、对端WWN等。portstatsshow portnumber查看指定端口的详细流量统计包括发送/接收的帧数、字节数、丢帧数等。6.3 配置保存与备份博科交换机的运行配置非持久化和启动配置持久化是分开的。configure模式下的修改通常需要显式保存才能持久化。保存配置configupload命令可以将当前配置保存到闪存。更常见的做法是在configure模式下直接使用save命令。Switch:admin configure Switch:admin (config)# save备份配置使用configupload命令可以将配置备份到TFTP/FTP/SFTP服务器这是非常重要的灾备步骤。Switch:admin configupload -all -tftp TFTP服务器IP 备份文件名.cfg恢复配置使用configdownload命令从服务器恢复配置。Switch:admin configdownload -tftp TFTP服务器IP 备份文件名.cfg7. 常见问题排查与实操心得即使按照步骤操作也难免会遇到问题。这里分享几个典型场景和排查思路。7.1 设备无法登录Fabric端口状态非Online现象在switchshow中连接服务器的端口状态不是Online而是No_Light,Laser_Flt,No_Sync等。排查步骤物理层优先这是FC网络排错的第一原则。检查光纤是否插紧、是否弯曲过度、光纤跳线是否损坏。使用sfpshow port查看光模块收发光功率是否在正常范围内典型值接收功率在-5dBm到-15dBm之间不同模块有差异。检查端口类型使用portcfgshow port确认端口类型是否设置正确。连接服务器的端口应为f_port。如果是g_port尝试强制设置为f_port。检查速率协商服务器HBA卡和交换机端口可能速率不匹配如一端8G一端16G。可以尝试在端口配置模式下使用portcfgspeed命令将端口速率设置为固定值如8或者设置为auto自动协商但固定速率有时更稳定。查看错误计数使用porterrshow查看该端口是否有大量的CRC错误、编码错误这通常指向物理链路问题。7.2 分区配置后主机仍无法发现存储现象主机操作系统如Linux的systool -c fc_host -v或cat /sys/class/fc_host/host*/port_name能看到HBA卡和FCID但无法扫描到存储的磁盘LUN。排查步骤确认分区已生效在交换机上执行cfgactiveshow确认你创建的分区配置是当前激活的。确认成员正确在交换机上执行zoneshow和cfgshow仔细核对分区里的成员WWN或别名是否与主机HBA的WWN和存储端口的WWN完全一致。一个字符错误都会导致失败。检查存储端配置分区只是网络层的“允许通行”存储阵列本身也需要将LUN映射Mapping/Masking给对应主机WWN。登录存储管理界面确认LUN已正确映射。主机端重新扫描在交换机分区变更或存储映射变更后主机需要重新扫描SCSI总线才能发现新设备。在Linux上可以执行echo “- - -” /sys/class/scsi_host/hostX/scanX为具体host号来触发扫描。7.3 交换机级联ISL失败现象两台交换机用光纤连接后端口没有变成E_Port或者变成E_Port但很快又断开。排查步骤检查Domain ID使用switchshow确认两台交换机的Domain ID是否冲突。Fabric内所有交换机的Domain ID必须唯一。检查FOS版本兼容性使用version命令查看。主版本号如v9.0.x不同的FOS建立ISL可能会有问题。建议升级到一致的版本。检查ISL Trunking配置如果使用了Trunking将多个物理ISL端口捆绑成一个逻辑通道需要确保两端的Trunking配置匹配。检查物理链路同问题一优先使用sfpshow检查光功率。7.4 配置丢失问题现象交换机重启后部分配置如端口别名、分区恢复了默认状态。根本原因配置没有持久化。在博科FOS中很多配置命令需要两个步骤1) 执行配置命令2) 将配置保存到持久化存储。解决方案在执行关键配置如switchcfgdomainid,portcfg后确保执行了switchcfgpersistentenable和portcfgpersistentenable通常只需执行一次并且在configure模式下的修改最后一定要用save命令保存。养成使用configupload定期备份配置到远程服务器的习惯。配置博科SAN交换机是一个从物理到逻辑、从底层到上层逐步构建的过程。核心思路就是先让交换机自己能管理IP再让它加入或组建网络Fabric/Domain ID然后规划好各个出入口端口类型最后设置交通规则决定谁和谁能通信分区。掌握了这条主线再复杂的SAN网络也能拆解开来逐步实施。在实际操作中最耗费时间的往往不是敲命令而是前期的规划、WWN的收集和变更时的谨慎验证。每次重大变更前做好配置备份并在可能的情况下在维护窗口进行操作是保障业务稳定的不二法门。