在前面文章中已经讲过,Fibre Channel over Ethernet(FCoE)是一个把Fibre Channel中的帧封装到一个增强的以太网(Ethernet)中的传输协议标准,它应来组建存储网络。关于FCOE技术的介绍网络上非常多资料,但大多都比较分散。本文通过几个FCoE的技术细节,将存储网络FCoE中必须要了解的知识进行整理和总结,方便小伙伴们学习和查阅。
FCoE旨在通过以太网直接传输光纤协议,让存储网络中的数据可轻易跨越光纤和以太网的界限,通过同一种物理介质(以太网络)进行传输,同时保留了FC中的上层协议的特性,例如数据一致性,流控制等,但不使用原先光纤网络的物理线路与接口。目的在于降低用户在存储网络构建和管理方面的成本和复杂性。
但是FCoE和FC协议又存在很多区别,如FC协议是运行在传统的FC SAN的存储网络中。而FCOE则是运行在以太网的存储协议。FC协议是运行在FC网络中,所有的报文都是运行在FC通道中。在以太网中存在各种协议报文,有IP,ARP等传统以太网协议,而FCOE是运行要在增强以太网中需要创建一个虚拟的FC通道来承载FCOE报文。
FCOE保留了FC-2以上的协议栈,把FC中的FC-0和FC-1用以太网的链路层取代。因为FC的FC-0作用是定义承载介质类型,FC-1作用是定义帧编解码方式,这两层是在FC SAN网络传输时需要定义的方式。而FCOE是运行在以太网中,所以不需要这两层处理,而是用以太网的链路层取代这两层处理。
FCOE和FC的帧结构唯一不同的就是FCOE就是在FC帧外层在封装上一层以太网报头。实际上,FCoE的优势显而易见,下面也简单总结下。
部署FCoE以后,企业只需要使用以太网络构建数据中心的网络,而不是原来使用光纤网络和以太网络进行结合。同时减低线路的总数,主机端接口卡(HBA,网卡)等的总数。而这两者会被集成为同一个接口设备 –融合网卡Converged Network Adapter(CNA)用来同时处理FC协议和TCP/IP协议,从而保证在同一个主机接口上对存储网络和IP网络进行隔离。
另外,未来FCoE可能会提供相比FC网络更大的带宽,FCoE目前起始就是用10 Gb的以太网,而40 Gbps和100 Gbps的以太网也已经推出,相对FC网络方面,8Gb和16Gb是主流,最新的32Gb也刚刚出现,但相对也在起步阶段的100Gb以太网来说还是稍逊不少。
由于以太网是可以容忍网络丢包的,但是FC协议不允许出现丢包,那么FCOE做为以太网中传输的FC协议来说同样是继承了这点特点不允许丢包。所以想要FCOE协议可以正常的运行在以太网络中就需要对以太网做一定的增强来避免丢包 ,这种以太网叫增强型的以太网。
由于FCOE是运行在以太网中的存储协议,要让FCOE能正常的运行在以太网中,就需要FIP初始化协议来获取FCOE运行的相应vLAN,与哪个FCF建立虚通道,和虚链路的维护等。所以从这方面来讲FCOE比FC多了一个FIP的初始化协议 。
简单的说FCOE协议就是指FC协议承载在以太网上的一种新型的协议,那么要让FC协议正常的在以太网中运行,需要协商一些参数以便更好的在以太网上运行。FIP的作用就是协商这些参数。FIP初始化协议是FCoE控制平面相对FC控制平面新增的协议,协商过程包含四个阶段,即vLAN发现、FCF发现、虚链路建立、虚链路维护,这四个阶段主要完成以下功能如下图所示。
第一阶段vLAN发现
在FCOE网络中需要将FCoE的VSAN映射到指定一个专用VLAN中,而VLAN发现阶段就是获取FCoE流量所使用的VLAN。
服务器Node节点发送一个目标MAC为组播地址vLAN Discover Request报文,本地所有FCF(FCOE交换机)都会监听到这个MAC地址,并对该FIP VLAN Discovery 进行响应,响应报文中携带了FCOE协议可以使用VLAN信息。获取FCoE流量所使用的VLAN;
第二阶段FCF发现
这个阶段的作用是发现本地所有的FCF优先级最高的设备并与其建立虚链路。经过上一阶段vLAN发现后,从这个阶段开始,FCoE报文所携带的vlan就是上面协商的vLAN ID。
服务器Node节点发送一个目标MAC为组播地址Soliciation 报文,本地所有FCF(FCOE交换机)都会监听到这个报文,并对其回应一个Nnicast Advertisement报文,这个报文中携带了FCF优先级,FCF MAC等信息。Node节点收到多个Advertisement报文之后,会选择一个优先级最高的设备与其建立虚链路。这里要注意的是FCF也可能定期的发送组播Advertisement报文。
第三阶段虚链路建立
这个阶段是用于建立虚链路vLINK。FCOE与FC不同,需要在以太网通道中建立一个虚拟的FC通道用于传输FCOE报文。这个阶段有两种情况。
但是两种情况的作用都是一样的,建立虚链路,他们之间的区别是一个是物理接口使用的注册报文,一个是虚拟接口使用的注册报文。FCF收到Node发送的Flogic/Fdisc报文后,会回复一个确认报文,报文中携带了分配给Node节点的FC_ID。所以实际上这个阶段有两个作用,一个是建立虚链路一个是分配FC_ID。
最后阶段虚链路维护
同其他很多协议一样,FCOE也需要一个机制来保活邻居,这就是这个阶段的作用。在建立虚链路后,就会启动保活定时器,Node节点会定期发送Keeplive报文,默认情况下8000ms发送一次Keeplive,当2.5倍的Keeplive时间内也就是20s内FCF没有收到Node节点发出的Keeplive报文,FCF认为Node已经掉线,会马上发送clear vlink的报文,清除虚链路。
在FCoE数据传输的每个节点上(网卡,交换机)都需要启用巨帧Jumbo Frame以支持封包以后的以太网帧的传输(以太网原来默认帧最大1500字节,传输FC帧需要2112)。不同的厂商的产品默认的巨帧MTU有所不同,比如思科的Nexus默认值是2158。
FCoE其实不能运行于普通的10/100Mb、1Gb和10Gb的以太网络,因为普通的以太网并不是Lossless Ethernet,它不包含任何重传(重传由上层的TCP协议控制)和流控制技术, 保证传输等功能。
以太网使用到了一种叫做PAUSE的机制,PAUSE机制可以防止瞬时过载导致缓冲区溢出时不必要的帧丢失,实现了一种简单的停-等式流量机制,来提高传输的质量。而原有的PAUSE机制在决定对特定端口进行停-起的操作的时候并没有一个优先级的控制。
增强的以太网解决这个问题,在原有的以太网的基础上增加了一些扩展的协议机制,使得让以太网更适合存储网络。这种控制机制主要包括以下几种。
Priority Flow Control(IEEE 802.1Qbb)和Enhanced Transmission Selection(IEEE 802.1Qaz),它们的作用是可以对帧的传输优先级进行调整。例如将存储网络的帧的优先级调高,获得更高的带宽,以保证存储网络传输的速度和质量。
Congestion Notification(IEEE802.1Qau)作用是对以太网中造成冲突的源和目标端同时叫停的机制。
增强的以太网还提供了二层网络的多路径机制,替代原有Spanning Tree Protocol(STP)只支持单路径。
FC协议和FCOE协议虽然两者是不同协议,但是他们之间还是有相应联系,FCoE仍然保留了FC中N_Port、F_Port、E_Port的结构以及FC的管理模式,所以在上层处理和FC是没有区别的。
N_Ports(HBA和存储FC前端口)在FCoE中叫做VN_Ports(CNA和存储FCoE端口)
F_Ports(Fabric端口)在FCoE中叫做VF_Ports(FCoE交换机的端口)
E_Ports(FC交换机到FC交换机)在FCoE中叫做VE_Ports(FCoE以太网交换机互联的端口)。
如果你的企业在以太网上部署存储且规模不是很大,iSCSI和NAS分别是在B块和文件端很好的选择。如果您的企业已经有更大规模的存储网络,在新建基础架构的情况下,使用融合的FCoE网络可以同时兼顾块和文件存储,10Gb的速度可以同时用来支持FCoE,iSCSI,NAS业务数据,实际上,以太网的高速发展也会使得企业在部署FCoE上也取得了一些成效。
相关阅读
“FCoE全解系列”之增强型以太网技术
“FCoE全解系列”之网络融合交换机类型
“FCoE全解系列”之融合方案和典型组网
温馨提示:
请搜索“ICT_Architect”或“扫一扫”下面二维码关注公众号,获取更多精彩内容。
专注做一个有情怀的技术分享平台