【IT168 专稿】当你历尽艰辛说服主管筹得iSCSI SAN计划的资金,当你踌躇满志地想为数据中心的每个服务器集群配备SCSI磁盘阵列,或是某台服务器负载超出了内部存储的速度,你不得不考虑升级,这时的你大概就想着要组建梦寐以求的iSCSI阵列,并迫不及待对管理层许诺要建立起内部统一高速的以太网来。
听我一言,且慢实施你的规划。因为也许你会认为iSCSI通过现有的网络加以改造就能无需花费太多精力去实现。然而,有些问题却使我们冷静下来。现有的网络应用都是在假定网络连接有失败这个前提下设计的,而操作系统则从不认为它的磁盘驱动器会有无法访问的时候。两者的冲突使得只要网络上有一台中毒的笔记本占用着带宽,哪怕仅仅只有几分钟,都会使得服务器访问它们的磁盘变得困难重重。不难看出,建立iSCSI SAN的首要条件就是将iSCSI的通信搭建在专有的VLAN(虚拟局域网)上,最好是选择独立的千兆网络。
交换机的选择
企业级的交换机对于iSCSI显得必不可少。我曾将一个低端的24口的千兆交换机用以iSCSI:1-16端口连接服务器,18-24端口连接磁盘设备,并把它置于10M集线器连接起的以太网中,结果千兆交换机很快地过载,导致了数据包的大量丢失及性能的急剧下降。原因在于用户级的交换机不支持多端口间的线速交换功能,所以在传输过程中会发生无提示的丢包情况。
所以还是得选择企业级非阻塞型的交换机,比如Extreme Networks和Foundry Networks公司出品的交换机。即便选择了正确的交换机,我们还需意识到如果服务器与交换机仅有单一的千兆路线连接,那么磁盘阵列的访问也将面临失败的风险。也许电缆上一次小的故障,交换机端口略微的松动,都可能导致线路的中断。后果可能会使数据丢失,应用中断,更严重的是使你的数据库陷入崩溃。
自Kalpana的10M以太网交换机以来,服务器管理员就开始应用NIC teaming技术来降低单网卡端口连接带来的风险,同时这种技术又增加了服务器和网络间的带宽。后来大部分的服务器网卡的驱动又增添了功能:当多个网卡连接到同一交换机时,传输负载可以在这多个网卡间自动保持平衡。这些使得服务器和交换机端口间的连接中断的风险大大降低,但并不能消除由于交换机故障带来的中断风险。
当一个SAN交换机出现单点故障时,对于数据中心的影响就好像中子弹的爆炸。你的设备都外表完好无损的摆着,然而内部所有的连络完全陷入了中断,数据资料彻底无法访问,死寂般地好似失去灵魂的人。我们不想看到这一幕的发生,宁愿相信交换机厂商那50,000小时平均无故障运作时间的承诺,然而我们又都知道故障总是在最糟糕的时候发生。
目前来说非常好的的解决方案是MPIO(多路径输入输出),它可以使得iSCSI接口和磁盘阵列间建立起多重连接,并能指定数据传输的以太连接和路径。因为MPIO运行在第三层上,所以不像运行在第二层上的NIC teaming技术需要所有的连接必须处于同一个广播域中,它给服务器的每一个以太网卡都分配了独一的IP地址,所以连接可以在不同的子网间建立。
MPIO能为iSCSI initiator所支持,大部分情况下无须额外的费用。但有些磁盘存储生产商,如EMC和Network Appliance,对于在它们的磁盘阵列中使用MPIO的用户需要购买额外的MPIO驱动。
综上所述,你最好要为重要的应用程序而增加交换机的数量,而且每个服务器与磁盘阵列的连接至少有两个。除此之外,连接带宽也必须足够大,以便当发生磁盘阵列与交换机的连接失败时,能承担起服务器与磁盘阵列间所有数据的传输。