FC 协议简介

开发于1988年,最早是用来提高硬盘协议的传输带宽,侧重于数据的快速、高效、可靠传输。到上世纪90年代末, FC SAN 开始得到大规模的广泛应用。

FC 协议其实并不能翻译成光纤协议,只是FC协议普遍采用光纤作为传输线缆而不是铜缆,因此很多人把FC称为光纤通道协议。在逻辑上,我们可以将FC看作是一 种用于构造高性能信息传输的、双向的、点对点的串行数据通道。在物理上,FC是一到多对应的点对点的互连链路,每条链路终结于一个端口或转发器。FC的链 路介质可以是光纤、双绞线或同轴电缆。

FC协议栈

FC-0:连接物理介质的界面、电缆等;定义编码和解码的标准。

FC-1:传输协议层或数据链接层,编码或解码信号。

FC-2:网络层,光纤通道的核心, 定义了帧、流控制、和服务质量等。

FC-3:定义了常用服务,如数据加密和压缩。

FC-4:协议映射层,定义了光纤通道和上层应用之间的接口,上层应用比如:串行 SCSI 协 议,HBA卡的驱动提供了FC-4 的接口函数。FC-4 支持多协议,如:FCP- SCSI ,FC-IP,FC-VI。

光纤通道的主要部分实际上是FC-2。其中从FC-0到FC-2被称为FC-PH,也就是“物理层”。光纤通道主要通过FC-2来进行传输,因此,光纤通道也常被成为“二层协议”或者“类以太网协议”。

在此重复:光纤通道并不是 SCSI 的替代;一般而言SCSI是光纤通道的上层。光纤通道一 般是指FC-PHY层:FC0-FC2。术语FCP,即光纤通道协议,是指对SCSI的界面协议或FC-4层映射。我们这里讨论的是光纤通道的内在工作原理,而不是指光纤通道协议。

光纤通道的数据单元叫做帧。即使光纤通道本身就有几个层,大部分光纤通道是指第2层协议。一个光纤通道帧最大是2148字节,而且光纤通道帧的 头部比起广域网的IP和TCP来说有些奇怪。光线通道只使用一个帧格式来在多个层上完成各种任务。帧的功能决定其格式。相比我们在IP世界中的概念,光纤 通道帧格式是奇特而且奇妙的。

光纤通道帧起始于帧开始(SOF)标志,随后是帧头部,这个一会进行描述。数据,或光纤通道内容,紧随其后,然后是帧结束(EOF)。这样封装的目的是让光纤通道可以在需要时被其他类似于TCP的协议所承载。

FC协议交换方式

按照连接和寻址方式的不同,FC支持三种拓扑方式:

1. PTP(点对点):一般用于DAS(直连式存储)设置

服务器和存储设备在点对点的环境里都是N_PORT. 通过一条上行一条下行两条通道进行数据存储与读取。

2. FC-AL(光纤通道仲裁环路):采用FC-AL仲裁环机制,使用Token(令牌)的方式进行仲裁。光纤环路端口,或交换机上的FL端口,和HBA上的 NL端口(节点环)连接,支持环路运行。采用FC-AL架构,当一个设备加入FC-AL的时候,或出现任何错误或需要重新设置的时候,环路就必须重新初始 化。在这个过程中,所有的通信都必须暂时中止。由于其寻址机制,FC-AL理论上被限制在了127个节点。

FC-SW(FC Switchedl 交换式光纤通道):在交换式 SAN 上运行的方式。FC-SW可以按照任意方式进行连接,规避了仲裁环的诸多弊端,但需要购买支持交换架构的交换模块或FC交换机。

光纤信道(FC)中的基本实体是光纤信道网络,与一般分层网络不同的是,一个光纤信道网络很大程度上由功能单元以及各单元间接口所指定,各部分组成如下:

N_PORTs – 光纤信道流量终点;

FC Devices –N_PORT 访问的光纤信道设备;

Fabric Port – 光纤网络接口,连接 N_PORT ;

在 N_PORT 间传输数据帧的网络结构;

交换结构或混合结构下的一组辅助服务器,包括支持设备发现和网络地址解析服务的名称服务器。

主要的光纤信道网络拓扑组成如下所示:

Arbitrated Loop –N_PORTs 以菊花链(daisy-chain)形式连接在一起;

Switched Fabric – 由交换单元组成的网络;

Mixed Fabric – 由交换机和 "fabric-attached" 环路组成的网络。 L_PORT 将 loop-attached N_PORT (NL_PORT)与环路连接起来,并且 NL_PORT 通过 FL_PORT 接入该结构。

光纤通道的寻址方式

在数据中心网络中,光纤通道(FC:Fibre Channel)是通过 World Wide Name ( WWN )来标识一个唯一的设备。 WWN 是一个 64 位的地址。WWN 对于光纤通道设备就像Ethernet 的MAC 地址一样都是全球唯一的,它们是由电器和电子工程协会(IEEE)标准委员会指定给制造商,在制造时被直接内置到设备中去的。


通常用 Node WWN 来标示每台不同的FC交换机,它是唯一的;对于FC交换机的端口,则使用Port WWPN
来标示交换机的端口。所以一个交换机只有一个 Node WWN 和多个 Port WWPN。 根据IEEE标准定义,WWN的定义方式有三种,可以见
《深度分析FC/FCOE中WWN的类型定义》
一文所述。

因为WWN的地址太长所以用这个地址来寻址的话会影响到路由的性能。这样光纤通道网络采用了另外一种寻址方案。这种方案是用基于交换光纤网络中
的光纤端口来寻址称为FCID。基于交换光纤网络中的每个端口有一个唯一的 24
位的地址,FCID,这种FCID就类似TCP/IP中的IP地址。用这种 24 位地址方案,这样得到了一个较小的帧头,这能加速路由的处理。但是这个
24 位的地址必须通过某种方式连接到与World Wide Name 相关联的 64 位的地址。

在光纤通道(SAN)环境中,FC交换机它本身负责分配和维持端口地址。当有一个WWN
登录到交换机的某一个端口时,交换机将会为其分配一个FCID地址,同时交换机也将会创建FCID和登录的WWN
地址之间的关联关系表并维护他们的关系。交换机的这一个功能是使用名字服务器(NAME SERVER)来实现的。

名字服务器其实是光纤操作系统的一个组件,在交换机内部运行。它本质上是一个对象数据库,光纤设备在连接进来时,向该数据库注册它们的值这是一个动态的过程。动态的寻址方式同时也消除了手工维护地址出错的潜在的可能,而且在移动和改变 SAN 方面也提供了更多的灵活性。

一个 24 位的FCID地址由三个部份所组成: Domain,Area,Port组成。

Domain ( 从 23 到 16 位)

Area(从 15 到 08 位)

Port 或仲裁环物理地址-AL_PA( 从 07 到 00 位)

Domain
:端口地址中最重要的字节是 Domain。这是标识交换机本身的地址。最多只能达到256个地址。除了一些被保留使用的地址外,实际上只有
239 个地址可用。这意味着在你的 SAN 环境中,所在在一个SAN网络中最多只可能达 239 个交换机。同时Domain
可以用来标识一个san网络一个FC交换机的唯一性。

Area
:它提供 256 个地址。地址的这一个部份被用于识别个别的 FL_Ports 环,或它可能被用于当做一组F_Port 的识别符,例如,多端口的一个光纤卡的识别符。这意谓着每组端口有一个不同的 area 编号,即使对于只有一个端口的组也是如此。

Port
:地址的最后部份提供 256 个地址,用于识别相连的 N_Port 和 NL_Port。

按上面介绍,可以计算出一个SAN网络最大的地址数目: Domain x Area x Ports = 239 x 256 x 256=15,663,104 个地址。

光纤磁盘阵列

采用光纤通道技术的光纤磁盘阵列有两层含义,一层是指其对外即对主机使用光纤通道接口连接方式,一层是指其内部采用光纤通道技术来连接其内部的各个磁盘。

通常意义来说,
光纤磁盘阵列
指的是后一种含义。但在最初光纤磁盘阵列上市的时候,内部往往采用SCSI、SSA
等存储接口,对外才是光纤通道接口。现在越来越多的光纤磁盘阵列逐渐向内外俱是光纤通道接口的方向发展,这里我们想讨论的就是这种磁盘阵列。至于内部使用
IDE 、SCSI、SSA
等接口技术、外部使用光纤通道技术,或者内部使用光纤通道技术,外部使用SCSI等其他接口技术的磁盘阵列(尽管这有些违背常识,但这种磁盘阵列的确存
在),虽然也是光纤磁盘阵列,但不在我们的讨论范围内。

从光纤磁盘阵列的名词解释我们可以看出,从硬件构成来说它应当是由一堆磁盘和控制器及内外接口组成。一般的中、低端光纤磁盘阵列也正是这种结构:

光纤磁盘阵列
磁盘柜:主要特点是内部一般至少采用冗余的双FC-AL
仲裁环环路结构,内部硬盘实际上同时接在两条仲裁环上。而中端磁盘阵列支持的环路数更多,可以达到4 、8
、16条之多。这种多冗余仲裁环结构最主要的目的就是为了高可用性,它可以防止单个线路、接口的故障导致整个阵列的失效。而且每个环路采用旁路技术来防止
无硬盘接入和硬盘故障对环路通信的影响。

FC 协议的更多相关文章

  1. 主要协议SCSI、FC、iSCSI

    一.SCSI SCSI是小型计算机系统接口(Small Computer System Interface)的简称,于1979首次提出,是为小型机研制的一种接口技术,现在已完全普及到了小型机,高低端服 ...

  2. FC网络学习笔记01

    1.Fibre Channel 也就是“网状通道”的意思,简称FC,可以称其为FC协议.FC网络或FC互联. 2.像TCP/IP一样,FC协议集同样具备TCP/IP协议集以及以太网中的概念,比如FC交 ...

  3. FC和SCSI

    IDE(Integrated Drive Electronics)即"电子集成驱动器",它的本意是指把"硬盘控制器"与"盘体"集成在一起的硬 ...

  4. FC总线技术简介

    FC是由美国标准化委员会(ANSI)的X3T11小组于1988年提出的高速串行传输总线,解决了并行总线SCSI遇到的技术瓶颈,并在同一大的协议平台框架下可以映射更多FC-4上层协议.FC具备通道和网络 ...

  5. iSCSI引入FC/SAN

    由 cxemc 在 2013-9-24 上午9:10 上创建,最后由 cxemc 在 2013-9-24 上午9:10 上修改 版本 1 集成iSCSI 和FC SAN有五种常见的方法,各有优缺,适应 ...

  6. I/O优化篇

    转载:http://blog.csdn.net/gzh0222/article/details/9227393 很不错 1.系统学习 IO性能对于一个系统的影响是至关重要的.一个系统经过多项优化以后, ...

  7. oracle rac理解和用途扩展

    Oracle RAC的优势在于利用多个节点(数据库实例)组成一个数据库,这样在保证了数据库高可用性的情况下更充分的利用了多个主机的性能,而且可以通过增加节点进行性能的扩展.实现Oracle RAC需要 ...

  8. NPIV介绍

    我们知道在存储区域网络(SAN:storage area network),主机(Host)能够访问后端存储(比如CLARiiON,VNX)必备的一个前提是主机必须配备HBA卡(Host Bus Ad ...

  9. 存储的一些基本概念(HBA,LUN)

    有些新手总是在各式各样的概念里绕来绕去,弄的不亦乐乎.所以我就把我的一些理解写了下来,供您参考.我说的不局限于任何一种具体产品和厂家,也可能有些说法和某些厂家的说法不一样,但是我觉得应该算的上是本原的 ...

随机推荐

  1. form表单序列化之后追加字段

    方法是在{}中添加字段 key-value 一一对应,如下: var data = $.param({'state': state}) + '&' + $('#desProForm').ser ...

  2. websocket基本概念

    (1)websocket 协议 与 http协议 websocket 协议,双工通道 socket连接不断开 http 协议 ,只能请求响应 (用户主动获取) socket连接断开 都是基于socke ...

  3. windows7 下python3.6 下Scripts文件夹为空

    windows7 下python3.6 下Scripts文件夹为空,安装后不能运行pip,这个时候输入命令: python -m ensurepip 会自动安装pip,然后运行pip3 list就可以 ...

  4. XCOde 5 的界面布局一些新特性

    1.问题 •在iOS程序中,大部分视图控制器都包含了大量的代码用于设置UI布局,设置控件的水平或垂直位置,以确保组件在不同版本的iOS中都能得到合理的布局 •甚至有些程序员希望在不同的设备使用相同的视 ...

  5. 【pandas】pandas.to_datatime()---时间格式转换

    标准时间格式:2012-12-21 时间转换函数:pandas.to_datatime() # -*- coding: utf- -*- # 生成数据 import pandas as pd data ...

  6. centos7 安装php 5.x.x 报错

    错误1: /usr/src/php-5.2.9/ext/dom/node.c:In function 'dom_canonicalization': /usr/src/php-5.2.9/ext/do ...

  7. CentOS 6.5 部署 Horizon

    以root用户进行部署,python源也可以使用 http://mirrors.aliyun.com/pypi/simple/ 修改系统 更改SElinux的配置文件 /etc/selinux/con ...

  8. my_itoa

    #include <iostream> using namespace std; char *my_reverse(char* s) { char *p,*q; p=s;q=s; whil ...

  9. 求整数A和B的二进制表示中有多少位是不同?

    如果有题目要求整数A和B二进制表示中多少位是不同的? 那我们要先考虑一个unsigned类型中变量1的个数?我们可以考虑简单的移位运算,向右移位,我们进行判断如果不是1直接丢掉,使用&运算符即 ...

  10. 前端(六):JavaScript面向对象之宿主对象

    宿主对象即浏览器提供的对象,主要包括DOM对象和BOM对象. 一.DOM源起 1.SGML.XML和XHTML SGML(标准通用标记语言)是定义使用标签来表示数据的标记语言的语法. - 标签由一个小 ...