拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Cisco MDS9148配置详解:VSAN、Zone与端口排查避坑指南

Cisco MDS9148配置详解:VSAN、Zone与端口排查避坑指南

简介:面向数据中心存储网络工程师与运维人员的Cisco MDS9148交换机配置详解,聚焦首次上电初始化、管理接口配置与Zoning安全策略等关键环节,帮助读者快速掌握SAN交换机的部署基础。资料为PDF格式,共1个文件,压缩包大小39KB,内容精炼但覆盖完整:从串口连接初始化、管理员密码设置,到管理IP、网关、SSH/Telnet、HTTP服务、时钟与NTP同步,再到默认端口状态、Trunk模式及Zone策略配置,均配有CLI交互示例和界面操作说明。尤其适合需要独立完成MDS9148开局配置,或正在规划数据中心存储网络的人员参考。已有1817人浏览学习,可作为配置操作前的速查手册,减少查阅英文原厂文档的时间成本,同时提醒变更保存与备份等运维要点。

1. 提到cisco MDS9148配置,很多人第一反应是它和Catalyst差不了多少

提到cisco MDS9148配置,很多人第一反应是它和Catalyst差不了多少,都是命令行、配个IP、划个VLAN。实际上这台设备是面向中小型SAN环境的光纤通道交换机,管的是存储流量而不是IP流量。第一次配MDS9148,最容易犯的错就是拿园区网交换机的经验往上套:管理IP配好、端口起来,可服务器就是看不到存储。差别在于,MDS9148的核心配置不是VLAN,而是VSAN和Zone两层逻辑隔离,加上WWPN这类存储寻址方式。本文按一条完整落地路径来写:初始化、管理通道、VSAN与Zone、端口与验证、常见翻车点以及多台设备批量落地的技巧,适合正接手存储网络或第一次独立配置MDS9148的运维和网络工程师。

2. 首次上电与初始化:console口是唯一可靠的入口

2.1 连console前:先确认串口参数与线缆

MDS9148的console口在设备前面板左侧,接口形态是RJ45,随机附带的console线通常是RJ45转DB9。近几年有些批次改成了USB转串口,用之前先看清线缆上面的标识。连接笔记本之后,串口参数固定是9600、8、N、1,无流控。大部分终端软件默认就是这个值,不用改。如果你用的是SecureCRT或PuTTY,建立连接后屏幕上没有任何输出,优先检查两件事:设备是否已经正常加电,以及笔记本设备管理器里选中的COM口号是否正确。USB转串口线每次插入后COM口号可能变化,尤其是笔记本有多个USB口的情况下。

还有一类常见问题出在转接头芯片上。PL2303老芯片的USB转串口线在Win10 1809之后驱动兼容性很差,插上设备管理器能看到端口但就是没有数据。我遇到这种问题通常直接换一根FTDI芯片的线,不要花时间折腾驱动。全新开箱的MDS9148上电后会进入系统引导,引导完成后停在switch login提示,默认账号是admin、默认密码admin,第一次登录会强制要求修改密码。如果设备是别人用过的,你又不知道密码,只能通过console口在设备启动时进入boot模式重置密码,这属于应急手段,新设备基本用不上。

2.2 setup向导:跳过还是用它初始化

全新设备首次登录后,系统会提示是否进入setup配置向导。这个向导会按顺序询问一堆问题:是否继续配置、管理IP、子网掩码、默认网关、是否启用telnet和ssh、是否创建snmp团体字、admin密码等等。表面看跟着向导走完就能用了,但实际生产环境我建议直接跳过。原因是向导生成的配置倾向于"把所有事情都打开",同时会把default zone policy留成permit,也就是所有设备和设备之间默认互通。这对存储网络来说是不可接受的:存储网络的Zone策略应该是默认deny,只有明确加入同一个Zone的设备才能互相访问。

跳过向导的方式很简单,在提问处输入no即可:

switch# setup ... Would you like to enter the setup wizard? (yes/no): no switch#

跳过之后设备直接进入命令行维护模式。此时第一件事是验证一遍出厂默认的zone策略,如果策略不是deny,先把它改掉:

switch# conf t switch(config)# zone default-zone deny vsan 1

这条命令的含义是:VSAN 1里凡是没有被Zone覆盖的成员,默认不允许互通。MDS9148出厂自带VSAN 1,所有端口默认落在里面,所以这一步要在配任何Zone之前先做。在MDS上,default-zone策略是按VSAN独立生效的,后面新建的VSAN也要各自确认一遍。

2.3 管理IP与默认网关:MDS和IOS不一样的地方

MDS9148的带外管理口是mgmt0,位置在设备前面板右侧,是一个千兆以太网口。这个口只承载管理流量,不参与FC存储转发,所以无论FC网络怎么配置,都不会影响管理口的连通性。配置管理IP需要进入interface mgmt0:

switch# conf t switch(config)# hostname SAN-SW01 SAN-SW01(config)# interface mgmt0 SAN-SW01(config-if)# ip address 192.168.10.10 255.255.255.0 SAN-SW01(config-if)# no shutdown SAN-SW01(config-if)# exit SAN-SW01(config)# ip default-gateway 192.168.10.1 SAN-SW01(config)# end SAN-SW01# ping 192.168.10.1

和Cisco IOS不一样的地方在于:MDS的默认网关命令是ip default-gateway,不是ip route 0.0.0.0 0.0.0.0。你可以在MDS上执行ip route命令,但它通常用于管理面VRF的路由,不是全局默认网关。如果你只配了管理IP没配网关,从其他网段SSH是进不来的。ping默认网关通了之后,再用PC去ping管理IP验证一下。

管理IP配置完成后,建议立刻执行一次copy running-config startup-config,否则重启后这些网络配置全部丢失。MDS没有IOS那种自动保存机制,这一点贯穿整个配置流程,后面每个环节做完都要记得保存。

2.4 用SSH替代telnet:feature ssh与本地认证兜底

MDS9148出厂默认开启telnet和ssh服务。telnet是明文协议,存储网络的安全审计基本不允许,标准做法是只保留SSH。MDS上SSH服务默认是关闭的,需要手工开启并生成密钥:

SAN-SW01(config)# feature ssh SAN-SW01(config)# ssh key rsa 2048 SAN-SW01(config)# no feature telnet SAN-SW01(config)# end SAN-SW01# show ssh server

feature ssh是启用SSH服务的开关,ssh key rsa 2048用来生成RSA密钥对。如果之前已经生成过密钥,命令会提示是否覆盖,选择yes即可。生成完成后show ssh server的输出里能看到服务状态是enabled、密钥长度2048。no feature telnet则把telnet服务停掉。注意关闭telnet前,一定要先用SSH客户端从管理IP登进去一次,确认SSH通道可用再关,否则console又不方便的时候容易把自己锁在外面。

MDS还有一个坑是AAA认证优先级。MDS的登录认证默认先找AAA服务器,如果设备上配置了AAA服务器地址,而服务器当前不可达,SSH和telnet都会被拒掉。稳妥做法是在配置AAA之前先加一条本地认证兜底:

SAN-SW01(config)# aaa authentication login default local

这条配置的意思是:默认登录方式使用本地用户名密码认证。MDS的默认本地账号是admin,密码就是首次登录时设置的那个。如果后续配置了AAA,这条default local的优先级要注意——AAA配置会覆盖它,所以要确认AAA环境稳定后再切成AAA认证。

3. VSAN与Zone:MDS9148的存储隔离核心

3.1 VSAN是存储网络的“VLAN”

VSAN(Virtual SAN)可以理解为存储网络里的VLAN。一台MDS9148物理上有48个FC端口,但通过VSAN可以把端口划分进不同的逻辑网络中。每个VSAN拥有独立的Fabric服务、独立的Zone数据库、独立的登录注册表。换句话说,一个端口划入VSAN 10之后,它在Fabric里看到的世界和VSAN 20里的设备完全不同,即使物理上连着同一台交换机,两边也是隔离的。

MDS9148出厂自带VSAN 1,所有端口默认属于它。生产环境我一般建议不要直接用VSAN 1,而是按业务或环境单独建VSAN,比如生产一个VSAN 10、备份一个VSAN 20。原因有两个:第一,新接入的设备如果没有显式划入其他VSAN,会默认落在VSAN 1,如果VSAN 1的Zone策略又比较宽松,新设备就可能看到存量设备;第二,VSAN 1里混入太多设备会给后续排查增加复杂度。

创建VSAN的命令:

SAN-SW01(config)# vsan database SAN-SW01(config-vsan-db)# vsan 10 SAN-SW01(config-vsan-db)# vsan 10 name PROD SAN-SW01(config-vsan-db)# exit SAN-SW01(config)# end SAN-SW01# show vsan

vsan database是MDS上管理VSAN的配置入口。vsan 10创建VSAN 10,vsan 10 name PROD给它起一个可读的名字。show vsan的输出里,重点关注State字段是不是active,以及每个VSAN下有多少端口。新建VSAN默认没有端口,这是正常现象,端口需要单独划入,后面会讲到。

3.2 查WWNN和WWPN:先搞清楚谁是谁

Zone的成员不是按端口号划分,而是按设备的World Wide Name来区分。每台光纤通道设备(HBA卡、存储控制器端口)在出厂时都会被分配全球唯一的WWNN(节点名)和WWPN(端口名)。WWNN表示设备本身,WWPN表示设备上的某个端口,就像一台服务器有网卡MAC,每个网卡口又各有自己的MAC一样。

在MDS上查看已经登录到交换机的设备:

SAN-SW01# show flogi database vsan 10 Interface VSAN FCID Port WWNN Port WWPN fc1/1 10 0x010100 20:00:00:25:b5:10:01:02 21:00:00:25:b5:10:01:02 fc1/2 10 0x010200 20:00:00:25:b5:10:02:01 21:00:00:25:b5:10:02:01

flogi是Fabric Login的缩写,设备登录交换机时会在Fabric上注册自己的WWNN和WWPN,FCID是交换机动态分配的。如果某台设备没出现在这个表里,说明它没有成功登录到该VSAN,此时Zone配得再对也没有意义。实际项目中,定位某个WWPN对应哪台服务器或哪台存储,通常要结合服务器和存储两端的信息。Linux下可以用systool -c fc_host或lsscsi -H查看HBA卡的WWPN,存储阵列一般在管理界面里能看到接入主机的WWPN列表。把这些信息收集齐再回MDS上配Zone,比边配边猜效率高得多。

3.3 Zone和Zone Set:三层结构一次摆平

Zone的配置结构是VSAN -> Zone Set -> Zone -> 成员,一共四层。Zone是实际的访问控制单元:同一个Zone内的成员可以互相访问,Zone外的不可见。Zone Set是Zone的容器,只有被激活的Zone Set才真正生效。也就是说,你可以创建一堆Zone,但只要不把它们放进Zone Set并激活,它们就只是配置,不起作用。

配置一个Zone:

SAN-SW01(config)# zone name ZONE-SRV01-STO01 vsan 10 SAN-SW01(config-zone)# member pwwn 21:00:00:25:b5:10:01:02 SAN-SW01(config-zone)# member pwwn 21:00:00:25:b5:10:02:01 SAN-SW01(config-zone)# exit

member pwwn后面跟的是WWPN,不是WWNN。这是MDS9148配置里最常见的一个翻车点。从show flogi database的输出看,WWNN通常以20:00开头,WWPN通常以21:00开头,抄错一位整个Zone就废了。如果你真的要按节点名做成员,MDS支持member wwnn,但实际生产环境里几乎用不到,标准写法就是用WWPN。

Zone建好后放进Zone Set并激活:

SAN-SW01(config)# zoneset name ZS-PROD vsan 10 SAN-SW01(config-zoneset)# member zone ZONE-SRV01-STO01 SAN-SW01(config-zoneset)# exit SAN-SW01(config)# zoneset activate name ZS-PROD vsan 10

zoneset activate是激活动作,执行后该VSAN下的Zone配置会通过RSCN同步给所有在线设备。已经登录的HBA卡和存储控制器会重新扫描Fabric,感知新的访问关系。修改已有Zone后,也必须重新执行一次activate,改动才会生效,这一点和很多厂商的动态配置不太一样,容易被人忽略。

3.4 确认Zone生效:从交换机和服务器两侧看

配置完成不是终点,验证才是。MDS侧验证:

SAN-SW01# show zoneset active vsan 10 zoneset name ZS-PROD vsan 10 zone name ZONE-SRV01-STO01 vsan 10 * pwwn 21:00:00:25:b5:10:01:02 * pwwn 21:00:00:25:b5:10:02:01

带星号的成员说明该WWPN当前在线,没带星号则表示对应的设备没有登录到这台MDS。如果某个成员不带星号,优先查show flogi database,确认设备到底在不在线,而不是怀疑Zone配置本身。

服务器侧的验证要看操作系统类型。Linux下可以查看FC主机端口识别到的远端端口:

# cat /sys/class/fc_host/host*/port_name

如果能看到存储控制器的WWPN,说明Zone已经生效。Windows下可以在存储多路径管理工具或设备管理器里看。这一步不要省。我之前遇到过一次配置看起来全部正确,show zoneset active里成员也都带星号,结果服务器就是发现不了存储,最后查下来是服务器上HBA卡的驱动多路径没启用,属于服务器侧问题,和MDS配置无关——这类问题只有在服务器侧验证时才能暴露出来。

4. 端口模式、速率与物理链路:FC端口的三层排查

4.1 端口模式F/E/auto:先理解再选

MDS9148的48个FC端口编号是fc1/1到fc1/48。首次上电后所有端口默认是shutdown状态,需要逐个或批量开启。查看端口状态:

SAN-SW01# show interface brief Interface VSAN Admin Oper Speed Mode fc1/1 10 up up 16G F fc1/2 1 down down -- --

Mode字段有几种取值:F表示连接终端设备(服务器HBA或存储控制器),E表示连接其他交换机(级联),FL表示连接环路设备(老式磁带机这类,现在很少见)。auto表示自动协商对端类型。生产环境建议对关键端口显式指定模式,不要完全依赖auto。比如服务器HBA连接MDS的端口,配置成F没有任何悬念;但交换机级联时,如果一边是auto、另一边是E,某些老固件版本协商会出问题,表现为物理层起来几秒又掉。

显式指定端口模式:

SAN-SW01(config)# interface fc1/1 SAN-SW01(config-if)# switchport mode F SAN-SW01(config-if)# no shutdown

手动指定模式的好处在于:端口模式一旦配错,端口会直接起不来,这本身就是个明确的报错信号。比如一个口接了服务器HBA,你却配成E,Oper状态就是down,这样排查线缆和配置都很快。

4.2 端口速率:8G与16G混接的坑

MDS9148根据具体型号不同,端口速率支持8G或16G。如果老设备(比如8G的HBA卡)插到16G端口上,物理链路能起来,但FLOGI会变得不稳定——设备在交换机上反复登录、注销,服务器多路径软件里看到的路径时通时断。

遇到这种情况,最直接的解法是把交换机端口速率锁到对端支持的最高速率:

SAN-SW01(config)# interface fc1/4 SAN-SW01(config-if)# switchport speed 8000 SAN-SW01(config-if)# no shutdown

switchport speed的单位是Mbps,所以8000就是8G。MDS上常见的速率参数有2000、4000、8000、16000。我一般把速率锁成对端设备支持的最高档,比如8G HBA就锁8000,16G存储控制器就锁16000。锁错速率会导致端口Oper down,改回正确值即可恢复,不会影响其他配置。速率不匹配导致的问题有个典型特征:show interface里Oper状态是up,但show flogi database里找不到设备,或者设备的FCID每次都在变,看到这种现象时先查速率,再去查光纤线。

4.3 光模块排查:transceiver里的关键参数

端口Oper down且FLOGI失败时,最常见的问题不在配置,而在物理层,光模块是头号嫌疑。MDS上查看光模块状态:

SAN-SW01# show interface fc1/5 transceiver

输出里有几个关键参数要留意。温度超过70度就要警惕机房散热问题;Tx Power是发送光功率,Rx Power是接收光功率,如果Rx Power极低(比如-20dBm以下),说明接收方向的光路有问题,常见原因包括尾纤弯曲半径过小、法兰盘积灰、光纤端面污染。如果输出显示transceiver is not present,先重新插拔光模块,不行就换一个。

存储网络里的光纤链路问题往往带着玄学色彩:接头擦了就好,过几天又掉;光功率看着正常但就是丢帧。这类问题要结合show logging里的错误计数来定位,不要只凭端口up就判断链路健康。在4.1和4.2的排查基础上,第三步永远是看光模块,这个顺序不能乱。

4.4 级联与trunk:多台MDS互联时的注意点

多台MDS之间做级联时,端口模式要配置成E。默认情况下,级联链路(ISL)只承载一个VSAN的流量。如果多个VSAN的流量都要跨交换机转发,需要在ISL端口上开启trunking:

SAN-SW01(config)# interface fc1/3 SAN-SW01(config-if)# switchport mode E SAN-SW01(config-if)# switchport trunk mode on

switchport trunk mode on的含义是:该端口在所有VSAN上转发帧。注意如果对端交换机没有开启trunking,或者对端是第三方品牌的交换机,trunk协商会失败,ISL端口会保持down。MDS和Brocade混接时,通常要显式把trunk mode设为off或用兼容模式,这一块是实践中最常踩的坑之一。级联配置完成后,还要确认每台交换机上都创建了对应的VSAN,否则即使ISL物理链路是up的,数据帧也不会转发过去。

5. MDS9148配置避坑指南:五个常见翻车点

5.1 Zone Set激活后设备互相看不到

现象:zoneset activate命令执行成功,show zoneset active也能看到成员,但服务器侧就是扫不到存储。

原因:九成是Zone成员WWPN写错了。常见错误有三种:把WWNN当成WWPN写进去了;WWPN格式不对,必须是八组十六进制数、用冒号分隔;或者Zoning策略本身逻辑有问题——比如服务器有两个HBA口、存储有两个控制器口,但只把其中一个HBA口和其中一个存储口放进了Zone,另一个路径不在Zone里。

解决:先用show flogi database核对实际登录的WWPN,再进入zone配置里删除错误成员、添加正确成员,然后重新执行zoneset activate。注意,修改Zone后不重新激活是不会生效的,这是MDS和Brocade这类动态Zone机制最大的差异,特别容易忽略。

5.2 端口up但FLOGI失败:先从光模块查起

现象:show interface brief显示端口up,但show flogi database里看不到设备,或者设备的FCID反复变化。

原因:最常见的是速率协商问题,其次是光模块劣化。16G端口插8G老HBA,如果HBA侧固件太老不支持速率协商,就会出现物理层up但FLOGI失败的现象。部分第三方光模块在MDS上能被识别但性能不稳定,表现为接收光功率波动大。

解决:按顺序排查——先show interface transceiver看接收功率,排除物理层问题;再把端口速率手动锁到8000或4000。如果还不行,换一个正规渠道的光模块测试。光模块问题在存储网络中占比很高,这是最容易被忽视的隐性故障源。

5.3 重启后所有配置消失

现象:设备重启后回到出厂状态,show running-config里只剩默认配置。

原因:没有执行copy running-config startup-config。MDS的running-config和startup-config是分开管理的,没有自动保存机制。很多人配完Zone、激活完成后就收工,结果设备断电重启后一切归零。

解决:每次配置完成后执行copy running-config startup-config,也可以在配置完较大变更后单独保存一次。MDS也支持write memory,效果一样。生产环境如果有多台MDS,保存的动作要在每台上都执行,不要只在一台做主备的设备上保存。

5.4 telnet能进SSH被拒:密钥没生成

现象:管理IP能ping通,telnet正常,但SSH连接被拒绝。

原因:MDS的SSH服务和IOS不一样,它默认是关闭的,必须先执行feature ssh开启服务,然后生成RSA密钥。如果只开了feature ssh而没生成密钥,SSH服务虽然起来了但无法完成密钥交换,客户端会报错。

解决:按2.4节的顺序操作,先feature ssh,再ssh key rsa 2048,最后用show ssh server确认服务状态。另一个关联问题是AAA认证:如果MDS上配置了AAA服务器且服务器不可达,SSH也会失败。确保本地认证兜底配置a a a authentication login default local存在,然后再排查其他问题。

5.5 误删Zone或Zone Set

现象:手误删除了生产Zone,激活后所有存储路径中断。

原因:MDS命令行没有撤销功能。zone delete一下就直接没了,不像有些网页管理界面有undo操作。很多人习惯了图形界面的可逆操作,到了命令行就容易出事。

解决:配置前养成备份习惯。最原始但有效的方法是把show running-config的输出保存到本地文件,纳入版本管理。每次变更前导出一份,变更后再导出一份。误删后即使没有备份,也可以通过重新创建Zone、重新激活Zone Set来恢复。但如果忘掉了Zone里的成员WWPN,那恢复起来就要靠show flogi database和之前的变更记录了。

6. 从备份恢复到批量下发:多台MDS9148的落地技巧

6.1 备份与恢复:留一颗后悔药

MDS9148配置没有自动保存机制,除了每次配置后copy running-config startup-config,我还会把running-config备份到bootflash和外部服务器:

SAN-SW01# copy running-config bootflash:config-20250601.txt SAN-SW01# copy bootflash:config-20250601.txt running-config

恢复时导入的是running-config,导入后先执行show running-config确认无误,再copy running-config startup-config,不要直接覆盖startup-config。这样万一导入的配置有问题,还能用之前的startup-config回退。备份文件建议按日期命名,多台设备还要在文件名里带上设备名。

6.2 验证清单:每次配置后过一遍这四条

我一般用四条命令做最终验证,覆盖管理通道、VSAN/Zone、端口、日志四个方面:

show interface mgmt0 show zoneset active vsan 10 show flogi database vsan 10 show interface brief

最后再补一条show logging | include FLOGI|ZONE,看有没有异常事件。如果设备数量多,推荐配上NTP和SNMP,端口up/down和Zone激活这类事件推送给监控系统,不用每天手动登录查看。配置MDS9148本质上不复杂——搞清楚VSAN隔离、Zone授权、端口模式、光模块健康这四件事,剩下的是细致活。把这些基本概念吃透,很多看似玄学的故障都能顺着命令输出一步步定位到根因。希望这篇文章能帮你在MDS9148的配置和运维上少走弯路。

本文还有配套的精品资源,点击获取

返回列表