IP存储网络及标准化进程
2.2 iFCP技术
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.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技术实现对服务质量的支持。
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.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技术实现对服务质量的支持。
0
相关文章