当前位置:首页 » 《关注互联网》 » 正文

一文带你了解什么是RDMA

20 人参与  2024年12月02日 18:01  分类 : 《关注互联网》  评论

点击全文阅读


目录:

目录:

一、什么是RDMA ?

1.1 DMA Engine

1.1.1 工作原理:

1.1.2 DMA的类型:

1.1.3 应用场景:

1.1.4 优势与挑战:

1.2 RDMA

1.2.1 工作原理:

1.2.2 RDMA的类型:

1.2.3 应用场景:

1.2.4 优势与挑战:

二、RDMA优势

三、RDMA三种协议:

3.1 InfiniBand (IB)

3.2 RDMA over Converged Ethernet (RoCE)

3.3 Internet Wide Area RDMA Protocol (iWARP)

四、RDMA网卡情况


一、什么是RDMA ?

RDMA(Remote Direct Memory Access,远程直接内存访问)是一种起源于高性能计算领域的通信技术,如今已广泛应用于数据中心。该技术使得用户程序能够绕过操作系统内核及CPU,直接与网络接口卡(NIC)交互,实现网络通信。这种方式不仅大幅提升了通信带宽,还显著降低了网络延迟,优化了整体性能。

RDMA(Remote Direct Memory Access)在概念上是相对于DMA而言的。指外部设备能够绕过CPU,不仅可以访问本地主机的主存,它还可以访问另一台远端主机上用户态的系统主存

1.1 DMA Engine

要实现在本地两个程序之间通过DMA Engine绕过CPU直接进行进程间访问,通常需要使用支持DMA Engine的特定硬件设备,如某些高级网卡。这类网卡通常配备了能够处理直接内存访问请求的功能,使得数据可以高效地在不同应用程序间传输,而无需CPU介入,从而极大地减少了延迟和CPU负载。

1.1.1 工作原理:

初始化: 首先,CPU会设置DMA传输,包括源地址、目的地址、传输的数据量以及任何必要的控制信息。

传输控制: DMA控制器接管数据传输过程。它直接从源地址读取数据,并将数据写入目的地址,过程中不经过CPU。

中断: 一旦数据传输完成,DMA控制器会向CPU发送一个中断信号,通知CPU数据已经准备好或者已经传输完成。这样,CPU就可以处理其他任务或者继续处理传输的数据。

1.1.2 DMA的类型:

Burst Mode DMA: 在这种模式下,DMA控制器一次传输整个数据块,直到整个传输完成或达到预设的数据量。Cycle Stealing Mode: DMA控制器在需要时“偷取”一个或几个周期来执行数据传输,介于CPU周期之间,从而减少对CPU性能的影响。Transparent DMA: 在这种模式下,DMA传输在CPU闲置时进行,充分利用系统资源,而不干扰CPU的正常工作。

1.1.3 应用场景:

硬盘驱动器: 在从硬盘到RAM的文件传输中,DMA允许数据直接传输,不占用CPU资源,提高数据读写速度。网络通讯: 网络设备如网卡使用DMA来处理数据包的发送和接收,提高网络通信的效率。音视频播放: 音频和视频播放设备使用DMA来流畅地传输大量的音视频数据到RAM或从RAM中获取,确保播放的连续性。

1.1.4 优势与挑战:

优势:

减轻CPU负担,使CPU可以处理其他更重要的任务。增加数据传输速度,尤其是在大量数据传输时。

挑战:

需要硬件支持,不是所有的系统都配备DMA控制器。安全风险,因为DMA可以绕过CPU和操作系统的常规安全控制,可能被恶意软件利用来攻击系统。

DMA(Direct Memory Access)Engine是一种硬件特性,它允许外设(如磁盘驱动器、网络卡、图形处理器等)直接与系统内存通信,而无需CPU的介入。这种方式可以显著提高数据传输的效率,减少CPU的负载,从而提升整体系统性能。在处理大量数据或高速数据传输时,DMA是非常关键的技术。 

1.2 RDMA

1.2.1 工作原理:

初始化: 首先,本地和远程的CPU会协商并设置RDMA传输,包括源地址、目的地址、传输的数据量以及任何必要的控制信息

传输控制: RDMA控制器接管数据传输过程。它直接从本地内存读取数据,并通过网络传输到远程内存,或者从远程内存读取数据并写入本地内存,整个过程不经过远程CPU和操作系统。

完成通知: 一旦数据传输完成,RDMA控制器会通知本地和/或远程CPU,以便它们可以继续处理其他任务或处理传输的数据。

1.2.2 RDMA的类型:

InfiniBand: 一种专为RDMA设计的高速网络技术,提供低延迟和高带宽,广泛用于高性能计算和数据中心。RoCE (RDMA over Converged Ethernet): 允许在标准以太网上使用RDMA技术,分为RoCEv1(基于数据链路层)和RoCEv2(基于网络层)两种版本。iWARP (Internet Wide Area RDMA Protocol): 另一种在以太网上实现RDMA的技术,支持TCP/IP协议栈。

1.2.3 应用场景:

高性能计算: 在需要大量数据交换的科学计算和模拟中,RDMA可以显著减少数据传输的延迟,提高计算效率。数据中心: 在虚拟化和云计算环境中,RDMA可以提高虚拟机之间的数据传输速度,减少CPU负载。存储网络: 在SAN和网络附加存储(NAS)中,RDMA可以加速数据的读写操作,提高存储系统的性能。

1.2.4 优势与挑战:

优势:

极低的延迟:RDMA可以实现微秒级的数据传输延迟。高吞吐量:支持大规模并行数据传输,提高网络性能。减少CPU负载:数据传输不占用CPU资源,使CPU可以专注于其他计算任务。

挑战:

需要专用硬件支持:RDMA通常需要专用的网络适配器和交换机。配置复杂:RDMA的设置和配置相对复杂,需要专业的网络知识。成本较高:由于需要专用硬件,RDMA技术的部署成本相对较高。

RDMA(Remote Direct Memory Access)Engine是一种高级网络通信技术,它允许网络设备(如服务器、存储设备、高性能计算节点等)直接访问远程计算机的内存,而无需远程CPU的介入,也无需经过远程操作系统的网络栈。这种技术主要用于高性能计算、数据中心、云计算和存储区域网络(SAN)等场景,以实现极低延迟和高吞吐量的数据传输。

二、RDMA优势

RDMA网卡通过其独特的工作机制,有效减轻了CPU的负载。与传统的TCP/IP协议栈相比,后者在处理数据包时需经过操作系统的多个软件层,这不仅占用了大量的CPU资源,还耗费了内存总线的带宽。数据在系统内存、CPU缓存与网络控制器缓存之间频繁复制移动,给服务器的CPU和内存带来了沉重负担。特别是在网络带宽、处理器速度与内存带宽之间存在严重“不匹配性”的情况下,这种负担更加剧了网络延迟效应。

RDMA技术则是一种经过智能网卡与软件架构充分优化的远程内存直接高速访问技术。它通过将RDMA协议固化于硬件(即网卡)上,并支持Zero-copy(零拷贝)和Kernel bypass(内核旁路)这两种途径,实现了高性能的远程直接数据存取。这种技术不仅提高了数据传输的效率,还显著降低了CPU的负担,为高性能网络通信提供了强有力的支持。

零拷贝(Zero-copy)和内核旁路(Kernel bypass)是两种优化数据传输效率的技术,广泛应用于现代网络通信系统中,尤其是在使用RDMA等高性能网络协议时。

零拷贝(Zero-copy) 是一种数据传输机制,它允许应用程序直接对数据进行操作,无需将数据在网络软件栈中多次复制。具体来说,数据可以直接从应用程序的缓冲区发送到网络,或者直接从网络接收到应用程序的缓冲区中。这种方法减少了CPU的负担,因为它避免了数据在系统内存中的不必要复制,同时也减少了内存总线的负载,从而提高了整体数据传输效率。

内核旁路(Kernel bypass) 是一种技术使应用程序能够在用户态直接执行数据传输,无需进行内核态与用户态之间的上下文切换。在传统的网络通信中,每次数据传输都需要操作系统内核的介入,这会导致额外的延迟和CPU资源消耗。内核旁路通过允许应用程序绕过标准的内核网络栈,直接与网络硬件交互,大大降低了这些开销。

这两种技术的结合使用,尤其在高性能计算和数据中心环境中,可以显著提高数据处理速度,减少延迟,优化资源使用,从而提高系统的整体性能和效率。

三、RDMA三种协议:

RDMA(Remote Direct Memory Access,远程直接内存访问)是一种允许网络设备直接读写远端系统内存的技术,无需CPU参与,从而大幅提高通信效率,降低延迟。这项技术在具体实现上支持多种协议,主要包括InfiniBand (IB)、RDMA over Converged Ethernet (RoCE)以及Internet Wide Area RDMA Protocol (iWARP)。虽然这三种协议都遵循RDMA的基本原则,但它们在实现细节和应用场景上各有特点。

3.1 InfiniBand (IB)

InfiniBand是一种高性能、低延迟的网络通信技术,主要用于高性能计算 (HPC) 和企业数据中心。它提供了高吞吐量和低延迟的通信机制,是一种点对点的网络连接。RDMA原生的网络协议,通过专用硬件实现最优的性能。但是由于专用硬件的原因,即Infiniband要求从L2到L4到需要自己的专用硬件,设备成本非常高,现在做nfiniBand网络的厂商主要是Mellanox。.

3.2 RDMA over Converged Ethernet (RoCE)

RoCE是一种允许在以太网上运行RDMA的协议,它继承了以太网的通用性和灵活性,同时又能提供类似InfiniBand的低延迟和高性能特点。RoCE可以在现有的以太网基础设施上实现高效的数据传输,使得它在数据中心内部以及跨数据中心的应用成为可能。RoCE分为两种版本,RoCE v1是基于IP网络的,而RoCE v2在此基础上增加了对UDP的支持,提高了网络的兼容性和灵活性,RoCE可以被认为是IB的"低成本解决方案”,将B的报文封装成以太网包进行收发。由于RoCE v2可以使用以太网的交换设备,所以现在在企业中应用也比较多,但是相同场景下相比B性能要有一些损失。
 

3.3 Internet Wide Area RDMA Protocol (iWARP)

iWARP旨在使RDMA技术能够在传统的TCP/IP网络上运行,从而实现在广域网 (WAN) 环境下的远程直接内存访问。iWARP通过使用标准的TCP协议,保证了与现有网络设备和协议的兼容性,使得RDMA技术可以更容易地被部署在广域网络中。iWARP虽然能够在更广泛的网络环境中使用,但相对于InfiniBand和RoCE,可能会因为依赖TCP的特性而有较高的延迟。

尽管这三种协议在底层实现和应用场景上有所不同,但它们都遵循RDMA的核心原则,即通过直接内存访问机制来提升数据传输的效率和性能,减少CPU的负担。选择哪种协议取决于具体的应用需求、网络环境和成本考虑。

四、RDMA网卡情况

随着中国云计算市场的快速增长,数据中心对网络性能的要求越来越高。RDMA技术能够提供低延迟、高吞吐量的网络通信,非常适合云计算环境中的大数据处理和实时分析需求。中国在高性能计算领域持续投入,RDMA技术因其能够大幅提升计算节点间的通信效率,成为构建超级计算机的关键技术之一。随着5G网络的部署和边缘计算的发展,对低延迟、高带宽网络的需求日益增长。RDMA技术有望在这些新兴领域发挥重要作用。在推动信息技术国产化的背景下,国内厂商正积极研发和推广支持RDMA技术的网络设备和解决方案,以减少对外国技术的依赖。

全球范围内,数据中心和云计算服务提供商都在寻求提升网络性能的方法。RDMA技术因其能够显著降低CPU负载和提高数据传输效率,受到广泛关注。国际上,RDMA技术在高性能计算领域已经得到了广泛应用,随着计算需求的不断增长,RDMA技术的应用将进一步扩大。在企业级存储解决方案中,RDMA技术能够提供高效的数据传输,满足对存储性能有极高要求的应用场景。随着物联网(IoT)、人工智能(AI)等新兴技术的发展,对网络性能的要求越来越高,RDMA技术有望在这些领域发挥更大的作用。

 

RDMA技术因其独特的优势,在国内外市场都有着广阔的应用前景。随着技术的不断进步和成本的降低,预计RDMA技术将在更多领域得到普及和应用。同时,随着全球数字化转型的加速,对高性能网络的需求将持续增长,这也将为RDMA技术的发展提供更多的机遇。 


点击全文阅读


本文链接:http://zhangshiyu.com/post/195560.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1