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 ...
随机推荐
- WPF实现WORD 2013墨迹批注功能
1 前言 WORD 2013可以使用墨迹在文档上面标注,本文讲述通过WPF第三方控件实现类似主要功能如下: 名称 描述 墨迹标注 不论是否触摸屏环境下可以开始墨迹功能,并实现鼠标/触摸在文档任意位置绘 ...
- 微信小程序授权流程(图)
看图: 1. 前端H5调用JSSKD的方法 wx.login(), 2. 微信返回 临时登录凭证code 给前端H5 3. 将此Code给到开发者服务器 4. 服务器混同小程序的AppId 和 Ap ...
- (转)zabbix3.4使用percona-monitoring-plugins监控mysql
原文:https://blog.csdn.net/yanggd1987/article/details/79656771 简介 之前主要使用nagios监控mysql,本文主要介绍使用percona- ...
- webpack原理探究 && 打包优化
在做vue项目和react项目时,都用到了webpack.webpack帮助我们很好地提高了工作效率,但是一直以来没有对其原理进行探究,略有遗憾. 因为使用一个工具,能够深入了解其原理才能更好地使用. ...
- 12.Proxy
1.概述 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程. Proxy 可以理解成,在目标对象之前架 ...
- C#(winform)为button添加背景图片,并去掉各种边框
1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = "" ;来设置图片 而不应该使用 Button.Image = "" ...
- centos7中安装mongodb3.6
centos7中安装mongodb3.6 首先更新系统 yum -y update 1.安装Mongodb 编辑Mongodb安装源 vim /etc/yum.repos.d/mongodb-org- ...
- Wahrscheinlichkeitstheorie und mathematische Statistik
Übliches Wort 正态分布:Die Normalverteilung 条件概率:Die Bedingte Wahrscheinlichkeit 排列:Die Permutation 组合:D ...
- 把AspDotNetCoreMvc程序运行在Docker上-part2:修改容器以及发布镜像
在上一个part<把AspDotNetCoreMvc程序运行在Docker上-part1>,已经将成功将aspdotnetcore程序运行在两个不同的容器中,目前两个容器的内容完全相同,只 ...
- Spring mvc解析
方案时间 ,写代码时间 ,解决技术难点时间 , 自测时间,解决bug时间 , 联调时间 ,数据库优化,代码走查1个接口:2个小时 把那个字段再复原回来,不然兼容性不强还有一个刷数据的接口 public ...