RDMA实现方案

概述

RDMA技术最早在IB(Infiniband )网络上实现,技术相对先进,但是部署成本高昂,且业内只有Mellanox和 Intel 供应商提供全套的网络技术解决方案,搭载的上层应用局限在HPC(高性能计算)领域。

后来,业界厂商为了降低成本把RDMA技术移植到传统以太网上,从而有力地推动了RDMA 技术普及。在传统以太网上,根据协议栈兼容性的差异,具体分为iWARP和RoCE两种技术,而RoCE又包括 RoCEv1 和 RoCEv2 两个版本,具体每种RDMA的实现技术的协议栈结构如图1所示。

图1:
在这里插入图片描述

InfiniBand

作为最早实现RDMA的网络技术,IB(InfiniBand)网络凭借着从硬件到软件的全栈全场景的技术集成,可以天然支持RDMA技术,不过因为要用到专业的硬件设备(IB网络主流设备如图2所示。)所以在部署时需要承担比较高的成本。IB网络架构具体如图3所示,核心组件如下:

1.Host Channel Adapters (HCA):IB连接的设备终结点,提供传输功能和Verb接口(Verbs这个词不好直译,大致可以理解为访问RDMA硬件的“一组标准动作”。 每一个Verb可以理解为一个具体的Function。);

2.Target Channel Adapters (TCA):HCA的子集,基本上用于存储平面数据交互;

3.Switches:在相同的子网中转发IB报文;

4.Routers/Gateway:在不同的子网中转发IB报文;

5.Subnet Manager:网络管理器,全局调度和统筹管理,负责前期数据路径规划以及流表下发。

图2:
在这里插入图片描述
图3:
在这里插入图片描述

ROCE v1

2010年4月,IBTA(infiniband trade association)发布了RoCE技术标准,此标准是作为Infiniband Architecture Specification的附加件发布的,所以也可称之为IBoE(InfiniBand over Ethernet)。如图1所示,RoCEv1标准是在以太链路层之上用IB网络层代替了TCP/IP网络层,所以这种技术并不支持IP路由功能。RoCE V1协议数据在以太层typeID字段值是0x8915。具体封装如图4所示。

在RoCEv1中,infiniband的链路层协议头被去掉,用来表示地址的GUID被转换成以太网的MAC。RoCE依赖于无损的以太网传输,这要求传统以太网知识PFC以及ECN技术支撑,势必会给以太网的部署带来成本和管理上的开销。

PFC(Priority Flow Control)技术必须依靠二层的QoS支持。比如,接收端在buffer池超过阈值时会向发送方发出pause帧,发送方链路层在收到pause帧后,自动降低发送速率。这一工作流程,意味着整个传输链路上的所有通信节点包括end、switch、router,都必须全部支持L2 QoS功能,否则链路上的PFC就不能在拥塞控制层面发挥有效作用。鉴于RoCEv1现在很少使用,所以封装不详细展开,在下文RoCEv2板块会详细讲解针对RoCEv1基础上做出的改进。

图4:

在这里插入图片描述

ROCE v2

因RoCEv1的数据帧不带IP头部,所以只能在同一网段内通信,无法实现IP路由功能。为了解决此问题,IBTA(infiniband trade association)于2014年提出了RoCE V2标准——扩展了RoCEv1,将GRH(Global Routing Header)换成UDP header +IP header,扩展后的帧结构如图5所示。

RoCEv2 的协议栈包括IB传输层、TCP/UDP、IP 和 Ethernet,其中后面三层都使用了 TCP/IP 中相应层次的封装格式(遵循传统封装标准)。UDP 包头中,目的端口号为4791即代表是 RoCEv2 帧。IB BTH (InfiniBand Base Transport Header)定义了IB传输层的相应头部字段。IB-Payload 代表消息负载。ICRC 和 FCS 分别对应冗余检测和帧校验。

IB BTH 的具体封装如图6所示,其中每个字段的含义如下:
Opcode 用于表明该包的 type 或 IB payload 中更高层的协议类型;

S 是 Solicited Event 的缩写,表明回应者应该产生一个事件;

M 是 MigReq 的缩写,一般用于迁移状态;

Pad 表明有多少补齐字节被填充到 IB payload 中;

TVer 即 Transport Header Version,表明该数据包的版本号;

Partition Key 用来表征与本 packet 关联的逻辑内存分区;

rsvd 为保留字段;

Destination QP 表明目的端 Queue Pair 序号;

A 是 Acknowledge Request,表示该 packet 的应答可由响应者调度;

PSN 是 Packet Sequence Number,用来检测丢失或重复的数据包。

图5:

在这里插入图片描述
图6:
在这里插入图片描述

iWARP

RDMA over TCP(iWARP)协议,支持在标准以太网基础设施(交换机)上使用RDMA。但必须要求网卡支持iWARP(可以实现CPU卸载),否则所有iWARP堆栈都需要在软件中模拟实现,会导致丧失大部分RDMA的性能优势。达不到优化网络效率的目的。

iWARP并没有指定底层物理层信息,能够工作在任何使用TCP/IP协议栈的上层。所以兼容性较强(iWARP允许很多传输类型来共享相同的物理连接,如网络、I/O、文件系统、块存储和处理器之间的消息通讯)。

iWARP vs RoCE

作为RDMA迁移到传统以太网上衍生出来的两种技术——RoCE和iWARP,一个是基于无连接协议UDP,一个是基于面向连接的协议(如TCP)。

RoCEv1的通信只能局限在一个二层广播域之内,而RoCEv2和iWARP都可支持三层路由。相比RoCE,在大型组网的情况下,iWARP的大量TCP连接会消耗大量的额外内存资源,对系统规格要求更高。另外,在对流量的兼容层面上来讲RoCE支持组播,而iWARP还没有相关的标准定义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值