【RDMA学习笔记】1:RDMA(Remote Direct Memory Access)介绍

帝国理工的PPT学习。

什么是RDMA

Remote Direct Memory Access,也就是Remote的DMA,是一种硬件机制,能直接访问远端结点的内存,而不需要处理器介入。

其中:

  • Remote:跨node进行数据传输
  • Direct:不需要CPU或者OS kernel介入
  • Memory:从两个node各自app的虚拟地址空间直接传输数据
  • Access:支持send、receive、read、write、atomic operation

RDMA的优点

也就说明了适用场景

  • 较高的高吞吐量(带宽)
  • 较低的E2E时延
  • 较低的CPU适用:单侧的RDMA操作完全不需要remote CPU参与)
  • 较低的内存总线争用:user space和kernel之间完全不拷贝数据)
  • 异步操作:所以很适合overlapping的通信和计算

传统的TCP/IP vs RDMA

可以看到RDMA绕过kenel mode的同时也bypass了这些协议栈

协议栈对比

RDMA网络栈

准备阶段:设置RDMA的data channels

buffer在使用前需要在网卡那边注册一下,具体地,在注册阶段需要:

  • Pin memory,保证这块memory不会被OS swap出去
  • 将地址转换信息存到NIC里
  • 对这段memory region设置权限
  • 返回remote key和local key,这是给adapter在执行RDMA操作时用的

工作队列

RDMA通信是基于Send、Receive、Completion这三种队列的,其中Send和Receive的queue属于work queue,总是以Queue Pair的形式被创建。SQ和RQ用于schedule work,当work完成时,CQ用于通知。

在工作时,应用会issue一个work request,这个struct包含了指向一个buffer的指针:

  • 对于SQ,指向要发送的消息
  • 对于CQ,指向了incoming message要放入的位置

而一旦一个work request完成了,那么adapter就会往CQ里塞一个元素。

支持RDMA的网络协议

IB (InfiniBand)、RoCE (RDMA over Converged Ethernet)、iWARP (internet Wide Area RDMA Protocol)

RDMA只是一种机制

并没有指定data transfer的语义,RDMA网络支持两种访问模型:

Two Sided:RDMA send & receive

这是最传统的消息传递模式,消息源和目标方都积极地参与通信

双方都需要创建:

  • 一对QP (SQ+CQ),用于发送和接收
  • 给这对QP用的CQ

发送方的work request会指向要传输的buffer,然后把这个WQE塞到SQ里发过去。

接收方的work request会指向一个empty buffer用于接收数据,通过这种方式WQE会被添加到对应的RQ里。

在send+receive完成之后,也就是直接写入了remote的registered memory,然后双方的CQ里都会被添加一个CQE表示完成了。

One Sided:RDMA read & write + atomic操作

只有发起方是活动的,接收方是纯被动的,不会issue任何操作,也不会有CPU cycle,甚至完全不会感知到有read/write发生了。

如果要发起RDMA read/write,那么work request必须包含:

  • 远端目标内存的虚拟地址
  • 远端的memory registration key

也就是说要使用RDMA read/write,发起方必须事先就知道这两个knowledge。

基于RDMA的上层协议

RDMA有很多好处,但也因为开发者需要使用它的Verbs API带来了额外的复杂性。

相关推荐
岑梓铭3 小时前
计算机网络第九章——数据链路层《局域网》
网络·笔记·计算机网络·考研·408
HXR_plume5 小时前
【计算机网络】王道考研笔记整理(1)计算机网络体系结构
网络·笔记·计算机网络
珹洺8 小时前
计算机网络:(八)网络层(中)IP层转发分组的过程与网际控制报文协议 ICMP
tcp/ip·计算机网络·智能路由器
.YYY9 小时前
网络--初级
网络·计算机网络
iFulling11 小时前
【计算机网络】第三章:数据链路层(下)
网络·笔记·计算机网络
-qOVOp-1 天前
408第三季part2 - 计算机网络 - 传输层II
计算机网络
合作小小程序员小小店1 天前
web渗透之指纹识别1
物联网·计算机网络·网络安全·网络攻击模型
-qOVOp-2 天前
408第三季part2 - 计算机网络 - ip分布首部格式与分片
网络协议·tcp/ip·计算机网络
-qOVOp-2 天前
408第三季part2 - 计算机网络 - ip地址II
计算机网络
珹洺2 天前
计算机网络:(七)网络层(上)网络层中重要的概念与网际协议 IP
网络·tcp/ip·计算机网络