光纤通道(FC: Fibre Channel)
作为第一个成功的千兆位串行传输技术,当前光纤通道已成为块I/O 应用最适合的体系结构。光纤通道满足存储网络对传输技术的下列需求:
(1)高速长距离的串行传输
(2)较低的传输误码率
(3)较低的数据传输延迟
(4)传输协议可在主机总线适配卡上以硬件方式实现,从而减少对服务器CPU的占用。
一. 光纤通道层次模型
光纤通道是一种基于标准的网络结构。它的标准定义了物理层的特征、传输控制方法以及与TCP/IP、SCSI-3、HiPPI(High Performance Parallel Interface:高性能并行接口)和其他一些协议的上层接口。光纤通道是一种千兆位传输技术,目前的实现支持最高可达10 Gbps的传输速率。
光纤通道标准定义了一个通过网络移动数据的多层结构。它的协议被划分为5个层次,从FC-0到FC-4。最顶层FC-4为光纤通道提供与上层应用的接口,它定义了如何把应用协议映射到下面的光纤通道网络。例如,串行SCSI必须将光纤通道设备映射为可被操作系统访问的逻辑设备.。对于主机总线适配器,这种功能一般要由厂商提供的设备驱动器程序来实现。FC-3定义公共服务,例如多路复用和地址绑定功能。FC-2定义如何把上层应用传下来的数据块切分成帧,也包含对各种服务类别的定义和流量控制机制。最下面的两层FC-1和FC-0则致力于网络数据传输。FC-1提供数据编码和解码的工具,还定义了访问介质的命令结构。FC-0为各种介质类型、所允许的长度和物理信号建立了标准。在光纤通道协议栈旁边列出的链路服务和交换网服务用于对光纤通道网络的运行进行维护和管理工作。
上述5个层次还可以进一步归纳成以下两个部分:
(1)物理和信令层:人们通常把FC-0、FC-1和FC-2合在一起称作光纤通道物理和信令层。
(2)高层:光纤通道的高层包括FC-3和FC-4。
光纤通道的层次基本上相当于OSI参考模型的较低层,并且可以看成是链路层的网络。光纤通道呈现为单个不可分割的网络,并在整个网络中使用统一的地址空间。虽然在理论上这个地址空间可以非常大,在单个网络中可以有千万个地址,但实际上光纤通道通常在一个SAN中只支持数十台设备,或者在某些大型数据中心应用中支持上百台设备。
二. 物理结构
光纤通道既支持光纤介质,也支持铜缆介质。由于光纤通路对噪音不敏感,用它来做传输介质是最好的,但是铜介质也得到了许多的使用,尤其是对小型光纤通道磁盘驱动器的连接。
人们通常用模来区分光纤的类型。多模光纤使用短波激光,其纤芯直径为50μm或62.5μm,包层直径为125μm。其中,纤芯为光通路,包层用来把光线反射到纤芯上。由于短波激光流是由数百种模(即所传输的光波的波长)组成的,它们在光纤内以不同的角度发生全反射,因此称为多模。光的散射效应限制了原始信号所能达到的总长度。多模光纤在62.5μm/125μm规格下支持l75m的长度,在50μm/125μm规格下支持500m的长度。
当光纤直径减小时,光在光纤内被反射的角度也会加大。当把纤芯直径降低到波长的量级时,只有单个角度的轴向光束能通过。此时光纤如同一个波导,称为单模光纤。单模光纤由9μm直径的纤芯和125μm直径的包层组成,它用于承载长波激光。单模光纤支持的距离更长,目前在千兆位速率下可以达到10 km:
光纤通道标准定义了三种不同的拓扑:点到点、仲裁环和交换网。点到点结构定义了在两个设备之间的一条双向连接,不能够支持三个或更多的设备。这种拓扑允许在服务器和存储设各之间建立专用的点到点的连接,它们首先通过登录建立一个初始连接,然后就可以在长距离上使用光纤通道的全带宽工作。仲裁环定义了一个单向环,允许两台以上的设备通过一个共享的带宽进行通信和交流,但在任一时刻仅仅有两台设备可以互相交换数据。最后,交换网结构通过链路层交换提供多路的点到点连接,它实际上是定义了一个网络,其中的多个设备可以同时使用完全带宽交换数据。交换网需要把一个或多个光纤通道交换机连接在一起,在端点设备之间形成一个控制中心。而且,标准还允许把一个或多个令牌环连接到一个交换网结构。
在所有的拓扑结构中,设备(包括服务器、存储设备和网络连接设备)都必须配置一个或多个光纤通道端口。在服务器上,端口一般借助主机总线适配器实现。一个端口总是由两个通道构成:一个是输入通道,另一个是输出通道。在两个端口之间的连接称作链路。在点到点和交换网拓扑中,链路总是双向的。在交换网的情况下,链路所涉及的两个端口的输出通道和输入通道通过一个交叉装置连接在一起,使得每一个输出通道都连接到一个输入通道。在另一方面,仲裁环拓扑的链路是单向的,每个输出通道都连接到下一个端口的输入通道,直到圆周闭合为止。仲裁环的线缆连接可以借助一个集线器简化。在这种被人们称作星形环的配置中,端点设备双向连接到集线器,在集线器内部的线缆连接保证在仲裁环内部维持单向的数据流。
交换网和仲裁环拓扑使用不兼容的协议。可以根据不同的功能区分下列端口类型:
1. N端口(结点端口): 起初,光纤通道通信是围绕N端口和F端口开发的,这里的N表示Node(结点),F表示Fabric(交换网)。N端口描述一个端口作为端点设备(服务器,存储设备),也称结点,加入交换网拓扑或点到点拓扑的能力。
2. F端口(交换端口):F端口是N端口在光纤通道交换机中的对接点。F端口知道怎样把一个N端口发送给它的帧通过光纤通道网络传递给所希望的端点设备。
3. L端口(环端口):仲裁环使用与交换网不同的协议进行数据交换。这里的L表示Loop(环)。L端口描述一个端口作为一个端点设备(服务器,存储设备)加入仲裁环拓扑的能力。
4. NL端口(结点和环端口):NL端口同时具有N端口和L端口的能力。一个NL端口既可以连到一个交换网,也可以连到一个仲裁环。
5. FL端口(交换网环端口):交换机的FL端口允许把一个交换网连接到一个仲裁环。FL、NL和L端口都可以用来构成仲裁环。
6. E端口(扩展端口):两个光纤通道交换机通过E端口连接在一起。这里的E表示Expansion(扩展)。E端口使得连接到两个不同交换机的端点设备可以互相传送数据。光纤通道交换机通过E端口在整个光纤通道网络上中转信息。
7. G端口(通用端口):现代光纤通道交换机可以自动地配置它们的端口。这样的端口就称作G端口。这里的G表示Generic(通用)。例如,如果一个光纤通道交换机通过一个G端口连接到另一个光纤通道交换机,那么G端口就把它自己配置成一个E端口。
8. B端口(桥接端口):B端口通过ATM或SONET/SDH把两个光纤通道交换机连接在一起。这里的B表示“Bridge(桥接器)”。这样,相隔很长距离的光通道SAN可以使用经典的广域网技术连接在一起。
9. L端口:较多地用于早期端点设备。现代端点设备普遍配置NL端口代替L端口。
三. FC-0 物理接口和介质
FC-0定义系统中的物理链路,包括线缆、接插件和光电参数,指定使用什么样的物理信号传输二进制数位0和1。在SCSI总线中,每一比特都有自己的数据线,并且另有控制线。与此不同的是,光纤通道通过单条线路顺序地发送二进制数位。
并行的SCSI总线存在的问题是在不同的数据线上有不同的传输时间,从而限制了所能达到的最大数据速率;因此,光纤通道采用串行传输,这就意味着即使在很长的距离上也可以取得高的传输速率。现在市场上可提供的光纤通道产品的速率可高达10 Gbps。当谈到传输速率时,应该指出,在点到点和交换网拓扑中传输是双向的,即全双工的,因此即使对于广泛使用的lGbps传输速率,也可取得200MBps的数据率。
光纤通道定义了多种铜缆和光缆类型,不过比较高的速率仅支持光纤。光纤通道也为铜缆和光缆定义了多个接插件规格。单模光纤使用单模SC插头,多模光纤使用多模SC插头,同轴电缆使用同轴插头,屏蔽双绞线使用STP 9针插头。在同轴电缆插头中,BNC头用于发送,TNC头用于接收。9针插头(DB9)用于连接屏蔽双绞线,其中只使用4个针,1针和6针用于发送,5针和9针用于接收,其余的针不用。
表5-1光纤通道定义的线缆类型
介质 |
100MBPS |
20OMBps |
400MBps |
1GBps(串行) |
1GBps(4路) |
1GB ps (CWDW) |
铜缆柜内 |
24m |
- |
- |
- |
- |
- |
铜缆柜间 |
59 m |
- |
- |
- |
- |
- |
光纤62.5μm |
300m |
90m |
50m |
33 m |
75 m |
290m |
光纤50μm |
500m |
300m |
175 m |
82m |
150m |
290m |
光纤50μm (高带宽) |
- |
- |
- |
300m |
300m |
550 m |
光纤9μm |
10 000 m |
2 000 m |
2 000 m |
10 000 m |
- |
10 000 m |
典型的铜缆连接是双线的,分为机柜内和机柜间两种。前者所有的连接都在一个单独的机柜内部,例如一个 l9in的机柜,使用非平衡方式缆接,距离最长可达24m。后者需要驱动信号较长的距离,使用平衡方式缆接,距离最长可达59m。
与铜缆相比,光缆比较昂贵,然而它们具有下列优越性:
(1) 可以达到更长的距离;
(2) 对电磁干扰不敏感;
(3) 无电磁辐射;
(4) 在设备之间天电连接:
(5) 无交叉干扰的问题。
光缆及其接插件也有多种不同的类型。用于长距离传输的光缆比用于短距离的光缆更为昂贵。
实现 lGBps 的光纤通道将需要在光缆方面有一些革新。首先,要采用一种新的线缆,即 50μm波长的高带宽光缆,使用该种光缆可以跨越比常规的 50μm波长光缆更长的距离。第二,要能够复用在 4条连接上的数据流。这可能首先要把数据分发到 4 对光纤 (4条线路)上。另一种可能的做法是用 4个不同波长的信号代替4条物理线路,因此使用一对光纤就足够了。工业界最终会采用哪一种方案来实现 lGBps 的光纤通道还有待于今后的技术发展。
对于所有的介质,光纤通道都要求误码率达到每传递 10^12比特不超过 1 比特错。这就意味着对于一条 1000 Mbps 的连接,在全负荷情况下平均每 16.6min最多可以发生1位错。高层协议的差错识别和控制机制都针对这样的误码率进行优化。因此,在安装光纤通道网络时,建议适当地铺设光缆,使得从端点设备到端点设备的连接也尽可能地取得不大于 10^-12的位错率,其中包括在它们之间所有的部件,例如中继器和交换机。
四. FC-1 传输协议
FC-1定义了数据在通过光纤通道的线缆传送之前怎样对它编码。FC-1还描述了管理光纤通道连接(链路控制协议)所需要的一些传送字,即有序集。
在所有的数字传输技术中,发送器和接收器都必须同步它们的时钟脉冲速度。在并行总线中,总线时钟通过附加的线路传送。而在光纤通道使用的串行传输中,信号仅通过一条数据线传送。这就意味着,接收器必须从数据流中再生传输时钟。
接收方仅能够在中间有信号跳变的点上同步速率。在简单的二进制编码中,仅当数位从0变到1或从1变到0时才会产生跳变。在曼彻斯特编码中,在每一个传送位的中间都有一个信号跳变。因此,曼彻斯特编码对于传送的每一比特都产生两个物理信号。它所需要的传送速率是二进制编码的两倍。由于这个原因,光纤通道使用二进制编码,因为在给定信号速率的情况下,它可以传送比曼彻斯特编码更多的数位。
使用这种方法的问题是到达接收方的信号单元的长度并不总是相同的。接收方所得到的信号有时候长一些,有时候短一些。这种被称作抖动的现象可能导致接收方丢失对接收信号的同步。例如,如果发送方发送10个连续的0,那么接收方可能确定不了这是9个、10个还是11个连续的0。
由此可以看出,如果要使用二进制编码,那么就必须保证数据流能够产生足够多的跳变,接收方才不会失去对每个数位的正确判别和接收。所谓的8b/lOb编码正是采用这样的介于曼彻斯特编码和二进制编码之间的一种折中方案。
8b/l0b编码把一个8位字节转换成一个10位字符后再在通信介质上传送。对于光纤通道,这就意味着100 MBps的数据传送将需要lGbps的传输速度。需要指出的是,千兆位以太网也使用8b/l0 b编码。
把8位字节扩展成10位的传送字符具有下列优点:
(1) 在8b/l0b编码中,对于所有可能的10位字符,仅选用由最多只包含5个连续的1或5个连续的0的位序列所组成的字符。因此最长经过5个信号单元会有一个信号跳变,这样就可以保证接收方时钟的同步。
(2) 使用8b/10 b编码产生的位序列具有均匀的0和1的分布。这样做的好处是在处理8b/l0b编码位序列的硬件时仅产生小的直流电流,从而使得光纤通道硬件部件的实现比较简单和廉价。
(3) 还有一些不表示8位数据字节的10位字符,这些字符可用于光纤通道链路的管理。
8b/l0b编码把一个8位字节映射成一个10位的传输字符,再交给FC-0层去传输。但现在大部分计算机基本的数据处理单元都是包含4个字节的字,因此FC-1层定义了传输字。
光纤通道结合4个10位的传输字符形成一个40位的传输字。光纤通道标准区分两种类型的传输字:数据和有序集。它们之间的区别在于第一个字节。数据传输字的第一个字节是数据字节,有序集传输字的第一个字节是特殊传输字符K28.5。两种传输字的其余3个字节则都是数据字节。
数据字仅可以出现在SOF(Start-of-Frame:帧起始)界标和EOF(End-of-Frame:帧结束)界标之间。有序集仅可以出现在EOF界标和SOF界标之间,而且SOF和EOF本身也是有序集。所有的有序集都有一个共同的特征,那就是它们都以一个称作K28.5的字符开头。K28.5字符包括一个特别的位序列,它不会出现在数据流的其他位置。因此,光纤通道端口的输入通常是在初始化光纤通道的时候,或者在一条链路丢失同步之前,可以使用K28.5字符把连续的输入位流划分成40位的传输字。
IBM公司首先开发出了8b/l0b编码算法。在1024种可能传输的10b信号中,8b/l0b的映射只需要256种。为了充分利用10位的编码信号,在FC-1的编码中,编码前的一个8位字节可以编码成两类不同的10位信号。这两类10位的编码信号对应同一个8位字节,但分别代表数据字节和控制字节。也就是说,同一个8位字节,可能代表两种信息,如果它是数据字节,就将其编码成10比特的数据传输字节;如果它是控制字节,就将其编码成另一个不同的10位控制传输字节。不过,在所有的控制传输字审中,光纤通道只用了其中的一个作为特殊字符,即K28.5。
采用8b/l0b算法转换后的每一个10位都不会包含超过6个1或6个0的位串,并且其中一半都包含同样数日的0和1。那些包含的1比0多的10位字符具有正不均衡性,包含的0比1多的10位字符具有负不均衡性,包含的0和1同样多的10位字符具有中性不均衡性。
在转换256种可能的数据字节时,8b/l0b机制仅允许每个字符最多包含6个相同位,且不能有超过4个相同的数据位连续出现。例如,用十六进制表示的字节“FF”通过8b/l0b编码后就变成1010110001或0101001110。这两个编码结果都是中性不均衡的,并且编码序列中连续的相同数据位不超过4个。
既然8位的数据字节可以转换成两个10位的编码位串,那么编码器如何决定采用哪一个编码结果呢?8b/l0b编码器是通过监测前一个字符的不均衡性来解决这一问题的。如果前一个发出的是正不均衡性的字符,那么下一个流出的就是负不均衡性。通过监测前后连续不均衡性特征,编码器可以保证在整个串行比特流中,让1和0保持平衡。
8b/l0b表示法在开始编码之前,先把原始数据表示成带小数点的十进制数。例如,十六进制表示的D7的比特串是11010111。8b/l0b表示法将这个位串分成前3位110(十进制是6)和后5位10111(十进制是23)两部分。在编码器的内部操作中,这两个单元将分别在较小的3b/4b和5b/6b模块中得到处理,然后交换,产生10位的结果。最终,8b/l0b表示法把D7表示成D23.6。这种表示法比较直观的地方是其中的“D”是表示“数据”的意思。在K28.5字符中,K则表示该字符是一个“控制”字符。不同于D28.5字符。
K28.5在光纤通道中是唯一的具有5个连续相同数位的字符,所有其他的字符都只包含4个或更少的连续相同位。K28.5编码的这种特殊性使得它在传输的位流中容易被接收方识别。
有序集传输字可以作为控制信号,因为它的第一个字符是特殊字符,不会与数据字混淆。有序集传输字可以起以下几种控制作用:
(1) 数据帧分界符。数据帧有起始分界符和结束分界符,而起始分界符和结束分界符都是有序集传输字。
(2) 原语信号。FC-1 层有两种原语信号,即缓冲区的流控制原语信号和空闲字原语信号。为了保证发送和接收端的同步,光纤通道往往在没有信号传输时传输空闲字。
(3) 原语连续信号。连续 3个相同的有序集传输字用于链路控制。
在光纤通道中,FC-1层的作用就是给FC-2层提供发送和接收传输字的功能。FC-2层只需要利用这个功能,而不需要了解FC-1 层具体怎样实现发送和接收传输字的。这种分层结构的优点是可以实现模块化。当FC-1层的实现 (软件或硬件)改变时,只要它提供给上层的功能不变,FC-2的上层就不需要改变。
使用有序集,FC-1 定义了各种链路层协议,用于链路的初始化和链路管理。链路初始化是使用帧进行数据交换的必要前提。链路层协议的例子包括仲裁环的初始化和仲裁。
五. FC-2 成帧和信令协议
FC-2层利用FC-1层提供的发送和接收传输字的基本功能来执行更负责的功能,这些更能又能作为基本功能提供给更上层FC-3层。 FC-2指定独立于上层协议的数据传输机制。 它是自我配置的,支持点到点,仲裁环和交换网的环境。 FC-2确定通过光纤通道网络传输的单元(如一个文件)可以有多大。 它调节流控制,保证发送方仅以接收方可以处理的速度来发送数据,它还定义了适用于各种应用需求的服务类别。
5.1 交换,序列和帧
5.1.1 交换
FC-2的数据传送采用了一种3层结构。在顶层的交换定义了在两个端点设备之间的一条逻辑通信连接。例如,每个读写数据的进程都可以被分配一个属于它自己的交换。端点设备(应用服务器和存储设备)可以同时保持多个交换关系,甚至是在同样的端口之间。不同的交换有助于FC-2层把入口数据快速有效地投递给较高层协议(FC-3)的正确接收方。
5.1.2 序列
序列是从发送方向接收方传送的一个数据单元。同一时刻在一个交换内部只能有一个序列在传送。FC-2保证序列以与在发送方发送时同样的顺序投递给接收方。而且,仅当一个序列的所有的帧都到达接收方时,才会把该序列投递给下一个较高的协议层。作为例子,一个序列可以代表一个文件的写过程或者代表数据库的–个事务处理。
5.1.3 帧
要把数据从附接在光纤通道上的一个设备传送到另一个设备上,发送方上层协议传下来的数据块必须要组织成离散的报文,以便通过网络进行传输。在光纤通道的术语中,数据报文被称作帧。
光纤通道网络传送控制帧和数据帧。控制帧不包含有用数据,它们为诸如一个数据帧成功投递这样的事件传递信号。数据帧可传送多达2112字节的有用数据。比较大的序列必须划分成多个帧。
5.1.4 帧的组成
一个光纤通道帧由头、有用数据(载荷)和CRC检验等域构成。此外,帧被包装在帧起始(SOF:Start-of-Frame)界标和帧结束(EOF:End-of-Frame)界标之间。最后,在两个帧之间必须通过链路传送6个填充字。CRC检验过程识别所有的传输差错。
帧以一个有序集SOF分隔符开头。这个4字节的单字定义所使用的服务类别以及该帧是否是一个序列的起始帧。在SOF之后,24字节的帧头包含帧的目标地址、帧的源地址、序列ID、帧在序列内的编号以及交换ID等信息。
帧头之后是数据单元部分,它的长度可以从0字节到2112字节。光纤通道使用这种可变长的组帧方式来满足各种应用需求,并在帧的开销和有效载荷之间寻找一个合理的平衡。由于光纤通道帧的构成是建立在4字节的传输字的基础上的,当用户数据的总字节数不是4的整数倍时,就必须要用额外的填充字节来填充。
例如,有效载荷为509字节时,就需要3个额外的填充字节来进行正确的帧装配。帧中数据的完整性由32位的CRC(Cyclic Redundancy Check,循环冗余检验)来验证。在数据经过8b/l0b编码之前就进行CRC计算,并将其结果放到数据单元的后面。
在CRC 后面是一个帧尾有序集,用来通知接收方该帧已经结束。 一个帧具体采用什么样的EOF由两个因素决定: 一个是服务类型,另一个是该帧是否是一个序列的最后一个。
除了标准的24字节的帧头,某些需要扩展控制字段的应用还可以使用可选的帧头,但要保证整个帧的长度仍然控制在2148字节内。 由于可选的帧头占用最大长度被限制在2112字节的数据空间,因此对可选的帧头的使用减少了用户在帧内可传送的有效载荷。
错误纠正发生在序列级。 如果一个序列中有一个帧传输有错,那么整个序列都要重传。 在千兆位速率上,把丢失的个别帧重传并把放在正确位置上所需要的处理开销相比,重传整个序列更为有效。 当然,基础的协议层必须保证误码率不超过指定的10^-12值,才能保证纠错过程的有效性。
5.2 流控制
流控制保证发送方仅以接收方可以接受的速度发送数据。 光纤通道使用信用量方式实施流控制。 每个信用量都表示接收方接收光纤通道帧的能力。 如果接收方给了发送方一个等于4的信用量,那么发送方仅可以发送4个帧。 此后,发送方不可以发送更多的帧,直到它收到对发送的一些帧的确认应答为止。
FC-2 定义了两个不同的流控制机制: 端到端的流控制和链路流控制。 端到端的流控制在端点设备的主机总线适配卡上实现。 而链路流控制发生在每条物理连接上。 它是通过两个通信端口协议商缓冲区到缓冲区的信用量来取得的。 因此,链路控制也在光纤通道交换机上执行。
5.3 服务类型
在通信的设备之间,应用程序可能需要有不同类别的连接、带宽和传输保证。例如,向磁带备份数据时,要求有一个持续的专用的连接和全带宽的可用性;而在线事务处理所执行的是间歇性的操作可能不需要专用的带宽,但要对每次传输进行确认。
为了满足这种多样性的需求,光纤通道标准针对端到端的数据交换定义了6个不同的服务类别。
5.3.1 第1类服务
在两个设备(例如一个文件服务器和一个磁盘阵列)之间定义了一条专用连接,并带有对数据传输的确认。通信双方一旦建立起一条1类连接,就可以认为该连接是固定的,并全带宽可用,直到这条连接被拆除为止。由于1类连接在多数情况下都拒绝其他连接对它的会话干扰,因此不会发生在通信过程中掉线的情况。这种专用的连接同样保证了所有传输的帧都会按照它们发出的次序被接收方接收,这也就使得在FC-2层次上数据块重组的过程可以进行得很快。
1类服务给光纤通道交换增加了处理负担和资源消耗。交换机必须在进行通信的端口之间维持一条专用的恒定通道,并且不允许任何方式的干扰。因此,如果有多条连接经过一个交换机,就会很快阻塞该交换机对其他连接请求的响应。与电话交换机类似,光纤通道交换机也可以允许处于竞争状态的请求在忙端口处排队,一旦当前的1类连接终止,就可以让新的请求得到服务。这需要在交换机上配置相应的缓冲区和执行队列管理机制。
考虑到1类服务实施的复杂性和处理代价,光纤通道交换机厂商在它们的产品中一般都不支持1类服务。
5.3.2 第2类服务
不需要在对话双方之间建立专用的连接,但提供对传输的应答功能。2类服务的无连接特征允许交换机不必为具体的事务处理分配专用带宽,可以在资源许可的时候再传送被缓冲的帧。不过,网络拥塞或多路由传输可能会导致帧的丢失和乱序,重传和数据块的重组需要附加的处理开销。
2类服务通过对传送帧的应答来保证数据传输的完整性,适用于处理关键性任务的应用,也适合较小型的事务处理,这些事务的流量具有突发性。例如,对关系数据库间歇性的更新不需要专用的连接,但可能需要通过帧应答进行确认。
5.3.3 第3类服务
与2类一样,也是无连接的,但与2类不同的是,它没有对帧传送结果的报告信息。3类服务类似于传统网络中的数据报服务,如果发生传输差错,就需要依靠上层协议来恢复。3类服务为了降低开销并追求高性能,在一定程度上牺牲了可靠性。在一些构造良好的存储区域网中,可靠性不一定是关键的问题。例如,3类服务就广泛应用于仲裁环存储网络。’这可能是因为环拓扑为通信双方临时提供了专用连接的缘故。环的传输方式使得按顺序接收帧成为可能,同时环上低的误码率也可以满足对帧传输的可靠性要求。但在交换式拓扑结构中,重负荷或拥塞时交换机可能丢失3类帧。由于没有应答机制,因此出错时会在上层协议FC-4中触发一串更长的恢复动作。
当针对特定应用设计存储网络时,应该考虑3类服务在环网和交换网中使用的差别。一般来说,3类服务只适合在环网上应用,但是依据所需要的带宽,有些应用也可能适合使用环网和交换网的组合结构。
5.3.4 第4类服务
与1类服务类似,4类服务也是面向连接的,但它并不为通信双方分配专用的恒定带宽,而是给每条连接分配部分带宽和可能不同的QoS参数。在一对和多对通信者之间可以建立多条虚电路,为每条虚电路指定QoS参数时,需要优先保证对时延敏感的应用带宽需求,例如,让实时视频总能得到足够的带宽用于数据传输。
4类服务给交换机设计人员带来了巨大挑战,交换机必须维护并监测可能有的数百条虚电路,而且.每条虚电路都有自己的QoS参数。这种复杂性使得4类服务没有能够在光纤通道产品中普遍实现。
5.3.5 第5类服务
第5类服务称作等时服务,它的设计目的是用于没有缓冲区且当数据到达时需要立即投递的应用。该类服务尚未明确定义,因此没有被包括在光纤通道标准的文档中。
5.3.6 第6类服务
第6类服务提供多点传送,它是1类服务的一个变种。它为可靠多播提供专用连接,并带有确认应答。一个N端口可以请求到达一个或多个目的地的6类连接。在交换网中的一个多播服务器将建立这些连接,得到来自目的地端口的应答,并把它往回传给源发方。该类连接一旦建立了,就会得到交换网的维持和运行保证,直到发起方终止连接为止。
6类服务的设计目标是用于诸如音频和视频那样需要多播功能的应用,它的一个问题是反馈给数据发送方的应答所产生的流量会消耗大量的网络带宽,甚至会吞没整个网络。
与4类服务类似,6类服务也没有能够在实际流行的产品中得以实现。例如,当前的光纤通道交换机一般都申明只支持2类和3类服务。
5.3.7 F类服务
在光纤通道标准中,除了上面介绍的6个类别,还有一个特别的服务类,被称作F类,用于交换机到交换机之间的通信。与2类相似,F类是无连接传输,但要求得到对发送的确认应答或失败的消息。它主要用于在连接到交换网的交换机之间交换路由、名字服务和通告信息。
5.3.8 第2,3类服务异同
2类和 3类服务都是面向分组的数据报服务,不建立专用的连接,每个帧独立地通过光纤通道网络被路由到目的地。一个端口可以同时维持多条连接,因此,2 类和 3类服务可以共享带宽。
2类服务使用端到端的流控制和链路流控制。 在 2类服务中,接收方应答每个接收到的帧。这个应答既被用于端到端的流控制,也被用于对丢失帧的感知。在FC-2 中,接收不到应答意味着发生了传输错误,并立即通知高层协议。高层协议可以启动错误纠正过程。2类连接的用户通常需要帧以正确的顺序投递。
3类服务对传送帧不做应答。这就意味着,只有链路流控制,没有端到端的流控制。此外,高层协议必须自己检查是否有分组的丢失。当一个序列中有帧缺失时,FC-2层就不会向高层投递。因此,高层协议是通过预期的序列没有到达的事实感知帧的丢失。交换机在其缓冲区满时可能丢弃 2 类和 3 类帧。由于高层的超时值比较大,因此它们感知帧的丢失可能要比在 2 类服务中的协议实体花长得多的时间。
六. FC-3 公共服务
在光纤通道中,每一个端口都有自已的FC-0、FC-1和FC-2层实体。一个结点可能有多个物理端口,它们可以连接到不同的结点,因而会有多个FC-0、FC-1和FC-2层实体。FC-4层给应用程序提供接口,也就是说,应用程序只需使用FC-4层提供的操作。在同一结点上可能有多个应用程序需要调用光纤通道的传输功能,也就可能有多个FC-4层实体。光纤通道中的FC-3是一个特别的层次。一个结点只有一个FC-3层实体,FC-3利用底层FC-2来实现公共服务,FC-3可以利用多个FC-2层实体来实现自已的服务。
FC-3定义的服务包括:
(1) 条块化复用。该服务可以使用多个N端口通过多条FC-2链路并行地传输单个用户的信息单元,从而可以把所使用的带宽增加若干倍。
(2) 组合端口地址绑定。该服务把在一个结点上的多个N端口绑定到同一个地址,使得这些N端口响应同一个地址。通常人们把这些被绑定到同一个地址的N端口的集合称作猎取组(Hunt Group)。这种机制允许把包含猎取组地址的任何帧路由到在该猎取组内的任意一个可用的N端口,从而可减少等待一个N端口变成可用所产生的延迟。
(3) 多播。该服务可以把一个信息传输到多个结点或同一结点的多个端口。
七. 链路服务
7.1 登陆
光纤通道在连接建立时通常有一个登录过程。登录是指两个端口连接时,互相交换一些参数,以使用于双方之间随后的通信。为此,光纤通道标准提供了一个3阶段的登录机制。
7.1.1. 交换网登录(FLOGI:Fabric Login)
N端口在连接到一个交换网的交换机之后,它将执行一个交换网登录,也称FLOGI。交换网登录是一个扩展的链路服务命令,它在一个N端口和对应的F端口之间建立一个会话。
N端口使用众所周知的地址FF FF FF作为目的地址给交换机发送一个FLOGI帧,该帧包含它自己的结点名、N端口名和服务参数。交换机接受登录,并给发送方返回一个接受(ACC:Accept)帧。如果N端口请求的某些服务参数不被支持,则交换机会以ACC帧的相关位置1来表明这个情况。
交换网登录发生在链路初始化之后,它是进行帧交换的必要前提。实际上在混合拓扑结构中,N端口开始发出登录帧时,可能并不知道对方端口是N端口还是交换机上的F端口,因此登录帧使用预定义的地址FFFFFF作为目标地址。对方端口收到登录帧后,发回一个应答帧。
F端口给N端口分配一个动态的地址。此外,双方要协商诸如缓冲区到缓冲区信用量这样的服务参数。交换网登录对于点到点拓扑和交换拓扑都是很重要的。N端口可以从对方端口的响应知道它是一个交换拓扑,还是一个点到点拓扑。
在仲裁环拓扑中,交换网登录是可选的。NL端口在环初始化过程(LIP:LoopInitialization Process)中得到它的AL_PA(Arbitrated Loop Physical Address:仲裁环物理地址)。然后交换机根据这个地址是否跟任何先前分配的AL-PA冲突来决定是否接受该地址。如果该地址不被接受,那么该NL端口将被分配一个新的地址,并引起一个新的环初始化过程。
7.1.2. 端口登录(PLOGI:Port Login)
端口登录也被称作PLOGI,它在两个N端口之间建立一个会话。N端口登录发生在交换网登录之后,它是FC-4数据交换的必要前提。两个N端口在可以执行任何高层命令或操作之前必须先进行端口登录。端口登录协商诸如端到端信用量这样的服务参数,使得两个N端口可以互相了解。
7.1.3. 进程登录(PRLI,Process Login)
进程登录在基于两个不同的N端口的两个-FC-4进程之间建立一个会话。它们可以是主机中在UNIX系统和系统分区中的系统进程。进程登录发生在N端口登录之后。
从FC-2的角度看,进程登录是可选的。然而一些FC-4协议映像会调用进程登录,以便交换FC-4特有的服务参数。
7.2 编址
光纤通道区分名字和地址。光纤通道设备(服务器,交换机,端口)通过64位的标识符区分。在光纤通道的术语中,通信设备也称为结点(Node)。一个结点有一个或多个物理接口,它们被称作端口。
每个结点都包含由制造商指定的一个固定的64位结点名。一般来说,每个制造商可分配的地址范围都是通过向IEEE注册得到的,因此这种结点名是全球唯一的,称作世界范围名(World Wide Name)。同时,结点上的端口也被分配了符合IEEE规范的64位世界范围名。这样,即使是在复杂的存储网络中,这种命名机制也可使得每个结点及其端口都具有唯一性。
然而,这些世界范围结点名(WWWW:World Wide Node Name)和世界范围端口名(WWPN:World Wide Port Name)并不用于在光纤通道中的帧传输。为了在交换网中寻址,世界范围结点名和世界范围端口名被转换成反映网络拓扑的24位端口地址。该地址用于帧的路由,可被通信双方嵌入帧头,作为目的地址或源地址。
同时使用名字和地址的双名系统有一定的优越性。首先,64位的名字为存储网络中的设备提供了具有唯一性的标识。然而,如果使用64位的标识符做路由选择,不但会增加帧头的尺寸,而且会带来较大的处理开销。因此,通过使用较短的24位端口、地址,帧的传输和路由选择都得到了优化。另外,这种24位的地址格式可以提供1600万个地址,比实际的存储网络设计需要的地址空间大得多,因此完全可以满足需求。
在交换式光纤通道网络中,24位的端口地址由网络设备本身负责分配,这就降低了管理人员的手工分配负担。当具有某个世界范围名的设备在交换机的某个端口上登录时,交换机将给该设备分配一个24位的端口地址。交换机在名字服务器中维持一个列表,记录设备的世界范围名和被分配的24位地址。名字服务器是运行在交换机上的交换网操作系统的一个成分。在仲裁环中,环设备本身负责地址选择,保证环中的每一个设备都有一个唯一的地址。动态编址可消除在地址维护过程中出现的人为因素错误,并可为在存储网络中增加、移动和变换设备提供更大的灵活性。当然,这种编址机制也增加了光纤通道交换机的负担。
24位的端口地址由3个部分构成,每部分1个字节,分别称作域(domain)、区(area)和端口(port)。域号是交换机本身地址,该号码允许在有多个交换机互连的SAN环境中唯一地标识每个交换机。区号标识支持环的FL端口,或者标识在交换机的一块网卡上的一个或一组F端口。端口号标识交换机附接的N端口和NL端口。
在一个仲裁环中,甚至可以把每个64位的世界范围端口名转换成一个比24位还要短的8位地址,称作仲裁环物理地址。实际上,在用8比特表示的256个可能的地址中,仅可以使用那些在通过8b/l0b编码后形成的传输字符包含相同数日的0和1的地址。这是因为一些用于配置仲裁环的有序集是使用物理地址参数化的,只有限制物理地址的值,才能保证在整个数据流中0和1的均匀分布。 另外,还有一些地址值被用于仲裁环的配置,所以256个地址中只剩下127个可用,再考虑到其中的一个地址要保留给光纤通道交换机,因此在仲裁环中可连接126个服务器或存储设备。
跟N端口一样,NL端口有一个24位的端口地址。如果环没有跟交换机连接,那么这个端口地址的开头两个字节置成0,称作专有环。在环上的设备跟外界没有连接。如果环连接到一个交换网,并且NL端口支持交换网登录,那么端口地址的开头两个字节被交换机置成正值。我们把这样的环称作公用环。
由于该NL端口既是本地环的成员,也是交换网的成员,因此在网络中需要有一个24位的标识符。在这种情况下,开头两个字节标识环,它是在同一个环上的所有NL端口所共有的标识。无论是公用环,还是专有环,24位端口地址的最后一个字节都表示仲裁环物理地址(AL_PA:Arbitrated LoopPhysicalAddress)。
八. 交换网服务: 名字服务器和控制器
端口在进行了光纤通道登录后,确定了与直接连接的对方端口通信所需要的一些运行参数。但该端口还不知道光纤通道网络内可能有的许多其他端口的存在,不知道还可以与其他哪些端口通信。为此,光纤通道网络提供了交换网服务,该服务为端口提供辅助信息。提供交换网服务的是运行在交换机或其他设备上的服务器。需要服务的端口向服务器发出请求,服务器发回所需要的信息。
在交换网拓扑中,通常由交换机管理网络运行所需要的信息。这些信息由交换网服务程序负责管理。所有的交换网服务程序都通过FC-2 帧寻址,并且可以使用规定的地址对其进行访问 (参见下表)。下面介绍交换网登录服务器、交换网控制器和名字服务器。
光纤通道标准指定的分配给负责管理光纤通道网络的辅助服务器的地址
地址 |
描述 |
FF FF FF |
广播地址 |
FF FF FE |
交换网登录服务器 |
FF FF FD |
交换网控制器 |
FF FF FC |
名字服务器 |
FF FF FB |
时间服务器 |
FFFFFA |
管理服务器 |
FF FF F9 |
服务质量辅助器 |
FF FF F8 |
别名服务器 |
FF FF F7 |
安全密钥分发服务器 |
FF FF F6 |
时钟同步服务器 |
FF FF F5 |
多播服务器 |
FF FF F4 |
保留 |
FF FF F3 |
保留 |
FF FF F2 |
保留 |
FFFF F1 |
保留 |
FF FF FO |
保留 |
交换网登录服务器处理使用地址“OxFF FF FE”进入交换网的登交换机都必须支持使用这个地址的交换网登录。
交换网控制器管理使用地址“OxFFFFFD”对交换网的改变。N端口可以在交换网控制器中注册状态改变 (SCR:State Cbange Registration)情况。然后,交换网控制器把交换网的改变通知注册的 N端口 (RSCN:Registered State Change Notification)。服务器可以使用这一服务监视它们的存储设备。
名字服务器管理使用地址“0 xFFFFFC”的关于N端口的数据库。它存储诸如WWW、WWPN、端口地址、支持的服务类别和支持的 FC-4 协议等信息。N 端口可以用名字服务器注册它们自己的属性,也可以请求关于其他N端口的信息。和所有的服务一样,名字服务器对其他端口呈现为一个N端口。N端口在可以使用名字服务器的服务之前必须先在名字服务器上登录。其他端口可以向名字服务器查询已登录的端口信息。
交换网服务是由参与一个存储区域网的交换机来实施的。一般来说,这些服务分布在所有的交换设备上,一个结点可以从它连接的任意一个交换机那里得到服务。
九. FC-4 上层协议映射
FC-0到FC-3只负责把端点设备通过光纤通道网络连接在一起,然而,端点设备在光纤通道连接上交换的数据类型仍然没有定义。这就是应用协议起作用的地方。光纤通道网络可以用作多个应用协议的媒介,例如SCSI和IP。
9.1 FC-4上层协议映射
FC-4层协议映射的任务是把应用协议映射到基础的光纤通道网络。这就意味着,FC-4层协议映射在向上往操作系统的方向上支持现有协议的API,并把它们通过光纤通道网络向下往介质的方向上落实。该协议映射确定如何使用光纤通道机制来实现应用协议。例如,它指定将使用什么样的服务类别以及如何把应用协议的数据流投射到光纤通道的交换序列帧的机制。这种对现存协议进行映射的目的是为方便向光纤通道网络的过渡,不必对操作系统作太大的修改,只要安装一个新的设备驱动器就可以。
FC-4层把应用协议的信息单元映射成光纤通道的帧序列,然后发送出去。同样FC-4层也把从光纤通道接收到的帧序列映射成应用协议的信息单元,然后交给应用协议。
FC-4层支持的高层协议包括SCSI、IPI(Intelligent Peripheral Interface,智能外设接口)HIPPI(High Performance Parallel Interface,高性能并行接口),IP和ATM适配层AAL5等。 这些应用协议可以直接把它们的数据单元交给FC-4层去发送,不需要考虑FC-4层是怎样把它们的数据单元分割成光纤通道数据帧发送出去的。同样应用协议从FC-4层直接收到通信对方发给自己的完整的数据单元,而不用知道这些数据单元是怎样由从低层收到的光纤通道数据帧组合起来的。
9.2 光纤通道协议
面向SCSI的协议映射就称作光纤通道协议(FCP:Fiber Channel Protocol),FCP把SCSI协议映射到基础的光纤通道网络。对于存储设备到服务器的连接,SCSI电缆被一个光纤通道网络取代。SCSI协议通过新的光纤通道介质运行,与以前一样地在服务器和存储设备之间交换数据。因此准确地讲,这是把以服务器为中心的IT体系结构转变到以存储为中心的IT体系结构,并且把光纤通道网络转变成一个光纤通道存储区域网。
光纤通道协议的思想是系统管理员只需在服务器上安装一个新的设备驱动器,就实现了FCP协议。操作系统把通过光纤通道连接的存储设备看成是SCSI设备,对它的寻址跟常规的SCSI设备一样。这种对传统SCSI设备的仿真可以把光纤通道SAN比较容易地集成进已有的硬件和软件。
FCP驱动器必须做大量的工作。SCSI使用的是并行电缆,菊花链通过SCSI总线把多个设备连接在一起。相比之下,光纤通道是串行地传输数据。因此,为了能够使用光纤通道,必须把SCSI总线的并行传输串行化,即让二进制数据逐位地传输。类似地,FCP必须把SCSI总线的菊花链映射到基础的光纤通道拓扑。
从信息传送服务方面看,FCP把SCSI中的一条命令映射成光纤通道中的一个帧序列,把组成一个完整的,SCSI事务处理的几条命令映射成光纤通道的一个交换过程。
9.3 IPFC协议
另一个重要的FC-4层协议是IPFC(IP over Fiber Channel,在光纤通道上的IP)。 IPFC使用在两个服务器之间的光纤通道连接作为IP数据交通的媒介。为此,IPFC定义了如何通过光纤通道网络传送IP分组。跟所有的应用协议一样,IPFC实现为在操作系统中的一个设备驱动器。对本地IP配置的连接使用“ifeonfig”或“ipconfig”。然后IPFC驱动器寻址光纤通道主机适配卡,就可以在光纤通道上发送IP分组。
整理自《存储网络技术与应用》
------------------------------------------------------------------------------
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表空间和数据文件的关系,否则拒绝申请