弹性RDMA(Elastic Remote Direct Memory Access,简称eRDMA),是阿里云提供的低延迟、大吞吐、高弹性的高性能RDMA网络服务。eRDMA的能力实现需要基于支持eRDMA能力的实例规格,创建挂载支持弹性RDMA能力的网卡,才能够实现具有大规模RDMA的网络服务能力。本文为您介绍什么是eRDMA、eRDMA的功能优势、应用场景以及使用限制等。
功能简介
什么是eRDMA
弹性RDMA(Elastic Remote Direct Memory Access,简称eRDMA)是阿里云自研的云上弹性RDMA网络,底层链路复用VPC网络,采用全栈自研的拥塞控制CC(Congestion Control)算法,享有传统RDMA网络高吞吐、低延迟特性的同时,可支持秒级的大规模RDMA组网。可兼容传统HPC应用,以及传统TCP/IP应用。
基于eRDMA,您既可以将HPC应用软件部署在云上,以获取成本更低、弹性更好的高性能应用集群;也可以将VPC网络替换成eRDMA网络,以加速您其他的应用性能。
如何实现eRDMA的能力
eRDMA的能力实现需要基于在支持eRDMA能力的实例规格上,创建挂载支持弹性RDMA能力的网卡,就实现具有大规模RDMA的网络服务能力。
弹性RDMA网卡(Elastic RDMA Interface),简称ERI,是一种可以绑定到ECS实例的虚拟网卡,ERI必须依附于弹性网卡(ENI)开启RDMA设备。ERI完全复用了弹性网卡所属的网络,让您无需改变业务组网,即可在原有网络下使用RDMA功能,体验RDMA带来的超低延迟。
功能优势
eRDMA能力主要具有以下产品优势:
高性能
RDMA绕过内核协议栈,将数据直接从用户态程序转移到HCA中进行网络传输,极大地降低了CPU负载和延迟。eRDMA具有传统RDMA网卡的优点,同时将传统的RDMA技术应用到VPC网络下。超低的延迟让用户在云网络中体验到RDMA带来的优越性能。
普惠
无偿启用eRDMA。您只需在购买实例时,勾选eRDMA选项,即可实现eRDMA网络的开启,无需再额外付费。
规模部署
传统的RDMA依赖于网络的无损特性,规模部署成本高、规模部署困难。而eRDMA在实现中采用了自研的拥塞控制CC算法,容忍VPC网络中的传输质量变化(延迟、丢包等),在有损的网络环境中依然拥有良好的性能表现。
弹性扩展
不同于传统的RDMA网卡需要单独一个硬件网卡,eRDMA是基于神龙架构的一款原生带有云属性的RDMA HCA卡,可以在使用ECS的过程中动态添加设备,支持热迁移,部署十分灵活。
共享VPC网络
eRDMA依附于弹性网卡(ENI),网络可完全复用,可以在不改变业务组网的情况下,即可在原来的网络下激活RDMA功能,体验到RDMA的优势。
应用场景
传统的TCP/IP一直是业界主流的网络通信协议,众多应用都是基于TCP/IP构建的,但随着数据中心相关的业务蓬勃发展,应用对于网络的性能需求(如延迟、吞吐)越来越高,受限于TCP/IP的局限性(如拷贝开销大、协议栈处理厚、CC算法复杂、上下文切换频繁等),TCP/IP的网络通信性能已经成为应用性能提升的瓶颈。
RDMA解决了这些痛点问题。相对于TCP/IP,RDMA实现了零拷贝、内核旁路等特性,避免了拷贝、频繁的上下文切换等开销,相对于TCP/IP的通信,做到了低延迟、高吞吐以及低CPU占用。但是昂贵的价格以及运维成本让很多应用望而却步,RDMA的受众相对较少。
阿里云的eRDMA从设计之初就是要做云上普惠的能力,既要满足客户对RDMA低延时的需求,又要降低大众化场景的适配门槛,让更多的应用可以上云体验到更好的性能。普惠的RDMA网络带来了应用场景的丰富化,相对于传统的线下RDMA的应用场景,eRDMA可以用在更加丰富的场景,例如缓存数据库(Redis)、大数据(Spark)、HPC(WRF)、AI训练等。并且在这些领域内,均取得了可观的性能收益。
使用限制
在使用eRDMA时,需确保实例满足一些约束条件。更多信息,请参见在企业级实例上配置eRDMA。