全部產品
Search
文件中心

Elastic Compute Service:eRDMA概述

更新時間:Jun 19, 2024

本文主要介紹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的規格,在您的應用中使用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

不支援