RDMA——让数据中心“狂飙”?
▉ 数据中心瓶颈怎么解?
我们知道,计算、存储和网络,是推动数据中心发展的三驾马车。因此想要提升数据中心的整体性能仅仅依靠增加算力是行不通的。
数据中心要想实现一个更高的性能需要依赖有一个更佳平衡的系统,只有计算、网络和存储都得充分利用才能够整体提升数据中心。
随着软件定义数据中心、CPU核心、PCIe、闪存等技术的发展,数据在计算和存储方面的瓶颈并没有太明显,而网络随着数据中心的发展逐渐成为了瓶颈,它直接影响到数据中心最大吞吐量和最小的延迟。
10Gbps网络曾经是过去一段时间数据中心中最常用的网络,但是如今动辄五六十核心的CPU的出现,数据中心通常至少需要25Gbps才能有效。
网络行业也一直致力于提供更高的吞吐量和更低的延迟,现在能够提供 25、40、50、100 甚至 200 Gbps 的 RoCE能力以太网,InfiniBand甚至已经引入了 200 Gbps 连接。
未来,应用服务器与服务器的延迟将低于600纳秒,甚至需求会更低。因此数据中心需要高效、低延迟的网络,RDMA则很可能成为这个时代的最优解。
▉ 如何应对服务器间的传输挑战?
以太网和 TCP/IP 在数据中心已经有很长的历史了,它们成为左右网络传输性能的关键因素。
但一个挑战是,TCP/IP协议中的传输方式是以操作系统为中心来完成的。如下图所示,将一个应用服务器中的数据传输到另一个服务器中,数据在服务器的Buffer内多次拷贝,OS 在将消息发送给网络适配器并通过网络传输之前复制消息。同时在接收端,OS 再次处理数据。
这些操作既增加了数据传输时延,又消耗了大量的CPU资源,无法很好得满足高性能计算的需求。
这种处理方式很像客服中心的接线员处理每一个电话的方式,需要将客户的问题记录并反馈给售后部门。当PC和服务器连接是偶尔的时候,这种方式并没有什么问题,但是当为大量用户提供服务的时候,这种以操作系统为中心的方式就会遇到拥堵、延迟等问题。
如今的数据中心与全球的用户连接着,需要即时、频繁或持续的相互访问,在竞争激烈的今天,时间就是金钱。金融服务每一纳秒的延迟可能就带来上百万的损失,即时对于商业网站来说,几秒的延迟可能就导致用户的流失。
因此,RDMA开始得到越来越多的关注!
▉ 什么是RDMA技术?
RDMA是英文Remote Direct Memory Access的缩写,直接可翻译为远程直接地址访问技术,是一种内存访问技术,可以让服务器直接高速读写其他服务器的内存数据,而不需要经过操作系统/CPU耗时的处理。
RDMA技术并不是一项新技术,最早诞生于20世纪90年代,如今已经广泛应用于高性能计算(HPC)中。随着数据中心高带宽、低时延的发展需求,RDMA也开始逐渐应用于某些要求数据中心具备高性能的场景中。
如上图所示,RDMA将服务器应用数据直接由内存传输到智能网卡(固化RDMA协议),由智能网卡硬件完成RDMA传输报文封装,解放了操作系统和CPU。
在实现上,RDMA实际上是一种智能网卡与软件架构充分优化的远端内存直接高速访问技术,通过将RDMA协议固化于硬件(即网卡)上,以及支持Zero-copy和Kernel bypass这两种途径来达到其高性能的远程直接数据存取的目标。使用RDMA的优势如下:
零拷贝(Zero-copy) - 应用程序能够直接执行数据传输,在不涉及到网络软件栈的情况下。数据能够被直接发送到缓冲区或者能够直接从缓冲区里接收,而不需要被复制到网络层。
内核旁路(Kernel bypass) - 应用程序可以直接在用户态执行数据传输,不需要在内核态与用户态之间做上下文切换。
不需要CPU干预(No CPU involvement) - 应用程序可以访问远程主机内存而不消耗远程主机中的任何CPU。远程主机内存能够被读取而不需要远程主机上的进程(或CPU)参与。远程主机的CPU的缓存(cache)不会被访问的内存内容所填充。
简单来说,RDMA更像一个去掉中间商的技术,让数据能够快速获取。不再在操作系统、CPU等环节浪费时间。
那么怎么实现RDMA部署呢?
目前实现 RDMA 的方案有如下 3 种:分别是InfiniBand、RoCE(RDMA over Converged Ethernet,RDMA过融合以太网)和iWARP(RDMAover TCP,互联网广域RDMA协议)。
Infiniband是一种专为RDMA设计的网络,从硬件级别保证可靠传输 , 而RoCE 和 iWARP都是基于以太网的RDMA技术。不同的是RoCE是从 Infiniband 发展而来的,iWARP则是自成一派,但是 iWARP 的设计思想受到了很多 Infiniband 的影响。
在优缺点方面,Infiniband 从协议到软硬件封闭,其性能虽然最优,但成本也最高,因为需要更换全套设备,包括网卡、光缆和交换机等。这对于通用标准化的分布式存储场景并不友好。
对于 RoCE 和 iWARP 选择上,虽然 RoCE 在数据重传和拥塞控制上受到 UDP 协议自身的限制,需要无损网络的环境支持,但在综合生态、协议效率和复杂度等多方面因素评估下,笔者更加看好 RoCE 未来的发展,在极致的性能诉求下,RoCE 也会比 iWARP 具有更强的潜力。
▉ RDMA在现代数据中心中有哪些应用?
一、用于应用服务器和远程桌面的RDMA
二、虚拟化环境下的RDMA支持
数据中心正在采用虚拟化进行服务器整合,并启用软件定义服务。为了在虚拟机 和设备中支持 RDMA,领先的虚拟化软件供应商和开源开发人员内置了对在虚拟机(VM)中运行 RDMA 的支持。
三、RDMA用于软件定义数据中心
软件定义数据中心(SDDC)采用节点互连以提供各种虚拟化服务。因此,网络对于支持虚拟机中计算服务的性能和可扩展软件定义存储中数据的移动变得至关重要。因此 IT 正寻求 SDDC 实现在支持敏捷性和成本效益方面的能力。RDMA提供了较低的延迟和低CPU开销,它正在全球最先进的数据中心中部署。
四、软件定义网络的RDMA
软件定义网络实现了控制平面决策功能与数据平面数据移动活动的分离。它允许在网络功能中内置更大的智能,并最大限度地提高传输效率。网络功能虚拟化是 SDN 的一个重要驱动因素,它支持标准化的控制功能,可以运行在普通服务器上,而不是昂贵的专用硬件上。RDMA与InfiniBand 网络的结合具有高吞吐量、低延迟、低 CPU 开销和 极好的可扩展性。
五、RDMA用于存储阵列和软件定义存储
与 SDDC 的其他方面一样,软件定义存储和超融合系统需要跨高度可伸缩的存储介质池进行快速数据移动。通过 RDMA,企业可以使用本地 InfiniBand 或 RoCE,通过 iSER (iSCSI over RDMA)、SMB Direct(SMB 3.0 over RDMA)、NVMe- of (NVMe over Fabric)等网络标准实现存储池和服务器之间的快速数据移动,获取更好的性能和低延迟。
六、私有云的RDMA
越来越多的企业正在通过部署虚拟化来实现服务器整合、更大的业务敏捷性、可伸缩的计算以及私 有和公共云。但是虚拟化可以产生更多的 I/O 流量,因为每个物理服务器中有更多的服务和应用程序在使用网络。而且,今天的服务器是跨多行进行通信的,而不仅仅是在单个机架内。对于 RDMA 来说,这是一个成熟 的体系结构。此外,新兴的数据中心特定于应用程序的设备和私有云的架构涉及在中间层 的网格中互连的整个共享资源系统。这就需要RDMA技术来支持高事务速率的吞吐需求。
七、RDMA与物联网
物联网正在向数据中心(包括私有云和公共云)提供不断增加的几何倍数据,这些数据最终将流向大数据分析。在存储和节点之间移动这些数据落, 这要求网络既高效又灵活。正如我们所看到的,这些都是 RDMA 设计的特点, 使其成为物联网的理想选择。
八、用于数据库和分析的RDMA
虽然许多企业依赖于可扩展的单片平台进行内存数据库分析,但大数据和内存云平台正在改变企业使用分析的方式。大数据已经在推动企业大规模的向 外扩展解决方案。数据移动对于这些分布式系统的性能至关重要。RDMA的低延迟值将发挥着至关重要的作用。
九、RDMA用于机器学习(ML)解决方案
随着世界继续推进数字化转型之旅,越来越多的数据可供企业做出更准确的商业决策。不具备这样的能力将使企业在与竞争对手的竞争中处于不利地位。任何 DevOps 决策都需要基于对相关数据分析,从而提高企业效率。
已经开始构建和使用 AI/ML解决方案的企业越来越多。这些解决方案不仅包括CPU,还包括其他高性能组件,如GPU、使用 NVMe 或持久性 内存(PM)的更快的所有闪存阵列(AFA)存储,这些存储都由处理 AI/ML集群内海 量数据通信所需的高性能网络设备连接。更快的数据通信带来了更快的分析速度,从而在竞争中脱颖而出。
未来,数据中心在整体网络架构上,RADM将可能迎来属于自己的时代!