【大话存储】学习笔记(7,8章),FC协议

Fibre Channnel

咱们以前引入了SAN的概念,SAN首先是个网络,而不是存储设备。这个网络是专门来给主机链接存储设备用的。html

咱们知道按照SCSI总线16个节点的限制,不可能接入不少的磁盘,要扩大SAN的规模,只使用SCSI总线是不行的,因此必须找到一种可寻址容量大、稳定性强、速度块、传输距离远的网络结构。FC网络就应运而生。前端

FC网络

Fibre Channnel也就是网状通道,FC协议从1988年出现,最开始做为高速骨干网技术。后端

任何互联系统都逃不过OSI模型,因此咱们能够用OSI来将FC协议进行断层分析。缓存

物理层

首先有较高的速度:1Gb/s,2Gb/s,4Gb/s,8Gb/s到16Gbps安全

为了实现远距离传输,传输介质起码是光纤服务器

链路层

字符编码及FC帧结构

FC协议的帧头有24字节,比以太网帧头(14字节)还要长。网络

好比下图为以太网的报文格式。架构

image.png

为何FC协议须要这么长的帧头呢?由于24字节的帧头不但包含了寻址功能,还包含了**传输功能保障。**也就是说网络层和传输层的逻辑都用这24字节来传输。并发

这点就与TCP/IP+以太网不一样,以太网基本上没有传输功能保证功能,主要须要靠TCP来进行端到端的传输保障。ide

咱们能够对比一下TCP/IP和FC协议的开销:

基于以太网的TCP/IP网络,开销为:

14字节(以太网帧头) + 20字节(IP头) + 20字节(TCP头) =54字节,或者把TCP帧头变为UDP(8字节)一共是42字节

而FC协议就24字节,因此开销比TCP/IP的要小。

网络层

FC网络中的节点要通讯,无非也就是连、找、发三大要素。

  • 连:经过FC交换机打统统路,主要的拓扑结构有FC-AL和Fabric两种。

  • 找:FC协议有一套于以太网不相同的编址方式,能够尽量减小人为的干预。

  • 发:指的是与目标进行通讯

从这个方面基本上就能够了解FC各节点交互的流程了。

连:拓扑

与以太网相似,FC也有两种拓扑:FC-AL和Fabric

  • FC-AL:相似以太网共享总线拓扑,可是链接方式不是总线,而是仲裁环(Arbitral loop)。每一个FC -AL 设备首尾接成了一个环路。最多能接入128个节点,实际上只用了8位的寻址容量。被广播地址、专用地址占用以后,只剩下127个实际可用的地址。

仲裁环是应该 由全部设备串联而成的闭合环路,每一个接口上都有一套旁路电路(Bypass Circuit),一旦检测到本地设备故障,就会自动将这个接口短路。

一跳一跳的传输,并且任什么时候候只能按照一个方向向下游传输。

image.png

  • Fabric:与以太网交换拓扑相似。Fabric的意思是“网状构造”,代表实际上是一种网状的交换矩阵

相对于仲裁环路来讲转发效率提高了不少,联入矩阵全部节点能够同时进行点对点通讯,加上包交换所带来的并发和资源充分利用,可以使得交换架构得到的总带宽为全部端口带宽之和。

而AL架构下,无论接入的节点有多少,带宽为恒定,即共享环路带宽。

下图为交换矩阵的示意图。 image.png

FC终端设备接入矩阵端点,一个设备发给另外一个设备数据帧被交换矩阵收到后,矩阵会拨动交叉处的开关,连通电路,传输数据。因此能够把交换矩阵是一个大的电路开关矩阵,根据通讯的源和目的决定波动哪些开关。

FC交换拓扑寻址容量是2的24次方个地址,比以太网理论值(2的48次方)少,可是对于专用的存储网足够。

找:编址

任何网络都须要寻址机制,因此须要对FC网络的每一个设备定义一个惟一的标识。

  • WWNN(World Wide Node Name):每一个设备自身有一个WWNN
  • WWPN(World Wide Port Name):FC设备的每一个端口都一个WWPN,是世界上惟一的。

以太网交换设备的端口不须要有MAC地址,而FC交换机却须要每一个端口**都有本身的WWPN。**这是由于FC要作的工做比以太网交换机多,许多FC的逻辑都集成在了FC交换机。 须要处理到FC协议的最上层。而以太网相对简单,由于上层逻辑都被交给TCP/IP这样的上层协议来实现了。

WWPN:长度是64位,比MAC地址多16位。长度太长,速度低,因此在WWPN上映射一层寻址机制,分配一个Fabric ID,嵌入链路帧里面来作路由

这样WWPN被映射到了Fabric ID,一个24位的Fabric ID又被分为Domain ID、Area ID、Port ID三个亚寻址单元

  • 高8位定义为Domain区分符,用来区分网络中的FC交换机自己。Domain ID是自主交换机分配的。那主交换机怎么来的?它是根据WWNN号来进行选举,WWNN最小者获胜,成为主交换机,它就有资格向其余交换机分配Domain ID

  • 中8位定义为Area区分符,区分同一台交换机的不一样端口组。若是一块芯片能够管理一、二、三、4号FC端口,那么芯片能够属于一个Area

  • 低8位定义为Port区分符,区分不一样的Port

发:地址映射过程

以下的讲解主要是针对Fabric 交换架构网络。

既然要把WWPN映射到Fabric ID上,就必定要有映射机制,那么每一个端口如何得到Fabric ID的呢?过程比较相似于RARP协议。

当一个端口接到FC网络的时候,会向注册服务器发送一个注册申请,而后这个注册服务器会返回给它动态分配一个Fabric ID。固然此时注册服务器会记录这个映射关系。

**此后这个接口的帧不会携带WWPN,而是携带其被分配的ID做为源地址。**这点就与以太网不一样,咱们知道 以太网既携带MAC又携带IP,因此在效率上打了折扣。

image.png

发:同步其余节点信息

不过还有一个问题,一个端口要与另外一个端口通讯,那么怎么知道要通讯目标的Fabric ID是多少呢?

每一个节点得到本身的Fabric ID以后,还会进行名称注册。一样也是向名称服务器发送注册帧,主动告知本身的Fabric ID等信息。而后名称服务器其余节点的信息返回给它。这样就知道了其余节点地址呢。

若是FC网络比较大,则可能不仅一台FC交换机。也就是说有若干FC交换机互联。与IP网络不一样的是,FC网络不须要太多的人工介入,它们会自动协商本身的Domain ID(能够回过去看看Fabric ID的结构),选举出主交换机,由主交换机来为其余的交换机分配Domain ID。交换机之间会运行OSPF等路由协议,这样能够交互节点信息,寻址各个节点。

如今咱们能够与IP网络对比一下,IP网络须要很强的人为介入性,须要人来配置节点的IP地址、路由信息等,而FC网络则能够自动分配和管理地址。最根本缘由是由于FC协议一开始设计就是为了高速、高效的网络,而不是给Internet使用的。因此自动分配地址固然适合。

发:与目标通讯

此时每一个节点已经得到了Fabric ID了,同时还从名称服务器得知网络上其余节点的ID,万事俱备,彻底能够与其余节点进行通讯了。

  • 首先须要直接向目的端口发起一个N_PORT Login过程,目的协商一系列的参数

  • 而后进行Process Login过程(相似TCP向端口发送握手包),即进行应用程序间的通讯。好比FC能够承载SCSI协议,那么此时Initiator端就须要向Target端发起请求了。

  • 这些Login过程其实就是上三层的内容,属于会话层。可是Login帧也必须经过下4层来封装并传输到目的地,就像TCP握手同样。

FC网络中还有一中FC Control Service,若是节点向这个服务进行注册了之后,一旦网络状态有变更,将会把最新的信息同步到这些节点。

最后一点

上面提到的名称服务器、注册服务器其实通常都是运行在交换机内部的,而不是物理上的服务器。

传输层

FC协议的传输层的做用与TCP类似,也也进行Segment以及经过端口号区分上层应用。

  • 对上层数据流进行Segment。 每一个Exchange(上层程序)发来的数据包,被FC传输层分割为Information Unit,相似于TCP的Segment。 而后下层协议为每一个Segment分配一个Sequence ID,再分割为FC所适应的帧

  • 区分上层程序。TCP是经过端口号,而FC协议是经过Exchange ID来区分。

FC适配器

要构建一个完整的FC网络,除了须要FC交换机,还须要FC适配器(FC HBA,Host Bus Adapter)

HBA能够指代任何一种设备,只要这个设备的做用是将一个外部功能接入主机总线,因此PCIE网卡、声卡和显卡均可以叫HBA。

下图是用来接入FC网络的各类线缆,有SC光纤,DB9铜线和RJ45/47线缆。能够看出FC不必定是光纤

image.png

FC适配器有本身的CPU、RAM、ROM。是一个嵌入式设备。与RAID卡相似,只是不像RAID卡须要那么多的RAM来作数据缓存。

image.png

SCSI迁移到FC

如何迁移

在上面一章咱们把FC协议进行了简单的介绍,如今是时候把SCSI迁移到FC上了。

回顾一下,为何要这么作,由于SCSI总线只能接16个节点,不利于扩展,同时传输的距离有限,并且不够高效等。因此咱们能够在主机与后端存储之间使用FC协议,把基于并行SCSI总线的存储网络架构迁移到FC的网络架构。

迁移的过程当中存在一个问题,咱们知道FC协议并无定义SCSI指令集这样面向磁盘存储数据的通用语言。那怎么解决这个问题呢?

【大话存储】学习笔记(13章),协议融合中提到了协议融合,此时FC协议与SCSI协议有重叠,可是FC协议在某些方面能够作得更好,因此能够将SCSI语言承载于FC协议进行传送。

将链接主机和磁盘阵列的通路从并行的SCSI总线替换为串行传输的FC通路。可是盘阵后端链接磁盘的接口仍是SAS接口。 image.png

这样单台盘阵所能接入的磁盘容量没有提高,但是前端的性能提高了,由于使用FC协议,能够更为的高速。

好处

引入FC以后,带来的好处为

  • 若是一个盘阵只有一个FC接口,那么咱们彻底可使用FC交换机来扩充端口。并且采用了这样的包交换架构,能够实现多个节点向一个节点收发数据,传输效率大大提高。

image.png

这样就实现了多台主机共享一个盘阵,提高了盘阵的利用率。

  • 并且由于可使用光纤,因此传输距离加长了。

  • FC协议功能更为丰富,能够为每台主机划分不一样的LUN,保证了安全性。 既然全部的主机都挂在了盘阵上,怎么保证每台主机能独享一块LUN呢?能够从FC交换机,磁盘阵列控制器入手。

    • 在磁盘控制器上作手脚:

    在SCSI协议中有这样一个过程,此时Initiator想要与Target要进行通讯,Initiator须要发一条Report LUN指令给Target,Target端在收到这条指令之后,须要返回本身的LUN信息。那么磁盘控制器能够 LUN的时候,根据发起端的身份,提供相应的LUN给它。若是强行访问其余的LUN,就会拒绝。这种方法就叫LUN masking

    总的来讲,能够把LUN当作蛋糕,磁盘控制器就是主人,他能够调查每一个主机的身份,根据不一样的身份来分配蛋糕。

    注意,这是SCSI指令集的功能,只要承载了SCSI指令集的协议就能够实现这个功能。

    • 在FC交换机上作手脚: 咱们知道以太网交换机能够划分VLAN,也就是能够把某几个端口划分到一个逻辑上的LAN中。一样FC交换机也能够实现相似的功能,不过名字叫ZONE。 ZONE有软ZONE和硬ZONE之分。
      • 软ZONE:在名称服务器上作手脚,欺骗进行名称注册的节点,向他们通告其余节点信息。

      • 硬ZONE:把交换机某端口归为一个ZONE,底层彻底隔离。以下

image.png

多路径访问目标

若是盘阵有两个控制器,每一个主机上都有两块FC适配卡,它们都链接到了FC交换机。

这样会存在一个问题,由于主机有两块HBA卡,而每块HBA能够识别两块LUN,因此整个主机会识别出4块磁盘,这就有问题了,由于这样磁盘就有重复了,形成了混乱。

image.png

那么你可能会说,为啥要两块FC HBA卡呢?由于一块HBA有单点故障,若是使用两块HBA卡,一旦一块HBA卡出现了故障,另外一块卡依然能够维持主机到盘阵的通路。

那多路径的问题怎么解决:能够在操做系统中安装多路径软件,它能够识别FC提交上来的LUN,向操做系统提交单份LUN。这个软件还有个做用,若是某个控制器发生故障,经过这个软件当即重定向到另外一个控制器。 image.png

相关文章
相关标签/搜索