前端主机接口更多协议的接入能力
我们上节讲到了模块化存储器的前端主机接口的速度问题,下面我们将要谈到另外一个经常会碰到的问题,即我们在规划网络存储项目时碰到的用NAS/SAN/IPSAN甚至是最新的FCOE等协议,这些五花八门的东东本质上谈论的就是存储器的前端主机接口是通过什么协议和主机相连。
稍微花点时间来解释一下协议是个什么东东,通俗来讲,协议是指两种设备在通讯期间用来沟通的约定俗成的一种规范,就好比语言一样,同样是咿咿呀呀,中国人用的是中文,米国人用的是English,必须采用同样的规范来沟通,否则就会出现牛头不对马嘴的情况(牛的语言和马的语言明显不是一个路数)。
以上是笔者经常用来解释不同协议及其本质的一张图,我们可以从应用程序、文件系统和存储器的位置很清楚地看出DAS/NAS/SAN的区别(由于本文不是存储网络入门课程,更加详细的资料请参考网上非常多的关于此方面的培训教材),简单来讲,只要分清楚文件系统和存储系统以及所接入网络的位置,我们就可以很方便地搞清楚SAN/NAS和DAS的区别。
注意,从协议上来讲,DAS、SAN、ISCSI(即所谓IPSAN)甚至FCOE本质上都是用的SCSI协议,只是封装在不同的网络协议中(DAS环境里面主机和存储间当然是没有网络了),我们可以把这种服务叫作块级别服务(block service),而NAS是提供文件系统的服务,我们叫file service(如上图所示NAS头里面自己已经包含了file system);而从硬件连接属性来看,ISCSI和NAS同样走的是TCP/IP网络链路。
早期传统的存储器基本上都是配置光纤接口,通过SAN交换机连接到主机的HBA卡来提供存储服务。如果要提供文件共享的NAS服务,多通过连接到NAS服务器头做到(比如EMC的Celera),如果要提供iscsi服务,也是通过一个协议转换器从SAN接口转换成iscsi接口提供IP级别的block服务。
而不少入门级的磁盘阵列为节约成本即直接提供ISCSI接口通过IP端口提供服务(因为ISCSI存储阵列只需要通过普通的TCP/IP网络交换机即可以和其他主机的TCP/IP网卡相连提供存储块级别服务,网络交换机的采购成本要远低于存储交换机,网卡也比HBA卡便宜)。
而早期市场上也有不少独立的NAS头厂商,最出名的当然是Netapp了(还有不少小公司如Procom等后来都陆续被收购或者消失了);另外微软也发布了一个独立的windows WSS文件共享服务器,通过OEM给各家PC服务器厂商主要提供windows环境下的文件共享服务(基于CIFS协议);当然还有一种更加简单便宜的方法,即去www.samba.org 网站去下载一个简单的samba软件包,选取你要安装的平台或者需要简单便宜一下,一个具备基本文件共享功能的NAS服务器就搭建成功了(注Samba更多服务于Unix环境,针对NFS性能较好)。
可以说当时NAS/SAN/ISCSI阵营还是比较容易区分的,早年在国内存储界甚至形成了一个所谓采用SAN就是高端,采用NAS就是低端的论调。而不少存储器厂商为了赢得项目在早期往往会极力鼓动客户采用对自己有利的存储访问协议来访问存储(SAN存储器厂商说SAN好,NAS存储器厂商说NAS方便,iscsi存储器厂商说iscsi总体成本低)。
然而这一切被netapp在2005年前后用一个叫统一存储FAS的概念给颠覆了。根据Netapp的设计思路,其存储控制器Filer通过其Data OnTap操作系统,结合WAFS文件系统可以同时提供NAS/SAN/iSCSI服务。在模块化存储器体系架构分析中我们提到过,NETAPP是采用通用服务器的设计理念来构造其控制器架构的,因此从接入的硬件实现来讲只需要在存储控制器这台PC服务器上插入HBA卡或者网卡,控制器软件可以方便地把封装各种存储协议为主机提供存储块级别服务或者文件级别服务。
这种创新式的架构为Netapp带来了巨大的商机,用户从此不需要再去考虑各种协议之间的差别,反正Netapp只需要一套存储控制器都能提供相应接口,从而大大减轻了成本。而其他存储厂商往往都需要额外配置转换模块(FC到iSCSI协议转换)或者配置额外的文件服务器引擎(SAN到NAS的协议转换),而这些额外的设备带来了其硬件成本的提升。
需要指出的是SUN推出的7000系列存储器也是采用此种思路,其上层采用Solaris open storage操作系统(对应netapp的是Data OTAP),底层采用赫赫有名的128位文件系统ZFS,也能同时提供ISCSI/NAS/SAN接口,算得上统一存储领域的后起之秀吧。
另外一家在国内名气不大的专业存储厂商Pillar Data System也能够提供类似的功能,其存储控制器Axiom Slammer Storage Controllers也能够灵活地提供SAN、NAS、ISCSI的前端主机接口。
有意思的是在Oracle收购SUN以后,Larry的声明中表示原SUN存储器产品线首先确定的就是7000系列的统一存储将是Oracle未来的发展重点,再联系到Larry自己投资的Pillar Data System公司的Axiom系列存储器也是走的统一存储的路线,看来至少从Oracle的角度看来,统一存储(单控制器同时支持各种存储协议的接入)会有很广泛的市场,将是未来存储器的发展方向。
EMC在CX3的升级以及CX4系列存储器中已经可以做到把FC接口和iscsi接口整合在一起,但是现在还做不到把NAS接口也整合进去(毕竟需要在接口卡部分内置一个文件系统才能提供NAS服务)。
当然也有不少存储厂商会提到把Netapp这种做法本质上是用一个NAS服务器虚拟成一个block呈现给主机,通过这种“假SAN”的方法把file service和block service共同嵌入到一个存储控制器里,或者说其性能可能不如单独的NAS引擎来得强劲。这些孰是孰非笔者在本文中不做判断。其实说到底关键还是需要深入分析用户的业务系统的应用类型怎样,因此这也需要广大用户在采购相关存储设备时综合权衡。
最后谈到一个非常有趣的现象,越来越多的存储厂商在朝着统一存储接口这个方向走,这应该是模块化存储器的一个发展的方向,也是存储器厂商制造设计实力的一种体现(在存储控制器层把底层协议和前端接口协议分开)。当然各家厂商实现方法和Netapp的FAS可能会有所不同。其主要思路是利用虚拟机的技术(如vmware),在控制器中同时运行block级软件和NAS服务器软件,有小道消息说下一代的EMC CX和收购了Onstor的LSI都会朝这个方向尝试,这样将会有越来越多的存储器厂商可以在一对存储控制器里面同时提供SAN/NAS和iscsi的服务。