1、引言
存储区域网络是当前存储应用的发展趋势,而ip存储区域网络又是其中的热点。IP存储网络技术是一种封装串行SCSI(Small Computer System Interface)实现在IP网络中传输的存储区域网络技术,利用IP存储网络技术,企业能够构建本地数据中心,能够实现数据备份和远程容灾。相比于以往的Fibre Channel(FC,光线通道)存储网络技术,IP存储网络技术具有低成本、被广泛采用、良好的标准化情况、高扩展性、易治理、良好的广域网连接以及灵活的安全性和QoS保证等诸多优点,非凡是吉比特以太网技术的使用和万兆以太网技术的出现也消除了IP存储网络技术在性能上的瓶颈,因此IP网络存储技术必将成为未来构筑存储区域网络的主流技术。
2、IP存储网络技术介绍
IP存储区域网络主要包含两方面的含义,一是对已有的FC存储区域网络的扩展和连接,二是构建纯粹的IP存储区域网络。简言之,IP存储区域网络技术主要包括从FC存储区域网络到IP存储区域网络的过渡技术,纯粹的IP存储网络技术两大类。
目前,IP存储网络技术主要有三种技术(见图1):FCIP(Fibre Channel over IP)技术、iFCP(Internet Fibre Channel PRotocol)技术和iSCSI(Internet SCSI)技术,前两种技术属于过渡技术,而后者属于纯粹的IP存储网络技术。
图1FCIP技术、iFCP技术和iSCSI技术
2.1FCIP技术
FCIP使用TCP/IP封装FC帧,主要用于连接广域的FC存储区域网络。FCIP协议是一种隧道(Tunnel)协议,IP地址和TCP连接只用在位于IP网络终点的FCIP隧道设备中。FCIP能够为两个FC存储区域网络“孤岛”之间提供IP连接,而不能为两个独立存储设备之间提供IP连接,也就是不能端到端地利用IP来连接FC设备。
如图2所示,FCIP帧只是简单的将FC帧封装到TCP/IP中。FC报头、SOF、EOF分隔符、FCCRC以及FC数据都不被FCIP修改。FCIP在FC帧和TCP报头之间加入了FCIP报头,用来显示FCIP协议的版本、帧长度等字段。在FCIP接收端设备接收到FCIP帧后,能够通过EOF,SOF和帧长度来验证帧的有序发送。
图2FCIP帧格式、iFCP帧格式和iSCSI帧格式
发送端FCIP设备将FC帧封装为FCIP帧,通过IP网络发送。接收端FCIP设备剥离IP及TCP报头,解封装后的FC帧与本地的FC帧一样,通过一个或者多个FC交换机发送到目的节点。FCIP利用TCP传输层的保序、差错控制及拥塞控制机制实现FC数据在IP网络上的可靠传送。由于FC帧在FCIP设备中被原封不动地封装和转发,整个过程对于IP网络完全透明,因此两个FCIP设备之间的隧道连接建立以后,两个单独的存储区域网络就可以合并(Merge)组成一个逻辑存储区域网络。
FCIP协议的一个重要问题是错误恢复。对于FCIP协议,FC网络和IP网络彼此是透明的,FC帧的内容对IP网络来说是不可见的。FCIP只负责处理IP网络产生的错误,而对于FC层产生的任何错误,包括底层错误、CRC错误和FC路由层次错误等是不感知和不处理的。当一个存储区域网络中存在错误时,该错误会被透明地传播到另一个存储区域网络中。另一方面,两个FCIP设备之间的TCP连接因各种原因关闭后,原本连接而成的单一的逻辑存储区域网络将分割成两个单独的存储区域网络,各自进行本地数据交换,即使TCP连接恢复后,这种状况也不会改变,除非人为干预。
由于FC帧在不透明的管道中传输,IP网管工具不能穿透FC会话层,因此在网络治理方面,FCIP网络的运维需要IP和FC两套治理系统。
在服务质量(QoS)方面,FCIP可以直接利用IP网络的QoS技术,另外FCIP还可以通过加强IP报头的解释,为FC网络提供更好的QoS服务。
2.2iFCP技术
iFCP是一个网关到网关的协议,为TCP/IP网络上的FC端设备提供FC网络服务,也就是可以实现端到端的IP连接。FC存储阵列、HBA(主机总线适配器,Host Bus Adapter)、交换机等可以直接连接到iFCP网关上。
如图2所示,iFCP帧也是将FC帧封装到TCP/IP中,但与FCIP不同之处在于,iFCP对封装的FC帧进行了修改,在协议实现中删除了FC的FC-2层(用于保障底层传输和路由功能)。对于去除FC-2后所缺失的路由功能(即FC-2对应的功能),iFCP将24位的FC网络地址映射到一个惟一的IP地址上,为FC设备提供本地IP编址,从而实现FC路由功能。另外,iFCP直接利用了TCP保障可靠传输的机制替代了FC-2的相关功能。
每个FC设备都具有一个24位的FC N_Port地址,分成3个8位的部分,DomainID,Area ID和Port ID。DomainID表示设备连接的交换机,Area/PortID表示设备连接的交换机的端口。每个交换机能够提供6.5万个地址。iFCP为端设备的24位的FC地址描述定义了两种编制技术:地址透明模式和地址转换模式。地址透明模式使用传统的FC编址方案,代价是每个iFCP网关将至少消耗6.5个地址;在地址转换模式中,iFCP网关除了给本地设备分配地址外,还要为远程设备分配地址,使它看起来和本地资源一样。iFCP网关在这种模式下,将维护一个远程设备地址和本地代理地址的转换表,在数据转发时,使用远端地址代替代理地址。在网络通信时,iFCP网关进行FCN_Port地址和IP地址的映射,维护N_Port地址到IP地址的查找表,分别将对应的IP地址和N_Port地址放入到IP报头和FC报头中。在接收端,iFCP网关根据地址转换表进行路由寻址,将数据报转送到端设备。
iFCP是一个被设计成既支持FC又支持IP的协议,因此iFCP需要模拟FC网络服务,包括登录、SNS(Storage Name Service)注册。
iFCP不支持分割的存储区域网络的合并(Merge),因此无法组成单一的逻辑SAN。并且iFCP提供FC设备端到端的连接,TCP连接的中断只会影响到一个通信对,而不会影响到其他通信,也不会将一个设备的错误带给其他设备。iFCP的网络治理只需要单一的网管系统。
iFCP的安全性考虑要比FCIP强。iFCP利用类似于FC中的分区(Zoning)功能的发现域(Discovery Domain)功能来实现存储资源的隔离,只答应经过授权的引发器发现特定的目标设备并与之建立会话。同时,iFCP还可以利用IP网络的安全技术来保障安全,如IPSec,ACL和VPN等。
2.3iSCSI技术
相比于上述两种IP存储网络技术,iSCSI是一种纯粹意义上的IP存储网络技术,它不包含任何FC的内容,iSCSI存储端设备支持TCP/IP协议栈,直接接入IP网络。iSCSI为通过IP网络进行块数据传输定义了自己的串行SCSI实现。
iSCSI协议的帧格式如图2所示。在SCSI CDB(Command Descriptor Block)前加入iSCSI头,帮助接收端解释SCSI命令。iSCSI头和SCSICDB组成iSCSI协议数据单元,并封装进TCP中,在IP网络中传输。
在iSCSI构建的IP存储区域网络中,每个主机和存储资源都支持吉比特以太网接口和iSCSI协议栈,设备能够直接连接到吉比特以太网交换机或IP路由器上,iSCSI端节点显示为一个IP实体。iSCSI使用TCP保证在IP网络上进行可靠的数据传输,通过一个或多个TCP连接在引发器和目标之间支持一个iSCSI会话,TCP连接确保iSCSIPDU顺序发送,其中PDU封装了标准的SCSICDB用于传送命令和数据。iSCSI层为操作系统提供了标准的SCSI访问方法命令组的接口。iSCSI还答应提供IPSec数据加密功能,保证数据的安全性。协议还规定了可选的数据同步和数据控制机制,确保iSCSI数据和命令的有序接收。
每个iSCSI节点具有两个标识,一个是iSCSI节点名,一个是IP地址和TCP端口号的结合。iSCSI节点名和iSCSI地址的分离能够保障存储设备在网络中具有一个惟一的标识,即使iSCSI节点在网络中的位置发生改变,该设备仍能够被重新发现。
在开始工作前,引发器和目标之间首先建立TCP连接,连接正确建立后,开始iSCSI会话。引发器和目标之间的iSCSI会话必须通过一个iSCSI登录进程(Login Phase)来启动,该过程用来协商双方的变量参数,假如成功,目标将向引发器发出一个登录接受信息;否则,登录被拒绝,连接中断。iSCSI登录交换使用文本字段协商引发器和目标之间的参数,这些字段和一些要害字相关,这些要害字后面是协商得来的值,假如一个引发器所提供的范围和目标所提供的不一样,将使用二者之间的较小值。
登录完成以后,iSCSI会话进入完全特性阶段,即正常的SCSI事务阶段。假如该会话建立了多个TCP连接,单独的命令/响应对必须在相同的TCP连接上传输。ISCSI PDU用来传送命令、状态和数据,R2T(Ready-to-Transmit)PDU在目标和引发器之间扮演了高层SCSI流量控制的角色。
iSCSI错误处理和恢复最主要的要求是:引发器和目标必须都具有缓冲命令和响应的能力,直到它们得到确认为止。例如,在一个写操作中,引发器必须将刚发送的数据保存到缓冲区中,直到它收到一个来自目标的R2T,表明先前发送数据已经收到。iSCSI通过序列号确认(或SNACK)PDU来恢复丢失PDU。SNACK会指出丢失的PDU数目,并且计算接收到的上一个可用PDU。
在iSCSI协议中答应使用多种安全机制,如IPSec和登录认证等。iSCSI的会话始于iSCSI登录进程,在登录进程中能够调用一个安全例程来对可答应的连接进行认证,并且iSCSI登录过程也为两个端设备协商二者都支持的安全性类型提供了文本字段。同时,iSCSI的登录进程也能够借用IP技术中的接入认证技术。iSCSI协议也支持位于iSCSI层下的多种加密方案,能够实现端到端的认证和加密。iSCSI技术也能够使用主流的IP网络通用的安全机制,如ACL,VLAN和VPN技术。
iSCSI协议本身没有定义对QoS的支持,可以利用IP QoS技术实现对服务质量的支持。
2.4技术比较
以上介绍的三种IP存储网络技术都能实现IP存储区域网络,协议栈、技术细节、网络服务以及实施难度等方面有着明显的区别,各有优缺点和适用环境,具体的技术对比见表1。
表1三种IP网络存储技术对比表
点击查看大图3、IP存储网络技术标准化进程
IP存储网络技术的标准化工作仍在进行中,主要的IP存储网络标准化组织有SNIA和IETF。SNIA由制造商组成的,主要从事存储网络技术工业标准的制定,在整个存储行业中具有较大的影响力。而IETF是传统的Internet标准制定的组织,在IP存储领域也具有较大的影响力。两者都对目前主要的三种IP存储网络技术进行研究和标准化制定,但各自又有所侧重。
SNIA(网络存储工业协会,Storage Network Industry Association)是由计算机厂商、数据存储厂商和数据治理厂商等组成的一个非官方组织,致力于驱动未来的存储工业标准、实施和教育等。SNIA由其下设的IP存储论坛(IPSF,IP Storage Forum)负责IP存储区域网络的存储解决方案的标准制定及技术研究。因此,SNIA制定的标准中除了技术细节外,更关注的是对IP存储网络技术的实际应用。目前SNIA发布的标准中主要包含的文档有:《iFCP技术概述》、《iFCP过渡技术》、《存储区域网络中的iSCSI》、《iSCSI技术白皮书》、《iSCSI技术下的光纤通道和IP存储网络的集成》和《FCIP技术白皮书》。
IETF(Internet工程任务组,Internet Engineering Task Force)成立了IPS(IP Storage)工作组,进行IP存储网络技术的标准制定工作。IPS跟踪和研究封装SCSI和FC协议在IP网络中传输的实际方法以及与此相关的其他主体,包括安全、命名、发现和配置等。
目前,IPS工作组已经发布了12个RFC(请求注释,Request for Comment)和12个草案(Draft)。IETF的标准内容更多的覆盖了IP存储网络技术的技术细节,对于实际应用的定义说明比较少。IETF将FCIP和iSCSI技术作为IP存储网络技术标准制定的重点,已经有RFC支持,而iFCP技术仍然出于草案阶段。主要的标准或草案包括RFC3347,RFC3720,RFC3721,RFC3783,RFC3980,RFC3643.RFC3821和RFC3822和Draft-ietf-ips-ifcp-xx等。
IPS工作组还对与IP存储网络相关的的其他协议进行了研究。如SLP(服务定位协议,Service Location Protocol)协议和iSNS(Internet Storage Name Service)协议。
为适应IP存储网络发展,加快相关标准的研究制定,中国通信标准化协会已于2004年开始了IP存储网络技术的立项研究工作。到目前为止,《IP存储网络交换设备技术要求》、《IP存储网络交换设备测试方法》、《支持存储的路由器技术要求》和《支持存储的路由器测试方法》正在起草中,计划于2005年底完成征求意见稿。