全部產品
Search
文件中心

Elastic Compute Service:在企業級執行個體上使用eRDMA

更新時間:Nov 22, 2024

部分企業級ECS執行個體支援配置eRDMA,可以實現在不需要修改現有網路架構的情況下,體驗超低延遲、大吞吐、高彈性的高效能RDMA網路服務。

使用限制

限制項

說明

地區

支援華北2(北京)、華東2(上海)、華東1(杭州)、華南1(深圳)、華南3(廣州)、華北6(烏蘭察布)、華南2(河源)

執行個體規格

支援eRDMA的執行個體規格如下:

鏡像

  • Alibaba Cloud Linux 3(推薦)

  • Alibaba Cloud Linux 2(僅x86系統支援)

  • CentOS 7.9(僅x86系統支援)

  • Ubuntu 18.04/20.04/22.04

  • Anolis OS 8.4 ANCK/8.6 ANCK(僅Arm版本支援)

說明

不同執行個體規格可選擇的鏡像範圍不同,實際可選擇的鏡像以購買頁面的實際展示為準。

eRDMA裝置數量

您可以通過DescribeInstanceTypes返回參數中的EriQuantity的值,查詢執行個體規格支援綁定ERI的最大數量(0表示不支援彈性RDMA介面)。

網路限制

  • 網卡開啟彈性RDMA介面後,不支援分配IPv6地址。

  • 兩個執行個體之間通過彈性RDMA通訊,通訊鏈路中間不支援跨網元裝置(例如Server Load Balancer等)。

為企業級執行個體配置eRDMA

購買執行個體時配置eRDMA

重要
  • 當支援eRDMA能力的執行個體的作業系統為Alibaba Cloud Linux、Ubuntu和Anolis OS時,支援在建立執行個體時自動安裝eRDMA驅動並開啟彈性RDMA介面,使能eRDMA,免去手動安裝的麻煩。

  • 對於不支援安裝eRDMA驅動的作業系統或自動安裝失敗的情況,您可以在執行個體建立完成後,通過指令碼方式或手動方式安裝驅動。具體操作,請參見為已有執行個體配置eRDMA

  • 在購買的執行個體啟動後,eRDMA驅動安裝可能需要一段時間,請您耐心等待。

  1. 前往執行個體購買頁

  2. 建立支援ERI的企業級執行個體。建立過程中需注意以下配置項(其他參數,請參見自訂購買執行個體):

    • 執行個體和鏡像:選擇支援eRDMA的執行個體規格,並安裝eRDMA驅動。

      • 執行個體:請參見使用限制

      • 鏡像選擇公用鏡像,選中出現的安裝eRDMA驅動。執行個體啟動過程中會自動安裝eRDMA驅動,無需您再手動安裝。

        image

    • 彈性網卡主網卡右側選擇開啟彈性RDMA介面,為ECS執行個體綁定ERI。

      image

      說明

      購買企業級執行個體時,僅支援為主網卡啟用彈性RDMA介面。如果您需要為輔助網卡配置eRDMA,您可以通過控制台或OpenAPI方式為輔助彈性網卡開啟RDMA介面。具體操作,請參見彈性RDMA網卡(ERI)

為已有執行個體配置eRDMA

  • 驗證執行個體eRDMA是否配置正確。

  • 安裝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  #查看作業系統的核心版本

      系統返回樣本資訊如下,表示兩者版本一致,無需進行額外操作。若版本不一致,則需要重啟執行個體使其生效。

      image.png

    • 執行以下命令,安裝依賴的軟體包

      • 對於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

      根據返回資訊,確認安裝結果。

      若系統返回如下資訊,則表示安裝驅動成功。

      4.png

      若系統返回如下資訊,則表示提示安裝驅動失敗,請按照提示資訊操作,完成後重新嘗試安裝驅動。

      5.png

      說明

      如果您使用的是CentOS 7系統,並且重新安裝驅動過程中提示缺少軟體包,但您無法通過yum擷取到,您可能需要執行yum install -y epel-release命令,先安裝epel-release倉庫,然後才能擷取到對應的軟體包。

  • 為已有ECS執行個體綁定ERI。

    企業級執行個體,目前僅支援每個執行個體最多綁定1個ERI。詳細資料,請參見使用限制

    • 通過OpenAPI建立開啟了ERI的輔助彈性網卡並綁定到執行個體

      如果您是通過OpenAPI的方式建立並綁定輔助彈性網卡,則操作如下:

      1. 通過OpenAPI建立ERI。

        您可以通過CreateNetworkInterface 建立一個彈性網卡,並設定NetworkInterfaceTrafficMode參數的值為HighPerformance,即建立一個開啟了ERI的彈性網卡。

        調用成功後,請記錄返回資料中產生的彈性網卡ID(即NetworkInterfaceId對應的傳回值)。

      2. 調用AttachNetworkInterface,指定NetworkInterfaceId為上一步返回的網卡ID,指定InstanceId為目標執行個體ID,即將建立的開啟了ERI的彈性網卡綁定到目標執行個體上。

        重要

        如果您的執行個體規格支援綁定多個ERI,為了擷取最大網路頻寬,建議您在綁定時候為每張ERI指定不同的NetworkCardIndex,實現將不同的ERI綁定到不同的通道。詳細資料,請參見請求參數

測試執行個體在eRDMA的寫延遲效能

您可以在兩台配置了eRDMA的企業級執行個體上,安裝perftest後通過ib_write_lat進行寫延遲測試。關於perftest測試,請參見perftest測試集

ib_write_lat常用參數說明

  • -R:表示使用 RDMA CM(Connection Manager)來建立串連。RDMA CM 是一種用於管理 RDMA 串連的協議,它允許在不依賴於全域名稱服務的情況下建立串連。

  • -a:這個選項表示運行所有訊息大小的測試,從 2 到 2^23 位元組。這允許測試不同訊息大小對延遲的影響。

  • -F:強制覆蓋任何現有串連。這意味著如果之前已經建立了串連,使用 -F 選項會忽略這些串連並強制重建立立新的串連。

  • -s:設定訊息交換的大小,預設為 2。

  • -u:設定 QP 逾時時間,逾時值為 4 微秒 * 2^(<timeout>),預設為 14。

ib_write_lat測試結果延遲資料說明

  • #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 網路的效能有一個全面的瞭解,並據此進行網路最佳化和故障排除。例如,如果您發現在特定訊息大小下延遲突然增加,您可能需要檢查網路設定或硬體效能是否滿足要求。如果您看到延遲波動較大,可能需要進一步調查網路中的擁塞情況或不穩定因素。

環境準備

  1. 準備兩台配置了eRDMA(已安裝eRDMA軟體棧、彈性網卡開啟了RDMA介面)的企業級執行個體,分別作為服務端用戶端

  2. 確保網路設定正確,兩台伺服器之間內網互連。詳細資料,請參見ECS實現內網互連

測試步驟

  1. 分別遠端連線兩台執行個體。

    具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體

  2. 驗證並保證兩台執行個體eRDMA配置正確。

    具體操作,請參見驗證eRDMA配置的正確性

  3. 在兩台執行個體上,分別執行以下命令,安裝perftest測試載入器。

    您可以選擇開通公網通過官方倉庫下載並安裝,或者直接通過yum/apt源進行安裝。

    通過官方倉庫下載並安裝

    1. 為ECS執行個體開通公網,詳細資料,請參見ECS實現公網通訊

    2. 訪問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
  4. 測試eRDMA網路延遲是否符合預期表現。

    1. 在服務端執行個體上,執行以下命令,啟動 ib_write_lat 作為伺服器,監聽來自用戶端的串連。

      ib_write_lat -R -a -F
    2. 在用戶端執行個體上,執行以下命令,啟動 ib_write_lat,串連服務端。

      ib_write_lat -R -a -F <server_ip>

      其中,<server_ip>是服務端ECS執行個體上綁定的eRDMA的彈性網卡所對應的私人IP地址。擷取IP地址的方法,請參見查看IP地址

    3. 查看測試結果。

      用戶端測試完成後,ib_write_lat 會輸出測試組態資訊串連資訊以及效能測試結果(延遲相關的統計資料,包括最小、最大、平均延遲等效能指標)。詳細資料,請參見ib_write_lat測試結果說明

      image