本文主要介紹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 |
|
最大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 | 不支援 |