简介:《EMC DS300B光纤交换机维护手册》面向数据中心存储运维人员、系统管理员及需要维护EMC光纤交换链路的初中级技术人员,聚焦设备日常巡检、开关机与故障排查。文件包仅含1个doc文档,约361KB,篇幅精炼,便于随身查阅和打印成册。内容围绕设备概况、连接方式、开机与关机顺序、Web状态检查、故障诊断、HBA卡链路检查及故障报修展开,并结合VNX5300存储、数据库与应用服务器交叉连接的实例,说明端口分配、Zone查看和powermt链路判断等要点。已有2059人学习,可作为值班巡检、变更操作和应急排障时的参考清单,帮助读者理清单路供电、冗余配置下的安全操作边界,减少误关机与链路中断风险。
1. 双交换机单路供电的场景下,这份 DS300B 维护手册到底管什么
凌晨两点接电话,跑核心应用的一台服务器开始报 IO 错误,值班同事第一反应是存储阵列出问题,登上机柜才发现,其中一台 EMC DS300B 光纤交换机的供电模块灯变成了橙色。两台交换机各自单路供电、互为冗余,这一路掉电本身不致命,但如果后面的重启动作排错,就可能把还在跑的那条链路一起带走。这份《EMC DS300B 光纤交换机维护手册》处理的正是这类现场:不展开协议栈,只讲清楚端口谁接谁、机器按什么顺序开关、状态灯和命令行怎么读、出问题时先查哪一步。它适合手里还压着一批老存储、老交换机的运维和集成人员,尤其是没有原厂驻场、只能自己半夜爬起来的那一类。
2. 先把端口对清楚:DS300B 八口交叉接线与 zone/alias 映射
很多人第一次接这种机器,会觉得光纤交换机无非是个“高级 HUB”,把线插上就该通。真上手才发现,线插对了也不一定通——SAN 是交换式网络,端口之间默认互相不可见,决定谁看得见谁的唯一手段就是 zone。所以在这套环境里,端口分配表不是文档摆设,而是后面所有故障判断的坐标系。手册里给出的对应关系很明确:
| 端口 | 对端设备 | 对端口 | alias |
|---|---|---|---|
| 0 | EMC VNX5300 存储 | SPB 控制器 0 口 | p_vnx_spb0 |
| 1 | EMC VNX5300 存储 | SPA 控制器 1 口 | p_vnx_spa1 |
| 4 | EMC VNX5300 存储 | SPB 控制器 1 口 | s_vnx_spb0 |
| 5 | EMC VNX5300 存储 | SPA 控制器 0 口 | s_vnx_spa1 |
| 8 | DB1 数据库服务器 | HBA1 | XXnxdb1_hba1 |
| 9 | DB2 数据库服务器 | HBA1 | XXnxdb2_hba1 |
| 10 | DOC1 应用服务器 | HBA1 | XXNX_DOC1_hba1 |
| 11 | DOC2 应用服务器 | HBA1 | XXNX_DOC2_hba1 |
2.1 为什么两台交换机的端口规划是镜像的
这份手册对应的现场装了两台 DS300B,每台都是单路供电,靠两台之间互相冗余来兜底。主机侧每台服务器插两块 HBA,一块接交换机 A,一块接交换机 B;存储控制器两侧各有独立的端口,也分别落到两台交换机上。结果就是:在任意一台交换机上,你只能看到每台主机的一块 HBA,也就是表里的 hba1。这不是配漏了,是设计如此——如果两台交换机都接同一块 HBA,那冗余就退化成了摆设。
理解了这一点,排查时的一个常见误判就能避开:在交换机 A 上 switchshow 只看到 DB1 的一个 WWN,不代表 DB1 的另外一块卡坏了,要看交换机 B。同理,存储侧 0/1/4/5 这四个口,0 和 4 落在 SPB,1 和 5 落在 SPA,正好构成两条独立路径,这也是后面 powermt 能看到两条 alive 路径的物理基础。
2.2 alias 与 zone 的命名逻辑
手册里 alias 的命名基本遵循“设备_端口号”的规则,比如 XXnxdb1_hba1 听名字就知道是 DB1 的 HBA1,p_vnx_spa1 里的 p 表示 primary、s 表示 secondary。这种命名在只有十几台主机的小环境里够用,人脑能记住;但一旦主机数量上去,靠前缀区分主备就容易看花眼。我的习惯是在 alias 里把交换机序号也带上,比如 ds300b1_xxnxdb1_hba1,两台交换机同时抓配置对比时不会串行。
zone 的划分则是“一个主机 HBA 对一个存储控制器端口”一条,不做单 zone 多主机。这样的粒度好处是权限最小化:DB1 的 HBA 只能看到 SPA1 的端口,看不到 DOC1 的卡;坏处是 zone 数量会随主机数线性增长,改配置时要一条条确认。手册里 cfg_XXnx_1 下面挂了五条 zone,其中有四条是主机路径,剩下一条 mirrorview_spb 只包含 1,0 和 1,4 两个存储端口,是给阵列之间做复制用的,跟主机无关——看到这种“只有存储口、没有主机口”的 zone,别顺手删掉,删了复制链路直接断。
2.3 用 switchshow 反查物理口和 WWN
判断“这条线到底插在哪个口、对端是谁”,最直接的办法是 switchshow。下面是这套环境里一次正常抓取的典型输出(WWN 做了掩码处理):
# 登录后在 DS_300B:admin> 提示符下执行 switchshowswitchName: DS_300B switchType: 71.2 switchState: Online switchMode: Native switchRole: Principal switchDomain: 1 switchWwn: 10:00:00:27:f8:xx:xx:xx zoning: ON (cfg_XXnx_1) switchBeacon: OFF Index Port Address Media Speed State Proto ============================================== 0 0 010000 id N8 Online FC F-Port 50:06:01:68:xx:xx:xx:06 1 1 010100 id N8 Online FC F-Port 50:06:01:61:xx:xx:xx:06 2 2 010200 id N8 No_Light FC 3 3 010300 id N8 No_Light FC 4 4 010400 id N8 Online FC F-Port 50:06:01:68:xx:xx:xx:bd 5 5 010500 id N8 Online FC F-Port 50:06:01:61:xx:xx:xx:bd 6 6 010600 id N8 No_Light FC 7 7 010700 id N8 No_Light FC 8 8 010800 id N8 Online FC F-Port 10:00:00:90:fa:xx:xx:1a 9 9 010900 id N8 Online FC F-Port 10:00:00:90:fa:xx:xx:90 10 10 010a00 id N8 Online FC F-Port 21:00:00:24:ff:xx:xx:f6 11 11 010b00 id N8 Online FC F-Port 21:00:00:24:ff:xx:xx:46 12 12 010c00 id N8 No_Light FC ... 16 16 011000 -- N8 No_Module FC (No POD License) Disabled这里要看的其实是四列,不是一行:
- switchState 和 zoning:前者 Online 说明交换机自身启动正常,后者 ON (cfg_XXnx_1) 说明当前激活的配置文件是哪一个。这两项对不上,后面的端口状态再漂亮也白搭。
- State:Online 是正常;No_Light 表示这个口没有收到光信号,通常是没插线、线断、或者对端设备没上电;No_Module 是光模块没插或者没许可;Disabled 是被显式关掉了。
- Proto 和 F-Port:F-Port 后面那串就是登录上来的对端 WWN。注意 50:06:01 开头的都属于存储前端口,10:00:00:90:fa 是 Emulex 系网卡,21:00:00:24:ff 是 QLogic 系网卡。靠 OUI 前缀就能大致判断“这个口接的是存储还是主机”,不用翻表。
- 末尾的 (No POD License) Disabled:16 到 23 口默认不开放,需要 Ports on Demand 许可才能启用。这一点在扩容时最容易翻车——线插好了、灯也亮了,端口就是不 Online,因为许可没买。
注意:switchshow 里 Address 列是 16 进制的端口地址,改天如果要在 zone 里按“域 ID + 端口号”写成员,得先把十进制端口号换成十六进制,别直接照抄。
3. 开关机顺序不是玄学:五步上电、四步下电与单路供电红线
开关机顺序看着像流程仪式,其实是给主机侧的多路径软件留出“认识路”的时间。如果反着来,最常见的结果不是立刻报错,而是过几个小时业务开始间歇性卡顿,查半天发现某块 HBA 把一条路径标成了 dead,多路径退化成单边跑。手册里给出的顺序很简单,但每一步背后的原因值得说清楚。
3.1 上电:从最底层往上开
手册的五步是:检查光纤线和电源线是否松动 → 开存储扩展柜 → 开存储控制器 → 开光纤交换机 → 开应用服务器。
顺序的逻辑是:先让存储侧完全就绪,再让交换网络通,最后才让主机去扫盘。如果先开主机,主机启动时 HBA 扫描不到任何 LUN,虽然之后可以手动 rescan,但在一些老系统上,启动脚本已经按“扫不到就跳过”处理完了,后面再补就得到处改 fstab 或者重新识别设备。扩展柜先于控制器,是因为控制器启动时要能枚举到后端盘,顺序反了控制器会报后端设备缺失,有时还得重启一次控制器才能恢复。
实际执行时,我一般会在第 1 步多花两分钟:不光看线有没有松,还要看光模块的卡扣有没有到位、LC 接头有没有插到底。光纤这东西,插一半和插到底在交换机上可能都显示 Online,但误码率会慢慢往上走,属于典型的“能跑但跑不好”。
3.2 下电:从上往下关,交换机不能抢跑
下电顺序正好反过来:关应用服务器 → 关光纤交换机 → 关存储控制器 → 关存储扩展柜。
原因很直白:应用服务器还在写盘的时候把交换机断掉,主机侧的 IO 会立刻超时,轻则业务报错,重则文件系统进入只读甚至损坏。手册特意用了一句很重的话强调这一点——不要在没有关闭应用服务器之前给光纤交换机断电,也不要对两台光纤交换机同时断电,否则会导致数据丢失。
这句话在这套环境里格外要命,因为两台交换机都是单路供电。单路供电意味着每台机器只有一个电源输入,一旦这一路掉电,那台交换机就直接下线,没有第二条路可走。冗余靠的是“另一台交换机还在”,而不是“这台交换机还有另一个电源”。所以任何涉及断电的操作,本质上是把系统从双活降级成单活,能不能做、什么时候做,取决于另一台交换机当下是否健康。
3.3 单路供电环境下的重启窗口怎么排
如果确实要重启某一台交换机,我一般按下面这个顺序排窗口,避免把降级时间拉长:
# 第一步:确认另一台交换机完全健康,这是能不能动的前提 # 在另一台交换机上执行,确认所有在用端口 Online、无异常告警 switchshow # 确认当前激活的 cfg 与故障机一致,避免切换后主机看不到 LUN cfgshow # 第二步:确认主机侧多路径当前是双活 # AIX 上 powermt display dev=all # Windows 上 powermt display dev=all # 第三步:在业务低峰,先停应用或把应用切到另一台主机 # 第四步:关这一台交换机,操作完成后按上电顺序恢复参数和判断点说明:第一步的 switchshow 重点看 State 列有没有 No_Light 或 Disabled,如果有,说明另一台交换机本身就不完整,这时候动故障机等于把系统从“单活”推到“无活”;第二步的 powermt 要看每个 LUN 的路径是不是都 alive,只有确认双活,才敢断一边;第三步的“停应用”不是可选项,手册里那句“不要在没有关闭应用服务器前断电”说的就是这个。
还有一个容易被忽略的细节:两台交换机互为冗余,但它们的配置必须一致。如果只改了一台的 zone 就重启另一台,主机侧可能因为两台交换机看到的 LUN 映射不同而出现路径震荡。改配置前先 cfgshow 对一遍,是最省事的做法。
4. 状态检查:Web Tools 看板、CLI 四件套与 powermt 链路判读
这台机器的状态检查有两个入口:图形化的 Web Tools,和命令行的几条命令。前者直观但依赖运行环境,后者枯燥但任何时候都能用。真正干活的时候,两个都得会——Web 打不开是常态,CLI 才是保底手段。
4.1 Java 与浏览器:为什么得留一台“脏”跳板机
手册里写得很清楚:打开 IE,本机要装 Sun Microsystems Java 2 Runtime Environment Standard Edition 1.6 以上版本,然后访问http://交换机管理IP,用 admin 和默认口令登录。
这段描述放到今天会直接卡住新手:新版 Chrome、Edge 早就不支持 NPAPI 插件,Java 插件在浏览器里根本加载不起来,页面打开就是一片空白或者一个灰色的方块。我的做法是保留一台不装任何新版浏览器的跳板机,专门装对应版本的 JRE 和旧版 IE,只用来开这类老设备的 Web 界面,不干别的。这不是怀旧,是现实——老固件的 Web 服务就是按那个年代的插件模型写的,换浏览器解决不了。
另外手册里写的是“输入 http://阵列 IP 地址”,这里其实是笔误,填的应该是光纤交换机的管理口 IP,不是存储阵列的 IP。第一次照着填的人容易在这卡半天。
注意:admin/password 是出厂默认口令,设备上线第一件事就该改掉,改完记在受控的密码库里。这份手册的定位是维护,不是初始部署,默认口令不能一直留着。
4.2 zone Admin 里要点开看的四个位置
登录进主界面后,左侧的 zone Admin 是核心入口。手册提到的四类信息,对应四个不同的判断目的:
- 端口别名(alias):确认每台主机、每个存储端口都有名字,且名字和实际接线对得上。alias 空着的端口,说明这条路径要么没配,要么是新增设备还没纳入管理。
- zone 信息:确认每条 zone 里的成员是不是“一个主机口 + 一个存储口”。如果看到一条 zone 里塞了两个主机口,那这两台主机就能互相看见,属于配置越权。
- zone 配置信息:确认这些 zone 被哪个 cfg 引用,以及 cfg 是否被激活。
- 右下角当前激活的有效 zone 配置名称:这一项最容易被跳过。改完 zone 没点生效,界面上一顿操作全白做,主机侧毫无变化。
主界面上还有一个 Status 按钮,点进去能看到各主要部件的健康状态,正常时全是绿色。如果 Status 按钮变成橙黄色,同时机器前面板状态灯也报错,按手册的总结,一般是有路供电停了,或者光纤接口松动。这个判断很实用:橙色 + 前面板报错,优先去查电源和光模块,而不是一头扎进 zone 配置里。
4.3 switchshow、cfgshow、licenseshow:一次登录抓全
图形界面打不开的时候,telnet 或者 SecureCRT 连上去,四条命令就能把家底摸清。手册里给的是 zoneshow 和 switchshow,我一般会再加两条:
# 登录后依次执行,建议把输出重定向到本地文件留档 switchshow # 端口状态、在线 WWN、当前激活的 cfg cfgshow # 完整的 cfg/zone/alias 定义与生效情况 zoneshow # zone 视角的定义与生效情况,和 cfgshow 互为印证 licenseshow # 许可清单,决定可用端口数量和功能licenseshow 的输出值得单独说。这套环境里能看到四项:Fabric license、First Ports on Demand license(额外 8 口升级)、Enhanced Group Management license、8 Gig FC license。翻译成人话就是:基础组网能力有、端口数做过一次扩容、有增强管理功能、端口速率支持 8G。如果哪天要扩端口,先看这里有没有对应的 POD 许可,没有的话插上模块也是 Disabled,这一点在 switchshow 的 16 到 23 口上体现得非常直接。
cfgshow 和 zoneshow 的输出结构类似,都分 Defined configuration 和 Effective configuration 两段。前者是“配了但可能没生效”,后者是“当前真正在跑的”。排查“为什么主机看不到存储”时,先看 Effective 段里有没有对应的 zone,没有就是没激活;有的话再看成员端口号对不对。
4.4 powermt display dev=all:AIX 与 Windows 的字段差异
交换机侧看着一切正常,不代表主机侧链路就通。真正判断端到端链路是否健康,要回到装了多路径软件的服务器上。
AIX 上的命令是powermt display dev=all,输出按 pseudo device 分组,每个 pseudo 下面是若干条路径。判断标准很朴素:每个 pseudo device 下所有路径的 State 列都是 alive,就说明这个 LUN 的路径是全的;只要出现 dead 或者某条路径消失,就说明有一条链路断了。手册里提到“如有四条链路且都是 alive 则正常”,实际抓下来的输出里,每个 hdiskpower 下面通常只挂两条路径(fscsi0 一条、fscsi2 一条),所以别死记“四条”这个数字,要看的是“这个 pseudo 下应有的路径数是不是都在”。
Windows 上的命令一样,但字段长得不一样。路径写成port4\path0\tgt0\lun0这种形式,Interf. 列显示 SP A1 或 SP B1,State 列同样是 alive。每个磁盘一般两条路径,分别走两个存储控制器。除了命令行,装了 PowerPath 的机器右下角托盘里有个图标,绿色正常,出现红色叉号或者黄色叹号就说明链路断了,这时候按“光纤卡 → 光纤交换机 → 阵列”的顺序往上查。
# AIX 上重点关注的两列 # State=alive 路径可用 # Errors=0 累计错误计数,长期不为 0 要查光模块和线缆 powermt display dev=all # 只看某一块盘,排查单点问题时更清爽 powermt display dev=hdiskpower2参数说明:dev=all是列出全部伪设备,适合巡检;dev=<名字>是只看一个,适合定位。输出里的 Errors 列不要忽略,某条路径虽然显示 alive,但 Errors 一直在涨,说明这条链路在带病工作,早晚会掉,属于典型的“还没翻车但已经在翻车的路上”。
5. 排查五类翻车现场:断电、zone 未激活、Web 白屏与假 alive
5.1 只关交换机、没停应用,主机报 IO 错误
现象:为了换一个光模块,直接把一台交换机断电,应用没停。几分钟后业务开始报 IO 超时,日志里大量 sense key 错误。
原因:主机侧还在往这个交换机上的路径写数据,链路突然消失,IO 在队列里等到超时。如果另一台交换机上的路径没有及时接管,业务就会真实中断。
解决:任何涉及交换机断电的操作,先停应用或者把应用切走,再确认 powermt 里另一台交换机上的路径全部 alive,才动故障机。手册里那句“不要在没有关闭应用服务器前断电”不是客套话,是血泪经验。
5.2 两台交换机同时断电,双活变无活
现象:机房做电源改造,两台 DS300B 一起下电,恢复后主机识别不到 LUN,重启多次才恢复正常。
原因:两台交换机同时下线,主机侧所有路径同时消失,多路径软件进入全断状态;恢复时如果上电顺序不对,主机可能先于交换机启动完成,扫描阶段什么都没看到。
解决:单路供电环境下,两台交换机永远不要同时断电。必须都动的时候,一台恢复并确认 Online 之后再动另一台。恢复时严格按“扩展柜 → 控制器 → 交换机 → 主机”的顺序来。
5.3 zone 改完忘了激活,配置看着对但不生效
现象:在 zone Admin 里新增了一条主机到存储的 zone,界面上一切正常,主机侧死活看不到新盘。
原因:只改了 Defined configuration,没有把 cfg 激活,Effective configuration 还是旧的。cfgshow 里 Defined 段有、Effective 段没有,就是这个问题。
解决:改完一定要执行保存并激活,然后在 CLI 上用 cfgshow 确认 Effective configuration 段里出现了新 zone。养成习惯:每次改完不看一眼 Effective 段不算完。
5.4 Web 页面一片白,以为交换机挂了
现象:浏览器输入管理 IP,页面空白或者只显示一个灰色方块,交换机面板灯却是正常的。
原因:本机没有装对应版本的 JRE,或者用了新版浏览器。老固件的 Web 管理依赖 Java 插件,现代浏览器已经不支持。
解决:用一台装了旧版 JRE 和旧版 IE 的跳板机访问;实在没有,直接用 telnet 或 SSH 走 CLI,switchshow 和 cfgshow 能覆盖绝大部分检查需求。
5.5 powermt 显示 alive,业务仍然报 I/O 错误
现象:主机上 powermt 输出每条路径都 alive,Errors 也是 0,但应用日志里持续有慢 IO 和重试。
原因:alive 只说明链路层握手正常,不代表上层没有丢包。常见的情况是光模块老化导致误码率上升,或者交换机端口有 CRC 错误但还没到断链的程度。
解决:在交换机上查端口误码统计,重点看 CRC 和链路失败计数;同时对比两台交换机上同一台主机的端口状态,如果只有一边在涨错误,问题基本锁定在那一边的线缆或模块上。换了模块之后持续观察一天,确认 Errors 不再增长。
6. 进阶:把变更前快照和巡检留档做成固定动作
这套环境里最值钱的东西不是交换机本身,是那份“出问题之前长什么样”的记录。zone 一旦改错,最怕的是没有人记得改之前是什么状态。所以我把两件事固化成动作:变更前留快照,每周做一次留档。
第一件事是配置快照。有条件的话,在交换机上执行配置上传,把整份配置导到一台 FTP 服务器上;没有条件,就在 CLI 上把 cfgshow、zoneshow、switchshow 三条命令的输出重定向到本地文件,文件名带上日期和交换机标识。这套配置不大,文本文件也就几十 KB,存一年也占不了多少地方,但真出事的时候,它就是后悔药。
# 变更前抓一份,变更后再抓一份,用 diff 对比差异 # 两台交换机分别执行,输出按 日期_交换机名 归档 TS=$(date +%Y%m%d_%H%M) for sw in ds300b_a ds300b_b; do # 管理地址和账号提前配在 ssh config 里,避免密码出现在脚本中 ssh -o ConnectTimeout=8 "$sw" "switchshow; cfgshow; zoneshow" \ > "/data/fabric_snapshot/${TS}_${sw}.txt" 2>&1 done这段脚本的关键点有三个:ConnectTimeout=8是防止某台交换机不通时脚本卡死;把三条命令放在一次 ssh 会话里执行,减少重复登录;输出按时间和设备名归档,方便后面按周对比。如果设备只开了 telnet,我一般不会把密码写进脚本,宁愿在跳板机上手工抓一次——为了省几分钟把口令散落在脚本里,不值。
第二件事是每周巡检。不用天天看,但每周固定时间把两台交换机的 switchshow 拉出来对比一次,重点看三件事:有没有本来 Online 的端口变成 No_Light;有没有新的 WWN 出现在不该出现的端口上;licenseshow 有没有变化。前两项能提前发现线缆老化和误插,第三项在有人动过许可的时候能第一时间知道。
变更后的验证也有讲究。改完 zone 并激活之后,不要只看交换机上的 Effective 配置,要回到主机上跑一遍 powermt,确认路径数量和 State 没变;再在存储侧确认主机注册信息正常。三步都过,这次变更才算完成。
从那以后,我每次动 zone 之前都会先跑一遍快照脚本,改完再跑一遍,diff 里没有意外才敢点激活;每周巡检也把两台交换机的 switchshow 存一份。这套动作前后花不了十分钟,但省下来的,往往是半夜从床上爬起来的那两个小时。希望帮到你。
本文还有配套的精品资源,点击获取