RDMA技术简介 RDMA的控制通路和数据通路方案

作者:刘伟
拥有14年网络设备开发领域的从业经验,当前就职于浪潮电子信息产业股份有限公司体系结构研究部,负责高性能网卡的架构设计和驱动程序开发工作。
rdma 技术基于传统以太网的网络概念,但与以太网网络中的同类技术存在差异。关键区 别在于,rdma 提供了一种消息服务,应用程序可以使用该服务直接访问远程计算机上的虚拟内存。消息服务可用于进程间通信(ipc)、与远程服务器的通信以及使用上层协议与存储设备进行通信,这些上层协议包括对 rdma 的 iscsi 扩展(iser)、smb、samba、lustre、zfs 等。rdma 通过绕过软件协议栈和避免不必要的数据复制来实现低时延、降低 cpu 占用率、减少内存带宽瓶颈和提供高带宽。rdma 提供的好处主要来自 rdma 消息服务呈现给应用程序的方式,以及用于传输和传递这些消息的底层技术。rdma 提供基于通道的 i/o,该通道使得应用程序可以使用 rdma 设备直接读取和写入远程虚拟内存。
在传统的以太网应用场景中,运行在用户态的应用程序通过调用套接字(socket)api 从操作系统请求网络资源,然后使用这些 api 执行数据收发。rdma 应用也依赖操作系统,但只是使用操作系统建立通道,而后允许用户态的程序直接操作硬件交互信息,无须内核态程序的进一步协助。这些信息交互方式可以是 rdma read、rdma write、send 和 receive。
另外,rdma 协议 infiniband 和 roce 还支持多播传输。目前 rdma 已经是一个比较成熟的架构,主要应用在高性能计算(hpc)领域和大型数据中心中,典型的应用场景包括分布式神经网络计算(比如 tensorflow+mpi+rdma)和大数据存储(比如 hdfs+rdma+nvme)等。
rdma 的控制通路和数据通路
第 5 章在介绍内核协议栈方案时,使用图 5-1 展示了 linux 内核协议栈方案涉及的主要软件和硬件模块以及它们之间的关系;图 5-2 描述了此方案的数据流;最后通过分析,给出了此方案的几个缺点,比如不必要的数据复制、频繁地在内核态与用户态之间切换等。下面介绍 rdma 方案的控制通路和数据通路(如图 13-1 所示)以及数据流(如图 13-2 所示),如果和图 5-1、图 5-2 进行比较,就能明显地看出 rdma 方案的优点。
图 13-1 中有一左一右两台机器,可互相发送和接收数据。图中首先将 rdma 整体方案横向划分为三层;上面两层是软件,根据执行权限的不同又分为用户态和内核态;最下面一层是硬件。然后,图中将 rdma 的横向分层模型再从竖向划分为控制通路和数据通路。控制通路需要进入内核态准备通信所需的各种资源,比如创建和配置后面章节会介绍的各 rdma 基本元素(如 cq、qp 等),主要操作由软件完成,硬件接受配置。数据通路专门负责数据收发,由软件和硬件合作完成 rdma write(写)、rdma read(读)、send(发送)和 receive(接收)等操作。
至于把控制通路和数据通路分开的原因,可以这样理解:一般和控制有关的操作所需的权限较高,所以需要进入内核态处理,导致消耗的时间较长,不过实际进行的操作次数有限,
rdma 技术简介
属于低频且耗时的操作类型;而数据收发相关的操作所需的权限较低,直接在用户态处理即可,只有这样才能起到旁路(bypass)内核和快速收发数据的效果,并且在程序运行的大部分时间里,执行的都是这种高频操作。
图 13-1 rdma 方案的控制通路和数据通路
send 和 receive 操作为例,一次 rdma 通信的过程简单描述如下。
(1)发送端和接收端的软件都通过控制通路进入内核态,创建通信所需的各种资源,包 括 mr、qp、cq 等。
(2)在数据通路上,接收端的应用程序通知硬件准备接收数据,并将存放数据的缓存地 址告知硬件。
(3)在数据通路上,发送端的应用程序通知硬件发送数据,并将待发送数据所在的缓存 地址和数据长度告知硬件。
(4)发送端硬件使用 dma 操作从位于主机内存的缓存中将数据复制到自己的硬件内部 缓存,然后按照协议封装数据包并发送给对端。
(5)接收端硬件收到数据包,按照协议对其进行解析,并通过 dma 操作将有效的应用 数据写入主机内存。
(6)在数据通路上,接收端的应用程序获知收到的数据已被放入本地缓存。
图 13-2 展示了使用 rdma 方案时,用户数据在两个运行在不同机器上的应用程序之间 传递的过程。图中的机器 1 为发送端,机器 2 为接收端。包括在网线/光纤上的数据传输,整 个数据传递过程共进行了 3 次数据复制,按照编号依次如下。
① 发送端网卡通过 dma 操作,从主机内存的用户空间将数据复制到自己的硬件内部缓 存中,并进行封装,即添加各层协议报头和校验信息。
② 发送端网卡通过网线/光纤将封装好的数据发送给接收端的网卡。
③ 接收端网卡接收到数据后,先进行数据解析,即把各层协议报头和校验信息剥离,然 后将硬件缓存中的数据通过 dma 操作复制到主机内存的用户空间。
如果跟图 5-1 和图 5-2 做一下比较,明显可以看出 rdma 方案的三个优点。 • 本地内存零复制,即省去了数据在主机内存的用户空间和内核空间之间复制的步骤, 降低了整个数据收发过程的时延。 • 内核旁路(bypass),即数据通路绕过内核,避免了系统调用和上下文切换的时间 开销。 • 把数据包的封装和解析工作交由网卡来实现,降低了 cpu 负载。


高精度低功耗的超声波传感器MB1043在冶金领域的应用
怎样更换Sony TC-WR535双盒式磁带座上的皮带
基于灵动微MM32F3270微控制器的监护仪
多核风暴来袭 各厂商应对之策分析
亚马逊Echo Alexa Google Home 语音控制彩光WiFi模组SLMWF-11003
RDMA技术简介 RDMA的控制通路和数据通路方案
Orbis收购Mekon并以新名称Contiem运营
单片机串行口扩展的方法详细说明
LDR6028 OTG取电传数据方案-直播声卡数据充电转接线方案
要把钱花在刀刃上!精品骁龙821旗舰推荐:小米MIX、一加3T、锤子M1L
隔空充电或成为未来智能设备的首选充电方式
iphone XR一波波的降价攻势来袭 苹果变身“跳水王”
星猿哲科技升级推出ST散斑双目3D工业相机
爱尔兰科学家开发出业内首款非节型晶体管
音圈模组加持的非洲猪瘟检测仪
AI将要取代编辑这一个行业吗
双输出SEPIC变换器
艾迈斯欧司朗推出新型514nm激光器,比传统氩离子激光器尺寸更小、性能更佳
圆桌对话:智能服务机器人专业委员会
基于一种传统股票行业与分散式网络进行整合的Qurrex交易所介绍