问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

一文彻底搞懂:什么是RDMA技术及其三个协议

创作时间:
作者:
@小白创作中心

一文彻底搞懂:什么是RDMA技术及其三个协议

引用
1
来源
1.
https://www.modb.pro/db/1869559581685334016

接上一篇,在搞懂了什么是NVlink和NVSwitch技术之后,我们还需了解一个特别的技术--RDMA技术。他对于我们后期学习无限带宽和无损网络及其重要。

DMA技术

在了解RDMA技术之前,我们先来了解一下DMA技术,DMA(英文全称:Direct Memory Access),即直接内存访问技术,意思是1台计算机主板上的外设(如网卡、硬盘、I/O等设备)对内存的数据读写过程可以不用CPU参与而直接进行,不需要绕过CPU。

无DMA控制器时,数据经CPU访问模式

如上图:假设I/O设备为一个普通网卡,为了从内存拿到需要发送的数据,然后组装数据包发送到物理链路上,网卡需要通过总线告知CPU自己的数据请求。然后CPU将会把内存缓冲区中的数据复制到自己内部的寄存器中,再复制到I/O设备的存储空间中。如果数据量比较大,那么很长一段时间内CPU都会忙于搬移数据,而无法投入到其他工作中去。

CPU的最主要工作是计算,是一台计算机的“大脑”,而不是用来专门进行数据复制或传输的,这种工作属于白白浪费了它的计算能力。为了给CPU“减负”,让它投入到更有意义的工作中去,后来人们设计了DMA机制和技术,即在总线上挂载一个DMA控制器,专门用来读写内存的设备。

有DMA控制器时,内存直接访问模式

有了它以后,当我们的网卡想要从内存中拷贝数据时,除了一些必要的控制命令需要通过CPU参与外,整个数据传输过程都是由DMA控制器来完成的。CPU除了关注一下这个过程的开始和结束以外,其他时间可以去做其他的事情,释放出CPU很多的资源。

经过技术不断迭代和发展,DMA控制器一般都是和I/O设备集成在一起了,也就是说一块DMA网卡中既有负责数据收发的模块,也有DMA模块。

RDMA技术

RDMA,英文全称:Remote Direct Memory Access,意思是“远程直接内存访问”,是一种高效的网络通信协议,它允许一台计算机的内存直接访问另外一台计算机的内存,而无需经过操作系统内核(即CPU)的介入。从而“解放”CPU的工作压力,来提高数据传输速率,减少时延,提高整体计算性能的作用,如下图的绿色链路。

我们这边重点要理解远程,即两台或以上的计算机内存访问。为了更加清晰的理解RDMA技术,以及它的优势之处,我们先来了解一下非RDMA技术的传输方式,即传统的网络访问方式,请看下面两个图:

传统网络中,A计算机给B计算机发送数据,实际上需要做的是”把A计算机内存中的一段数据,通过网络链路搬移到B计算机的内存中”,而这一过程无论是发送端还是接收端,数据都是需要经过CPU,包括CPU对网卡的控制,中断的处理,报文的封装和解析等等。

而引入RDMA技术之后呢,数据就可以绕开CPU通过RDMA网卡直接进行内存访问,从而大大提高了数据的传输速率和减少了时延。同时也大大的释放了CPU的工作负载和”压力”,提升了计算的工作效率。如下图所示:

计算机的CPU:除了在建立连接、注册调用、控制管理等之外,在整个RDMA数据传输过程中并不提供服务,因此没有给系统带来任何的“负载”,相反还能释放出较多空闲时间,可以处理很多额外的CPU计算工作。

RDMA技术优缺点

尽管RDMA的技术有很多的优点,但是也存在一些缺点。因此需要根据我们实际的应用场景去选择他的技术应用。

RDMA的三种网络协议

RDMA本身指的是一种技术,具体到协议层面,包括:InfiniBand(IB)、RDMA over Converged Ethernet(RoCE)和Internet Wide Area RDMA Protocol(iWARP)三种协议。它们各有优缺点,适用于不同的应用场景。

对比如下:

  • Infiniband(IB):InfiniBand(直译为“无限带宽”技术,缩写为IB)是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连,是一种RDMA原生的网络协议。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连。IB网络需要通过专用硬件才能实现最优的性能,但是由于专用硬件的原因(即Infiniband要求从L2到L4到需要自己的专用硬件),设备成本非常高,现在做InfiniBand网络的厂商主要就是Mellanox(为以色列一家芯片制造商,现已被英伟达收购)。

  • ROCE:ROCE基于以太网链路层的协议,v1版本网络层仍然使用了IB规范,而v2使用了UDP+IP作为网络层和传输层,使得数据包也可以被路由。RoCE可以被认为是IB的“低成本解决方案”,将IB的报文封装成以太网包进行收发。由于RoCE v2可以使用以太网的交换设备,所以现在在企业中应用也比较多,但是相同场景下相比IB性能要有一些损失。

  • iWARP:iWARP基于TCP/IP协议的RDMA技术,由IETF标准定义。iWARP支持在标准以太网基础设施上使用RDMA技术,而不需要交换机支持无损以太网传输。因为TCP是面向连接的可靠协议,这使得iWARP在面对有损网络场景(可以理解为网络环境中可能经常出现丢包)时相比于RoCE v2和IB具有更好的可靠性,在大规模组网时也有明显的优势。但是大量的TCP连接会耗费很多的内存资源,另外TCP复杂的流控等机制会导致性能问题,所以从性能上看iWARP要比UDP的RoCE v2和IB差。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号