彈性RDMA(Elastic Remote Direct Memory Access,簡稱eRDMA)是阿里雲提供的低延遲、大吞吐、高彈性的高效能RDMA網路服務。eRDMA是基於第四代神龍系統架構和雲上VPC網路、100%相容RDMA生態、提供超大規模網路部署的ECS普惠RDMA服務。本文介紹如何在ACK叢集中配置和使用eRDMA。
前提條件
已建立ACK叢集。請參見建立ACK託管叢集。
步驟一:安裝ACK eRDMA Controller組件
您可以參見如下流程安裝ACK eRDMA Controller組件。
如果您的叢集網路外掛程式為Terway,還需要配置Terway的網卡白名單,避免Terway組件修改eRDMA的網卡。配置方式,請參見為彈性網卡(ENI)配置白名單。
當節點存在多張網卡時,ACK eRDMA Controller 為附加的eRDMA網卡配置路由時,採用比同網段網卡路由更低的優先順序,預設採用
200
的路由優先順序,如果你在安裝ACK eRDMA Controller後需要手動設定網卡,注意避免路由衝突。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在組件管理頁面,單擊網路頁簽,定位ACK eRDMA Controller組件,按照頁面提示配置組件並完成安裝。
配置項
說明
preferDriver 驅動類型
選擇叢集節點上使用的eRDMA驅動類型。可選值:
default
:預設驅動模式。compat
:相容RoCE驅動模式。ofed
:基於ofed的驅動模式,適用於GPU機型。
關於驅動類型的詳細說明,請參見使用eRDMA。
是否為Pod分配節點全部eRDMA裝置
可選值:
True(勾選):為Pod分配節點上所有的eRDMA裝置。
False(不勾選):Pod根據NUMA拓撲分配一個eRDMA裝置。節點需要開啟CPU Static Policy才能保證Pod和裝置的固定NUMA分配。關於如何配置CPU Policy,請參見建立節點池。
安裝完成後,您可以在左側導覽列,選擇工作負載 >容器組,然後選擇命名空間為ack-erdma-controller,查看Pod運行狀態,確認組件運行正常。
步驟二:使用eRDMA加速容器網路
安裝ACK eRDMA Controller組件後,您可以在Pod使用下方配置來開啟eRDMA加速。
配置 | 配置方式 | 說明 |
開啟eRDMA | 在Pod的容器資源中聲明
| 通過在Pod資源中聲明 分配後,您可以在Pod中查看分配到的RDMA裝置。
|
開啟SMC-R透明加速 | 在開啟eRDMA的基礎上,在Pod的
| 在啟用SMC-R的透明加速功能後,只有當TCP串連的兩端都配置了SMC-R時,才能使用eRDMA的加速。 您可以在Pod中安裝 說明
|
情境樣本一:GPU機型使用eRDMA加速NCCL通訊
參見步驟一:安裝ACK eRDMA Controller組件安裝組件時,配置
preferDriver
為ofed
,用於NCCL類型的通訊。在節點池中添加GPU節點。具體操作,請參見建立節點池。
在應用程式容器鏡像構建時安裝eRDMA相關包。
在叢集中運行使用eRDMA的GPU應用,以
nccl-test
為例。驗證NCCL使用了eRDMA加速。
您可以在應用日誌中查看NCCL使用的通訊類型和使用的網卡數量。例如下圖所示。
預期輸出表明,已使用
erdma_0
和erdma_1
的eRDMA裝置進行了加速。
情境樣本二:使用SMC-R透明加速應用網路
參見步驟一:安裝ACK eRDMA Controller組件安裝組件時,配置
preferDriver
為default
,用於普通類型的通訊加速。參見下方範例程式碼,在叢集中建立SMC-R加速的應用。
查看Pod中網路連接的加速情況。
您可以在容器中安裝
smc-tools
,通過smcss
的命令查看加速效果。/# smcss State UID Inode Local Address Peer Address Intf Mode ACTIVE 00000 0059964 172.17.192.73:47772 172.17.192.10:80 0000 SMCR
預期輸出表明,
Mode
中顯示SMCR
,表明已對這條串連進行了eRDMA加速。