到底什么是RDMA?为什么数据中心需要它?

Posted 鲜枣课堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了到底什么是RDMA?为什么数据中心需要它?相关的知识,希望对你有一定的参考价值。

众所周知,互联网数据的爆炸式增长,给数据中心的处理能力带来了很大的挑战。

计算、存储和网络,是推动数据中心发展的三驾马车。

计算随着CPU、GPU和FPGA的发展,算力得到了极大的提升。 存储随着闪存盘(SSD)的引入,数据存取时延已大幅降低。

但是,网络的发展明显滞后,传输时延高,逐渐成为了数据中心高性能的瓶颈。

在数据中心内,70%的流量为东西向流量(服务器之间的流量)。 这些流量,一般为数据中心进行高性能分布式并行计算时的过程数据流,通过TCP/IP网络传输。


如果服务器之间的TCP/IP传输速率提升了,数据中心的性能自然也会跟着提升。

下面,我们就来看看服务器之间数据TCP/IP传输的过程,了解一下“时间都去哪了”,才好“对症下药”。

服务器间的TCP/IP传输

在数据中心,服务器A向服务器B发送数据的过程如下:

1、CPU控制数据由A的APP Buffer拷贝到操作系统Buffer。

2、CPU控制数据在操作系统(OS)Buffer中添加TCP、IP报文头。

3、添加TCP、IP报文头后的数据传送到网卡(NIC),添加以太网报文头。

4、报文由网卡发送,通过以太网络传输到服务器B网卡。

5、服务器B网卡卸载报文的以太网报文头后,将其传输到操作系统Buffer。

6、CPU控制操作系统Buffer中的报文卸载TCP、IP报文头。

7、CPU控制卸载后的数据传输到APP Buffer中。

从数据传输的过程可以看出,数据在服务器的Buffer内多次拷贝,在操作系统中需要添加/卸载TCP、IP报文头,这些操作既增加了数据传输时延,又消耗了大量的CPU资源,无法很好得满足高性能计算的需求。

那么,如何构造高吞吐量、超低时延和低CPU开销的高性能数据中心网络呢? 

RDMA技术可以做到。

什么是RDMA

RDMA ( Remote Direct Memory Access,远程直接地址访问技术 ) 是一种新的内存访问技术,可以让服务器直接高速读写其他服务器的内存数据,而不需要经过操作系统/CPU耗时的处理。

RDMA不算是一项新技术,已经广泛应用于高性能(HPC)科学计算中。 随着数据中心高带宽、低时延的发展需求,RDMA也开始逐渐应用于某些要求数据中心具备高性能的场景中。

举个例子,2021年某大型网上商城的双十一交易额再创新高,达到5000多亿,比2020年又增长了近10%。 如此巨大的交易额背后是海量的数据处理,该网上商城采用了RDMA技术来支撑高性能网络,保障了双十一的顺畅购物。

下面我们一起来看看RDMA让网络实现低时延的绝招吧。

RDMA将服务器应用数据直接由内存传输到智能网卡(固化RDMA协议),由智能网卡硬件完成RDMA传输报文封装,解放了操作系统和CPU。

这使得RDMA具有两大优势:

  • Zero Copy(零拷贝): 无需将数据拷贝到操作系统内核态并处理数据包头部的过程,传输延迟会显著减小。

  • Kernel Bypass(内核旁路)和Protocol Offload(协议卸载): 不需要操作系统内核参与,数据通路中没有繁琐的处理报头逻辑,不仅会使延迟降低,而且也大大节省了CPU的资源。

三大RDMA网络

目前,大致有三类RDMA网络,分别是InfiniBand、RoCE(RDMA over Converged Ethernet,RDMA过融合以太网)和iWARP(RDMA over TCP,互联网广域RDMA协议)。

RDMA最早专属于Infiniband网络架构,从硬件级别保证可靠传输,而RoCE和iWARP都是基于以太网的RDMA技术。

InfiniBand

  • InfiniBand是一种专为RDMA设计的网络。

  • 采用Cut-Through转发模式(直通转发模式),减少转发时延。

  • 基于Credit的流控机制(基于信用的流控机制),保证无丢包。

  • 要求InfiniBand专用的网卡、交换机和路由器,建网成本最高。

RoCE

  • 传输层为InfiniBand协议。

  • RoCE有两个版本: RoCEv1基于以太网链路层实现,只能在L2层传输; RoCEv2基于UDP承载RDMA,可部署于三层网络。

  • 需要支持RDMA专用智能网卡,不需要专用交换机和路由器(支持ECN/PFC等技术,降低丢包率),建网成本最低。

iWARP

  • 传输层为iWARP协议。

  • iWARP是以太网TCP/IP协议中TCP层实现,支持L2/L3层传输,大型组网TCP连接会消耗大量CPU,所以应用很少。

  • iWARP只要求网卡支持RDMA,不需要专用交换机和路由器,建网成本介于InfiniBand和RoCE之间。

Infiniband技术先进,但是价格高昂,应用局限在HPC高性能计算领域,随着RoCE和iWARPC的出现,降低了RDMA的使用成本,推动了RDMA技术普及。

在高性能存储、计算数据中心中采用这三类RDMA网络,都可以大幅度降低数据传输时延,并为应用程序提供更高的CPU资源可用性。

其中,InfiniBand网络为数据中心带来极致的性能,传输时延低至百纳秒,比以太网设备延时要低一个量级。

RoCE和iWARP网络为数据中心带来超高性价比,基于以太网承载RDMA,充分利用了RDMA的高性能和低CPU使用率等优势,同时网络建设成本也不高。

基于UDP协议的RoCE比基于TCP协议的iWARP性能更好,结合无损以太网的流控技术,解决了丢包敏感的问题。 RoCE网络,已广泛应用于各行业高性能数据中心中。

结语

随着5G、人工智能、工业互联网等新型领域的发展,RDMA技术的应用会越来越普及,RDMA将成为助力数据中心高性能的一大功臣。

—— The End ——

以上是关于到底什么是RDMA?为什么数据中心需要它?的主要内容,如果未能解决你的问题,请参考以下文章

什么是RDMA?

什么是RDMA?

比特币到底是什么?一种新的交易机制!

区块链到底是什么,为什么这么火爆

NHibernate:错误脱水属性 - 这到底是什么?

[中英对照]Introduction to Remote Direct Memory Access (RDMA) | RDMA概述