分类: 服务器与存储
2006-03-28 17:23:53
Zoning是Brocade交换机上的标准功能,通过在SAN网络中交换机上进行Zoning的配置,可以将连接在SAN网络中的设备,逻辑上划分为不同的区域,使各区域的设备相互间不能访问,是网络中的主机和设备间相互隔离。
对于设备来说是透明的。这里的区域划分都是在Brocade交换机上完成的,划分区域的工作对于主机和存储设备来说都是透明的,在他们上面不需要进行任何配置。他们会以为SAN网络中只有Zone中的几台设备,根本没有其他的设备存在。
要实现这种SAN网络中区域的划分,思路有两种:在名字服务器中隔离和在数据转发时过滤数据包,用这两种方法实现的Zone分别被称作Software Zone和Hardware Zone。
Software Zoning
Software Zone是完全基于Name Server实现的。当一个主机登录到Fabric网络时,他会向Name Server登记,并向他查询在Fabric中的所有设备。Name Server知道Fabric中的所有设备,但不会都告诉查询着。而是把主机所属于的zone内的设备作为查询结果返回,其他的不在zone内的设备会被Name Server隐藏起来,主机不知道设备的存在。如果主机是一个好公民(Good Citizen),也就不会去试图访问他Name Server没有告诉他的设备,实现了网络的隔离。
采用这种方式划分Zone后,交换机并不根据地址或端口过滤数据包,没有严格的安全性的保证。如果SAN中的主机不是好公民,他会试图扫描网络中的所有存储设备,并试图访问他。Software Zoning不能阻止这种非法访问。正是由于这个原因,在进行Zoning的设计时应该尽量避免使用Software Zoning,而是采用Hardware Zoning的方式完成Zoning的功能。
Hardware Zoning
Hardware Zoning的实现方式和Software Zoning完全不同,他并不基于Name Server实现Zoning的划分,而是真正在设备上根据Zoning的定义进行数据包的过滤,真正的把网络从物理上隔离开。无论主机是否是好公民,他都能严格的保证Zoning的划分,实现良好的安全性。
Session Enforced Zoning
Session Enforced Zoning是软件Zoning,但是在PLOGI/ADISC/PDISC时,ASIC对设备进行认证,只有在zone内的合法设备才能完成上述过程。
都不影响性能
Brocade交换机上Zoning的功能是在ASIC硬件上实现的,无论是Software Zone还是Hardware Zone多不会影响交换机的数据转发性能。
Software Zone和Hardware Zone不是人为指定的,而是由交换机根据Zone内的成员类型自己去判断的。Zone的类型的判别标准如下:
当Zone的同时有WWN名和Domain,Port作为成员时——Software Zone。
当Zone的只有WWN或只有Domain,Port作为成员时——Hardware Zone。
请思考现实生活中的例子说明类似Software Zone和Hardware Zone区别的情况?
比如我们到开架式图书馆中借书:
开架式图书馆——SAN网络。
图书——存储设备(Target)。
借书人——主机(Initiator)。
图书目录——Name Server
图书馆想阻止某人对某些图书的访问可以有下面两种方法:一是不给借书人看图书库的完整名册;二是划分阅览区,不让借书人接触到不该访问的图书。
不给借书人看完整图书名册的方法就是Software Zoning的方法。如果借书人听话,查询图书目录后,只会访问名册上已有的图书(Good Citizen),这种方法可以隔离了他对目录上没有的图书的访问。但如果借书人比较多事,不光查阅书目的目录,还到所有的书架上去察看所陈列的所有书籍(Bad Citizen),则这种方法无法阻止他对目录上没有列出图书的访问。
但如果在图书馆中设立不同的阅览区,在个区域的入口处设有保安,控制借书人进入阅览区,这就是Hardware Zone的方法。不管借书人是否是好公民,这种方法从物理上个隔开了借书人和图书,一定可以阻止借书人对某些特殊图书的访问。非常可靠。
从上面的例子中可以清楚地看到Software Zone和Hardware Zone的区别。正是由于Hardware Zoning的这些特点,他是在Zoning划分时是首选的方案。Software Zoning是应该被避免的一种情况,在有可能的情况下,应该尽量采用Hardware Zoning划分区域。
配置Zone需要涉及到三个对象的配置Alias,Zone,Configuration。
Alias
可以把设备的WWN或Domain,Port声明为Alias,用于更好更直观的标示设备。
使用Alias的主要目的是方便用户的使用,想象一下记住一个人的身份证号和名字的区别就可以明白其中的道理,使用Alias就想给设备启名字一样。声明Alias的另外一个益处是便于Zone中成员的更换。当Zone中的某个成员更换时,如果定义了Alias,只要修改Alias的定义就可以调整Zone中的成员,而不用修改Zone的配置。
Zone
区域,Zone内的设备可以相互访问,但不能访问其他Zone的设备。Zone的成员可以有三种:“Domain,Port”;”WWN”;”Alias”。
Zone对成员的数量没有限制,可以同时有多个类型的多个设备同时存在于一个Zone中。当一个wwn被定义在zone中后,他的所有端口都会被包括在zone中。
Configuration
在交换机上的一套关于Zone的配置,或者说一系列Zone的集合。它可以包含一个或多个Zone作为它的成员。
在一个SAN网络中一般需要有多个Zone同时存在,这一套同时存在的Zone被存放在一个Configuration中。为了解决在交换机上,在不同的时间有不同的Zone的配置的问题,在交换机上允许同时有多个Zone的Configuration存在方便Zone配置的切换。
所有的Configuration配置中只有一个Configuration是生效的配置,被称作Active Configuration。其他的都是待选方案,只有在他们成为Active Configuration后,他们的Zoning配置才会生效。
Zoning分区在发送RSCN时产生的影响
只要名称服务器有改变,比如一个设备增加或者以移出fabric网络,一个状态更改通知(RSCN)就会产生。如果没有zoning的话,RSCN会发到fabric网络上的所有设备上,这样每个设备都要去咨询名称服务器以确定fabric更改后的成员关系怎样。虽然有时该设备的改变没有影响到有的设备,但这个信息照样会送给它。如果是一个大的 fabric网络的话会产生非常多的信息流,尽管只是非常短的时间。
举个例子:一个新的服务器(访问发起者)加入到了fabric网络,这条信息其实是不用通知到其他的服务器(同样也是访问发起者)。因为服务器之间基本上是不会有什么交流的。在被访问者(如存储系统、磁带库等)之间也有同样的情况,这些设备之间也是很少有交流的,所以目标设备在 光纤网络里的状态改变也是不用通知到其它的目标设备的。
如果zoning功能打开了的话,那么只有在改变设备所在的zone的有关设备才会收到RSCN。如果设备已经知道它们zone里的成员的话,那么它们不会收到RSCN。只有与状态改变有关的设备才会收到RSCN。所有的设备都假设是不影响正常应用的情况下处理RSCN的,实际的经验显示其实并不都是这样的。因此, 实施了zone的fabric网络可以提高更高的可用性和稳定性。
Telnet下Zoning的配置命令
在交换机上配置Zoning的主要途径有两种:Telnet和WEB TOOLS。Zoning的配置可以动态的进行,当使用cfgEnable指定某个配置成为生效的配置后,Zoning的配置会立即在SAN网络中生效,隔离Zone间的相互访问。在交换机上新创建Zoing的配置一般会按如下的方式进行:
aliCreate
在创建Zoning的配置时,应该首先创建Alias,把需要划分Zone的所有设备都创建为别名。一个Alias中可以同时有多个设备作为它的成员。
zoneCreate
然后创建Zone,并使用Alias作为Zone的成员,创建Zone应该遵循每个Zone中只有一个Initiator的原则;
cfgCreate
所有的Zone都创建完成后,需要创建Configuration,把需要同时存在的Zone放在一个Configuration中,根据需要可以创建多个Configuration存储不同场景下Zone的配置方案
cfgEnable
在创建了一个或多个Configuration后,这些配置都还没有生效,要真正完成区域的划分,还需要指定那个Configuration配置是生效配置,这个工作可以用cfgEnable命令完成。
cfgSave
上面做的所有Zone的配置都是存储在内存中的,在交换机重新启动后,配置会丢失。使用cfgSave命令后会把RAM中Zone的配置(包括那个Configuration生效)保存到Flash中,长久保留。
注意:关于Zoning的配置中使用到的名字,都是大小写敏感的,比如“zone1”和”Zone1”;”cfg1”和”CFG1”都是不同的名字,在配置时应该注意这点。
Zoning的配置示例
— 创建Members
– aliCreate “EngHost
– aliCreate “EngStor”,”s1wwn;s2wwn”
– aliCreate “Mkt”, “1,4;s5wwn;s4wwn”
— 创建Zones
– zoneCreate “ZoneEng”,”EngHost1;EngStor”
– zoneCreate “ZoneMkt”,”Mkt”
— 创建Configurations
– cfgCreate “cfgEngMkt”,”ZoneEng;ZoneMkt”
— 选用配置、存储配置
– cfgEnable “cfgEngMkt”
– cfgSave
修改zone成员
— 增加s3到zoneMkt
– aliAdd “mkt”, “s3wwn”
– ZoneAdd “ZoneMkt”, “s3wwn”
– cfgEnable “cfgEngMkt”
– cfgSave
在进行Zone的配置时,应该注意下面的问题:
要实现Zoning的功能,关键的不是学会使用Zoning的命令,而是做好Zone的规划设计,在实施配置之前,先设计好Zone的结构、成员,根据你的配置清单在到交换机上完成配置。
一个主机一个Zone
在设计Zone时,有一个最基本的原则——每个Zone中只有一台主机。遵循这样规则设计出的Zone,结构非常清晰,不会有错误产生。另外可以防止不同的主机争夺对磁盘控制权的情况。
Hardware Zone
在设计Zone的创建命令时,一定要尽量使用Hardware Zone。不要使用安全性不好的Software Zone。
命名规则
Zoning中所用到的名字的命名规则和C语言的变量命名规则相同规定:
1。大小写敏感的,在设计和配置时应该把大小写分清楚。
2。必须是字母开头的,并以字母或数字作为内容,可以使用“_”;
使用端口的WWN
SAN网络中的一个设备会有两种类型的WWN,一个是Node WWN,另一个时Port WWN。在实现Zone时一般使用Port的WWN来创建Zone,不去使用Node的WWN,这样的配置比较灵活自如。比如如果某个存储设备有两个端口,你可以指定某些主机从一个端口访问存储,另一些主机从另一个端口访问存储。
设计Zone的考虑
避免将一个设备同时定义到一个硬件Zone和另一个软件Zone。
当一个Zone跨越不同的ASIC,采用端口设定Zone。
当以WWN划分Zone时,保证所有的设备连接到BLOOM ASIC的交换机上。