彈性RDMA(Elastic Remote Direct Memory Access,簡稱eRDMA)是阿里雲提供的低延遲、大吞吐、高彈性的高效能RDMA網路服務。eRDMA基於第四代神龍系統架構和雲上VPC網路,100%相容RDMA生態,提供超大規模網路部署的ECS普惠RDMA服務。本文介紹如何在ACK叢集中配置和使用eRDMA,包括CPU節點和GPU節點情境。
適用範圍
叢集版本:
CPU節點:1.20及以上。
GPU節點:1.26及以上。
執行個體規格:eRDMA僅支援部分執行個體規格,請參見在企業級執行個體上啟用eRDMA查看支援的執行個體規格列表。
步驟一:配置Terway白名單
如果叢集網路外掛程式為Terway,請為彈性網卡(ENI)配置白名單,避免Terway組件修改eRDMA的網卡。
步驟二:添加支援eRDMA的節點至ACK叢集
建立節點
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
參見建立和管理節點池,通過節點池建立節點。建立節點的規格需要支援eRDMA(請參見適用範圍),同時應選擇以下鏡像或基於以下鏡像的自訂鏡像:
CPU節點:
Alibaba Cloud Linux 3(所有版本)
Alibaba Cloud Linux 4(所有版本)
Ubuntu 24.04
GPU節點:請在雲市場鏡像中選擇已經預先安裝eRDMA驅動的鏡像,例如:
Alibaba Cloud Linux 3 64位(預裝eRDMA軟體棧)
添加已有節點
如果您已有支援eRDMA的ECS執行個體,可以將其手動添加到ACK叢集中。
GPU節點必須安裝eRDMA驅動才可添加到叢集,有兩種方式進行安裝:
通過OS鏡像預先安裝(推薦):節點已使用阿里雲提供的預裝eRDMA軟體棧的OS鏡像,例如雲市場鏡像中的Alibaba Cloud Linux 3 64位(預裝eRDMA軟體棧)。
手動安裝:參見在GPU執行個體上啟用eRDMA在執行個體上手動安裝eRDMA軟體棧。在節點加入叢集後,請確認eRDMA驅動和網卡配置正常。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
步驟三:安裝ACK eRDMA Controller組件
當節點存在多張網卡時,ACK eRDMA Controller 為附加的eRDMA網卡配置路由時,採用比同網段網卡路由更低的優先順序,預設採用200的路由優先順序,如果您在安裝ACK eRDMA Controller後需要手動設定網卡,注意避免路由衝突。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理。
在組件管理頁面,單擊安裝組件,參照下方配置安裝ACK eRDMA Controller組件。
配置項
說明
preferDriver
選擇節點上使用的eRDMA驅動類型。
default:預設驅動模式。compat:相容RoCE驅動模式,適用於OOB建鏈情境。ofed:OFED驅動模式,適用於GPU機型。
關於驅動類型的詳細說明,請參見啟用eRDMA。
是否為Pod分配節點全部eRDMA裝置
勾選:為Pod分配節點上所有的eRDMA裝置。
不勾選:Pod根據NUMA拓撲分配一個eRDMA裝置。節點需要開啟CPU Static Policy才能保證Pod和裝置的固定NUMA分配。關於如何配置CPU Policy,請參見建立和管理節點池。
安裝完成後,在左側導覽列,單擊工作負載 > 容器組,選擇ack-erdma-controller命名空間,查看Pod運行狀態,確認組件運行正常。
步驟四:使用eRDMA加速容器網路
安裝ACK eRDMA Controller組件後,在容器資源中通過aliyun/erdma配置項申請資源,即可開啟eRDMA加速。
apiVersion: apps/v1
kind: Deployment
metadata:
...
spec:
...
template:
spec:
containers:
- name: nginx
image: nginx:latest
resources:
limits:
aliyun/erdma: 1 # 啟動eRDMA
ports:
- containerPort: 80分配後,您可以在Pod中查看分配到的RDMA裝置。
/# ls /dev/infiniband/
rdma_cm uverbs0當preferDriver配置為ofed(適用於 GPU 機型)時,Pod 的/dev/infiniband/目錄下可能不包含rdma_cm裝置,僅顯示uverbs0等裝置。這是正常現象,因為 GPU 情境下 NCCL 等通訊架構不依賴rdma_cm,不影響 eRDMA 加速功能的使用。
情境樣本:GPU機型使用eRDMA加速NCCL通訊
參考步驟二:添加支援eRDMA的節點至ACK叢集,在節點池中添加GPU節點,OS鏡像選擇Alibaba Cloud Linux 3 64位(預裝eRDMA軟體棧)。
參考步驟三:安裝ACK eRDMA Controller組件,配置
preferDriver為compat,用於NCCL類型的通訊。在應用程式容器鏡像構建時安裝eRDMA相關包。
在叢集中運行使用eRDMA的GPU應用,以
nccl-test為例。驗證NCCL使用了eRDMA加速。
您可以在應用日誌中查看NCCL使用的通訊類型和使用的網卡數量。

預期輸出表明,已使用
erdma_0和erdma_1的eRDMA裝置進行了加速。