rdma能给数据中心带来什么

随着“新基建”将5G、人工智能、工业互联网列为新型基础领域 , 机器学习、智能语音交互、自动驾驶等一大批基于高性能计算的应用层出不穷 , 这些应用带来了数据的爆炸式增长 , 给数据中心的处理能力带来了很大的挑战 。
计算、存储和网络是推动数据中心发展的三驾马车 。 计算随着CPU、GPU和FPGA的发展 , 算力得到了极大的提升 。 存储随着闪存盘(SSD)的引入 , 数据存取时延已大幅降低 。 但是网络的发展明显滞后 , 传输时延高 , 逐渐成为了数据中心高性能的瓶颈 。
rdma能给数据中心带来什么
文章图片
在数据中心内 , 70%的流量为东西向流量(服务器之间的流量) , 这些流量一般为数据中心进行高性能分布式并行计算时的过程数据流 , 通过TCP/IP网络传输 。 如果服务器之间的TCP/IP传输速率提升了 , 数据中心的性能自然也会跟着提升 。
rdma能给数据中心带来什么
文章图片
下面我们就来看看服务器之间数据TCP/IP传输的过程 , 了解下“时间都去哪了” , 才好“对症下药” 。 服务器间的TCP/IP传输
在数据中心 , 服务器A向服务器B发送数据的过程如下:
1、CPU控制数据由A的AppBuffer拷贝到操作系统Buffer 。
2、CPU控制数据在操作系统(OS)Buffer中添加TCP、IP报文头 。
3、添加TCP、IP报文头后的数据传送到网卡(NIC) , 添加以太网报文头 。
4、报文由网卡发送 , 通过以太网络传输到服务器B网卡 。
5、服务器B网卡卸载报文的以太网报文头后 , 将其传输到操作系统Buffer 。
6、CPU控制操作系统Buffer中的报文卸载TCP、IP报文头 。
7、CPU控制卸载后的数据传输到AppBuffer中 。
rdma能给数据中心带来什么
文章图片
从数据传输的过程可以看出 , 数据在服务器的Buffer内多次拷贝 , 在操作系统中需要添加/卸载TCP、IP报文头 , 这些操作既增加了数据传输时延 , 又消耗了大量的CPU资源 , 无法很好得满足高性能计算的需求 。
那么 , 如何构造高吞吐量、超低时延和低CPU开销的高性能数据中心网络呢?RDMA技术可以做到 。 什么是RDMA
RDMA(RemoteDirectMemoryAccess , 远程直接地址访问技术)是一种新的内存访问技术 , 可以让服务器直接高速读写其他服务器的内存数据 , 而不需要经过操作系统/CPU耗时的处理 。
RDMA不算是一项新技术 , 已经广泛应用于高性能(HPC)科学计算中 。 随着数据中心高带宽、低时延的发展需求 , RDMA也开始逐渐应用于某些要求数据中心具备高性能的场景中 。 举个例子 , 2021年某大型网上商城的双十一交易额再创新高 , 达到5000多亿 , 比2020年又增长了近10% 。 如此巨大的交易额背后是海量的数据处理 , 该网上商城采用了RDMA技术来支撑高性能网络 , 保障了双十一的顺畅购物 。
下面我们一起来看看RDMA让网络实现低时延的绝招吧 。
RDMA将服务器应用数据直接由内存传输到智能网卡(固化RDMA协议) , 由智能网卡硬件完成RDMA传输报文封装 , 解放了操作系统和CPU 。
rdma能给数据中心带来什么
文章图片
这使得RDMA具有两大优势:
ZeroCopy(零拷贝):无需将数据拷贝到操作系统内核态并处理数据包头部的过程 , 传输延迟会显著减小 。
KernelBypass(内核旁路)和ProtocolOffload(协议卸载):不需要操作系统内核参与 , 数据通路中没有繁琐的处理报头逻辑 , 不仅会使延迟降低 , 而且也大大节省了CPU的资源 。