【大话存储】学习笔记(三),FC

OSI模型

OSI初步

OSI是被提取抽象出来的系统间通信模型,中文意思是“开放式系统互联”

PC a向PC b发送数据包的过程:

  • a在内存中通过定义的语言生成数据包
  • 将数据包通过总线传给TCP/IP协议处理单元,告诉对方的IP地址、UDP还是TCP、端口号
  • TCP/IP处理模块收到包之后,封装,通过总线发送给以太网卡
  • 以太网卡再进行编码,变成高低电平震荡发给交换机
  • 交换机将数据包交换到b的接口
  • b输送到以太网卡的解码芯片,去掉以太网头然后产生中断,将数据包送到内存
  • TCP/IP处理模块提取IP头和TCP头,以便区分应该输送到哪个应用程序的缓冲区内存。
  • 送到b的应用程序缓冲区内存

OSI的七个层次

应用层

应用层是OSI的最上层,表示一个系统对另一个系统要传达的最终消息。

只关注数据, 不关注指令如何发送

表示层

表示层就是对应用层数据的一种表示。

颜色、位置等信息

发送方必须用双方规定好的格式来表示信息:可以嵌入在实体数据中。

加密

会话层

会话层:建立会话交互机制。实际是双方的应用程序之间的交互。

应用层、表示层、会话层的数据内容都被封装起来,交给押运员传输层。

TCP/IP只有4层:应用层、传输层、网络层、物理链路层,它将OSI的应用层、表示层、会话层合并为一层,即应用访问层。意思是这个层全部与应用程序相关的逻辑,与网络通信无关。应用程序只需要调用下层的接口就可以完成通信。

传输层

下四层的作用是把上三层的数据成功送到目的地。

典型的传输层程序如下:

  • TCP协议的作用是保证上层数据能传输到目的地。类似货运公司的押运员,不管通过什么渠道(直达还是下一跳),不管物理链路的类型,只要送到即可。
  • 如果出现错误,需要重新发送。每件货物到了目的地必须找收件人签字(TCP的ACK应答包)或者一批货物到了以后一次性签收。(滑动窗口
  • 最后回公司登记

TCP处理拥塞和流量控制。路由器是调度中心,它可以决定走哪条路,TCP没有这个权力,所以如果发生了拥挤就只能通知后续的货物慢点发。如果道路畅通,则通知后面的货物加速发送。 
TCP是通过接收方返回的是ACK应答来判断链路拥挤的。如果半天都没收到对方的签字,说明拥塞,有丢失

** 传输层的程序一定运行在通信双方的终端设备上。而不是在中间的互联设备上。 
因为传输层是一种
端到端的保障机制,必须保证成功收到了并成功处理数据**,才算发送成功了。如果只到了对方的网卡,但是断电了,也不叫端到端保障。

网络层

调度怎么知道货物送到哪里,是通过网络层

客户把货物交给货运公司的时候,会填写目的地址,至于应该走哪条路,统统不管,全部交给网络层处理。

  • 货运公司为每件货物贴上IP头地址标签
  • 货运公司掌握了全球范围的地址信息(路由表)
  • 选择了一条路就上路。
  • 货物每中转到一个地方就交给那个地方的调度,由调度来决定下一站到哪里。
  • 旧调度不必告诉新调度最终的目的怎么走,因为所有调度都知道最终的目的。

比如,新疆到青岛没有直到的火车,只能去北京转出。

新疆的调度查找路由表,发现必须先到北京。在货物上贴上青岛标签,而不是北京的标签,但是会将货物发到去北京的火车上。

货物到北京,查看最终的目的地,查找路由表,此路由表与新疆的表不同。于是将货物送到去青岛的火车

路由器就是调度的角色

如从青岛访问北京的服务器

  • 首先必须知道服务器的IP地址,用这个IP地址作为最终目的地址组装成数据包,发送给青岛的Internet提供商的路由器
  • 这个路由器解析目的IP地址,发现应该从1号端口发送出,发到了河北的另一台路由器。
  • 河北路由器根据目的IP查找路由表,发现需要从8口出。
  • 发到了北京的路由器。
  • 最终到了北京的服务器,将这个包传送到这台服务器的网卡,并提交到TCP/IP协议处理的内存空间。
  • 发现是一个TCP握手数据包,所以返回一个确认包,三次握手完成后,就可以向服务器发送HTTP请求来获取网页资源。

数据链路层

数据链路层:连通两个设备之间的链路,将上层的数据包再次打包成对应链路特定的格式。按照对应链路的规则在链路上传输给对方。

数据链路就好比交通规则:上路之前还需要看公路的质量怎么样,和对方商量传输的事宜。

链路层的作用:

  • 协商链路参数:双工、速率、链路质量
  • 打包成帧,加上同步头,一次传输一句或者一个字符一个字符(取决于上层的选择)
  • 链路层程序调用物理层提供的接口,将帧交给物理层。
  • 提供一些保障机制,在每个帧之后加一个校验字段。如果不符说明链路干扰,直接丢弃,不过不会报告错误,因为上层对链路层的错误不关心。接收方的传输层会感知某个包没有到达,重新传送不完整的包。链路层只侦错,不纠错。

两台PC之间的通信和两个路由器之间的通信区别。

路由间的通信:

简单的路由设备工作在OSI的第三层,即网络层,没有上4层的处理逻辑。

所以收到包之后,只检查包中的IP地址,不改变IP头之上的其他内容。

如果有NAT功能的路由器,会对IP包的源或者目的IP地址做修改

上图为通信路径上各个设备所作用的层次示意图:

  • PC A上的浏览器要访问PC B上的Web服务,调用WinSock接口,访问OS内核中的TCP/IP协议栈,将目的IP和目的端口以及数据(HTTP GET请求)告诉TCP/IP协议栈
  • 协议栈发现与PC B不存在链接,所以通过三次握手与B的协议栈建立连接。(A的协议栈组装第一次握手包,发给OS的内核缓冲区,调用网卡驱动从缓冲区将IP包编码并传递出去,因为握手包很小,所以只需要一个帧。)
  • 帧到达路由器A的缓冲区,产生中断信号,去掉以太网头,发送到路由器A的内存,等待IP转发逻辑块处理(IP路由协议计算模块),分析出IP包的头部目的IP地址,查找路由表确定出去的端口号,IP路由运算一定要高效。
  • 查找出后,从网卡2出发送到路由器B的网卡2.通过同样的过程,发送到PC B的网卡缓冲区,网卡产生中断,通过总线传送到TCP/IP的协议栈缓冲区内存。
  • PC B的协议栈分析出IP是自己的,端口号是80,同时握手标识位是二进制1,就知道是从源设备向Web服务程序所监听的端口发起的握手连接。所以回复IP包给 PC A,PC A再回一个最终确认的包。
  • 握手成功,PC A的协议栈将缓冲区中有浏览器发送过来的HTTP GET请求数据组装成TCP/IP数据包发送给PC B。PC B获得数据包之后,分析TCP 端口号,根据对应关系将数据放到监听这个端口的应用程序的缓冲区内存。
  • 应用程序收到GET请求后,触发Web服务逻辑流程,返回Web数据。同样由B的协议栈发送给PC机 A。

未收到确认的包会放到缓冲区中,不会删除,直到收到对方的确认。

所以即使中途的设备把包丢弃了,运行在两端的TCP/IP协议依然会重传,这就是端到端的保障,因为设备中途网络设备不会缓存发送的数据,更不会自动重传。

物理层

物理层:在一种介质上将数据编码发送给对方。

链路层是控制物理层的。

物理层:传送带,不会进行货物分批,所以需要链路层给每批货物加标志性的头,接收方看到标志了以后就知道新一批货物来了。

MTU ,最大传输单元:每种链路都有自己最合适的分批大小

如果一次传输传送大于这个大小的货物,超过了链路接收放的处理吞吐量,会造成缓冲区溢出。

TCP和IP协议都会给货物分批。

TCP会首先给货物分批,到了IP层,会按照链路层的分批大小来进行分批,如果TCP的分批大小已经小于链路层的分批,不会再分。

被IP层分批的货物,最终会由接受方的IP再组装,但是由TCP分批的货物,接收方的TCP层不会合并。

对货物的处理分析全部交由上层的应用程序来处理

经过物理层编码后,最终变成了一串bit流。通过电路振荡传输给对方,收到bit流之后,提交给链路层程序,剥去链路层同步头、帧头帧尾、控制字符。

  • IP头是个标签,用来查看是谁发的货物。
  • TCP头是未来确认由哪个上层应用程序来处理收到的包。(用端口号来决定)

Fibre Channnel


我们之前引入了SAN的概念,SAN首先是个网络,而不是存储设备。

按照SCSI总线16个节点的限制,不可能接入很多的磁盘。

如果仅仅用并行的SCSI总线,那么SAN只能像PCI总线一样作为主机的附属品。

所以必须找到一种可寻址容量大、稳定性强、速度块、传输距离远的网络结构。

FC网络

1988年出现,最开始作为高速骨干网技术。

Fibre Channnel:也就是网状通道。

任何互联系统都逃不过OSI模型,所以我们可以用OSI来将FC协议进行断层分析。

物理层

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

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

链路层

字符编码及FC帧结构

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

因为24字节的帧头不但包含了寻址功能,还包含了传输功能保障。

也就是说网络层和传输层的逻辑都用这24字节来传输。

我们可以对比一下TCP/IP和FC协议的开销:

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

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

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

链路层流量控制

FC定义了两种流控策略:

  • 端到端流控:更上层和高级
  • 缓存到缓存流控

MTU

  • 以太网:1500字节,
  • FC链路层:2112字节。

相对于以太网链路层效率又提高了。

网络层

拓扑

两种:FC-AL和Fabric

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

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

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

  • Fabric

与以太网交换拓扑类似。Fabric的意思是“网状构造”,表明其实是一种网状的交换矩阵

相对于仲裁环路来说转发效率提升了很多,联入矩阵所有节点可以同时进行点对点通信,加上包交换所带来的并发和资源充分利用,可使得交换架构获得的总带宽为所有端口带宽之和。

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

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,嵌入链路帧里面来做路由,长24位,高8位定义为Domain区分符,中8位定义为Area区分符,低8位定义为Port区分符。

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

  • Domain ID:用来区分网络中的FC交换机本身。Domain ID是自动由主交换机分配的。而主交换机是根据WWNN好和选举帧的传送,WWNN最小者获胜,然后向其他交换机分配Domain ID。
  • Area ID:区分同一台交换机的不同端口组。如果一块芯片可以管理1、2、3、4号FC端口,那么芯片可以属于一个Area
  • Port ID:区分不同的Port

寻址过程

  • 地址映射

既然定义了两套编址体系,就一定要有映射机制,就如ARP一样。

FC协议的地址映射步骤为

  • 一个接口连接到FC网络,发起一个登录注册到Fabric的动作,也就是向目的Fabric ID地址FFFFFE发送一个登录帧FLOGIN
  • 交换机收到地址为FFFFFE,动态分配一个24位的Fabric ID,并记录接口的WWPN,做好映射。
  • 此后这个接口的帧不会携带WWPN,而是携带其被分配的ID作为源地址。

所以可以看出 以太网既携带MAC又携带IP,在效率上打了折扣。

FC网络中的FCID是动态的,每个设备每次登录到Fabric获得的ID可能不一样。

  • 寻址机制

编址以后就需要寻址,这就牵扯到了路由的概念。

FC网络不需要太多的人工介入,FC交换机会自动协商Domain ID ,选WWPN最小的为主交换机,给每个交换机分配Domain ID。

对于寻址过程,交换机上会运行相应的路由协议,比如OSPF,这样就可以寻址各节点,进行无障碍通信。

对比IP网络,IP网络需要很强的人为介入性,需要人来配置节点的IP地址、路由信息等,FC自动分配和管理地址。最根本原因是因为FC协议一开始设计就是为了高速、高效的网络,而不是给Internet使用的。所以自动分配地址当然适合。

既然要与目的节点通信,那么怎么知道要通信的目标地址是多少呢? 
每个节点在登陆到FC网络并分配ID之后,会进行名称注册,也就是向一个特定的ID(名称服务程序)发送注册帧,来告诉名称服务程序自己的信息,而且名称服务程序的地址是唯一的特定的,公认不会改变

节点注册到名称服务之后,服务会将网络存在的其他节点信息告诉接它。这样就知道了网络上所有节点和资源。

ZONE

ZONE:分区,同一个分区之间的节点可以相互通信。类似于以太网中的VLAN

  • 软ZONE:可以让名称服务器不向a通告d从而隐藏d节点,而实际上a和d物理上没有隔离开,实际上是相通的。
  • 硬ZONE:被物理隔开了。

与目标通信

从名称服务器得知网络上的节点的ID之后,如果要发起与一个节点的通信,需要直接向目的端口发起一个N_PORT Login过程,交换一系列的参数,然后进行Process Login过程(类似TCP向端口发送握手包),即进行应用程序间的通信。这些Login过程其实就是上三层的内容,属于会话层。但是Login帧也必须通过下4层来封装并传输到目的地。

名称服务器只是FC提供的服务之一,FC网络中还有一中FC Control Service,如果节点向这个服务进行注册,也就是向FFFFFD 发送一个SCR帧(State Change Registration )。一旦Fabric有变动,比如一个节点离线了、一个节点上线了,或者一个ZONE被创建了,Fabric将事件封装到 RSCN 帧(Register State Change Notification)里发送给注册了这项服务的节点。

传输层

作用:

  • 对上层数据流进行Segment。每个Exchange(上层程序)发来的数据包,被FC传输层分割为Information Unit,类似于TCP的Segment。然后将这些Unit提交给FC的下层,下层将每个Segment当做一个Sequence,分配一个Sequence ID,再分割为FC所适应的帧,每个帧赋一个Sequence Count,保证排列顺序。
  • 区分上层程序。TCP是通过端口号,而FC协议是通过Exchange ID来区分。
  • 适配上层协议,比如IP可以通过FC来传输,SCSI指令也可以通过FC来传输。所以FC只是给IP和SCSI提供一种通路,一种传输手段,就像IP Over Ethernet 和 IP Over ATM

小结

FC是高速、高效、配置简单的网络。 
FC协议的大部分逻辑直接做到独立的硬件中,所以效率高。

TCP/IP是运行与OS上的网络协议,其IP/TCP/UDP模块是运行在OS上,以太网逻辑是在以太网卡芯片中。

FC协议中7种端口类型

  • N、L、和NL端口被用于终端节点。
  • F、FL、E、G端口在交换机中实现

N和F

N和F用于Fabric交换架构中。连入FC交换机的终端节点的端口为N,对应的交换机端口为F

网络中的N节点就可以互相点对点通信了。

L端口

仲裁环上的

NL端口和FL端口

NL端口:开放环中,具有N和L的功能。支持交换机光纤网登录和环仲裁。

E端口

交换机级联 
承载控制信息:选举协议、路由协议

G端口

万能端口。按照所连接对方的端口类型进行自动协商。

FC适配器

FC网络的眼睛——FC适配器,或者FC主机总线适配器,FC HBA,(Host Bus Adapter)

HBA可以指代任何一种设备,只要这个设备的作用是将一个外部功能接入主机总线

所以PCIE网卡,显卡,声卡和AGP显卡都可以叫HBA。

下图是PCI接口的FC适配器。

下图是用来接入FC网络的各种线缆 

有SC光纤,DB9铜线和RJ45/47线缆。所以FC不一定是光纤

FC适配器有自己的CPU、RAM、ROM。是一个嵌入式设备。与RAID卡类似,只是不像RAID卡需要那么多的RAM来做数据缓存。

改造盘阵前端通路——SCSI迁移到FC

对盘阵而言,前端通路指的是主机与盘阵间的通路。

可以把基于并行SCSI总线的存储网络架构迁移到FC的网络架构。

但是FC协议只是定义了完整的网络传输体系,没有定义SCSI指令集这样面向磁盘存储数据的通用语言。所以FC必须将SCSI语言承载于新的FC传输载体进行传送。

SCSI协议集是一套完整而不可分的协议体系,有OSI的各个层次,物理层使用并行传输。可以看出SCSI协议集的应用层其实就是SCSI协议指令。需要解决的是将指令帧传送到对方。

随着技术的发展,并行SCSI总线在速度和效率上无法满足要求,所以可以让** SCSI协议集租用了FC协议,将自己的底层传输流程外包给了FC协议来做。也就是SCSI over FC**

将连接主机和磁盘阵列的同路从并行的SCSI总线替换为串行传输的FC通路。但是盘阵后端连接磁盘的接口还是并行SCSI接口。

 
图中连接主机的前端接口已经替换为FC接口,连接主机的SCSI适配器替换为了FC适配器。

单台盘阵所能接入的磁盘容量没有提升,后端性能和容量没有提升,但是前端的性能提升了。因为FC的高效、高速、传输距离。

虽然链路被替换为了FC,但是承载的应用层数据没有变化,依旧是SCSI指令集,和并行SCSI链路上承载的一样,只是换成了FC协议及其底层链路和接口来传输指令和数据而已。

引入了FC之后

引入FC之后,带来的好处:

提高了扩展性

若一台盘阵如果只提供一个FC前端接口,可以使用FC交换机来连接多台主机。

虽然并行SCSI总线可以接入16个节点,但是15台主机和一台盘阵接入SCSI总线,主机只能共享带宽,而且SCSI线缆最长不超过25米。

引入了FC包交换网络之后,速度提升一大截,而且由于是包交换的架构,可以实现多个节点向一个节点收发数据。

增加了传输距离

因为可以使用光纤,所以传输距离加长了。

解决了安全性问题

之前的图中,多个接口公用一个盘阵,会不会发生冲突?当然不会。

  • 交换机允许多个端口访问同一个端口是一个分时复用的包交换过程。
  • FC前端接口允许多个其他端口进行Port Login过程,那么盘阵上的逻辑磁盘LUN可以同时被多个主机访问吗?完全可以。SCSI指令集中有一个选项,即独占式访问和共享式访问。
    • 独占式访问:每台主机访问目标前需要进行SCSI Reserve,使用完了再Release目标。
    • 共享式访问:允许所有人来访问。 
      所以盘阵上的任何LUN可以被多台主机通过一个或者多个前端接口进行访问。容易造成冲突。 
      解决方法:文件系统相互协商同步,这种新的文件系统叫集群文件系统,保证可以同时共享一个卷。

大多数情况不需要共享一个卷,那怎么实现主机只访问属于自己的LUN? 
分析从主机到盘阵的LUN的通路,可以发现,有两个部件,一为FC交换机,二为磁盘阵列控制器。所以可以分别在两者上做手脚。

  • 在磁盘控制器上做手脚

SCSI指令集上有一条叫Report LUN,在SCSI发起端和目标端通信的时候,由发起端发出指令。目标端在收到指令的以后,就需要报告自己的LUN信息。

可以在发起端要求Report LUN的时候,根据发起端的身份,提供相应的LUN给它。

如果强行访问其他的LUN,就会拒绝。

LUN Masking:盘阵对特定的主机报告特定的LUN,避免越界。

这是SCSI指令集的功能,所以只要上面能承载SCSI指令集就可用。

还可以将LUN分配到某个前端端口。可以设置前端主机只有从某个盘阵端口进入才能访问到对应的LUN。从盘阵前端其他端口访问不到LUN。

  • 在FC交换设备上做手脚

ZONE:在FC网络交换设备上阻断两个节点的同路

  • 软ZONE:在名称服务器上做手脚,欺骗进行名称注册的节点,根据ZONE配置的信息向登录节点通告网络上其他节点以及资源的信息。
  • 硬ZONE:把交换机某端口归为一个ZONE,底层完全隔离。

FC盘阵B所接的端口既在左边又在右边的ZONE中。主机C无法与盘阵A通信。

多路径访问目标

下图为具有双控的盘阵,两个控制器都连接到了交换机上,每个主机上都有两块FC适配卡,也连接到了交换机。

假设LUN1分配给控制器A,LUN2分配给控制器B,而每台主机有2块HBA卡连到了FC交换机上,所以每台主机将识别到4块磁盘。 
这样每台主机会识别到双份冗余的磁盘,但是OS一无所知,会认为是独立的。容易造成混乱。 

为何要安装两块FC适配卡?目的是为了冗余,以防单点故障,一旦出现了故障,另一块卡依然可以维持主机到盘阵的通路。

解决OS识别出多份磁盘的问题:

在OS上安装软件。识别FC提交上来的LUN。如果物理上相同的LUN,软件就向OS提交单份LUN。

如果某个控制器发生故障,通过这个软件立即重定向到另一个控制器。

这个软件叫多路径软件,除了可以做到冗余高可用以外,还可以负载均衡。

FC协议的巨大力量

FC交换网络替代并行SCSI

FC取代并行SCSI有两个根本原因。

面向连接与面向无连接

并行SCSI没有复杂的链路层协议,连就体现在线缆上。因为距离短,所以不需要加入传输保障机制等。相当于面向连接的电路交换,需要预先建立物理的通路(虚电路)

在面向无连接的包交换网络中,数据流被封装成数据包,传输保障和流量控制非常重要。而且此时网络是共享的,按照Best Effect尽力而为的转发数据包。

对于并行SCSI总线,当需要和某个节点通信的时候,需要仲裁。物理通路总是存在,只不过这个通路是总线,是大家共享的,需要通过仲裁来获得总线的使用权。

  • 面向连接的致命弱点
    • 资源浪费:必须保持并只给特定的通信双方使用。其他的通信不管多美的拥塞都不能使用。
    • 维持和维护连接的成本高。如果远的话,维持物理连接的成本高,需要解决干扰、中继等。
    • 缺乏高可用性:需要重新建立电路才能继续通话。对于包交换网络,没有固定的数据流路径,交换或者路由设备会自行判断应答通过的路径。丢失的包会重传。
  • 面向无连接的优势 
    注意不要把“面向无连接”和“TCP是有连接”混淆,TCP是一个端到端的协议,运行于通信双方,而不是所经的网络设备上。TCP连接不是物理连接而是逻辑连接的,TCP其实就是一个状态,本身可以保持状态机用来侦测双方的数据流是否成功发送。

实际通信的两点既可以通过包交换网络,又可以通过面向连接的网络,也就是说面向连接和面向无连接是链路层概念。而TCP是传输层的概念。

串行和并行

在长距离高速传输方面,必将取代并行传输。 
北京的主机可以接到青岛的盘阵,通过租用的ISP光缆线路进行连接,在这条线路上承载FC协议。

FC接口速度可以是1Gb、2Gb、4Gb、甚至8Gb,而且盘阵前端可以同时提供多个主机接口。所以他们的带宽和远远高于后端连接磁盘的并行SCSI总线提供的速度。可以在后端增加更多的SCSI通道。

后端升级为FC

每增加一个SCSI通道,只能接入15块磁盘,数量太少。

  • 交换式架构Fabric是包交换网络,寻址容量大,交换速度快,各个节点间可以同时进行线速交换,无阻塞通信。但是成本高。
  • FC-AL仲裁架构,带宽共享,寻址容量128,成本低:可以用来连接磁盘阵列的控制器和磁盘,而且每块磁盘上都实现FC拓扑的L端口。

后端替换为FC架构的优势

  • 可扩展性:受并行SCSI总线仲裁的限制,总线上不会有太多的节点,FC-AL可以到128个。可以扩展更多的磁盘,实现单台磁盘上TB容量。 
    一个FC-AL环速度比Ultra 320低,但是多条总线和多个后端通道可以集成在一个控制器上。而并行的SCSI接口和线缆都很大,想集成在一个小的空间上很难。FC由于是串行传输的,一发一收足够。
  • IOPS显著增加。 
    高IOPS意味着IO SIZE比较小。如果使用并行SCSI,可接入节点比较少,磁盘数量少,每秒可接受的IO请求少。 
    现在大部分应用是要求高IOPS的,产生的IO SIZE都不大,以随机IO居多。对于视频编辑领域,需要高传输带宽,可以在盘阵后面加入多个FC-AL环来解决。
  • 双逻辑端口冗余:串行方式,针脚少容易做成冗余的。

FC革命——完整的盘阵解决方案

磁盘生产厂家将FC协议中的L端口和FC硬件芯片做到磁盘驱动器上,取代了传统的SCSI端口。 
根据FC协议编写了新的Firmware,用于从FC数据帧中提取SCSI指令,

本地的磁盘并行SCSI磁盘仍然有比较广泛的应用,一般用于装操作系统,而且一般情况应用数据都会放到SAN磁盘阵列上。对本地磁盘的性能要求不高。

因为每块磁盘都连接到FC-AL网络中,所以磁盘上要做一个FC接口。

由于磁盘阵列背板需要连接众多的磁盘,所以不能用柔软的光纤来连接磁盘到背板,必须使用硬质的铜线,让磁盘的FC接口用铜线来接触盘阵背板的电路,才能做到方便的插拔。

共享环路还是交换

环上的节点达到最大值的二分之一(60)的时候,已经达到仲裁性能和带宽共享的极限

所以可以做如下改变,仍然运行FC-AL协议,但是物理架构是交换架构的芯片。只是在物理连接上用点对点交换架构,替代了节点大串联的Loop结构。使得节点和节点之间的传输数据可以通过交换矩阵直达,而不是一跳一跳的中继 。

其实就是用星型连接取代串联。仲裁变得简单,不需要所有的磁盘参与,只需要由芯片来决定。某个节点同一时刻依然只能与一个节点通信。

  • 控制节点和其他节点采用点对点直廉价够,减少了传输延迟。
  • 快速侦测和隔离故障点。
  • 降低了延迟出,所以接入节点数量可以增加。
  • 提高了传输速度和IOPS

纯环路架构的扩展柜中,连接硬盘的背板只是一个FC-AL环路连接装置。 
到半交换架构的硬盘扩展柜,背板有芯片,可以级联多个扩展柜,可以称为SBOD(Switched bundle of disks)

SBOD上的CPU

ROM和RAM

带内升级:in-band升级,直接通过实际数据链路来升级系统控制数据的方式。 
带外升级:使用单独的通道来访问Flash芯片并做升级动作。

循环缓存镜像写:

循环缓存镜像写:数据在写入任何一个控制器的Cache中的时候,系统会将写入的数据复制到其他控制器的缓存中做冗余。

读缓存不需要,读操作只是将数据从硬盘上读入RAM。而且读操作没有必要浪费缓存容量。

小结

磁盘阵列的前端和后端用FC网络作为通路取代原来的并行SCSI通路技术。

NGIO下一代IO,主机IO总线甚至内存总线都用交换式网络来连接。

对于存储网络化,A主机可以识别B地的LUN。

对于网络化的系统总线,A地的CPU 可以访问B地的内存阵列或IO控制器,通过网络相连。

SAN(系统区域网络)System Area Network

posted @ 2018-01-05 10:16  dy2903  阅读(1579)  评论(0编辑  收藏  举报