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带来的优越性能。

    说明

    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时,需确保实例满足一些约束条件。

基本规格

以下主要介绍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

  • 每个vector会对应一个硬件中断。实际使用中,每个CPU配置至多一个vector就可以满足通信需求。

  • 每个vector会关联一个eRDMA内部的CEQ(Completion Event Queue)队列。

最大CEQ深度

256

  • 0.2.34版本的CEQ深度为256。

  • 如果使用event模式,建议每个vector绑定的CQ队列数不超过256,否则可能出现CEQ队列溢出的风险。

最大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

不支持