未来数据中心核心技术:RDMA在京东的应用

近日,由京东IT资源服务部组织的未来数据中心核心技术研讨会活动,在京东成功举办。活动邀请了京东人工智能,大数据,云计算团队的多位研发总监,技术骨干人员一同参与。

在研讨会上,大家针对目前很火的RDMA,高性能网络相关话题,展开深入讨论。特别是随着深度学习,云计算的兴起,网络对应用性能的影响引起了大家的关注。


1、RDMA 技术对于高性能数据中心的影响


RDMA(Remote Direct Memory Access)技术是一种直接在内存和内存之间进行资料互传的技术,在数据传输的过程中,不需要和操作系统Kernel做沟通,完全实现了Kernel Bypass。


未来数据中心核心技术:RDMA在京东的应用

对比RDMA传输和传统的TCP传输,TCP传输在多处需要CPU的参与。


未来数据中心核心技术:RDMA在京东的应用

比如从应用层生成TCP的packet,对packet添加crc,由CPU来运行TCP协议传输数据到接收端,如果是可靠连接网络,需要由CPU来进行流量的控制,在接收端需要由CPU来查询内存地址,检验crc,还原TCP packet到应用。


这会消耗大量的CPU资源,而且容易受到CPU的noise的影响,从而影响网络传输的性能。


如果使用RDMA传输,所有上述操作都可以由网卡硬件来做,CPU不必做任何操作,这就是为什么RDMA能带来低延时、高带宽和低CPU利用率的原因。


2、京东在数据中心应用RDMA技术


在数据中心中使用RDMA技术可以有几种方式。

  • 直接使用RDMA接口(verbs API)。

RDMA和TCP类似,有自定义的API可直接提供给应用层。用户可以直接使用RDMA API对应用进行编程,这种模式可以最好的利用RDMA的性能。


现在流行的deep learning 的framework TensofFlow,也可以支持直接通过RDMA 来做数据传输; 面向大数据的Spark framework,也可以使用Spark over RDMA。


京东人工智能研发团队在分布式的模型训练场景中,也使用了RDMA技术,针对模型文件的高性能传输,满足了分布式训练的需求。


目前业界主流的database系统也都可以直接使用RDMA 接口,享用RDMA 带来的高性能。


包括在并行存储文件系统的应用中,RDMA 也被广泛使用。比如IBM 的GPFS 文件系统,open source 的Lustre 文件系统和GLustre 系统,它们都有直接的RDMA 的支持。


  • 使用一些中间件将RDMA 封装起来,这种应用主要在一些计算和存储中常见。

在面向高性能计算的MPI 应用中,所有的MPI 都可以支持RDMA传输,诸如OpenMPI, Intel MPI, OSU MVAPICH 等。在全世界前500 台最快的超级计算机中,MPI over RDMA 被广泛使用。


未来数据中心核心技术:RDMA在京东的应用

在主流的存储应用中,面向block 存储的iscsi 协议有iscsi over RDMA(iser)的支持,面向object 存储的CePH 有CePH over RDMA 的支持,新的NVMe over Fabric 协议定义了在数据传输的时候必须使用RDMA。


还有在一些特别的应用中也用到了这种方式,比如在一些金融、证券和多媒体等需要低延迟的应用中,VMA 可以在不改变应用接口(socket 接口)的情况下来享受到RDMA 的低延迟。


京东IT资源服务部负责人吕科在技术研讨活动中谈到:“目前京东、微软、Facebook的数据中心都在加强RDMA的使用。希望降低数据中心成本,提升应用性能,解决TCP协议带来的扩展性等问题。”


京东IT资源服务部的硬件系统部在测试RDMA时也看到,在VM的服务中,在同样物理服务器的情况下,利用RDMA 来做数据传输,可以将几乎100%的CPU 资源都提供给计算。降低了CPU 在通讯中的占用率,用户就可以利用这些CPU 资源来做更多计算或提供其他的服务,这也相当于增加了VM的数量。