现在有三种协议可用来在TCP/IP 上传输存储数据: iSCSI(Internet SCSI),FCIP(Fiber Channel Over TCP/IP)和iFCP(Internet FCP)。 他们形成一个基于IP的存储协议体系,称为IP存储。
这些标准有一个共同之处,他们都在TCP/IP 上传输SCSI,因此主要也就是在以太网上发送和接收上层应用的数据。iSCSI 把SCSI 菊花链映射到TCP/IP;FCIP 在两个隔开的光纤通道之间通过TCP/IP 隧道传输光纤通道交通;iFCP 是一个网关到网关的协议,为光纤通道终端提供通过IP网络访问光纤通道交换网的途经,并被用作从已有的光纤通道SAN向全部采用TCP/IP 技术的SAN过度的一种机制。
一. iSCSI
SCSI 是一个被广泛采用的计算机与I/O设备,特别是存储设备通信的协议。 它采用客户-服务器体系结构。 SCSI 接口的客户被称作发起方,发起方发送SCSI 命令,请求被称作目标方的逻辑单元的服务。 SCSI 的传输协议把客户-服务器模式的SCSI协议映射到一个具体的链接。 发起方是SCSI 传输的一个端点,目标方是另一个端点。
SCSI 协议被映射到多种传输链接上,包括并行SCSI和光纤通道。 这些传输链接都是I/O特有的,并且只支持有限的距离。
iSCSI 的基本思想是在TCP/IP 网络上传输SCSI分组。 因此,iSCSI采取的是与光纤通道类似的方法,其实现形式是作为一个设备驱动程序安装在操作系统中。 不同点在于,iSCSI是用TCP/IP连接代替SCSI 电缆,类似于FCP,iSCSI驱动程序实现SCSI 协议,并把SCSI 菊花链映射到TCP/IP网络。
作为一个传输协议,iSCSI在标准的TCP/IP 网络上传输SCSI 请求和应答,SCSI 命令,响应和数据都被封装在TCP/IP分组中传输。 iSCSI发起方和iSCSI 目标方在通信之前需要在他们之间建立会话, 一个会话可以使用一条TCP 连接,也可以使用多条TCP连接。
iSCSI 发起方和目标方之间通过标准IP网络连接,网络接口设备可以是标准的以太网卡,也可以是专用的iSCSI 适配器。 普通的网络接口卡虽然可以在主机和存储设备之间传送数据分组,但不适宜传送块数据。 为了能够在网络接口卡(NIC: Network Interface Card)上传送块状数据,需要先把SCSI命令和数据封装到iSCSI协议数据单元(PDU:Protocal Data Unit)交给TCP/IP协议。 如果在主机上运行iSCSI驱动程序来完成此项工作,需要占用主机的CPU资源,因而会降低主机服务于应用程序的性能。
不同于普通的NIC网卡,主机总线适配卡(HBA:Host Bus Adapter)专门用来在主机和存储设备之间传送块状数据,数据块被整个地送入HBA,由HBA中的专用芯片实现iSCSI 协议,完成iSCSI PDU的封装和解封装工作,从而可接触CPU 的相关负担。
iSCSI 适配器结合了iSCSI 驱动程序和NIC 功能,因此,它更像一个HBA,而不在是一个标准的NIC。
1.1 iSCSI 体系结构
iSCSI 协议是从SCSI 的远地过程调用模型到TCP 协议的一个映射,负责在SCSI发起方和目标方之间传送命令与数据。 SCSI 发起方在iSCSI请求中发送SCSI命令及参数,SCSI 目标方在iSCSI应答中返回状态及结果。
类似于光纤通道中的FCP层,iSCSI的首要任务是把SCSI 命令,状态和数据打包。 在iSCSI报文的核心部分,传统的CDB(Command Descriptor Block)完成在磁盘或磁带上读或写数据块的实际工作。SCSI CDB被封装在iSCSI 协议数据单元(PDU:Protocal Data Unit)中,与它在光纤通道中用FCP层传送的方式相似。 iSCSI PDU还包含一些其他的信息,用于监控发起方和目标方之间交互过程的状态。 iSCSI PDU通过TCP 连接和IP路由进行传输。
发起方和目标方之间的一次iSCSI会话可能会创建一个或多个TCP连接。 多个TCP连接是的会话可以并行地执行更多的事务,这样能优化对协议的处理和对链路的利用。
处于路由的目的,每个iSCSI设备有一个唯一的IP地址。 iSCSI 结点名唯一确定了与网络相连的iSCSI设备,可以使用最多长达255个字节的标识符来命令iSCSI设备。 标识符是唯一的,而IP 不唯一。
在光纤通道光纤网中,连接设备的第一个操作就是登陆到光纤交换机并接受一个光纤通道地址。 iSCSI 同样提供登陆服务,但不是一个交换机登陆,而是面向另外一个iSCSI设备登陆。 iSCSI 设备的IP地址是手工配置或者通过DHCP服务器得到的。 iSCSI 登陆过程用于发起方和目标方之间协商在会话过程中可能要使用的任何可变参数,并且可能调用一个安全历程来认证和确认连接的许可。 如果登陆成功,目标方会返回一个接收报文给发起方,否则就是拒绝登陆并断开连接。
在成功登陆之后,iSCSI 会话双方就可以进入信息交换过程,在TCP/IP网络上,iSCSI 协议实体用IP地址加上TCP端口号编址,目标方的默认端口是3260。
1.2 目标方发现
iSCSI 发起方启动后,先确定它能访问的iSCSI目标方,然后简历会话并存取其中的数据。 确定可访问iSCSI 目标方的过程称为目标发现。
iSCSI 发起方可以采用SLP(Service Location Protocal:服务定位协议)或iSNS(Internet Storage Network Service: 因特网存储名字服务)协议来发现iSCSI目标方。
SLP 是定义如何把查询指定到一个服务器上的IP协议,这个服务器提供指定设备的IP地址和名字。
iSNS 协议也提供所需要的IP地址解决方案,并包括一些附加的特征,用于分区,授权以及检测存储网络配置中的变化。
1.2.1 SLP服务定位协议
服务定位协议(SLP)为网络服务的发现和选择提供一种可扩展构架。通过此协议,使用 Internet 服务的计算机不再需要那么多为网络应用程序服务的静态配置。
习惯上,用户使用网络主机名(可读的文本字符串),也称为网络地址的别名找到服务。SLP 使得用户不再需要通过获取网络主机名得到支持服务,用户为服务命名并提供属性集。SLP 允许用户将这些描述捆绑到服务的网络地址上。
SLP 为局域网的应用程序提供了一种动态配置机制,但它不是整个互联网的全球网络方案系统,而只是服务于提供共享服务的企业网络。作为客户机模型的应用程序需要发现企业网络中远端的服务器,而对于拥有很多不同可用服务、客户机的系统,采纳此协议可以充分利用邻近目录代理为发布的服务提供集中存储点。
SLP 中的基本操作是客户机试图发现服务的位置。在小型系统中,每个服务被配置为独立响应每个客户机;而在大型系统中,每个服务都会在一个甚至更多的目录代理中进行登记,客户机连接目录代理完成服务定位请求。这与 URL 规范类似,并且它充分利用了 URL 技术方案。
SLP 是一个面向分组的协议。 大多数分组都使用UDP传送,但对于长的分组也可以使用TCP 传送。 由于UDP 潜在的不可靠性,SLP 以逐步增加的间隔时间重复传送所有的多播分组若干次,知道收到一个应答为止。 所有的设备都需要在427端口上倾听UDP数据报。 多播被SLP 广泛使用,特别是经常被那些加入一个网络需要寻找其他设备的节点使用。
SLP 对于IP存储发现请求的应答依赖于初始服务请求。如果存储资源被从网络中删除,则没有类似的状态转变通知。 发起方只有依靠iSCSI会话失败来获得通知。 尽管SLP包含一个scope条目指定可以访问某个目标的主机,但它并不具有类似光纤通道的分区或分区集合的机制。
这种运行机制适合比较小范围的iSCSI目标方发现。 难于扩展到大的企业级存储网络,它缺乏异步通知,分区能力和安全特性。
协议结构:服务定位协议消息头:
8 |
16 |
32bit |
Version |
Function |
Length |
O M U A F rsvd |
Dialect |
Language Code |
Char encoding |
XID |
Version:当前使用第1版。
Function:功能字段,主要描述服务分配数据报操作。
以下是一些信息类型:
Function Value |
Message Type |
Abbreviation |
1 |
Service Request |
SrvReq |
2 |
Service Reply |
SrvRply |
3 |
Service Registration |
SrvReg |
4 |
Service Deregister |
SrvDereg |
5 |
Service Acknowledge |
SrvAck |
6 |
Attribute Request |
AttrRgst |
7 |
Attribute Reply |
AttrRply |
8 |
DA Advertisement |
DAADvert |
9 |
Service Type Request |
SrvTypeRqst |
10 |
Service Type Reply |
SrvTypeRply |
Length:信息(包括服务分配协议头)字节长;
O:溢出位;
M:单语位;
U:当前RL 认证位;
A:当前属性认证位;
F:如果 F 位设置为服务确认,表示目录代理已注册最新登录服务。
Rsvd:预留这些位并设置值为0;
Dialect:由以后的 SLP 版本使用且必须设置为0;
Language Code:在该字段的编码预言,表示剩余信息应该使用的编译语言种类;
Character Encoding:剩余信息中构成串的字符可以采用任意标准化编码方式;
XID:事务标识符。允许与个人请求相匹配的答复
1.2.2 英特网存储名字服务协议(iSNS)
iSNS(Internet Storage Name Service) 协议提供智能的存储发现和管理服务,它被利用在TCP/IP 网络上对iSCSI 和光纤通道设备(使用iFCP)进行自动发现,管理和配置。 它适用于任何由iSCSI设备,或光纤通道设备,或二者的结合构成的网络。
iSNS服务器实际上起一个统一配置管理的作用,管理站可以通过它来管理真个存储网络,既包括iSCSI设备,也包括光纤通道设备。
iSNS的主要功能
(1)提供存储资源发现的名字服务:iSNS 提供注册功能,允许在存储网络中的所有实体向iSNS数据库登记和查询。
(2)发现域(DD:Discovery Domain)和登陆控制服务:
发现域服务基于管理和注册控制的目的把存储节点划分成更容易管理的组合。
登陆控制允许目标方把它们访问控制和授权策略的实现委托给iSNS服务器,这与使用iSNS服务器的存储设备执行集中管理的目标一致。
(3)状态变化通知服务:SCN(State Change Notification)服务允许iSNS服务器发布影响存储节点运行状态的网络事件。
(4)光纤通道和iSCSI设备之间的开放映射:iSNS 数据库存储关于光纤通道和iSCSI 两类设备的命令和发现信息。 因此允许iSNS 服务器存储从光纤通道设备到IP网络中代理iSCSI设备“映像”的映射。
iSNS的组成
(1)iSNS 协议(iSNSP):是一种灵活的轻量级的协议,它归档iSNS客户和服务器的通信方式。 该协议适用于多种平台,包括交换机,目标方和服务器主机等。
(2)iSNS客户:iSNS客户使用iSNSP发起与iSNS服务器事务处理过程。 iSNS 客户是驻留在存储设备中的进程,它注册设备属性信息,下载有关在一个公共发现域中其他注册客户的信息,接收对在该该发现域中发生的事件的异步通告。 管理站是一种特殊类型的iSNS 客户,它能访问存储在iSNS中的所有发现域。
(3)iSNS 服务器:iSNS 服务器响应iSNS协议查询和请求,发送iSNS协议状态变化通知,并将各存储设备在注册请求中提交的经过验证的信息存储在iSNS 数据库中。
(4)iSNS数据库:是为iSNS服务器提供的信息库,维护关于iSNS客户的属性信息。
iSCSI光纤通道网关是在光纤通道网络中的设备到达iSCSI/IP网络的桥梁。它可以使用iSNS服务器存储在光纤通道名字服务器中发现的光纤通道设备属性,以及光纤通道设备标识符到iSCSI设备标识符的映射。iSNS能够存储iSCSI和光纤通道设备的所有属性。可以通过使用iSNS的直接交互来管理iSCSI设备,也可以通过借助iSCSI-光纤通道网关的iSNS交互,间接地管理光纤通道设备。就允许在无缝的管理框架中既管理iSCSI设备,也管理光纤通道设备。
iFCP网关使用iSNS为在它的网关区域内的光纤通道设备仿真光纤通道名字服务器提供的服务。iSNS提供由iFCP网关实施的基本的发现和分区配置信息。当被查询时,iSNS返回用以在由iFCP网关支持的光纤通道设备之间建立iFCP会话的N端口网络地址。
管理站使用iSNS监视存储设备,通过配置发现域允许或禁止存储会话。管理站通常作为一个拥有对iSNS数据库记录的访问权和可以配置发现域的特权的控制结点,与iSNS服务器交互。通过操纵发现域,管理站控制查询iSNS服务器的iSNS客户设备之间的范围。
在一个存储区域网络中,可以有一个或多个iSNS管理工作站,每个iSNS管理工作站都可以通过iSNS协议或SNMP(SimpleNetworkManagementProtocol,简单网络管理协议)来与SNS服务器通信。iSNS可提供用于多种IP存储类型的共享设备信息,每个设备都可以在iSNS服务器上注册,并查询与设备支持的功能相关的信息,
分区的信息由管理工作站提供,通过管理来定义适当的发现域。状态改变通告由iSNS服务器发出,提示任何发起方查询iSNS以便得到可用的资源。iSNS服务器也是结点安全服务的逻辑位置。例如作为iSNS注册过程的一部分,IP存储设备应该在iSNS服务器上注册它的X.509公共密钥证书。在建立发现域之后,iSNS服务器就可以在同一个域中的设备之间分配适当的公共密钥。
与SLP相比,iSNS相对复杂,功能也更强大。iSNS通过一组类似于光纤通道上的服务,改善了iSCSISAN中存储设备的配置与管理。iSNS比SLP更适合具有很大可扩展性的企业级存储网络,因此成为用于包含光纤通道和iSCSI组件的SAN发现机制的首选。
1.3 iSCSI 会话
iSCSI会话包括两个阶段:登陆阶段和工作阶段。
会话的登陆是通过Login 请求和应答PDU实现的。 iSCSI的登陆阶段相当于光纤通道的端口登陆过程,该过程用来在发起方和目标方之间的相互认证并协调会话参数。 如果iSCSI登陆阶段成功完成,目标方就确认了发起方的登录,否则会话被拒绝,同时TCP连接中断。
登陆一旦被确认,iSCSI会话就会进入工作阶段,iSCSI 发起方就可以在会话上向iSCSI目标方发送命令和数据。
iSCSI注销(Logout)PDU 用来关闭一个TCP 连接或结束会话。 iSCSI 发起方可以通过Logout请求从一个会话中删除一个TCP连接,也可以关闭整个会话。
在iSCSI中,命令、状态和数据的传送都是有序的,为达到这种有序,iSCSI给它所传送的命令、状态及数据都编了序号。
对命令的编号是以会话为单位的,不管会话包含多少个TCP连接,其上的命令都被统一编号。从发起方传送到目标方的所有命令中都包含有序号,在传送命令的iSCSI请求PDU中,命令序号是一个32位的无符号整数,由发起方设置。命令序号开始于第一个连接上的第一个登录请求,此后,每发送一个命令,其序号就累加1,但立即(Immediate)命令除外。所谓立即命令是带有立即传送标志(I标志)的命令,它必须携带当前的命令序号,而且在传送后序号也不累加。一般情况下,在目标方,iSCSI层必须按照命令序号指定的顺序向它的上层(SCSI层)传送命令,但立即命令是个例外,iSCSI层必须立刻将它接到的立即命令传送到上层。
命令序号需要确认,目标方可以通过在应答PDU、Data-In(数据输入)PDU和NOP-In(无操作输入)PDU中传送下一个期待接收的命令序号,来确认对于一个命令的接收。NOP-Out和NOP-In类似于TCP/IP中的“Ping”操作,用来测试会话或连接的状态;可以由发起方使用NOP-Out触发,也可以由目标方使用NOP-In触发。
从iSCSI目标方发往iSCSI发起方的应答和状态报文中也都有序号,该序号称为状态序号,记录在应答PDU的StatSN域中。对状态的编号是以连接为单位的,即每个连接上都有自己独立的状态序号。在出现暂时或永久性通信错误时,利用状态序号可以检测丢失的状态信息并恢复之。状态序号也是一个32位无符号整数,其值开始于对该连接上第一个登录请求的应答。在登录应答中包含有状态序号的初始值。ExpStatSN是发起方发送的期望接收的下一个状态序号,是对StatSN的确认。
通常情况下,在iSCSI发起方发往iSCSI日标方的请求报文中都带有CmdSN和ExpStatSN,前者表示命令的序号,后者是捎带的对StatSN的确认。在iSCSI目标方发往iSCSI发起方的应答报文中都带有StatSN、ExpCmdSN和MaxCmdSN,StatSN是应答的序号,ExpCmdSN是捎带的对CmdSN的确认,MaxCmdSN用于调整发送窗口从而实现流量控制。
SCSI命令的执行可能伴随着数据传送。对数据的编号是以命令为单位的,即每个命令都有自己独立的数据序号。数据序号用于检测丢失的数据。通常情况下,数据传送是交互进行的,并需要iSCSI目标方向iSCSI发起方发送R2T(ReadytoTranslater,准备好传输)请求PDU。数据序号记录在PDU的DataSN域中,开始值是0,每传送一次数据,其DataSN就累加1。数据序号也需要确认,确认值是下一个期待接收的号码ExpDataSN。
二. 在TCP/IP上的光纤通道(FCIP)
FCIP(Fiber Channel Over TCP/IP)在基于IP网络上的互联分散的光纤通道SAN孤岛,形成在单个光纤通道交换网内的统一存储区域网。 光纤通道通信距离一般不超过100~200KM,因此不适合长距离通信。 FCIP 是利用TCP/IP协议来传输光纤通道数据帧,从而解决光纤通道网络的距离限制问题。
FCIP是一个协议标准,它把整个光纤通道数据帧,包括帧头,一起封装在一个TCP报文段中,该报文段在网络层又被加上IP头,形成IP分组后通过IP网络传输。 接收端收到IP分组后,在网络层和传输层分别去除IP头和TCP头,剩下的就是光纤通道的数据帧,被交给光纤通道去处理。
通过IP网络隧道传输光纤通道帧的设备必须集成光纤通道(FC)实体和FCIP实体,在光纤通道交换网和IP网络之间形成一个完全的接口。
FCIP 封装光纤通道信息块,并把它在TCP套接口上传送。 TCP/IP服务被用来在远程设备之间建立连接。 该传输服务不对光纤通道分组做任何改动,只是被封装在IP分组中传输。
FCIP的主要优点是克服本征光纤通道的距离限制。它也使得使用业已存在的IP基础设施把在地理上分散的光纤通道SAN设备连接在一起成为可能,同时仍然保持光纤通道交换网服务的完整性。
FCIP设备通常使用E端口连接到源光纤通道交换机上,目的地在远程场点的FC帧被封装到IP分组中,然后通过IP网络传输。在接收端,IP分组被解开,其中的FC帧被传送到接收端的光纤通道交换机的E端口再继续进行路由传送。 由于FCIP实现了远程的标准E端口连接,普通光纤通道交换机之间的协议信息也可以通过广域网链路传输,从而能够在更大范围内创建单个光纤通道交换网。通过延续E端口连接,FCIP隧道非常适合只在两个站点之间需要链接的应用。在当前产品市场上,某些FCIP设备可以提供额外的缓冲区以弥补光纤通道交换机缓冲区限制的问题,还可以提供数据压缩使得可提供的WAN带宽的利用率最大化。
FCIP是一个点到点的广域链接,因此每个远程链路都需要一对FCIP设备,并且每个远程场点都假设对方除了端结点之外还有一台光纤通道交换机。
因为大多数组织机构都已经有了一个IP基础设施,能够以相对低的代价把地域上分散的SAN连接起来的解决方案是很有吸引力的。FCIP封装光纤通道块数据,随后把它在一个IP套接口上传输。TCP/IP服务被用来在远程SAN之间建立连接。任何拥塞控制和管理以及数据错误、数据丢失等都由TCP/IP服务处理,并且不影响光纤通道交换网的服务。FCIP的要点在于,它并不使用TCP/IP来代替光纤通道,它只是使用TCP/IP隧道实现的光纤通道交换机之间的链接。
三. iFCP 因特网光纤通道协议
iFCP(Internet Fibre Channel Protocal)是一个网关到网关协议,它为在TCP/IP网络上的光纤通道设备提供光纤通道交换网服务。iFCP使用 TCP提供拥塞控制、错误检测和恢复。iFCP的主要目标是允许现有的光纤通道设备在IP网络上以导线速度互连和联网;特别是允许光纤通道存储设备通过网关附接到基于IP的光纤通道交换网。iFCP协议使得有可能在IP网络上实现光纤通道交换网的功能,使用IP组件和技术来代替光纤通道的交换和路由设施。
在交换网端口(fabricport)内部,网关呈现为一个光纤通道交换机成分。在这个接口处,远程N端口被看成是交换网附接的设备。相反,在IP网络那一边,网关把每个在本地连接的N端口呈现为一个逻辑光纤通道设备。
网关区域是远程附接的N端口通过一个iFCP网关可以访问的那部分iFCP交换网。在一个网关区域中的光纤通道设备指的是本地连接到该网关的那些光纤通道设备。在一般的情况下,每个网关区域就像是一个自治系统,它的配置对IP网络和其他网关区域不可见。
跨越TCP/IP网络的N端口到N端口的通信需要网关内iFCP层的协调。网关的操作包括:执行帧的编址和映射功能、封装光纤通道帧从而注入TCP/IP网络以及解封装从TCP/IP网络接收到的光纤通道帧、响应指向远程设备的PLOGI(PortLogin,端口登录)建立iFCP会话。
iFCP交换网支持2类和3类光纤通道服务,不支持4类、6类和1类服务。在交换网登录期间N端口负责发现交换网所支持的传输服务类别
iFCP的实现需要通过iSNS(theInternetStorageNameService)执行设备发现和iFCP交换网管理。iSNS服务器在iFCP网络中提供光纤通道名字服务。
iSNS因特网存储名字服务需要提供下列功能:
(1)仿真光纤通道名字服务器提供的功能,包括一种用以异步地通知N端口关于iFCP交换网配置改变的机制。
(2)把网关聚合进iFCP交换网以便互操作。
(3)通过定义和管理设备发现的范围(称作发现域)把iFCP交换网划分成若干个地区(zone)。
(4)存储和分发安全策略。
(5)实现光纤通道广播机制。
iSNS采用客户服务器结构。iSNS客户把自己的与命名属性相关的信息传送给服务器,并向服务器查询和从服务器接收与拓扑结构相关的事件和通告。iSNS服务器会对iSNS协议的查询或请求作出响应。
iSNS服务器中存放的信息包括网络存储的基本组件成分,例如域名、光纤通道设备、N端口和网关等,同时在iSNS服务器中还实现了安全保护机制。因此,iSNS服务器基于光纤通道SAN和IP存储,为iFCP网络提供一个综合的发现和管理解决方案。
iSNS服务器的配置和操作的基本特点如下:
(1)在每一个本地区光纤通道SAN中都设置一个iSNS服务器,通常都设置在每一个iFCP网关中,在每个iSNS服务器中包含整个网络的命名数据库,包括本地区以及远程SAN中每个存储设备的名字。
(2)光纤通道的命名更新数据单元只传送到网关的iSNS服务器。
(3)iFCP网关再把命名的更新数据单元用TCP连接传送到远程网关。
(4)由远程网关再把命名更新的数据单元传播到远程网关区中。
iFCP协议层的主要功能是在本地和远程附接的N端口之间传输光纤通道帧映像(image)。当向远程N端口传输帧时,iFCP协议层封装并路由光纤通道帧,该帧包含每个光纤通道信息单元,在IP网络上通过事先确定的TCP连接传输。当从IP网络接收光纤通道帧映像时,iFCP层解封装每个帧,并将其投递给适当的N端口。
iFCP层处理下列类型的交通:
(1) 跟光纤通道应用协议相关的FC-4帧映像。
(2) 包含光纤通道链路服务请求和响应的FC-2帧。
(3) 光纤通道广播帧。
(4) 建立、管理或终止一个iFCP会话的iFCP控制报文。
对于FC-4 N端口交通和大部分FC-2报文,iFCP层不解释其帧的载荷的内容。但iFCP解释并处理iFCP控制报文和某些链路服务报文。具体地讲,iFCP必须介入对在报文载荷中包含N端口地址的光纤通道链路服务报文的处理,以及对诸如N端口登录请求(PLOGI)这样的需要其他特别处理的光纤通道链路报文的处理。
iFCP会话由一对N端口构成,该端口对包含由单个TCP/IP连接所接合的会话端点。在一个给定的N端口对之间不可以有多于1个的iFCP会话。N端口用它的网络地址标识,其中包括:
(1) 由N端口本地附接的网关赋给的N端口ID。
(2) 由IP地址和TCP端口号构成的iFCP关口地址。IANA为iFCP协议交通分配的TCP端口号是3420。
因为在一对N端口之间仅存在一个iFCP会话,所以iFCP会话由会话端点的网络地址唯一标识。
为了建立一个iFCP会话,iFCP网关必须持有允许它定位一个远程附接的N端口的信息。这些信息被存放在称为描述器(descriptor)的信息块中。该描述器聚合关于一个远程附接的N端口的下列信息:
(1) N端口世界范围唯一的名字。该64位名字唯一地标识一个远程N端口描述器。
(2) iFCP关口地址。它是请求建立与一个iFCP会话相关的TCP连接时使用的IP地址和TCP端口号。
(3) N端口ID。它是远程iFCP网关赋给远程设备的N端口光纤通道地址。
(4) N端口别名。它是运行地址翻译模式的本地iFCP网关赋给远程设备的N端口光纤通道地址。
iFCP对于它访问的每个远程N端口都有一个并且只有一个描述器。如果没有,就需要向iSNS名字服务器查询,并使用由iSNS名字服务器返回的信息建立一个描述器。
N端口登录绑定TCP做法及原理分析
iFCP使用CBIND(ConnectionBind,连接绑定)报文和响应把一个N端口登录绑定到一个特定的TCP连接,从而建立一个iFCP会话。在CBIND请求报文中,N端口都用它们的世界范围端口名标识。
为了在远程和本地N端口之间提供透明通信,网关必须维护相关的描述器信息,能够把表示远程N端口的光纤通道地址和远程设备的N端口网络地址相关联。为了建立这种关联,iFCP网关分配并管理光纤通道N端口的交换网地址。
在iFCP交换网中,iFCP网关执行光纤通道交换机的地址分配和路由选择功能。然而,跟光纤通道不同的是,iFCP网关必须能够把帧在IP网络上引向附接到远程网关的外部设备。
对本地附接的设备的N端口地址的分配由设备所连接的交换机部件控制。对远程附接的设备的N端口地址的分配由访问远程设备所使用的本地网关控制;在这种情况下,网关必须为远程设备分配一个具有本地意义的N端口别名,来代替由远程网关给该设备分配的N端口ID。
为了执行地址转换和实现路由选择功能,网关必须建立iFCP会话,产生把每个N端口别名映射到相关的TCP/IP连接参数和远程N端口ID。
光纤通道链路服务所提供的功能允许一个端口发送控制信息或请求另一端口执行一个特定的控制功能。iFCP层负责通过IP网络传输链路服务报文。这包括把链路服务报文从光纤通道传输域映射到IP网络传输域。
实际上,iFCP就是一种基于TCP/IP网络运行光纤通道的通信协议。它把光纤通道的数据以TCP/IP分组的形式封装传输,并把IP地址映射到不同的光纤通道设备上。它也是一种网关协议,把光纤通道设备(例如RAID磁盘阵列、应用服务器和光纤通道交换机)连接到IP网络。
光纤通道信号在iFCP网关处终止,信号经转换后在TCP/IP网络中传输,这样iFCP就可以打破光纤通道的距离限制。iFCP还可以被看成是一种FCP路由解决方案,把低层的光纤通道传输用TCP/IP替换,沿途的IP路由器可根据数据分组的IP地址来把它向着目的地的方向传输。
使用iFCP,光纤通道设备连接到iFCP网关或交换机,每个光纤通道会话都在本地网关处终止,并通过iFCP转换成一个TCP/IP会话。第二个网关接受iFCP会话,并再发起一个光纤通道会话。
类似于网络的OSI模型,iFCP也采用了多层次的结构。在上层,光纤通道协议FCP提供一系列的SCSI命令接口给操作系统,这样会使光纤通道的终端设各可被操作系统视为标准的SCSI设备。对光纤通道协议的研究与开发已有多年的历史,并且已经过了市场的检验。iFCP既利用了光纤通道在这方面的优势,又使用TCP/IP协议作为一种底层传输的机制。
需要注意的是,不要把iFCP跟FCIP混淆。FCIP只是提供一个隧道的功能,把两个分离的光纤通道网络用TCP/IP网络连接起来。iFCP不是简单地封装光纤通道块数据,它把光纤通道头映射成IP头和TCP会话。
iFCP跟FCIP显著的不同点是它实际地用TCP/IP和千兆位或万兆位以太网代替低层光纤通道传输。在FCIP隧道中,IP地址是分配给网关的,而在各个光纤通道区域网络内部的存储设备没有对应的IP地址。与FCIP不同,iFCP和iSCSI都是为网络存储的每个参与方分配单独的IP地址。这就允许企业网络上可以访问TCP/IP网络的工作站都可以访问网络存储设备,也允许把来自任何设备的流量都置于IP路由控制和TCP会话控制之下,并且可以使用传统的IP网络管理工具来监控发起方和目标方之间的通信。
iFCP主动介入到N端口之间帧的传输中。iFCP网关管理光纤通道事务,并在光纤通道和IP网区域之间的边界处截取端口的登录请求。在E端口连接到光纤通道交换机的情况下,iFCP网关终止本地站点的E端口连接,并模拟交换网。 iFCP主要的优点是它克服了距离限制,允许把分散的SAN连接在一起,把光纤通道设备集成进熟悉的IP基础设施。通过使用iFCP作为网关到网关的协议,企业既可以受惠于现有的光纤通道设备,又可以有效地利用企业内部网络所具备的易于扩展性和易于管理性。iFCP的缺点是它的复杂度要高于FCIP,另外iFCP面临的工程难点是以线速执行复杂功能,还要同时支持光纤通道和IP标准。
四. 多协议环境和相关的解决方案
4.1 主要术语含义
光纤通道交换机在同一个交换网上的光纤通道连接之间过滤和转发分组,但它不能够在交换网之间传送分组。一旦把两个光纤通道交换机结合在一起,就把这两个交换网合并成了提供一组交换网服务的单个交换网。
路由器在两个或多个光纤通道交换网之间转发数据分组。路由器使用分组头和转发表确定转发分组的最佳通路。
各个分离的光纤通道交换网可能都有自己的寻址机制。当它们通过路由器互联时,必须有一种方法,用来在两个交换网之间执行地址翻译。这种机制称作网络地址翻译(NAT:NetworkAddressTranslation),有时也称作FC-NAT(光纤通道-网络地址翻译),以区别于在IP路由器中使用的类似机制。
隧道是一种允许一个网络把它的数据通过另一个网络连接传送的技术。隧道操作把一个网络协议封装在由第二个网络运载的分组中。例如,在FCIP中,光纤通道分组被封装在IP分组内。隧道引发了诸如分组大小、压缩、失序分组投递和拥塞控制这样的问题。
当光纤通道路由器需要提供协议转换或隧道服务时,它就成了网关而不是路由器。不过在实际的应用中人们对二者不加严格区分,往往把路由器也说成包括这些功能。FCIP是一个隧道的例子,而iSCSI和iFCP都是协议转换的例子。
iSNS协议方便了在TCP/IP网络上iSCSI和光纤通道设备的自动发现、管理和配置。iSNS提供了可比于在光纤通道网络中实施的存储发现和管理功能。这样让人感到IP存储网络的运行方式跟其他SAN类似,并且由于iSNS仿真光纤通道交换网服务,使得它既能管理iSCSI设备,也能管理光纤通道设备,从而允许光纤通道网络和IP网络的透明集成。
4.2 注意事项
任何技术都可能有特别需要人们考虑的一些独特的问题,IP存储网络也是如此。下面介绍在多协议光纤通道环境下需要特别关注的一些事项,重点是路由选择方面的问题。
4.2.1.分组大小
光纤通道分组的标准长度是2148字节,标准的IP分组长度是1500字节(带有1460字节载荷)。显然在二者之间需要做一些适配的工作。
当你在IP网络上传输光纤通道协议的时候,可以使用巨大IP分组机制来适配较大的光纤通道分组。不过需要注意的是,必须在整个数据通路上启用巨大IP分组。此外,巨大IP分组不能够通过网络中任何不支持巨大IP分组机制的设备传输,因为这些设备不会配置适合巨大IP分组的缓冲区。
作为其他可选的方法,可以采用各种机制,把光纤通道分组分割成多个较小的分组来通过IP网络传送。一些压缩算法也可以解决较大的光纤通道分组通过IP网络传输的问题。
每个厂商都可以用不同的方式来处理这类事项,但关键点在于他们都尽力避免发送较小的低效的分组。
4.2.2. TCP拥塞控制
在一些情况下,标准的TCP拥塞控制可能不适用隧道存储。标准的TCP拥塞控制对网络拥塞反应很快,但恢复得很慢。这样做适合传统的可变而不可靠的IP网络。但对于存储应用,这种做法并非总是合适的,可能会破坏对延迟敏感的应用。
当发送了3个未得到应答的重复分组时,传统的TCP把发送速率减少50%。它把拥塞门槛设置成当前窗口尺寸(拥塞窗口和通告窗口中的最小值)的一半,接着把拥塞窗口设置成一个段,然后再使用慢启动技术重新启动。
一些厂商修改了后退和恢复算法。例如,修改使得在每次遇到拥塞时发送速率仅降低12.5%,然后通过每收到一次应答加倍发送速率来快速恢复到完全的发送速率。不过,如果让存储和其他IP应用共享IP链路,那么这些存储友好的拥塞控制可能影响到其他应用。
4.2.3. 往返延迟
往返延迟是分组传输在来回路程上的延迟。往返延迟通常包括通路固有的延迟和拥塞引起的延迟。
光纤通道线缆在传输的每个方向上有大约5km/μm的固有延迟。诸如交换机和路由器这样的典型的光纤通道设备每个方向上有5Um左右的固有延迟。在理论上,IP路由器的延迟值在5-100μm的范围内可变,但当带有过滤功能时,实际测试的结果很可能在几个毫秒的量级上。
这是使用在IP上的隧道的主要问题。光纤通道应用通常是为具有若干微秒的网络设计的。IP网络的往返延迟通常是在若干毫秒或数十毫秒的量级上测量的。因特网连接一般都有数百毫秒的往返延迟。
沿着网络连接的所有路由器和防火墙所引发的往返延迟都会被加到总的延迟中。依赖于所使用的路由器或防火墙的模型,以及链路交通可能拥塞的状况,总的往返延迟的差别可能相当大。
那么所有这些问题对用户会有什么影响呢?如果用户购买路由器或防火墙,建议在选择产品时,应当考虑延迟这个因素。如果从服务提供商那里租用链路,建议在服务等级协议中至少要包括最大总往返延迟条款。
人们通常把一个给定的帧通过链路的最慢的点时所实际花费的时间称作帧的中转时间。帧的中转时间跟帧的大小和链路速度有关。
光纤通道帧的最大载荷长度是2112字节,加上36字节的光纤通道头,总的光纤通道帧大小是2148字节。在传送数据时通常使用等于或接近这种满负荷的帧。
如果假定在以太网上使用巨大长度的帧,那么就可以在一个以太网分组中发送一个完全的光纤通道帧。TCP、IP和以太网的MAC头在光纤通道帧上增加了至少54字节,给出了2202字节或17616位的以太网分组总长度。
对于比较小的帧,例如光纤通道应答帧,中转时间要短得多。最小的光纤通道帧是没有载荷的帧。对于FCIP封装,只包含头的分组的最小长度是90字节或720位。
如果不能够使用巨大长度帧,就需要把每个大的光纤通道帧划分进两个以太网分组。这样就把数据传送的TCP、IP和以太网MAC的开销增加了1倍。
通常每个光纤通道的操作仅在一个方向上传送数据,在另一个方向上传送的帧接近最小长度。
4.2.4. 写加速
写加速(也被称作快速写)的设计是为了减少长距离网络的大时延问题。写加速消除了等待目标设备告诉发送方它已经准备好接收数据所花的时间。其思想是在接收到就绪(ready)信号之前就发送数据,因为知道就绪信号几乎肯定会像计划的那样在随后到达。数据完整性没有受到破坏,因为在最后收到确认应答之前不会认为写操作是成功的。
4.2.5. 磁带加速
磁带加速通过伪装传输就绪和写应答进一步地执行写加速。这就给了磁带传输一个运行流线式而不是启停式的工作方式的机会。其风险是虽然写被应答了,但可能操作并没有成功完成。
在不采用磁带加速的情况下,借助存储管理工具可以从故障点恢复和重启动。然而,使用磁带加速,存储管理程序会认为任何被确认应答了的写操作一定已经成功地完成了,重启动点就设在最后一个应答之后。因此,使用磁带加速,伪装的应答可能反映不了写操作的真实状态。
磁带加速以牺牲可恢复性为代价提供快速的磁带写服务。虽然写应答被伪装,但末尾磁带标志从不伪装。这就为使用磁带加速提供了某种程度的完整性控制。
4.3 多协议解决方案
下面简要介绍多协议解决方案,主要描述使用多协议路由器的技术途径。
4.3.1. 把一个交换网划分成多个子交换网
假定在一个公司的数据中心有8台交换机,其中两台用于连接开发和测试环境,两台用于连接联合经营的负责销售的子公司,四台用于连接包括总公司在内的主要生产环境。
开发/测试环境执行与生产环境不同的修改控制规则,而且系统和交换机可能不时地升级、降级或重启动,通常都没有任何形式的事先警告。
联合经营的子公司由于主要负责销售,所以在它和公司的其他部分之间需要提供尽可能多的隔离和安全机制。备份和恢复环境是被上述3个环境共享的。
总之,该公司在各个部门之间需要提供一定程度的隔离和一定程度的共享。在过去,这都是通过分区(zoning)来提供的。现在一些交换网厂商可能还在把这种方法推荐为最简单最经济的举措。然而,由于环境复杂度的增加,分区会变得很复杂。任何配置操作的错误都可能破坏整个交换网。这时,在网络中加进光纤通道到光纤通道的路由,就允许上述3个环境中的每一个,都运行分隔的光纤网服务,并提供共享磁带备份环境的功能。
在具有许多交换机和分开的经营部门的较大光纤网中,例如在一个共享存储服务的主机环境中,分隔和路由在用较多简单交换网代替少数较复杂光纤网方面是很有价值的。
4.3.2. 通过IP连接到一个远程场点
FCIP和iFCP可以让用户熟悉的IP网络规则以低的代价连接到远程场点。
假定用户要把自己的磁盘系统复制到一个远程场点,可能是50kin远的同步复制,也可能是500km远的异步复制。使用FCIP隧道或iFCP转换,可以把你的数据在标准IP网络上发送到远程磁盘系统。路由器包括连接后端设各或交换机的光纤通道端口以及连接标准IP广域网路由器的IP端口。在代价方面,标准的IP网络一般要比传统的高质量的密集波分复用网络低得多。这种连接方法的另一个优点是容易被熟悉TCP/IP网络的内部员工理解。
类似地,用户也可以使用FCIP或iFCP把自己的磁盘系统的存储卷提供给远程场点。
4.3.3. 使用iSCSl连接主机
有许多主机不需要对存储做高带宽低时延的访问。对于这些主机,iSCSI可能是更为经济的连接方法。iSCSI可以被看成是一种IPSAN。不必为每个服务器提供一个光纤通道交换机端口,也不必购买光纤通道主机总线适配卡,不必在存储和服务器之间敷设光纤通道线缆。
iSCSI路由器具有光纤通道端口和以太网端口,连接在本地以太网上的服务器,或通过标准的IP广域网连接远程服务器。iSCSI连接向服务器提供块I/0访问,因此它是应用无关的。也就是说,应用程序不能够区分直接SCSI、iSCSI和光纤通道,因为所有这3种连接都投递SCSI块I/0。
不同的路由器厂商对在单个IP端口上支持的iSCSI连接数日实施不同的限制。iSCSI把显著的分组划分、封装和解封装负担放到了服务器上,这个负担可以通过使用TCP/IP卸载负荷引擎以太网卡得以减轻。然后,由于这些卡可能是昂贵的,它们在某种程度上又抵消了iSCSI低成本的优点。iSCSI可被用来为那些性能不是很关键的服务器提供低成本的连接。
整理自《存储网络技术与应用》
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977(满)
DBA3 群:62697850 DBA 超级群:63306533;
聊天 群:40132017
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请