本文主要介绍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带来的优越性能。
说明HCA(Host Channel Adapter)是一种通常以网络接口卡(NIC)形态出现的硬件设备,用于连接服务器与网络,并提供对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时,需确保实例满足一些约束条件。
ECS实例:配置约束请参见在企业级实例上配置eRDMA。
GPU实例:配置约束请参见在GPU实例上配置eRDMA。
基本规格
以下主要介绍eRDMA的规格,在您的应用中使用eRDMA时需要确保应用满足产品的能力规格约束,否则可能会导致您的应用无法正常工作。
RDMA QP的基本规格
规格名称 | 规格 | 说明 |
最大QP(Queue Pair)数目max_qp_num | 依据实例规格,最大支持131,071 | QP数目和您购买的实例规格有关。 |
最大的发送WR深度max_send_wr | 8,192 | 能够提交到一个QP的send wr的最大outstanding数目。 |
最大的接收WR深度max_recv_wr | 32,768 | 能够提交到一个QP的receive wr的最大outstanding数目。 |
最大的发送SGE数目max_send_sge | 6 | 单个send wr支持的离散地址数目。 |
最大的接收SGE数目max_recv_sge | 1 | 单个recv wr支持的离散地址数目。 |
SRQ | 不支持 | 无。 |
QP类型 | RC(Reliable Connected) | 无。 |
建链方式 | RDMA_CM | 无。 |
RDMA CQ的基本规格
规格名称 | 规格 | 说明 |
CQ(Completion Queue)数目 | 依据实例规格,最大CQ数为QP数的两倍 | 无 |
CQ的完成向量数目vector_num | 依据实例规格(CPU和QP数有关),最大不超过31 |
|
最大CEQ深度 | 256 |
|
最大CQ队列深度 | 1,048,576 | 无。 |
RDMA MR的基本规格
规格名 | 规格 |
MR数目 | 依据实例规格,最大MR数为QP数的两倍 |
MW数目 | 不支持MW |
Max MR size | 依据底层硬件,最小支持2 GB、最大支持64 GB |
RDMA Verbs Opcode的支持列表
Opcode | 支持情况 |
RDMA Write | 支持 |
RDMA Write with Immediate | 支持 |
RDMA Read | 支持 |
Send | 支持 |
Send with Invalidate | 支持 |
Send with Immediate | 支持 |
Send with Solicited Event | 支持 |
Local Invalidate | 仅内核态Verbs支持 |
Atomic Operation | 不支持 |