当前位置:威尼斯 > 服务器 > 认为FC Fabric相比以太网具有很多优势,    I

认为FC Fabric相比以太网具有很多优势,    I

文章作者:服务器 上传时间:2019-09-29

[解读] Brocade(博科)为何认为FC是NVMe over Fabric中最好的Fabric?,brocadenvme

      Brocade最近发表了对NVMe over Fabric理解和观点,认为FC Fabric相比以太网具有很多优势,并且FC聚焦数据中心数据传输和交换,具有更好的网络安全性。文章把Brocade的主要观点做了解析(文章全是干货,建议阅读前记得多喝水,易于消化),大家可以关注本公众号,在菜单底部回复关键字“ Fcfabric ”获取Brocade相关全文技术资料。

      目前,基于SCSI的全闪存和混合阵列正成为数据中心的主流,但与此同时,一种为固态PCIe模块专门构建的非易失性存储器(NVMe)标准已经成为服务器连接Flash的一个新的高性能接口。NVMe通过低延迟和增强队列机制提供了更好的随机和连续性能,并增加了传统协议(如SAS)应用程序的并行性。

      为了支持数据中心的网络存储,通过NVMe over Fabric实现NVMe标准在PCIe总线上的扩展,以此来挑战SCSI在SAN中的统治地位。NVMe over Fabric支持把NVMe映射到多个Fabrics传输选项,主要包括FC、InfiniBand、RoCE v2和iWARP

      随着NVMe的发展和NVMe over Fabric技术商品化,在SAN市场,将NVMe定位为SCSI的替代方案,这也为Flash模块供应商打开一扇门来应对这个新的市场。自然地,存储市场的新来者试图吹捧他们的技术有优势,然而,新技术的缺点可能没有受到太多关注。通过作者的分析,希望大家能对NVMe和NVMe over Fabrics技术有个综合全面的认识。

1、FC不但可以作为NVMe的Fabrics且更有优势

      FC实际上是支持NVMe的一种fabrics选择。NVMe over fabric白皮书上概述了对NVMe支持的两种类型的fabrics,一个是RDMA和一个是使用FC。尽管一些竞争者会声称光纤通道不是合法的NVMe Fabric,但是NVM Express白皮书例证说明了这个问题。

      同样,白皮书明确列出了光纤通道作为一个NVMe over Fabrics选择,也描述了理想的Fabrics需要具备可靠的、以Credit为基础的流量控制和交付机制。然而,基于Credit的流程控制机制是FC、InfiniBand和PCIe传输原生能力。基于Credit流控制不是以太网/ IP网络的一部分,所以,相比iWARP或RoCE的以太网Fabrics,FC实际上是NVMe更好的Fabrics选择。

2、RDMA也不是NVMe Fabric的关键

      RDMA提倡者一般声称RDMA对设计好NVMe Fabric很重要。但在NVMe的白皮书中并没有把RDMA列为“理想”NVMe over Fabric的重要属性,也就是说RDMA除了只是一种实现NVMe Fabric的方法外,没有什么特别的。在博科看来,InfiniBand社区在RDMA有较大投入且与PCIe社区合作紧密,但是NVMe和NVMe over Fabric本身并不依赖于RDMA。

3、SCSI也不是唯一的FC Native协议

      RDMA倡导者通常将NVMe over以太网/IP和FC的延迟时间进行比较(这就像比较把IP和以太网比较一样),由于NVMe是上层协议,光纤通道是链路层协议。完整的比较应该是把NVMe over以太网和SCSI over FC进行比较,如果描述正确的话,这才是一个有效的比较。现在,作为光纤通道专家也意识到一个问题,由于FC上承载SCSI叫光纤通道协议(FCP),所以不止一个新手错误地认为所有的FC通信都必须是FCP。但事实上FCP与FC不一样,FCP仅仅是一种FC-4(上层)协议,类似于FICON(大型机存储协议),可以通过FC传输。

      常常产生的一个误解是NVMe首先被翻译成底层SCSI(FCP)之后才运行在FC上。这种误解很有可能是由同样的白皮书引起的,它告诉我们理想的NVMe传输应该允许客户端“直接发送和接收本地NVMe命令,无需使用诸SCSI如此类的转换层”。这句话本身这是有道理的,因为NVMe是延迟优化的,而转换层却会引入延迟。

      实际上FC本身就可以运输NVMe,无需翻译和转化。NVMe over FC定义了一个新的上层FC-NVMe流量类型,它识别了特定于NVMe的帧。

      FC-NVMe标准组织认为在FC上同时支持NVMe和SCSI会具有更大价值。FC-NVMe标准规定了NVMe over FC使用与FCP相同IO框架类型。FC作为多协议结构的长期使用和应用表明FC SAN同时支持SCSI和NVMe是非常可靠的。

 

4、如何看待SCSI到NVMe转换层对NVMe产生的影响?

      NVMe fabric聚焦于最低延迟,NVMe over fabric的白皮书说明传输的一个理想方式是不需要翻译层,如果存在SCSI到NVMe转换就是次优的传输方式。在编写应用程序时,如果能直接使用NVMe,不但有效避免翻译步骤,还将避免了每IO引入的时钟周期。FC不需要转换翻译且支持Native NVMe。

      与此同时,NVMe社区也意识到SCSI应用程序部署时,上层应用程序适配、兼容和SCSI到NVMe转换层的重要性。许多NVMe的潜在用户无法重新设计他们运行的应用程序,但希望能选择搬到NVMe基础设施之上,不依赖于它们的应用程序供应商重新设计。从这个角度来看,有一个转化翻译层作为一种选择对NVMe的采用和普及实际上是有益的。

      值得庆幸的是,目前业界主流的HBA厂商都提供了从SCSI到 NVMe转换翻译的驱动程序,同时也提供Native NVMe能力支持原生支持NVMe over Fabric应用程序。

5、FC能否实现零拷贝(Zero Copy)功能?

      IP堆栈当时被开发时,主要设计用于处理许多上层协议和许多层2网络,从令牌环到电话线,清晰的网络层划分对于互操作性有很好的意义,为了达到这个目的最好的选择是使用中间缓冲,使缓冲区复制公共数据。

      在20世纪80年代早期,提供单副本复制(Single-Copy)也算是一个好的网络协议栈,网络接口卡(NIC)接收帧后,通过DMA技术将它们写到与网络堆栈相关联的DRAM缓冲区中,然后堆栈会决定哪个应用应该接受、继续处理帧数据,并把数据复制到应用对应的DRAM缓存区中。

      在20世纪80年代中期,随着FC的生产,一切发生了变化。FC主要特点就是速度,所以为了达到优化的目前,FC允许芯片技术更复杂,FC/SCSI堆栈的层数更少,也放开了IP堆栈所面临的向后兼容性的限制。因此,FC实现一个适配器、驱动模型的堆栈架构,从而消除单一副本(Single-Copy)。

      事实也确实如此,当应用程序请求存储IO时,应用程序以“逻辑地址范围”的形式指定一个缓冲区地址,然后将其转换为DMA的物理地址范围实现DMA传输。有时,一个逻辑范围将映射到多个物理块,因此HBA采用Scatter-Gather List (SGL)完成数据传输和保存。FC通过提供零拷贝(Zero-Copy)技术,支持DMA数据传输。RDMA通过从本地服务器传递Scatter-Gather List到远程服务器有效地将本地内存与远程服务器共享,使远程服务器可以直接读取或写入本地服务器的内存。

 

6、IP上的零拷贝(Zero-Copy)也不需要RDMA

      由于RDMA越来越流行,因此在2007年将其扩展了到Internet Wide Area网络,从而形成RDMA协议(iWARP)标准。iWARP是建立在TCP之上的,传输协议使用确认和重传机制。TCP还采用一个“窗口”算法以避免传输超过了发送方和接收方之间的网络容量。

      在Internet Engineering Task Force (IETF) Requests For Comment (RFCs 5040–5044)中,前一个RFC 5040中描述了RDMA如何使用Direct Data Placement (DDP)协议来实现FC和InfiniBand的零拷贝(Zero-Copy)效率,后一个RFC 5044标记了TCP中PDU对齐规范,有效地禁用了TCP 的“合并”行为,使得NIC更容易地处理接收的数据,提供DDP的硬件支持。

      前面提到的RFCs为零拷贝(Zero-Copy)效率提供了基础,但是传统的NICs没有TCP处理功能。软件实现虽然提供了互操作性,但无法满足RDMA性能要求。为此,新的称为TCP Offload Engines (TOEs)的NICs卡就产生了,然而早期的TOEs都不适合iWARP,只有基于硬件实现DDP能力的RDMA使能TOEs才能提供类似FC一样的零拷贝(Zero-Copy)效果。

 

      2009年前后,随着当时InfiniBand市场的低迷,NVMe获得了越来越多的关注,IETF的Transparent Interconnection of Lots of Links (TRILL) 和IEEE的 Data Center Bridging (DCB)获得发展动力并以太网成为无损的Fabric。其中TRILL是指除IEEE的生成树协议支持以外的任何以太网拓扑结构;DCB采用基于优先级的流量控制、增强的传输选择和数据中心桥接交换技术。

      InfiniBand行业协会(IBTA)看到了一个机会,在新的技术领域利用其在RDMA方面的专业知识,因此,他们开发了RDMA over Converged Ethernet (RoCE)规范(Converged Ethernet就是早期的DCB)。就像iWARP需要专门的TOEs来实现零拷贝(Zero-Copy)效率一样,RoCE依赖于RDMA-enabled NICs (RNICs)实现这一能力。IBTA认为RoCE的性能比iWARP更高,并指出了TCP (iWARP)不是低延迟通信的理想协议。

      因为以太网不提供类似TCP的可靠传输能力,RoCE标准是在更高层的协议堆栈中实现可靠性功能。在RoCE发布的时候,对IPv4地址有相关约束,对TRILL的2层以太网网络扩展能力也有很高要求。IBTA显然认为RoCE应该拥有交付大规模高性能RDMA所需的一切能力。

7、“可路由”的RoCE v2才是更好的RoCE

      Hyper-Scale和软件定义的网络推崇者促使IBTA创建RoCE v2(有时会被称为“可路由的RoCE”),意在取代RoCE。不同于基于TCP的iWARP, RoCE v2运行在UDP之上没有缓慢启动的节流行为。当然,采用UDP意味着RoCEv2帧不兼容RoCEv1帧(尽管支持RoCEv2的RDMA-enable的NICs通常可以配置为使用RoCE v1格式)。因为基于UDP的 RoCEv2缺乏类似TCP的显式拥塞通知能力,所以IBTA指出通过支持IETF的ECN实现在UDP之上传输层的流控制。

      鉴于原文内容太多且作者英文也不好,所以解读到此为止,如果觉得上面内容没过瘾,请获取Brocade发布的全文资料。实际上,SSD和闪存发展的趋势就是结合NVMe实现更好的传输效率和性能,通过NVMe over Fabric实现更好的扩展性。关于SSD、闪存技术产品现状NVMe趋势详细分析,请通过原文链接获取电子书材料。

>>>相关阅读

  • 32Gb光纤技术将延续SAN存储网络之争

  • 50TB SSD商用预示EB级闪存系统指日可待

  • 如何成为全栈式软件架构师

温馨提示:
请搜索“ICT_Architect”或“扫一扫”下面二维码关注公众号,获取更多精彩内容。

听说点赞和分享的朋友都已走上人生巅峰

RoCE - RDMA over Converged Ethernet

    以太网在全球互联的广域网中毫无异议的老大,但在高带宽、低延时的专有网络领域却明显混不开。伴随网络融合概念兴起,IETF发布了DCB标准,RDMA/Infiniband依赖的无损链路得以解决,以太网可以在专有网络领域内也占有一席之地了,所以RoCE – RDMA Over Converged Ethernet就顺势而生。到目前为止,经过版本的升级演进,10Gb及以上的新型NIC和switch基本都集成了RoCE支持。   

RoCE v1

    IBTA在2010年4月发布了RoCE,这份标准是作为Infiniband Architecture Specification的附加件发布的,所以也称为IBoE(InfiniBand over Ethernet)。这时的RoCE标准是在以太链路层之上用IB网络层代替了TCP/IP网络层,所以不支持IP路由功能。RoCE V1协议在以太层的typeID是0x8915。
    在RoCE中,infiniband的链路层协议头被去掉,用来表示地址的从GUID被转换成以太网的MAC。Infiniband依赖于无损的物理传输,RoCE也同样依赖于无损的以太传输,这一要求会给以太网的部署带来了成本和管理上的开销。以太网的无损传输必须依靠L2的QoS支持,比如PFC,接收端在buffer池超过阈值时会向发送方发出pause帧,发送方MAC层在收到pause帧后,自动降低发送速率。这一要求,意味着整个传输环节上的所有节点包括end、switch、router,都必须全部支持L2 QoS,否则链路上的PFC就不能在两端发挥有效作用。

 图片 1

RoCE v2

    为了加强RoCE网络的扩展性,在2014年IBTA提出了RoCE V2,支持以太IP路由功能。

图片 2

图片 3

    RoCE v1(Layer 2)运作在Ehternet Link Layer(Layer 2)所以Ethertype 0x8915,所以正常的Frame大小为1500 bytes,而Jumbo Frame则是9000 bytes。

    RoCE v2(Layer 3)运作在UDP/IPv4或UDP/IPv6之上(Layer 3),采用UDP Port 4791进行传输。因为 RoCE v2的封包是座落在 Layer 3之上可进行路由,所以有时又会称为「Routable RoCE」或简称「RRoCE」。

服务器的共享存储访问已经成为存储网络的最基本需求。随着计算的进阶和来自基础设施投资期望的升高,对于多系统持续访问数据的性能要求不断增加。

softRoCE

    不同于RoCE,softRoCE适用于任何以太环境,无需依赖NIC、switch、L2QoS等支持。

    softRoCE的目标是在所有支持以太网的设备上都可以部署RDMA传输,其实现可分成两部分,对上通过librxe与RDMA stack(libibverbs)耦合,对下通过rxe.ko与linux stack layer3耦合,用户通过某个eth NIC的UDP隧道为虚拟的RDMA设备传输RoCE数据。

图片 4

    图 softRoCE通信      

    在性能敏感的虚拟化场景,VM环境需要直接访问底层硬件。借助于softRoCE,底层的网卡硬件也不需要暴露在VM环境就可以使用挂载的虚拟RoCE设备。

    通过在节点上安装softRoCE,它就可以与支持RoCE的节点或者是同样安装有softRoCE的节点建立RDMA传输。尽管在传统以太上,one-copy甚至zero-copy的方案已经出现多个,但个人认为softRoCE的 最大意义是使得不具备RDMA NIC的数据中心用最小的成本构建起高效的RDMA网络,所以softRoCE作为RoCE方案的重要补充,已经逐渐成为RDMA生态(IBTA)下一步开发的标准构件。

存储网络和性能的技术进步已经满足这种需求。下一个跨越式的功能就是RDMA over Fabrics。RDMA指的是远程直接内存访问,Fabric指的是存储网络。

iWRAP

    iWRAP - Internet Wide Area RDMA Protocol,或者叫RDMA over TCP,IETF在2007年发布(RFC5040和RFC5041)。业界有两家厂商各自在主推iWRAP和RoCE,Chelsio主推iWRAP,而Mellanox则在融合网络主推RoCE,两家都有关于RoCE vs iWRAP的对比白皮书,针锋相对,好精彩。

    iWRAP的RDMA报文是封装在TCP传输层之上。利用TCP协议,它不必在依赖底层的L2Qos就可以实现无损传输,天生就支持路由组网。而RoCE直到最近的V2版本才支持路由。Chelsio的白皮书成文较早,其对RoCE的主要攻击点是不支持路由功能,在现在这一论据已经失去意义了。                                                                                                         
    RoCE与iWRAP的性能对比测试,参见http://www.mellanox.com/page/performance_ethernet,性能优势明显。iWRAP的无损传输还是像传统以太一样依赖TCP传输层,这简化了L2的设计要求,但是也导致了带宽利用率和时延的恶化。
  
**
    总之:尽管RoCE对链路层和物理层存在特殊依赖,但是在部署新型的数据中心时,对于较新型switch、NIC、SOC基本上都会集成网络融合DCB和RDMA支持。所以在新建Data Center、SAN时,性能最优的RoCE是最佳选择。而在旧DC、SAN扩容或者成本敏感型的优化时,仅需要RNIC的iWRAP或者完全不依赖任何硬件的softRoCE更加适合。**

RDMA over Fabrics能够增加访问共享数据的性能并利用固态内存技术。RDMA over Fabrics是对当前共享存储架构的一种逻辑进化,并继续走在加速业务的进程上,增加对应用、服务器和存储的投资回报。

DMA over Fabrics使用一种协议将数据从一个内存地址空间通过接口发送至另一个。RDMA是一种零复制的传输,数据的发送和接收(从一个存储系统到应用内存空间)是没有像其他位置转移的协议栈的开销的。

RDMA支持更小开销、更快响应时间、更低延迟的的数据传输。NVMe是一种可用作RDMA over Fabrics的协议。这种协议可作为通信的语言,与物理接口独立。通信的两端——服务器和存储——必须有一样的传输语言。

固态技术——包括闪存——可作为内存段访问。NVMe提供这种访问。当SCSI还在使用的时候,为了访问基于内存的存储,必须经过翻译,这带来了更多的延迟。NVMe支持并行对话,使物理接口更加有效。

网络接口也存在竞争。第六代高性能光纤通道存储网络(32Gb/s)能够支持RDMA接口的HBA。这些6代交换机和适配器与当前的传输环境都是向后兼容的。

其他的RDMA over Fabrics的选项还包括 RoCE (RDMA over Converged Ethernet), iWARP (Internet Wide Area RDMA Protocol),无线宽带以及PCIe。RoCE是一种接近FCoE的概念。iWARP使用TCP或SCTP作为传输协议。无线宽带是一种基于RDMA,在高性能计算和内部系统通信中使用的协议。PCIe是一种有限距离接口。

每一种方法都有自己的选项,并有一系列厂商推进。

新技术总是会引发兴趣并成为新的讨论和调查选题。然而,对于技术价值的最终定论在其有效部署之前还不能评说。颠覆式的变化很可能会延迟并阻碍部署,尽管其具有潜在价值。而能够无缝的引进当前的运营并与之兼容的技术将会更快的投入使用。为了理解RDMA over Fabrics的价值以及如何去应用这项新技术,最重要的是了解其如何能够引进运营环境中。

RDMA一个很有用的特征是其使用内存访问共享存储,将存储网络作为一种内存扩展的能力,这对于不适合内部处理器内存访问的数据库而言尤其有益。与通过协议栈交付IO到存储设备相比,它能够提供更高的性能。

图片 5

应用的速率将由需求的急迫程度、部署的风险系数以及转型的经济合理性决定。IT架构师应该研究将RDMA over Fabrics作为其存储策略的一部分。

【编辑推荐】

本文由威尼斯发布于服务器,转载请注明出处:认为FC Fabric相比以太网具有很多优势,    I

关键词: