RoCE、softRoCE与iWRAP
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就不能在两端发挥有效作用。
RoCE v2

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数据。
图 softRoCE通信
在性能敏感的虚拟化场景,VM环境需要直接访问底层硬件。借助于softRoCE,底层的网卡硬件也不需要暴露在VM环境就可以使用挂载的虚拟RoCE设备。
通过在节点上安装softRoCE,它就可以与支持RoCE的节点或者是同样安装有softRoCE的节点建立RDMA传输。尽管在传统以太上,one-copy甚至zero-copy的方案已经出现多个,但个人认为softRoCE的 最大意义是使得不具备RDMA NIC的数据中心用最小的成本构建起高效的RDMA网络,所以softRoCE作为RoCE方案的重要补充,已经逐渐成为RDMA生态(IBTA)下一步开发的标准构件。
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更加适合。
RoCE、softRoCE与iWRAP的更多相关文章
- rdma centos 7.3安装
rdma centos 7.3安装 corasql0人评论7680人阅读2017-05-28 16:29:40 1.安装依赖包 yum install epel-release -y yum ...
- 基于SoftRoCE 了解RDMA
RDMA是基于IB技术的内存直接传送,无需内核参与,硬件网卡搞定.IB需要HPC领域的专用硬件,ROCE则是RDMA协议在普通以太网卡的实现,RoCEv1是在MAC上的二层封装,局域网内可以,要通过路 ...
- DPDK(mtcp)vs RDMA/ROCE
0. 缠论: http://52investing.com/ 1. 简书.DPDK: http://www.jianshu.com/p/dcb6ccc83ea52. mTCP 和 DPDK 构造百万千 ...
- 两种以太网 RDMA 协议: iWARP 和 RoCE
本文是讲演 How Ethernet RDMA Protocols iWARP and RoCE Support NVMe over Fabrics[1]的摘要. 如果 NVMe 存储系统与主机是分离 ...
- Linux Soft-RoCE implementation (zz)
Linux Soft-RoCE implementation 首页分类标签留言关于订阅2017-11-08 | 分类 Network | 标签 RDMA RoCE Linux-RDMA 内核在4 ...
- RoCE vs iWARP
两种以太网 RDMA 协议: iWARP 和 RoCE 转载 2017年03月08日 16:10:09 1510 http://weibo.com/p/1001603936363903889917?m ...
- mellanox RDMA RoCE
一:首先根据系统发行版本下载对应的驱动,下载地址如下: http://www.mellanox.com/page/products_dyn?product_family=26&mtag=lin ...
- [转帖]InfiniBand, RDMA, iWARP, RoCE , CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念
InfiniBand, RDMA, iWARP, RoCE , CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念 2017-12-15 15:37:00 jhzh951753 ...
- [转帖]两种以太网 RDMA 协议: iWARP 和 RoCE
两种以太网 RDMA 协议: iWARP 和 RoCE https://weibo.com/p/1001603936363903889917?mod=zwenzhang 写的挺好的呢. 本文是讲演 H ...
随机推荐
- Q138 复制带随机指针的链表
给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点. 要求返回这个链表的深拷贝. 示例: 输入: {"$id":"1",& ...
- Flask 数据库迁移
在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库.最直接的方式就是删除旧表,但这样会丢失数据. 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中. ...
- 何为Web App,何为Hybird App
这些概念听起来很火,当下也很流行,真正理解起来却并非易事.如果让我来全面的解释Web App和Hybird App,我觉得还有些困难. 这篇文章只是我深入了解移动领域开发过程中的不断整理和总结,其中涉 ...
- 如何对react进行性能优化
React本身就非常关注性能,其提供的虚拟DOM搭配上DIff算法,实现对DOM操作最小粒度的改变也是非常高效的,然而其组件的渲染机制,也决定了在对组件更新时还可以进行更细致的优化. react组件 ...
- 17.Generator函数的异步应用
异步编程对 JavaScript 语言太重要.Javascript 语言的执行环境是“单线程”的,如果没有异步编程,根本没法用,非卡死不可. 1.传统方法 ES6 诞生以前,异步编程的方法,大概有下面 ...
- 大数据搭建各个子项目时配置文件技巧(适合CentOS和Ubuntu系统)(博主推荐)
不多说,直接上干货! 很多同行,也许都知道,对于我们大数据搭建而言,目前主流,分为Apache 和 Cloudera 和 Ambari. 后两者我不多说,是公司必备和大多数高校科研环境所必须的! 分别 ...
- Types的Type访问模式
在Types类中定义的访问都类如下: 1.MapVisitor类 2.SimpleVisitor 3.UnaryVisitor 4.TypeRelation
- SOAP1.1 and SOAP1.2
在用cxf 做webservice客户端的时候碰到的: javax.xml.ws.soap.SOAPFaultException: A SOAP 1.2 message is not valid wh ...
- 控件--spinner(列表选项框)
1. 关键点 1). Spinner的菜单显示方式 它有两种显示形式,一种是下拉菜单,一种是弹出框,菜单显示形式是spinnerMode属性决定的: android:spinnerMode=" ...
- var、let、const的区别,以及作用范围。
在es5中一般经常使用的变量有两个级别,一个是用var声明的全局级别的变量,另外一个是函数级别是用var生命在函数内的.本文中将详细讲解我对es6中的const和let的区别. let的使用以及作用范 ...