2.3 iSCSI技术
相比于上述两种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网络存储技术对比表
FCIP |
iFCP |
iSCSI |
|
包含的IP的内容 |
最少 |
居中 |
最多,无FC内容 |
终端设备 |
Fibre Channel |
Fibre Channel |
iSCSI/IP |
网络服务 |
Fibre Channel |
IP |
IP |
协议栈 |
原封不动使用Fibre Channel协议层次 |
高层使用FC-4层底层使用iFCP代替FC-2层 |
自己的串行SCSI实现 |
是否支持FC SAN的合并 |
支持 |
不支持 |
— |
网络管理 |
复杂,需要FC和IP两套网管 |
简单,单一网管 |
简单,单一网管 |
安全性 |
一般 |
利用磁盘分区增强安全性 |
对安全有专门定义 |
服务质量 |
使用IP QoS |
一般 |
使用IP QoS |
技术实施复杂度 |
简单 |
复杂 |
简单 |
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年底完成征求意见稿。