SAN交换机Zone配置详解及最佳实践
SAN存储光纤交换机连接服务器,配置,划zone
标题前言
对于SAN交换机,全球主流的就博科(Brocade)和思科(Cisco),中国市场绝大部分基本都是博科(生产环境截止目前还未接触过思科),另外需要特别说明,市场上能看到的主流的SAN交换机,包括Dell,HP,联想等也全都是OEM的博科的,因此本文就以博科为例简单聊聊Zone的配置思路
配置思路
碰到FC SAN的环境在不做任何配置的情况下默认所有接口都在一个Zone内,接上光纤线直接互通,就是所谓的All in One,当然最佳实践一定不推荐这么做,主要有两个问题:
- 访问安全层面:所有前端计算节点和所有存储之间能够互通,尤其在多集群或多存储的场景就比较危险
- 流量安全层面:当一个Zone内出现状态变更通知RSCN(registered state change notification,RSCN)或者错误告警等的时候不会传播到别的Zone,从而造成影响
核心概念
几个核心的递进逻辑需要先了解下:
- Zone:SAN交换机的配置核心,类似于IP网络的vlan,同一Zone内的接口相互之间可以互访
- WWPN:光纤端口的端口号,是FC网络的基本单位,相当于IP网络里的IP地址或Mac地址
- Alias:别名,相当于给WWPN起个名字,一方面便于配置,一方面也便于理解
端口编号:类似于交换机的interface,SAN交换机的端口一般也表示为(交换机ID,端口),如1,8就是1号交换机8号端口 - CFG:配置文件,一台交换机仅能生效一个配置文件,因此多个Zone会置于1个配置文件中
Zone划分最佳实践
Zone划分最佳实践一般考虑以下两个维度:
Zone划分区域
前面提到不推荐直接用一个大Zone,那应该怎样划分才最合理,很多文章都有提到最佳划分即每个Zone仅包含一个存储控制器端口和一个业务端口,当然这么做一定没问题,但是有个小缺点,在很多场景下需要配置的Zone过多,尤其是后期需要增改端口等工作量巨大,也容易出错,因此以下谈谈我个人的理解:
首先再引入两个概念:同一个Zone端口内相互通信并不是平级,分为Target和Initiator,一般来讲存储段作为Target,服务器端为Initiator,当然这并不绝对,可以手动配置将这两个角色互换。配置Zone的时候,应该将一个Initiator对应多个Target,这样在节省大量配置的情况下对安全及性能也不会有影响
Zone划分单位
Zone划分基本有两种方式,一个是基于WWPN/Alias,一个是基于物理端口,两种方式各有优劣,可根据实际情况进行选择,主要的区别在于以下两个场景:
-
当服务器HBA卡出现故障或者更换HBA卡过后,基于WWPN的方式需要更改配置中的相关WWPN号,而基于端口的方式无需更改任何配置
-
当SAN交换机接口出现故障需要更换端口时,基于端口的方式就需要重新更改端口进Zone,而此时基于WWPN的方式则配置无需做任何改动
配置案例
下面以一个典型的SAN环境案例简要说明下配置
1. 环境概述
典型的三主机,两台SAN交换机,一台双控的存储,拓扑如下:
涉及接口及规划表如下:
配置流程
以下把两种配置都说明下:
基于WWPN/Alias的配置
配置规划:
配置流程(以SW-A为例):
创建Alias:
swd77:admin> alicreate "ESXi01_1","11:00:00:00:00:00:00:1a"
swd77:admin> alicreate "ESXi02_1","11:00:00:00:00:00:00:2a"
swd77:admin> alicreate "ESXi03_1","11:00:00:00:00:00:00:3a"
swd77:admin> alicreate "Storage01_1","22:00:00:00:00:00:00:1a"
swd77:admin> alicreate "Storage02_1","22:00:00:00:00:00:00:2a"
创建Zone:
swd77:admin> zonecreate "zone_A1","ESXi01_1,Storage01_1,Storage01_2"
swd77:admin> zonecreate "zone_A2","ESXi02_1,Storage01_1,Storage01_2"
swd77:admin> zonecreate "zone_A3","ESXi03_1,Storage01_1,Storage01_2"
创建CFG:
swd77:admin> cfgcreate “cfg_wwpn”,“zone_A1;zone_A2;zone_A3”
swd77:admin> cfgenable “cfg_wwpn”
swd77:admin> cfgsave
基于端口的配置
配置规划:
配置流程(以SW-A为例):
创建ZONE(端口也可以创建Alias,但端口本身并不复杂,一般不需要Alias):
swd77:admin> zongcreate "zong_A1","1,2;1,0;1,1"
swd77:admin> zongcreate "zong_A2","1,3;1,0;1,1"
swd77:admin> zongcreate "zong_A3","1,4;1,0;1,1"
创建CFG:
swd77:admin> cfgcreate "cfg_port","zone_A1;zone_A2;zone_A3"
swd77:admin> cfgenable "cfg_port"
swd77:admin> cfgsave
2. 其他-
- 新建配置文件
cfgCreate “lzlj_idc”
cfgCreate “lzlj_idc”,“zonename”
- 新建别名
AliCreate “HyLocal_ESXi112222_p1”,“51:40:2E:c0:15:54:F5:14”
Alicreate “H3C_C650_1”,“member1;member2;member3……”
- 新建zone
zonecreate “testzonename”, “zonemember1;zonemember2;zone……”
成员可以是"Domain,Port";“WWN”;“Alias”
是否成功要看最后能否生效,此条也适用于别名。
- 将新Zone添加至配置文件
cfgAdd “lzlj_idc”, “testzonename”
- 保存自定义的配置
cfgsave
- 生效配置文件
cfgEnable lzlj_idc
同时只能有一个配置文件生效
7. 重命名别名和zone
zoneObjectRename “testzonename”, “newzonename”
zoneObjectRename “HyLocal_ESXi112222_p1”, “newaliname”
zoneObjectRename还适用于cfg重命名。
重命名后需要cfgsave和cfgEnable来使修改生效。
!重命名别名后,相应的zone信息会不会跟着变更?会。
8 .别名、zone增加成员
aliadd “aliName”, “member[; member…]”
zoneadd “zoneName”, “member[;member…]”
9 . 移除别名、zone成员
aliremove “aliName”, “member[; member…]”
zoneremove “zonename”, “member[;member…]”
!如果一个alias中只有一个成员,且这个成员WWN错误,如何修改最便捷?
- 替换别名、zone成员
zoneobjectreplace “oldZonemember” “newZonemember”
zoneobjectreplace “oldAliasmember” “newAliasmember”
- 删除别名、zone、zone配置文件
alidelete “aliname”
zonedelete “zonename”
cfgdelete “cfgname”
转载:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)