9.7 SAN扩展设计案例学习
本节SAN扩展设计案例分析的焦点在FCIP,我们的目标是调整某企业当前IP基础设施及管理资源,使它们能够连接及扩展已有的本地FC SAN,提供私有云计算及云IaaS服务。FCIP解决方案同样克服了长距离物理(>10,000km)限制,关于FCIP的简介,请参考7.4.1节的相关内容。
简单的FCIP设计样例
企业“L”决定采用另外一种私有云计算方式,企业采用从上至下的垂直管理模式,因此,企业可能在6个月之内需要将现在的伦敦总部与香港分部互换一下。
从企业角度出发,商业持续性(Business Continuity,BQ)及灾难恢复(Disaster Recovery,DR)比其他任何事情都重要,而IT管理部门更愿意首先解决从伦敦到香港的DC迁移,或者将现有FC SAN从企业DC扩展到区域DC。私有云计算及云IaaS实施将紧随SAN扩展之后。最初的IaaS用户对象将来自亚太(Asia Pacific,APAC)区。
在企业DC及区域DC间的FCIP最开始是点到点方式,在之后阶段,会有更多APAC站点加入,应该转移到集中星型拓扑(更多细节请参考7.4.2节的相关内容)。由于系统设备都采用了远程备份及主机镜像技术,因此对两个站点间的带宽及时延限制在此处并不像之前那样严格,将来也可以采取异步复制等机制,但此时并不重要。
只是企业“L”必须要严格保证实现短恢复时间的目标(更多细节,请参见7.1.1节)。换句话说,FCIP的设计方案必须要考虑到HA机制的健壮性,使得故障时间最短。此外,SAN扩展初期将只会牵涉到区域DC,并不会涉及总部DC的FC启动器以及FC目标。
图9-16给出了一个站点A(总部DC)与站点B(区域DC)之间的点到点FCIP设置的模拟示意图。JBOD-1(配备了6个磁盘),HOST-11和HOST-12都在VSAN 100内,连接到FC交换机MDS-1处,而HOST-21和HOST-22在VSAN 200内,连接到FC交换机MDS-2处。接下来的动作都将以图9-16展示的部署为基础:
·配置FICP HA
·配置VSAN和inter-VSAN路由
接下来这两小节的内容都将以图9-16部署为基础。
说明:这对MDS 9216A交换机在图9-16中承担了FC交换机功能,其SAN-OS版本为3.3(3),每个交换机都配备了8端口IP存储服务模块,以及一个16端口光纤通道交换机模块。
FCIP HA配置
MDS-1与MDS-2的FCIP HA配置如代码清单9.21与代码清单9.22所示。
图 9-16 简单的点到点FCIP设置
代码清单9.21 MDS-1 FCIP HA配置
代码清单9.22 MDS-2 FCIP HA配置
标准的FCIP HA配置步骤如下所示:
·将千兆以太网接口配置分配给相应的FCIP参数文件,在代码清单9.21及代码清单9.22中,分别为Gig2/1与Gig2/2。
·创建端口通道,在代码清单9.21及代码清单9.22中,为端口通道10(Po10),调用“channel mode active”命令,将通道模式设置成活动模式。
·调用“fcip enable”命令,启动FCIP特性。
·配置FCIP参数文件,读者可以在文件中使用不同参数,在代码清单9.21及代码清单9.22中,FCIP参数文件1中本地IP地址为Gig2/1,FCIP参数文件2中本地IP地址为Gig2/2。
·配置FCIP接口,在代码清单9.21及代码清单9.22中,接口ficp1和fcip2接口配置如下:
·调用“channel-group 10”命令,将ficp1和fcip2添加到Po0。
·调用“use-profile”命令,将FCIP参数文件1分配到接口fcip1,FCIP参数文件2分配到接口fcip2。
·调用“peer-info ipaddr”命令,将相应的对等IP地址信息分配给接口ficp1和接口fcip2。
·调用“no shutdown”命令,启动fcip1和fcip2接口。
说明:FCIP接口为FCIP链路(或FCIP隧道)的本地端点以及VE_Port接口。所有FCIP与E_Port参数都在FCIP接口上下文中配置完成。更多细节,请参考本书第7章“VE_Port”与“FCIP链路与虚拟ISL”相关内容。
如代码清单9.23所示,执行“show fcip profile<id>”命令后,可以得到当前配置好的FCIP参数文件的状态信息,对FCIP参数文件状态进行验证。
代码清单9.23 FCIP参数文件验证
还有一种比较便捷的方法能够验证本地MDS交换机上的FCIP接口状态信息,调用“show fcip summary”命令,如代码清单9.24所示。根据命令输出结果可知,隧道1(fcip1)和隧道2(fcip2)工作正常,并且启动了汇聚(结果显示为TRNK)功能。
代码清单9.24 FCIP接口状态信息
说明:TRNK状态意味着隧道工作在TE模式下,也就是说FCIP接口此时被当做了汇聚扩展端口(trunking expansion port,TE_Port)。其余的缩写包括WA(写加速)、TA(磁带加速)、Enc(封装)以及Comp(压缩)都属于高级的FCIP功能,在代码清单9.21及代码清单9.22中未激活。更多有关这些功能的详细内容,请参考7.4.4节的相关内容。
正如代码清单9.25展示的那样,调用“show port-channel database”命令,可以得到当前端口通道数据库中本地MDS交换机上已配置好的端口通道状态信息。从输出结果可知,ficp1和fcip2两个FCIP接口都注册为“up”状态,说明它们已成功地连接到Po10上,星号是指该端口味Po10中可操作的第一个端口。
代码清单9.25 FCIP端口通道数据库
VSANs配置与inter-VSAN路由
在端口通道配置FCIP接口不仅可以调节通过FCIP隧道的负载平衡,实现带宽优化,还能够融合HA功能。如果某条链路发生故障,此前由该链路负责的网络流将被切换到余下的其他链路上继续传输,而这些切换对上层协议都是透明的。FSPF路由表也不会被链路故障而影响,因此不但不会对故障恢复产生破坏,还可以提高故障恢复速度。
推荐将配置好的端口通道放在过路虚拟化存储区域网络(Virtual Storage Area Network,VSAN)内,而不是将它当做汇聚端口使用。这样可以确保任何与WAN相关的故障(例如,WAN链路摆动/故障)所产生的不利影响被限制在过路VSAN之内,而不会影响到本地VSAN。由于端口通道是非汇聚链路,并且位于单独的VSAN内(过路的VSAN),因此要求VSAN间路由(Inter-VSAN Routing,IVR)负责不同VSAN之间的FC帧路由转发。图9-16中,VSAN 9属于过路的VSAN,因此要在VSAN 9和VSAN 100和VSAN 200之间建立IVR。
说明:FC中的VSAN类似以太网中的VLAN,由一组相互连接的FC交换机的端口组成,并形成了一个虚拟的光纤。交换机内的端口可以被划分成不同的VSAN,但依然共享硬件资源。另外,多个FC交换机连接了多个端口,通过内部交换机链路(Inter-Switch Link,ISL)或者是强化ISL(Enhanced ISL,EISL),也可以组成了一个单独的VSAN,可以将EISL看成FC汇聚端口。
IVR要求使用一张VSAN重写表,每个支持IVR的交换机都维护了一张VSAN重写表,重写表以每个交换机域而非每个终端设备为单位,可以保存4096条信息。图9-17展示了一个简化的VSAN重写表样例,该样例是参照图9-16的设置而设计的。
图 9-17 简化的VSAN重写表
利用如图9-17所示的VSAN重写表,假定当前从FC域0x8f要发送一个FC帧到FC域0x2c,在MDS-1上经过VSAN重写操作处理后,原来为100的VSAN标签被改写成9,而在MDS-2上,又将9改成200,逆操作是在返回路径上完成的。
说明:MDS交换机上实际的VSAN重写表可以调用“show ivr internal fcid-rewrite-list”命令查看。
回到IVR的实现上,首先要将Po10以及FCIP接口(fcip1和fcip2)从trunk模式改成notrunk模式,如代码清单9.26所示,调用“switchport trunk mode off”命令可以关闭Po10和FCIP接口(fcip1和fcip2)的trunking功能。MDS-1和MDS-2要分别调用该命令。
代码清单9.26 非trunk模式配置
代码清单9.27展示了MDS-1上VSAN配置,其中,FC接口fc 1/10、fc1/15、fc1/16将归于VSAN 100,端口Po10归于VSAN 9,可以调用“no shutdown”命令启动FC接口。
代码清单9.27 MDS-1的VSAN配置
代码清单9.28展示了MDS-2上VSAN配置,其中,FC接口fc 1/10、fc1/15将归于VSAN 200,端口Po10归于VSAN 9,可以调用“no shutdown”命令启动FC接口。
现在是时候简单了解一下FLOGI以及FCNS数据库了。
在一个FC光纤中,每个主机(N_Port)或磁盘(NL_Port)都需要一个FCID,如果所要求的终端设备确实在FLOGI数据库里,则光纤登录就成功了。FLOGI数据库有所有登录到光纤(例如,本地MDS交换机)的终端设备信息。别名和分区的pWWN也可以查询FLOGI数据库得到。
代码清单9.28 MDS-2的VSAN配置
代码清单9.29分别调用“show flogi database”展示了MDS-1和MDS-2的FLOGI数据库,从输出结果可知,JBOD-1、HOST-11和HOST-12都成功地登录到MDS-1上,同样HOST-21和HOST-22也成功登录到MDS-2上。
代码清单9.29 FLOGI数据库
FC命名服务器(FC Name Server,FCNS)是一个小型数据库,就像一个大范围拓扑服务一样,存储了多交换机光纤中每个节点(FC启动器及/或目标)的信息,包括FCID、pWWN等。
代码清单9.30分别调用“show fcns database”命令展示了MDS-1和MDS-2上的FCNS数据库,此时还未实现IVR,因此命令的输出结果中只包含了连接到MDS-1和MDS-2的本地设备信息。
代码清单9.30 IVR之前的FCNS数据库
JBOD-1(如图9-16所示)配备了6个磁盘(DISK-1到DISK-6),按计划是为每个主机配备一个磁盘,某些分区也要求配备磁盘。
代码清单9.31展示了MDS-1上VSAN 100的分区及配置信息。
代码清单9.31 MDS-1分区和分区集配置
HOST-11和DISK-1被划分到分区11,HOST-12和DISK-2被划分到分区12,分区集“zonelocal”也会将zone11和zone12作为本分区成员。
说明:“show zoneset active”命令可以验证配置好分区(集),也可以验证本地分区(集)。
接下来,该配置MDS-1和MDS-2上的IVR了。代码清单9.32和代码清单9.33分别对此进行了说明。
代码清单9.32 MDS-1 IVR配置
代码清单9.33 MDS-2 IVR配置
IVR配置步骤如下:
·调用“ivr enable”命令,启动MDS-1和MDS-2上的IVR。
·IVR使用Cisco光纤服务(Cisco Fabric Service,CFS)基础设施完成自动IVR配置分布,并为整个(多交换机)光纤提供一个单独的配置点。MDS-1是主交换机,调用“ivr distribute”命令启动MDS-1和MDS-2上的IVR配置分布。
·调用“ivr nat”和“ivr vsan-topology auto”命令启动主交换机MDS-1上的IVR NAT以及自动VSAN拓扑发现功能。IVR NAT支持在IVR拓扑范围内的VLAN和交换机间采用非唯一性的FC域ID。
·调用“ivr zone”命令,配置主交换机MDS-1上的IVR分区,将HOST-21选定的端口成员(pWWN和相关的VSAN)以及DISK-3添加到新的IVR分区中,IvrZone21。同样,将HOST-22的pWWN和相关VSAN和DISK-4增加到新IVR分区,IvrZone22。有关的pWWN及VSAN信息都可以查询FLOGI数据库得到。(参见代码清单9.29)
·调用“ivr zoneset”命令,配置MDS-1上的IVR分区集,将新增加的分区IvrZone21和IvrZone22添加到分区集IvrZoneSet1内。
·调用“ivr zoneset activate”命令激活主交换机MDS-1的分区IvrZoneSet1。
·调用“ivr commit”命令,在主交换机MDS-1上执行提交操作,将分区配置传播给所有的支持IVR的交换机(本例中,为MDS-2)。
说明:比起使用CLI命令行,使用Cisco光纤管理器(Fabric Manager,FM)GUI更容易完成IVR配置,而且也不容易出错。
有一个简单的方法可以验证Po10的trunk模式,即调用“show interface brief”命令,命令输出如代码清单9.34所示,此时Po10、ficp1、ficp2的trunk模式状态为“off”,Po10、ficp1、ficp2的可选模式为“E”而非“TE”,这也进一步这个命了链路汇聚被成功地关闭了。
代码清单9.34 非trunk端口通道验证
调用“show ivr vsan-topology”命令可以验证IVR VSAN拓扑配置结果。如代码清单9.35所示,过路的VSAN 9和VSAN 100已经关联到MDS-1,而过路的VSAN 9和VSAN 200则关联到MDS-2,星号意味着这是本地交换机的名字(World Wide Name,WWN)。配置好了的(Configured,Cfg)域显示结果为“no”,这是因为VSAN拓扑是自动生成而非手动配置。
代码清单9.35 IVR VSAN拓扑状态
“show ivr zoneset active”命令能够验证活动IVR分区集,如代码清单9.36所示,由命令执行结果可知,MDS-1的分区配置信息已经成功地传给了MDS-2。
代码清单9.36 活动IVR分区集验证
说明:自主光纤ID(Autonomous Fabric ID,AFID)能将两个逻辑和物理都是分离的VSAN区分开来,但是这些VSAN的VSAN ID的值却是一样的。本例中,AFID的值都为1(默认),因为设置中并没有覆盖VSAN ID的值。
代码清单9.37对完成IVR配置后的MDS-1的FCNS数据库进行了说明,过路的VSAN 9的pWWN目录中包括了DISK-3、DISK-4、HOST-21、HOST-22的信息。VSAN 100的pWWN目录中则包含了HOST-21、HOST-22的信息,IVR已经成功地将信息从VSAN 200(传递到VSAN 9,又从VSAN 9传给了VSAN 100)。
代码清单9.37 IVR完成后的MDS-1 FCNS数据库
代码清单9.38展示了IVR配置后的MDS-2的FCNS数据库信息,与MDS-1类似,过路的VSAN 9的pWWN目录中包括了DISK-3、DISK-4、HOST-21、HOST-22的信息。VSAN 200的pWWN目录中则包含了DISK-3、DISK-4的信息。这意味着,IVR已经成功地将信息从VSAN 100(传递到VSAN 9,又从VSAN 9传给了VSAN 200).
代码清单9.38 IVR完成后的MDS-2 FCNS数据库