本文主要为您介绍什么是eRDMA、eRDMA的功能优势、应用场景以及规格等。
功能简介
什么是eRDMA
弹性RDMA(Elastic Remote Direct Memory Access,简称eRDMA),是阿里云提供的低延迟、大吞吐、高弹性的高性能RDMA网络服务。eRDMA基于第四代神龙系统架构,是一款基于云上VPC网络、RDMA生态100%完全兼容、超大规模网络部署的ECS普惠RDMA服务。
使用eRDMA,您既可以将在线下的RDMA应用平滑迁移上云,获取成本更低、弹性更好的高性能RDMA服务,例如高性能计算、AI训练、大数据处理等;也可以利用eRDMA与SMC-R透明加速您基于TCP网络的应用,获取相对于TCP网络更好的性能表现。
如何实现eRDMA的能力
eRDMA的能力实现需要基于在支持eRDMA能力的实例规格上,创建挂载支持弹性RDMA能力的网卡,就实现具有大规模RDMA的网络服务能力。
弹性RDMA网卡(Elastic RDMA Interface),简称ERI。是一种可以绑定到ECS实例的虚拟网卡,ERI必须依附于弹性网卡(ENI)开启RDMA设备。ERI完全复用了弹性网卡所属的网络,让您无需改变业务组网,即可在原有网络下使用RDMA功能,体验RDMA带来的超低延迟。
功能优势
- 低延迟
RDMA绕过内核协议栈,将数据直接从用户态程序转移到HCA中进行网络传输,极大地降低了CPU负载和延迟。eRDMA具有传统RDMA网卡的优点,同时将传统的RDMA技术应用到VPC网络下。超低的延迟让用户在云网络中体验到RDMA带来的优越性能。
- 规模部署
传统的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实例满足如下表所示的约束条件。
配置项 | 说明 |
---|---|
地域及可用区 | 支持选择华北2(北京)、华东2(上海)、华东1(杭州)和华南1(深圳)及对应的可用区。 |
实例规格 | 支持ERI的实例规格如下: |
镜像 | 支持以下镜像(任选一款):
|
eRDMA设备数量 | 每个实例最大支持1个eRDMA网卡设备。 |
热插拔特性 | ERI网卡只支持热插入,不支持热拔出。 |
其他限制 |
|
基本规格
以下主要介绍eRDMA的规格,在您的应用中使用eRDMA时需要确保应用满足产品的能力规格约束,否则可能会导致您的应用无法正常工作。
RDMA QP的基本规格
规格名称 | 规格 | 说明 |
---|---|---|
最大QP数目max_qp_num | 依据实例规格,至多144,480 | QP数目和您购买的实例规格有关。 |
最大的发送WR深度max_send_wr | 8,192 | 发送的最大Work Request数目,该规格表示一个QP的最大inflight WR数目。 |
最大的接收WR深度max_recv_wr | 32,768 | 接收的最大Work Request数目,该规格表示一个QP能够接收的最大inflight的WR的数目。 |
最大的发送SGE数目max_send_sge | 6 | 单个send wr支持的离散地址数目。 |
最大的接收SGE数目max_recv_sge | 1 | 单个recv wr支持的离散地址数目。 |
SRQ | 不支持 | 无。 |
QP类型 | RC(Reliable Connected) | 无。 |
建链方式 | RDMA_CM | 无。 |
RDMA CQ的基本规格
规格名称 | 规格 | 说明 |
---|---|---|
CQ数目 | 依据实例规格,最大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 |
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 | 不支持 |