為支援eRDMA能力的企業級ECS執行個體配置eRDMA,實現在不需要修改現有網路架構的情況下,體驗超低延遲、大吞吐、高彈性的高效能RDMA網路服務。本文介紹如何在企業級ECS執行個體上配置eRDMA,以充分利用高效可擴充的RDMA能力,從而提升您的網路效能。
使用限制
配置eRDMA對地區、執行個體規格、鏡像等方面有一些限制,詳細說明如下表所示。
限制項 | 說明 |
地區 | 支援華北2(北京)、華東2(上海)、華東1(杭州)、華南1(深圳)、華南3(廣州)、華北6(烏蘭察布)、華南2(河源) |
執行個體規格 | 支援eRDMA的執行個體規格如下: |
鏡像 |
說明 不同執行個體規格可選擇的鏡像範圍不同,實際可選擇的鏡像以購買頁面的實際展示為準。 |
eRDMA裝置數量 | 每個執行個體最大支援1個eRDMA網卡裝置。 |
網路限制 |
|
操作步驟
支援eRDMA能力的執行個體使能eRDMA能力需滿足2個條件:安裝了eRDMA驅動、綁定了開啟彈性RDMA介面的網卡。
建立新執行個體時配置eRDMA
當支援eRDMA能力的執行個體的作業系統為Alibaba Cloud Linux、Ubuntu和Anolis OS時,支援在建立執行個體時自動安裝eRDMA驅動並開啟彈性RDMA介面,使能eRDMA,免去手動安裝的麻煩。對於不支援安裝eRDMA驅動的作業系統或自動安裝失敗的情況,您可以在執行個體建立完成後,通過指令碼方式或手動方式安裝驅動。具體操作,請參見為已有執行個體配置eRDMA。
為已有執行個體配置eRDMA
登入ECS管理主控台,找到目標執行個體並進入執行個體詳情頁,選擇彈性網卡頁簽,查看執行個體是否已開啟了彈性RDMA介面的網卡。
若有:請跳過以下步驟。
若沒有:請按照以下步驟,為主網卡或輔助彈性網卡配置eRDMA。
為主網卡或輔助彈性網卡配置eRDMA。
重要單台ECS執行個體只能綁定一個啟用彈性RDMA介面的網卡,因此您只需為主網卡開啟RDMA功能,或為輔助彈性網卡開啟RDMA功能即可。
為主網卡(推薦使用)或輔助彈性網卡配置eRDMA
您可以通過API介面ModifyNetworkInterfaceAttribute,填寫網卡ID,設定
NetworkInterfaceTrafficMode
為HighPerformance
,為已有執行個體配置eRDMA。為輔助彈性網卡配置eRDMA:建立啟用彈性RDMA介面的輔助彈性網卡,並綁定至目標ECS執行個體。
說明只能在單獨建立輔助彈性網卡時為輔助彈性網卡啟用彈性RDMA介面,不支援在建立執行個體時或建立輔助彈性網卡後為輔助彈性網卡啟用彈性RDMA介面。
建立輔助彈性網卡。具體操作,請參見建立輔助彈性網卡。
專用網路和交換器:需要與目標ECS執行個體在同一個專用網路和可用性區域。
增加彈性RDMA介面:開啟開關。
將輔助彈性網卡綁定至ECS執行個體。具體操作,請參見綁定輔助彈性網卡。
說明將輔助彈性網卡綁定至執行個體前,請確認目標執行個體的主網卡和輔助網卡不在同一子網內,否則可能因為預設路由導致輔助網卡的RDMA功能在某些情況下不可用。
將啟用彈性RDMA介面的輔助彈性網卡綁定至執行個體後,如需解除綁定,必須先停止執行個體。具體操作,請參見停止執行個體。
執行
ifconfig
命令,如果不能顯示該網卡,需要手動設定彈性網卡。具體操作,請參見配置輔助彈性網卡。否則,請跳過該步驟。說明部分鏡像無法自動識別新綁定的輔助彈性網卡。
安裝eRDMA驅動。
根據實際情況選擇指令碼方式或者手動方式安裝eRDMA驅動。
指令碼方式:預設下載最新且穩定版本的驅動包。
手動方式:可以下載指定版本的驅動包。
指令碼方式
執行以下命令,運行指令碼安裝驅動。
curl -O http://mirrors.cloud.aliyuncs.com/erdma/env_setup.sh sudo /bin/bash env_setup.sh > /var/log/erdma_install.log 2>&1
執行安裝指令碼後,指令碼會自動協助您安裝ERI驅動所需的軟體依賴包、下載ERI驅動包以及安裝ERI驅動,等待安裝指令碼執行結束即可。
說明如果以指令碼方式安裝驅動失敗,請您檢查安裝日誌,安裝日誌的具體路徑為:
/var/log/erdma_install.log
。手動方式
執行以下命令,更新前置軟體包。
Alibaba Cloud Linux 3/CentOS/Anolis OS:
sudo yum update -y
Ubuntu:無需更新,跳過該步驟。
依次執行以下命令,查看最新的kernel包版本和作業系統的核心版本。
rpm -qa | grep kernel #查看最新的kernel包版本 uname -r #查看作業系統的核心版本
系統返回樣本資訊如下,表示兩者版本一致,無需進行額外操作。若版本不一致,則需要重啟執行個體使其生效。
執行以下命令,安裝依賴的軟體包。
對於x86執行個體,請執行以下操作:
Alibaba Cloud Linux 3/CentOS/Anolis OS:
sudo yum install gcc-c++ dkms cmake kernel-devel kernel-headers libnl3 libnl3-devel
Ubuntu:
sudo apt-get install dkms cmake libnl-3-dev libnl-route-3-dev kernel-headers
對於Arm執行個體,由於需要基於源碼執行構建任務,相關的軟體依賴包較多且可能會發生變化,因此可以忽略本步驟,直接執行安裝指令碼。如果安裝指令碼失敗,指令碼會提示您需要安裝的軟體依賴包,請根據提示完成安裝,然後重新執行軟體安裝即可。
執行以下命令,下載驅動安裝包。
從內網地址擷取軟體包
wget http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-latest.tar.gz
從公網地址擷取軟體包
wget https://mirrors.aliyun.com/erdma/erdma_installer-latest.tar.gz
這裡預設下載最新版本的驅動安裝包,您還可以根據實際情境下載指定版本的驅動包。eRDMA不同驅動版本的發布資訊如下:
執行以下命令,解壓安裝包並進入檔案目錄。
tar -xvf erdma_installer-latest.tar.gz && cd erdma_installer
執行以下命令,安裝驅動。
方式一:安裝過程需手動確認相關卸載步驟及自動下載步驟
sudo sh install.sh
方式二:安裝過程無需確認過程
sudo sh install.sh --batch
根據返回資訊,確認安裝結果。
若系統返回如下資訊,則表示安裝驅動成功。
若系統返回如下資訊,則表示提示安裝驅動失敗,請按照提示資訊操作完成後,重新嘗試安裝驅動。
說明如果您使用的是CentOS 7系統,並且重新安裝驅動過程中提示缺少軟體包,但您無法通過
yum
擷取到,您可能需要執行yum install -y epel-release
命令,先安裝epel-release倉庫,然後才能擷取到對應的軟體包。
測試eRDMA效能
perftest是測試eRDMA基礎效能的benchmark工具。更多資訊,請參見perftest相關文檔。
分別在Server端和Client端安裝perftest工具。您可以通過以下兩種方式安裝perftest。
方式一:訪問perftest官方倉庫下載並安裝perftest工具。該方式需確保執行個體具備公網訪問能力。
方式二:yum/apt源方式安裝。執行如下命令,安裝perftest工具。
Alibaba Cloud Linux 3/CentOS/Anolis OS
sudo yum install perftest -y
Ubuntu
sudo apt install perftest -y
說明不同Linux發行版的軟體源中包含的perftest版本可能不一致,在通訊時可能存在相容性問題。建議您通訊的執行個體使用相同的Linux發行版,否則請採用第一種方式安裝。
測試eRDMA的延遲效能。
在Server端執行如下命令。
ib_write_lat -R -a -F
在Client端執行如下命令。
ib_write_lat -R -a -F <server_ip>
其中,
<server_ip>
是Server端ECS執行個體上綁定的eRDMA的彈性網卡所對應的私人IP地址。擷取IP地址的方法,請參見查看IP地址。
若系統返回資訊如下,測試結果包括平均延遲、最大延遲、最小延遲等延遲相關的效能指標,表示eRDMA通訊正常。
相關文檔
容器中需要大規模資料轉送和高效能網路通訊的應用情境中,將eRDMA功能引入容器(Docker)環境可實現容器應用程式繞過作業系統核心直接存取主機的物理eRDMA裝置,從而提供更快的資料轉送和通訊效率。具體操作,請參見在容器(Docker)中配置eRDMA。
您也可以在ACK(Alibaba Cloud Container Service for Kubernetes)叢集中使用eRDMA,可以為運行在叢集上的所有服務和應用提供低延遲、高輸送量的網路通訊能力。具體操作,請參見在ACK叢集上使用eRDMA。
如需監測或診斷eRDMA,方便您對eRDMA的運行狀態進行即時監控。具體操作,請參見監測和診斷eRDMA。