三. iFCP 因特网光纤通道协议
iFCP(Internet Fibre Channel Protocal)是一个网关到网关协议,它为在TCP/IP 网络上的光纤通道设备提供光纤通道交换网服务。iFCP 使用 TCP 提供拥塞控制、错误检测和恢复。iFCP 的主要目标是允许现有的光纤通道设备在IP 网络上以导线速度互连和联网;特别是允许光纤通道存储设备通过网关附接到基于IP 的光纤通道交换网。iFCP协议使得有可能在 IP 网络上实现光纤通道交换网的功能,使用 IP组件和技术来代替光纤通道的交换和路由设施。
在交换网端口 (fabric port)内部,网关呈现为一个光纤通道交换机成分。在这个接口处,远程N端口被看成是交换网附接的设备。相反,在IP 网络那一边,网关把每个在本地连接的 N端口呈现为一个逻辑光纤通道设备。
网关区域是远程附接的N端口通过一个iFCP网关可以访问的那部分iFCP交换网。在一个网关区域中的光纤通道设备指的是本地连接到该网关的那些光纤通道设备。在一般的情况下,每个网关区域就像是一个自治系统,它的配置对IP 网络和其他网关区域不可见。
跨越TCP/IP 网络的N端口到N端口的通信需要网关内 iFCP层的协调。网关的操作包括:执行帧的编址和映射功能、封装光纤通道帧从而注入TCP/IP 网络以及解封装从TCP/IP 网络接收到的光纤通道帧、响应指向远程设备的 PLOGI (Port Login,端口登录)建立 iFCP会话。
iFCP交换网支持2类和 3 类光纤通道服务,不支持4类、6类和 1类服务。在交换网登录期间 N端口负责发现交换网所支持的传输服务类别
iFCP 的实现需要通过iSNS(the Internet Storage NameService)执行设备发现和 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(Connection Bind,连接绑定)报文和响应把一个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:Network Address Translation),有时也称作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. 往返延迟
往返延迟是分组传输在来回路程上的延迟。往返延迟通常包括通路固有的延迟和拥塞引起的延迟。
光纤通道线缆在传输的每个方向上有大约5 km/μm的固有延迟。诸如交换机和路由器这样的典型的光纤通道设备每个方向上有5Um左右的固有延迟。在理论上,IP路由器的延迟值在5-100μm的范围内可变,但当带有过滤功能时,实际测试的结果很可能在几个毫秒的量级上。
这是使用在IP上的隧道的主要问题。光纤通道应用通常是为具有若干微秒的网络设计的。IP网络的往返延迟通常是在若干毫秒或数十毫秒的量级上测量的。因特网连接一般都有数百毫秒的往返延迟。
沿着网络连接的所有路由器和防火墙所引发的往返延迟都会被加到总的延迟中。依赖于所使用的路由器或防火墙的模型,以及链路交通可能拥塞的状况,总的往返延迟的差别可能相当大。
那么所有这些问题对用户会有什么影响呢?如果用户购买路由器或防火墙,建议在选择产品时,应当考虑延迟这个因素。如果从服务提供商那里租用链路,建议在服务等级协议中至少要包括最大总往返延迟条款。
人们通常把一个给定的帧通过链路的最慢的点时所实际花费的时间称作帧的中转时间。帧的中转时间跟帧的大小和链路速度有关。
光纤通道帧的最大载荷长度是2112字节,加上36字节的光纤通道头,总的光纤通道帧大小是2148字节。在传送数据时通常使用等于或接近这种满负荷的帧。
如果假定在以太网上使用巨大长度的帧,那么就可以在一个以太网分组中发送一个完全的光纤通道帧。TCP、IP和以太网的MAC头在光纤通道帧上增加了至少54字节,给出了2 202字节或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 网络规则以低的代价连接到远程场点。
假定用户要把自己的磁盘系统复制到一个远程场点,可能是50 kin远的同步复制,也可能是500 km远的异步复制。使用FCIP隧道或iFCP转换,可以把你的数据在标准IP 网络上发送到远程磁盘系统。路由器包括连接后端设各或交换机的光纤通道端口以及连接标准IP广域网路由器的 IP端口。在代价方面,标准的IP 网络一般要比传统的高质量的密集波分复用网络低得多。这种连接方法的另一个优点是容易被熟悉 TCP/IP网络的内部员工理解。
类似地,用户也可以使用 FCIP或iFCP把自己的磁盘系统的存储卷提供给远程场点。
4.3.3. 使用 iSCSl连接主机
有许多主机不需要对存储做高带宽低时延的访问。对于这些主机,iSCSI可能是更为经济的连接方法。iSCSI可以被看成是一种 IP SAN。不必为每个服务器提供一个光纤通道交换机端口,也不必购买光纤通道主机总线适配卡,不必在存储和服务器之间敷设光纤通道线缆。
iSCSI路由器具有光纤通道端口和以太网端口,连接在本地以太网上的服务器,或通过标准的IP广域网连接远程服务器。iSCSI连接向服务器提供块I/0访问,因此它是应用无关的。也就是说,应用程序不能够区分直接SCSI、iSCSI和光纤通道,因为所有这 3种连接都投递SCSI块I/0。
不同的路由器厂商对在单个 IP 端口上支持的 iSCSI 连接数日实施不同的限制。iSCSI把显著的分组划分、封装和解封装负担放到了服务器上,这个负担可以通过使用TCP/IP 卸载负荷引擎以太网卡得以减轻。然后,由于这些卡可能是昂贵的,它们在某种程度上又抵消了 iSCSI低成本的优点。iSCSI可被用来为那些性能不是很关键的服务器提供低成本的连接。