部分企業級ECS實例支持配置eRDMA,可以實現在不需要修改現有網絡架構的情況下,體驗超低延遲、大吞吐、高彈性的高性能RDMA網絡服務。
使用限制
限制項 | 說明 |
地域 | 支持華北2(北京)、華東2(上海)、華東1(杭州)、華南1(深圳)、華南3(廣州)、華北6(烏蘭察布)、華南2(河源) |
實例規格 | 支持eRDMA的實例規格如下: |
鏡像 |
說明 不同實例規格可選擇的鏡像范圍不同,實際可選擇的鏡像以購買頁面的實際展示為準。 |
eRDMA設備數量 | 您可以通過DescribeInstanceTypes返回參數中的EriQuantity的值,查詢實例規格支持綁定ERI的最大數量(0表示不支持彈性RDMA接口)。 |
網絡限制 |
|
為企業級實例配置eRDMA
購買實例時配置eRDMA
當支持eRDMA能力的實例的操作系統為Alibaba Cloud Linux、Ubuntu和Anolis OS時,支持在創建實例時自動安裝eRDMA驅動并開啟彈性RDMA接口,使能eRDMA,免去手動安裝的麻煩。
對于不支持安裝eRDMA驅動的操作系統或自動安裝失敗的情況,您可以在實例創建完成后,通過腳本方式或手動方式安裝驅動。具體操作,請參見為已有實例配置eRDMA。
在購買的實例啟動后,eRDMA驅動安裝可能需要一段時間,請您耐心等待。
創建支持ERI的企業級實例。創建過程中需注意以下配置項(其他參數,請參見自定義購買實例):
實例和鏡像:選擇支持eRDMA的實例規格,并安裝eRDMA驅動。
實例:請參見使用限制。
鏡像:選擇公共鏡像。
擴展程序:選中eRDMA驅動。實例啟動過程中會自動安裝eRDMA驅動,無需您再手動安裝。您在購買Alibaba Cloud Linux操作系統的倚天實例時,還可以選擇安裝性能加速類擴展程序。更多信息,請參見性能加速擴展程序。
重要使用ECS擴展程序功能,需要擁有系統權限策略AliyunECSExtensionsFullAccess,阿里云賬號默認擁有該系統權限。如果您的操作賬號為RAM用戶,需要聯系阿里云賬號授予RAM用戶該系統權限。詳細信息,請參見擴展程序。
彈性網卡:主網卡右側選擇開啟彈性RDMA接口,為ECS實例綁定ERI。
說明購買企業級實例時,僅支持為主網卡啟用彈性RDMA接口。如果您需要為輔助網卡配置eRDMA,您可以通過控制臺或OpenAPI方式為輔助彈性網卡開啟RDMA接口。具體操作,請參見彈性RDMA網卡(ERI)。
為已有實例配置eRDMA
驗證實例eRDMA是否配置正確。
具體操作,請參見驗證eRDMA配置的正確性。
您可以根據驗證結果,選擇以下安裝eRDMA驅動或者為ECS實例綁定ERI等操作。
安裝eRDMA驅動。
如果您未在創建實例時候選擇eRDMA驅動,則實例不會自動安裝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
執行安裝腳本后,腳本會自動幫助您安裝eRDMA驅動所需的軟件依賴包以及eRDMA驅動,等待安裝腳本執行結束即可。
說明如果以腳本方式安裝驅動失敗,請您檢查安裝日志,安裝日志的具體路徑為:
/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不同安裝程序包版本的發布信息,請參見為ECS實例安裝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倉庫,然后才能獲取到對應的軟件包。
為已有ECS實例綁定ERI。
企業級實例,目前僅支持每個實例最多綁定1個ERI。詳細信息,請參見使用限制。
修改ECS實例已綁定的彈性網卡屬性,啟用ERI
具體操作,請參見修改已創建彈性網卡的RDMA接口。
通過OpenAPI創建開啟了ERI的輔助彈性網卡并綁定到實例
如果您是通過OpenAPI的方式創建并綁定輔助彈性網卡,則操作如下:
通過OpenAPI創建ERI。
您可以通過CreateNetworkInterface 創建一個彈性網卡,并設置NetworkInterfaceTrafficMode參數的值為HighPerformance,即創建一個開啟了ERI的彈性網卡。
調用成功后,請記錄返回數據中生成的彈性網卡ID(即
NetworkInterfaceId
對應的返回值)。調用AttachNetworkInterface,指定NetworkInterfaceId為上一步返回的網卡ID,指定InstanceId為目標實例ID,即將創建的開啟了ERI的彈性網卡綁定到目標實例上。
重要如果您的實例規格支持綁定多個ERI,為了獲取最大網絡帶寬,建議您在綁定時候為每張ERI指定不同的NetworkCardIndex,實現將不同的ERI綁定到不同的通道。詳細信息,請參見請求參數。
測試實例在eRDMA的寫延遲性能
您可以在兩臺配置了eRDMA的企業級實例上,安裝perftest
后通過ib_write_lat
進行寫延遲測試。關于perftest測試,請參見perftest測試集。
-R
:表示使用 RDMA CM(Connection Manager)來建立連接。RDMA CM 是一種用于管理 RDMA 連接的協議,它允許在不依賴于全局名稱服務的情況下建立連接。-a
:這個選項表示運行所有消息大小的測試,從 2 到 2^23 字節。這允許測試不同消息大小對延遲的影響。-F
:強制覆蓋任何現有連接。這意味著如果之前已經建立了連接,使用-F
選項會忽略這些連接并強制重新建立新的連接。-s
:設置消息交換的大小,默認為 2。-u
:設置 QP 超時時間,超時值為 4 微秒 * 2^(<timeout>
),默認為 14。
#bytes
: 消息大小,測試中使用的payload大小,從2字節到8388608字節不等。不同的消息大小可以幫助您了解不同負載下的性能表現。#iterations
: 迭代次數,表示每個消息大小的測試重復了多少次。高迭代次數可以提供更穩定的平均值和統計數據。t_min[usec]
: 最小延遲,單位是微秒,表示在所有測量中記錄到的最小延遲時間。這個值可以給您一個最佳情況下的網絡延遲參考。t_max[usec]
: 最大延遲,單位是微秒,表示在所有測量中記錄到的最大延遲時間。高的最大延遲可能指示網絡中的某些問題或者瞬時的擁塞。t_typical[usec]
: 典型延遲,單位是微秒,示在測試中常見的延遲時間。通常是所有測量值的中位數。t_avg[usec]
: 平均延遲,單位是微秒,表示所有測量值的平均延遲時間。這個值可以給您一個整體的網絡延遲印象。t_stdev[usec]
: 延遲的標準差,單位是微秒,表示延遲值的變異程度。較小的標準差意味著延遲比較穩定,而較大的標準差則表示延遲波動較大。99% percentile[usec]
: 99%分位數的延遲,單位是微秒,表示99%的測量值都低于這些值。這些數據點可以幫助您了解極端情況下的延遲表現。99.9% percentile[usec]
: 99.9%分位數的延遲,單位是微秒,表示99.9%的測量值都低于這些值。這些數據點可以幫助您了解極端情況下的延遲表現。
通過綜合這些數據,您可以對 RDMA 網絡的性能有一個全面的了解,并據此進行網絡優化和故障排除。例如,如果您發現在特定消息大小下延遲突然增加,您可能需要檢查網絡配置或硬件性能是否滿足要求。如果您看到延遲波動較大,可能需要進一步調查網絡中的擁塞情況或不穩定因素。
環境準備
準備兩臺配置了eRDMA(已安裝eRDMA軟件棧、彈性網卡開啟了RDMA接口)的企業級實例,分別作為服務端和客戶端。
確保網絡配置正確,兩臺服務器之間內網互通。詳細信息,請參見ECS實現內網互通。
測試步驟
分別遠程連接兩臺實例。
具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例。
驗證并保證兩臺實例eRDMA配置正確。
具體操作,請參見驗證eRDMA配置的正確性。
在兩臺實例上,分別執行以下命令,安裝perftest測試工具。
您可以選擇開通公網通過官方倉庫下載并安裝,或者直接通過yum/apt源進行安裝。
通過官方倉庫下載并安裝
為ECS實例開通公網,詳細信息,請參見為ECS實例開通公網。
訪問perftest官方倉庫下載并安裝perftest工具。
通過yum/apt源安裝
說明不同Linux發行版的軟件源中包含的perftest版本可能不一致,在通信時可能存在兼容性問題。建議您通信的實例使用相同的Linux發行版,否則請通過官方倉庫下載并安裝。
Alibaba Cloud Linux 3/CentOS/Anolis OS
sudo yum install perftest -y
Ubuntu
sudo apt install perftest -y
測試eRDMA網絡延遲是否符合預期表現。
在服務端實例上,執行以下命令,啟動
ib_write_lat
作為服務器,監聽來自客戶端的連接。ib_write_lat -R -a -F
在客戶端實例上,執行以下命令,啟動
ib_write_lat
,連接服務端。ib_write_lat -R -a -F <server_ip>
其中,
<server_ip>
是服務端ECS實例上綁定的eRDMA的彈性網卡所對應的私有IP地址。獲取IP地址的方法,請參見查看IP地址。查看測試結果。
客戶端測試完成后,
ib_write_lat
會輸出測試配置信息、連接信息以及性能測試結果(延遲相關的統計數據,包括最小、最大、平均延遲等性能指標)。詳細信息,請參見ib_write_lat測試結果說明。