在前面文章中已经讲过,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报文。这个阶段有两种情况。

  • 如果服务器Node节点的接口是物理接口就使用FLOGIC报文进行登录

  • 如果是服务器Node节点虚拟出的NPIV接口就使用Fdisc报文进行登录建立虚链路。

但是两种情况的作用都是一样的,建立虚链路,他们之间的区别是一个是物理接口使用的注册报文,一个是虚拟接口使用的注册报文。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”或“扫一扫”下面二维码关注公众号,获取更多精彩内容。

专注做一个有情怀的技术分享平台

“FCoE全解系列”之关键特性和技术分析相关推荐

  1. “FCoE全解系列”之融合网络方案和典型组网

    在IP SAN和FC SAN网络融合之前,网络复杂.LAN/SAN独立部署.扩展困难且能效比低,服务器上至少配置4-6块网卡,增加功耗. 融合之后网络简化,LAN/SAN融合.统一交换且降低TCO,服 ...

  2. “FCoE全解系列”之增强型以太网技术

    FCoE起源于Brocade.IBM和HP提议一个名为FCoCEE (FC over Converged Enhanced Ethernet)协议标准,后来正式改名为FCoE:分别有Cisco.EMC ...

  3. 你想要的系列:网络请求框架OkHttp3全解系列 - (二)OkHttp的工作流程分析

    Okhttp系列文章: 你想要的系列:网络请求框架OkHttp3全解系列 - (一)OkHttp的基本使用 你想要的系列:网络请求框架OkHttp3全解系列 - (二)OkHttp的工作流程分析 你想 ...

  4. 全网最新最全的 HDFS 文件纠删码技术分析

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  5. Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!

    封面:洛小汐 作者:潘潘 2021年,仰望天空,脚踏实地. 这算是春节后首篇 Mybatis 文了~ 跨了个年感觉写了有半个世纪 - 借着女神节 ヾ(◍°∇°◍)ノ゙ 提前祝男神女神们越靓越富越嗨森! ...

  6. Mybatis系列全解(六):Mybatis最硬核的API你知道几个?

    2020 年的大疫情,把世界撕成几片. 时至今日,依旧人心惶惶. 很庆幸,身处这安稳国, 兼得一份安稳工. · 东家常讲的一个词:深秋心态 . 大势时,不跟风.起哄, 萧条时,不放弃播种和耕耘的信心, ...

  7. 技术-2022-05-《Spring cloud Alibaba全解》阅读笔记

    技术-2022-05-<Spring cloud Alibaba全解> 创建时间: 2022/5/22 15:21 更新时间: 2023/2/17 8:52 作者: HelloXF 第一章 ...

  8. 消息中间件系列(九):详解RocketMQ的架构设计、关键特性、与应用场景

    内容大纲: RocketMQ的简介与演进 RocketMQ的架构设计 RocketMQ的关键特性 RocketMQ的应用场景 RocketMQ的简介 RocketMQ一个纯java.分布式.队列模型的 ...

  9. mapper命名规范_Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

    封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...

最新文章

  1. 【C】数组数组初始化总结
  2. 如何快速采集分析平台日志,并进行展示监控?
  3. 计算机辅助制造实验感想6,中南大学计算机辅助制造实验报告1
  4. 如何高性能的给UIImageView加个圆角
  5. gateway坑点:gateway有Controller时会直接处理对应的路径并返回
  6. fatal error C1083: 无法打开预编译头文件:“Debug\a.pch”:No such file or directory
  7. crc16的c语言函数 计算ccitt_C语言为何如此重要
  8. 16薪,六险一金,深尚科技招聘视觉/图像算法工程师 ,包含社招和校招
  9. c++语言socket udp聊天程序,使用C/C++实现Socket聊天程序
  10. mysql之调优概论 1
  11. Oracle DBHelper
  12. studio one 3 机架声道设置_Lenovo UC30 声卡驱动跳线VST机架跳线
  13. 电脑连上手机热点却不能上网
  14. Debezium报错处理系列十:Could not find existing binlog information while attempting schema only recovery sna
  15. 【转贴】百度贴吧成就一段姻缘!一句被五重密码保护的表白破译全记录
  16. c语言程序设计教程内容,(C语言程序设计教程.doc
  17. vue 重写element input限制字数
  18. Gradle sync failed: No variants found for ‘:app‘. Check build files to ensure at least one varian
  19. Python-打印乘法口诀表
  20. Microsoft Excel 教程:如何在 Excel 中使用 COUNTIF 函数?

热门文章

  1. excel批量导入代码
  2. 新手如何快速入门 深度学习
  3. 转载 双语:中国姓氏英文翻译对照大合集
  4. ALA创世发行!蝰蛇实验室开启全球数据战略布局
  5. linux的驱动模块,ubuntu linux 驱动模块的使用
  6. 数电模电(三) 时序电路触发器 基本RS触发器 同步RS触发器 主从RS触发器 JK触发器 主从D触发器
  7. 历届试题 对局匹配-动态规划
  8. 智能优化算法Matlab源码大礼包领取
  9. Jvav类型转换(doge)
  10. 谈谈新手如何学习PHP