RDMA技术入门

本文介绍了DMA技术,一种允许硬件在CPU不参与下直接进行内存和设备间数据传输的技术,以及其局限性。随后讨论了RDMA,一种远程直接内存访问技术,提供了超低延迟、高吞吐量和减轻CPU负载的优势,以及InfiniBand、RoCE和iWARP等网络架构技术的应用和特点。
摘要由CSDN通过智能技术生成

DMA技术

在了解RDMA之前,首先需要了解他的前身:DMA(直接内存访问)。

DMA是一种允许某些硬件子系统在主处理器(如CPU)最少干预下,直接在内存和设备之间传输数据的技术。

传统的数据处理方式:CPU负责处理所有的数据传输任务。当需要从硬盘读取数据或向硬盘写入数据时,CPU会发出指令,然后等待数据传输完成后再继续执行其他任务。

具体来说,CPU会发出指令给磁盘控制器,然后磁盘控制器将数据放入内部缓冲区,之后再由CPU一次一个字节地将数据读入自己地寄存器,最后再从寄存器写入内存。在这个过程中,CPU无法执行其他任务,在数据传输量大地情况下会大大降低系统地效率。

众所周知,CPU最主要地工作是计算,而不是进行数据复制,这种工作属于白白浪费了它地计算能力。这种方式在处理大量数据时,会显著降低系统地整体性能,因为CPU在等待数据传输完成的过程中无法执行其他计算任务。

为了给CPU“减负”,DMA(Direct Memory Access)机制应运而生:

通过DMA控制器,设备可以直接与内存进行数据传输,而无需CPU的全程参与。CPU只需要在数据传输前设置好参数,然后就可以去处理其他任务,当数据传输完成后,DMA控制器通知CPU,CPU再回到数据传输任务中进行相应的后续处理。这种方式大大减轻了CPU负担,提高了数据传输的效率。

DMA技术的意义主要体现在以下几个方面:

  1. 提高数据传输效率:由于DMA控制器可以直接访问内存,因此可以快速地移动大量数据而无需CPU参与。
  2. 减轻CPU负担:DMA技术使得CPU可以从繁琐地数据传输任务中解脱出来,去处理其他更重要的任务。从而提高了整个计算机系统的性能。
  3. 实现数据的快速复制和存储:DMA技术可以在外设和存储器之间或者存储器与存储器之间实现高速数据传输,这对于需要大量数据复制和存储的应用场景非常有用。

 

总的来说,DMA技术是一种高效的数据传输方式,它使得CPU可以更加专注于执行计算和控制等核心任务,从而提高了整个计算机系统的性能。

然而,DMA技术仍然有其局限性。它只能在同一台计算机的内部设备之间进行数据传输,而无法实现不同计算机之间的直接内存访问。这就是RDMA技术出现的背景。

RDMA出现的背景

 RDMA(远程直接内存访问)让一台电脑能像访问自己的内存一样去访问另一台电脑的内存。通常,电脑之间传输数据需要遵循复杂的TCP/IP协议,但RDMA可以绕过这些,让数据传输变得像访问本地内存一样简单快速。这个过程对电脑是感觉不到的,而且主要由硬件完成,不需要软件做太多的事情。

在一般的网络传输中,比如电脑A要给电脑B,其实就是把电脑A内存里的一些数据搬到电脑B的内存里边。这个过程需要两边的CPU来指挥和控制,包括网卡的工作、中断的处理、数据的打包和解包等等。

比如,电脑A的用户空间里的数据,先要经过CPU复制到内核空间的一个缓冲区,然后才能被网卡读取,在这个过程中,数据还要加上各层的头部信息和校验码(例如,TCP头部、IP头部等)。网卡再通过DMA技术把数据从内核空间复制到网卡内部的缓冲区,然后通过网络发送给电脑B。

电脑B收到数据后,会进行相反的操作:先从网卡内部把数据复制到内核空间的缓冲区,然后CPU再对数据进行解包,最后才能把数据复制到用户空间。

总的来说,即使有了DMA技术,这个过程仍然很依赖CPU。

 

如果使用了RDMA技术,这个过程就能变得很简单。同样是把一端内存里的数据复制到另一端的内存里,但在使用RDMA时,两端的CPU几乎不用参与数据传输(只需要做一些控制工作)。本段的网卡可以直接从用户空间通过DMA技术复制数据到内部存储空间,然后硬件会自动组装好数据,通过网络发送给对端的网卡。对端的RDMA网卡收到数据后,会自动剥离各层的头部信息和校验码,然后通过DMA技术直接把数据复制到用户空间的内存中,这样整个过程就变得很高效,不在那么依赖CPU。

RDMA技术的意义:

  1. 超低延迟:RDMA操作绕过了操作系统的网络协议栈,减少了CPU中断和上下文切换的册数,从而实现了微秒级的延迟。
  2. 高吞吐量:由于RDMA操作直接在硬件层面进行数据传输,因此可以实现非常高的数据传输效率。
  3. 减少CPU负载:RDMA技术将数据传输的任务交给硬件处理,从而释放了CPU的计算资源,使CPU可以专注于执行其他更重要的任务。
  4. 提高系统可扩展性:RDMA技术可以支持大规模并行处理,使得系统的可扩展性大大提高。

RDMA网络架构技术 

1.InfiniBand 

InfiniBand可以说是“原生”的RDMA网络架构技术,它提供了一种基于通道的点对点消息队列转发模型,每个应用都可以通过创建的虚拟通道直接获取本应用的数据消息,无需其他操作系统及协议栈的介入。InfiniBand 架构的应用层采用了 RDMA 技术,可以提供远程节点间 RDMA 读写访问,完全卸载 CPU 工作负载;网络传输采用了高带宽的传输;链路层设置特定的重传机制保证服务质量,不需要数据缓冲。InfiniBand 必须使用 IB 交换机及 IB 网卡才可实现。

为了降低RDMA技术的使用成本,并提高网络通信技术的标准化,也就有了RoCE和iWARP技术。

2.RoCE

RoCE是基于以太网的技术。它的第一版(v1)在网络层使用了IB的规则,而第二版(v2)则使用了UDP和IP,这样数据包就可以在不同的网络路径中传输了。RoCE可以被看作是IB的“更经济”的版本,因为它把IB的信息打包成以太网数据包来发送和接收。

由于RoCE v2可以使用普通的以太网交换设备(但需要支持PFC、ECN等流控技术,解决以太网的拥塞丢包问题),所以它在企业中应用得比较广泛。但是,在同样的条件下,它的性能可能没有IB那么好。

3.iWARP协议

 iWARP协议是基于TCP的,TCP是一个可靠的、需要建立连接的协议。这意味着在有网络问题(比如数据包丢失)的情况下,iWARP比RoCE v2和InfiniBand(IB)更可靠,特别是在大型网络中更有优势。但是,建立大量的TCP连接会占用很多内存,而且TCP的流量控制等复杂机制可能会影响性能。所以,从性能上看,iWARP没有基于UDP的RoCE v2和IB那么好。

InfiniBandiWARPRoCE
标准组织IBTAIETFIBTA
性能最好稍差(受TCP影响)与IB相当
成本
网卡厂商

Mellanox

40Gbps

Chelsio

10Gbps

Mellanox-40Gbos

Emulex-10/40Gbps

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值