【RDMA】1. RDMA概述

RDMA(Remote Direct Memory Access)允许节点直接访问远程内存,减少CPU干预和拷贝操作,实现低时延和高带宽。它主要应用于高性能计算和大数据中心,涉及Infiniband、RoCE和iWARP三种协议。尽管硬件成本较高,但其优点在于0拷贝、内核Bypass和CPU卸载,适用于带宽和时延敏感的场景。RDMA技术由IBTA和OFA推动,Linux社区和Mellanox等硬件厂商积极参与发展。
摘要由CSDN通过智能技术生成

原文:https://zhuanlan.zhihu.com/p/138874738

本想完全靠自己的语言完成这篇概述,然而开篇并没有想象当中的好写,看样子从宏观上概括一个技术比从微观上探究细枝末节要困难不少。本文是以前人们对RDMA技术的介绍为主,加入了一些自己的理解。随着本专栏内容的增加,本篇概述也会更新和逐渐完善。

什么是RDMA?

RDMA( Remote Direct Memory Access )意为远程直接地址访问,通过RDMA,本端节点可以“直接”访问远端节点的内存。所谓直接,指的是可以像访问本地内存一样,绕过传统以太网复杂的TCP/IP网络协议栈读写远端内存,而这个过程对端是不感知的,而且这个读写过程的大部分工作是由硬件而不是软件完成的。

为了能够直观的理解这一过程,请看下面两个图(图中箭头仅做示意,不表示实际逻辑或物理关系):

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

而RDMA技术除了支持上面的传统收-发操作之外,还支持直接的远程读/写操作。这一过程可以简单的表示成下面的示意图,可以看到,节点B的CPU没有参与这一过程。也就是说节点A可以在节点B的CPU“不知情”的情况下,直接读写它的内存。

RDMA主要应用在高性能计算(HPC)领域和大型数据中心当中,并且设备相对普通以太网卡要昂贵不少(比如Mellanox公司的Connext-X 5 100Gb PCIe网卡市价在4000元以上)。由于使用场景和价格的原因,RDMA与普通开发者和消费者的距离较远,目前主要是一些大型互联网企业在部署和使用。

RDMA技术为什么可以应用在上述场景中呢?这就涉及到它的以下几个特点:

  • 0拷贝:指的是不需要在用户空间和内核空间中来回复制数据。

由于Linux等操作系统将内存划分为用户空间和内核空间,在传统的Socket通信流程中CPU需要多次把数据在内存中来回拷贝。而通过RDM

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值