作        者:  @NGDCN

原文链接:光纤通道网络FC vs 以太网光纤通道FCoE - NGDCN

版        权: 本文由 @NGDCN 于2022-11-11原创发布在 NGDCN,未经许可,禁止转载。

FC/光纤通道网络

FC,Fiber Channel,是一套完整的协议栈,有着自己的物理层规范FC-0和FC-1。向上的FC-2P负责帧封装,并通过Buffer-to-Buffer Credit这种可靠传输机制来实现链路层面上的无丢包,功能上类似于TCP滑动窗口。存储节点通过HBA网卡支持FC,其中的FC端口被称为VN_port,每个VN_port都有一个24位的FC-3层地址FCID。FC中不需要进行链路层寻址,通信节点将以FCID作为源/目的地址,FC Switch间交互FSPF(Fibre Channel Shortest Path First,光纤通道最短路径优先)形成转发表,根据目的FCID进行寻址,所以说FC Switch在本质上是一台路由设备。FC-2M夹在FC-2P和FC-3两层之间,负责多个FCID地址的复用。

每个FC结点都有64位的WWN(Wold Wide Name),结点上的每个端口都有64位的WWPN(World Wide Port Name),对FC网络中的元素进行全球唯一的标识,相当于以太网中的MAC地址,只不过FC Switch并不用它来进行寻址。FC结点使用周知的FCID地址FFFFFE向Login Sever发送 FLOGI(Fabric Login,交换网登录)消息以自动获取FCID,这一过程类似于IP中的DHCP。FC获得FCID后要向地址为FFFFFC的Name Server发送PLOGI(Port Login,端口登录)消息,Name Server记录下WWN/WWPN和FCID的映射关系后回复确认消息。此时通信还不能直接开始,类似于TCP握手,源FC还需要通过PLOGI消息与对端进行FC-4层的协商,协商过后应用层才能开始进行通信。FC中也有类似于IP中DNS的名字解析机制,结点/端口命名可以使用基于字符串的Symbolic Port Name,Name Server中会记录Symbolic Port Name与FCID的映射关系,其他端口可以向Name Server查询已登录的端口信息。上述交互过程如下图所示。

可见,FC的通信过程与IP还是有着很多类似的机制的,最主要的区别是FC只使用FCID进行寻址,结点/端口标识WWN/WWPN并不出现在通信的数据帧中,这里的原因也很简单——64位的WWN/WWPN太长了,会影响FC的转发效率。

FCoE/以太网光纤通道

数据中心服务器既要通过LAN网络提供IP业务的服务,又要通过SAN网络实现存储设备的访问。传统的网络架构中,服务器分别安装独立的以太网卡和FC网卡,以太网卡通过以太网交换机接入IP网络,FC网卡通过FC交换机接入存储网络。由于分别搭建两个网络,使用两套接入网卡,以及相应的线缆,设备投资及维护管理成本非常高。

这里,FC报文通过承载SCSI协议实现存储流量的转发及控制, FC报文中包含源FCID、目的FCID字段, FC交换机负责分配该地址(类似DHCP)并根据此字段进行路由转发(类似以太的源IP、目的IP字段及三层转发)。而FCoE技术的目标是整合以太网和FC存储网络,减少数据中心的网卡,交换设备以及线缆的使用数量,降低成本。

图:FCoE实现I/O整合示意图

FCoE,Fibre Channel over Ethernet的缩写。FCoE是一个由思科公司开发的技术,采用增强型以太网作为物理网络传输架构,能够提供标准的光纤通道有效内容载荷。简单来讲,FCoE是将FC报文封装为以太格式进行传输和处理的方法, 达到FC网络和以太网络融合的目的。以太网光纤通道 (FCoE) 将光纤通道存储数据压缩到以太网 LAN,消除了数据中心中单独存储网络的管理和成本负担。

FC组网需要服务器和存储上有HBA网卡(该网卡实现FC协议栈), 交换机上有FC端口;

FCoE组网需要服务器和存储上有CNA网卡(该网卡有两个协议栈,分别是以太和FC), 交换机上有支持FCoE功能的以太端口。

将FC整合到以太网中,做法是使用Ethernet的帧头去代替FC-2,保留上层的FC-3和FC-4,FCoE

数据封装如下所示。这里提一句,FCoE将服务器的FC结点称为ENode,FCoE交换机称为FCF。

FCF发送报文时,封装报文源MAC地址为本交换机FCF MAC,目的MAC地址为ENode FPMA地址或对端FCF MAC;ENode发送报文时,封装报文源MAC地址为自己的FPMA地址,目的MAC地址为对端FCF MAC。Priority为FCoE报文优先级,默认为3,可配置。VLAN ID标识当前承载FCoE流量的VLAN

FCoE网络中,服务器通过一块CNA网卡同时支撑IP和FC-3两套协议,相当于HBA和Ethernet NIC的合体。FCoE的以太网类型是0x8906,其外层MAC地址的写法比较讲究,后续通过具体的通信流程进行介绍。

外层的VLAN对于FCoE来说同样非常关键,其原因主要有二:

◼ 首先,FCoE流量必须在无损无丢包的以太网链路上进行传输,这完全依赖于PFC和ETS机制,而这两种机制都需要根据VLAN标签来对流量进行分类,因此FCoE流量必须承载在特定的VLAN中;

◼ 其次,FCF要实现存储网络内部的虚拟化,需要使用不同的VLAN来承载不同VSAN(Virtual Storage Area Network)的流量。那么外层以太网封装时具体该使用哪个VLAN呢?这就要看FCoE的控制平面了。

FCoE使用FIP(FCoE Initialization Protocol)作为控制平面协议,其以太网类型为0x8914。FIP主要负责以下三个工作:

◼ VLAN发现。FIP在Native VLAN中通过VLAN发现报文与邻居协商后续FIP信令和FCoE流量所使用的VLAN,其缺省值为1002。

◼ FCF发现。FCF在所有FCoE VLAN内定期组播发现通告报文,使得当前VLAN内的所有的ENode发现自己。

◼ FLOGI/PLOGI。与FC中相应过程一样,FCF作为Login Server为ENode分配FCID,同时作为Name Server记录ENode的登录信息。

经过上述三个阶段后,FCoE网络的初始化工作就完成了,FCoE流量得以无损地在以太网中传输。下面来看一个多跳FCoE网络中典型的报文转发流程。

支持FC和FCoE协议的交换机,称为FCF(FCoE Forwarder,FCoE交换机)。

由于FCF本质上是一台路由设备,因此FCoE报文经过FCF转发时FCID不变,而外层的MAC地址会逐跳地改写。我们知道IP和MAC是通过ARP协议联系在一起的,那么FCID和MAC该如何映射呢?FCoE为ENode规定了如下的映射方法:使用FC-MAP填充MAC地址的高24位,低24位填充为FCID,得到FPMA作为自己的以太网地址,而弃用CAN网卡出厂时的MAC地址。其中FC-MAP为FIP的FCF发现阶段中,FCF告诉ENode的信息,每个VSAN内部的ENode都使用相同的FC-MAP,不同的VSAN使用不同的FC-MAP。而对于FCF来说,不进行这种转换,直接使用本机MAC地址FCF-MAC进行外层以太网封装。同一个VSAN内的报文都在同一个VLAN内传输,FCF进行per VLAN的MAC地址学习,保证了VSAN间的隔离,不同VLAN的优先级不同,通过PFC和ETS进行差异化的传输控制。

使用 FCoE 后的好处

1、 每个服务器只需要一个专用适配器(网卡),一套布线(以太网)系统(以前需要多个网卡,多套布线(以太网和光纤)系统);

2、 机房不再要支持更多设备:空间、耗电、制冷,更加节能绿色

3、 只有一套网络,统一管理维护简单(原来是多套网络无法统一管理,不同的维护人员维护困难)

4、 部署/配置/管理/运维简单 .

FCoE的局限性

虽然FCoE能够提供高速光纤通道流量和统一的I/O架构,但FCoE的采用比预计的要缓慢。

FCoE确实可以通过调整现有的FC系统降低成本,但它也具有FC的局限性:需使用专门的设备和技术,管理起来更加复杂。FCoE不使用IP报文头,从而减少了协议处理开销,但协议分析结果却表明,启用巨帧时,FCoE和iSCSI之间效率是非常接近的。其在部署上还要求对数据中心桥接(Data Center Bridging,简称DCB)以太网进行改进。

业界分析,技术仍不成熟、厂商特性或功能的不一致导致互操作性问题、标准仍不明确、8Gb和16Gb光纤通道与千兆以太网和万兆以太网相比,已不再具备明显的性能优势、成本优势仅在特定环境通过减少重复建设体现出来等原因,导致FCoE的采用没有实现当初的预期。

参考资料

1、服务器和存储如何互联 iSCSI和FCoE - 知乎

2、新三网融合——计算存储与网络 | SDNLAB | 专注网络创新技术

3、FCoE的基本原理和优势 - KingsLanding - 博客园

4、FCoE与FC有的区别- 华为
5、FCoE技术白皮书-新华三集团-H3C

光纤通道网络FC vs 以太网光纤通道FCoE相关推荐

  1. 光纤通道光模块与以太网光模块区别

    光纤通道光模块是光纤通道基础架构中不可缺少的组件之一,而以太网光模块加以太网交换机则是以太网络中的常见配置组合.这两种光模块的区别是什么呢?本文将对这两种模块的定义与区别进行解读,希望给有困惑的读者带 ...

  2. TCP/IP网络协议栈:以太网数据包结构、802.3、MTU

    <TCP/IP网络协议栈:以太网数据包结构.802.3> <TCP/IP网络协议栈:ARP协议详解> <TCP / IP攻击:ARP缓存中毒的基本原理.TCP序列号预测和 ...

  3. 电脑网络里面的以太网不见了,开启后立即自动关闭,如何解决?

    电脑网络里面的以太网不见了,开启后立即自动关闭,如何解决? 第一步 第二步 第三步 自己电脑以太网突然消失了,开启后立即自动关闭.亲测有效的一个方法! 第一步 打开设备管理器,点击网络适配器,然后点击 ...

  4. win10将WLAN网络共享给以太网

    win10将WLAN网络共享给以太网 说明:同时有A.B两台电脑,A电脑通过无线网卡连接wifi,将网络共享给A电脑的以太网口,B电脑有线网卡连接A电脑的以太网口实现上网功能. 实现方法 1.1 点击 ...

  5. win10有线网不识别网络中心没有以太网

    win10 插入有线不识别 ,网络中心没有以太网,找了很久. 今天找了俩小时才找到一个有效的方法,感谢原博主.连接如下: https://blog.csdn.net/weixin_40197494/a ...

  6. Win10的WLAN网络共享给以太网(Ubuntu)

    Win10的WLAN网络共享给以太网(Ubuntu) 实验室有一台比较老的机子,没有无线网卡,而且正好最长的一根网线水晶头坏掉了,装上Ubuntu上发现上不了网,正好看到旁边的笔记本(装的Win10) ...

  7. 以太网未识别的网络win10_工业以太网典型应用、常见故障、冗余网络技术及实例...

    来源:菲尼克斯电气 写在前面 网络一直是数字化绕不开的话题,说到工业网络,大家肯定会想到工业以太网,现场总线和工业无线等,前面我们也介绍了很多相关的知识(见文末)~ 为了让大家有系统性的思维,我们先从 ...

  8. 网络基础知识——以太网

    1. 以太网 历史: 以太网最早由Xerox(施乐)公司创建. 1980年,DEC.Intel和Xerox联合开发成为一个标准(以太Ⅱ). 类型: 标准以太网:10Mbit/s 快速以太网:100Mb ...

  9. 实用知识点梳理:网络传输介质、以太网、VLAN、HDLC、奈奎斯特定理与香农定理

    网络传输介质 以双绞线为传输介质的是:10BASE-T 和100BASE-T: 以同轴电缆为传输介质的是:10BASE5粗缆和10BASE2细缆. 以太网 以太网采用带冲突检测的载波帧听多路访问(CS ...

  10. Linux C高级编程——网络编程之以太网(2)

    Linux网络编程--以太网 宗旨:技术的学习是有限的,分享的精神是无限的. 1.以太网帧格式 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的.用ifconf ...

最新文章

  1. 2021 年音视频技术与发展
  2. GitHub日收12000星,微软新命令行工具引爆程序员圈!
  3. 贝叶斯网络之父:当前的机器学习其实处于因果关系之梯的最低层级
  4. php 未定义偏移,未定义的偏移PHP错误,尝试从文件读取
  5. HDU 1695 BZOJ 2301 莫比乌斯反演
  6. Linux的前世今生
  7. 镜像镜像–使用反射在运行时查看JVM内部
  8. 安卓开发面试题及答案,一次哔哩哔哩面试经历,年薪50W
  9. 工作117:eachat图
  10. 前端学习(2470):echart复习电商管理通过erchart基本使用
  11. 秋叶一键重装系统连接服务器失败,如何解决远程桌面无法连接
  12. Java :内部类基础详解
  13. Android学习笔记05---项目的目录结构与安装及启动过程分析
  14. 机器学习入门——线性回归详细分析
  15. reflection java_Java Reflection (JAVA反射)
  16. python初学小结三:文件、集合、函数、变量等
  17. 软件项目管理测试文档,软件项目管理具体方法体系示例
  18. 万用表怎么测量电池容量_万用表怎么测量12v电瓶(用万用表测电瓶电量怎么测?)...
  19. Vue Markdown编辑器
  20. 如何查看网卡的驱动和驱动mod的详细信息

热门文章

  1. 微信小程序JSON数据提取问题
  2. SCU 4487 king's trouble I
  3. 臻游网络手游[乱弹西游]4月中旬开启首测
  4. 《Java SE编程365例》003: 我的电子书城
  5. 【打卡算法】 26、删除有序数组中的重复项 算法解析
  6. 机器学习基本概念简介上
  7. miui9如何不自动杀进程,小米9怎么关闭自动更新 具体操作方法解析
  8. Python统计字符串中的中英文字符、数字空格,特殊字符 , 空格的个数
  9. 人脸识别中的活体检测
  10. 我为什么放弃百词斩?