すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:エンタープライズレベルのインスタンスでのeRDMAの設定

最終更新日:Dec 11, 2024

特定のエンタープライズレベルのElastic Compute Service (ECS) インスタンスにElastic Remote Direct Memory Access (eRDMA) を設定して、低レイテンシ、高スループット、高性能、高度にスケーラブルなRDMAネットワークサービスを使用し、ネットワークアーキテクチャを変更することなくネットワークパフォーマンスを向上させることができます。

制限事項

項目

説明

リージョン

eRDMAは、中国 (北京) 、中国 (上海) 、中国 (杭州) 、中国 (深セン) 、中国 (広州) 、中国 (ウランカブ) 、中国 (河源) の各リージョンでご利用いただけます。

インスタンスファミリー

次のインスタンスファミリーがeRDMAをサポートしています。

イメージ

  • Alibaba Cloud Linux 3 (推奨)

  • Alibaba Cloud Linux 2 for x86

  • x86のCentOS 7.9

  • Ubuntu 18.04/20.04/22.04

  • アーム用Anolis OS 8.4 ANCKおよびアーム用Anolis OS 8.6 ANCK

説明

選択できるイメージは、インスタンスタイプによって異なります。 eRDMAをサポートするインスタンスタイプを選択すると、選択可能なイメージがインスタンス購入ページに表示されます。

ネットワーク

  • IPv6アドレスをelastic RDMAインターフェイス (ERIs) に割り当てることはできません。

  • 2つのECSインスタンスがeRDMAを介して通信する場合、通信パスはServer Load Balancer (SLB) インスタンスなどのネットワーク要素をまたぐことはできません。

エンタープライズレベルのECSインスタンスでのeRDMAの設定

ECSインスタンスの作成時にeRDMAを設定する

重要
  • Alibaba Cloud Linux、Ubuntu、またはAnolis OSを実行するeRDMA対応インスタンスを作成する場合、eRDMAドライバーの自動インストールオプションを選択してeRDMAドライバーを自動的にインストールし、プライマリENIのERI機能を有効にすることで、eRDMAを有効にできます。

  • 選択したオペレーティングシステムバージョンの [eRDMAドライバーの自動インストール] オプションを選択できない場合、またはeRDMAドライバーの自動インストールに失敗した場合は、インスタンスの作成後に手動またはスクリプトを使用してドライバーをインストールできます。 詳細については、このトピックの「既存のインスタンスでのeRDMAの設定」セクションをご参照ください。

  • ECSインスタンスを起動した後、システムがeRDMAドライバーをインストールするまでしばらく待ちます。

  1. ECSインスタンス購入ページに移動します。

  2. ERIをサポートするエンタープライズレベルのECSインスタンスを作成します。 ECSインスタンスを作成するときは、次のパラメーターまたはオプションに注意してください。 ECSインスタンス購入ページのその他のパラメーターについては、「カスタム起動タブでインスタンスを作成する」をご参照ください。

    • インスタンスとイメージ: eRDMAをサポートするインスタンスタイプを選択し、eRDMAドライバをインストールします。

      インスタンス: 詳細については、このトピックの制限セクションを参照してください。

    • ENI: プライマリENIの右側にあるeRDMA Interfaceオプションを選択して、ERIをECSインスタンスにバインドします。

      image

説明

エンタープライズレベルのインスタンスを作成する場合、プライマリelastic network interface (ENI) に対してのみERI機能を有効にできます。 ECSコンソールで、またはAPI操作を呼び出すことによって、セカンダリENIのERI機能を有効にできます。

既存のECSインスタンスでeRDMAを設定する

  • eRDMAがインスタンスに期待どおりに設定されているかどうかを確認します。

  • eRDMAドライバのインストール

    インスタンスの作成時に [eRDMAドライバーの自動インストール] を選択しない場合、eRDMAドライバーはインスタンスに自動的にインストールされません。 eRDMAドライバを手動で、または実際のシナリオに基づいてスクリプトを使用してインストールします。

    • スクリプトを使用してeRDMAドライバーをインストールすると、最新の安定したeRDMAドライバーバージョンのインストールパッケージが自動的にダウンロードされます。

    • eRDMAドライバーを手動でインストールする場合は、特定のeRDMAドライバーバージョンのパッケージをダウンロードできます。

    スクリプトを実行してeRDMAドライバをインストールする

    • 次のコマンドを実行して、最新の安定したeRDMAドライバーパッケージをダウンロードします。

      curl -O http://mirrors.cloud.aliyuncs.com/erdma/env_setup.sh
    • 次のコマンドを実行して、eRDMAドライバーパッケージをインストールします。

      sudo /bin/bash env_setup.sh > /var/log/erdma_install.log 2>&1

      このスクリプトは、eRDMAドライバ、次にeRDMAドライバに必要な依存関係を自動的にインストールします。 スクリプトの実行が完了するまで待ちます。

      説明

      スクリプトを使用してeRDMAドライバーをインストールできない場合は、/var/log/erdma_install.logファイルのログを確認します。

    eRDMAドライバーの手動インストール

    • 前提条件パッケージを更新します。

      • Alibaba Cloud Linux 3、CentOS、およびAnolis OSの場合は、次のコマンドを実行します。

        sudo yum update -y
      • Ubuntuの場合は、この手順をスキップしてください。

    • 次のコマンドを順番に実行して、最新のカーネルパッケージバージョンとオペレーティングシステムのカーネルバージョンを照会します。

      rpm -qa | grep kernel  #Query the latest kernel package version.
      uname -r  #Query the operating system kernel version.

      次の図に示すコマンド出力は、カーネルパッケージのバージョンがオペレーティングシステムのカーネルのバージョンと同じであることを示しています。 この場合、追加の操作を実行する必要はありません。 バージョンが異なる場合は、ECSインスタンスを再起動して、バージョンを同じにします。

      image.png

    • 依存パッケージのインストール

      • ECSインスタンスが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
      • ECSインスタンスがArmインスタンスの場合、ビルドタスクはソースコードに基づいて実行されます。 この場合、多数の依存関係が必要であり、変更される場合があります。 この手順をスキップしてインストールスクリプトを実行できます。 インストールスクリプトで依存関係パッケージのインストールに失敗した場合は、必要な依存関係パッケージのインストールを求められます。 プロンプトに従って依存関係パッケージをインストールし、eRDMAドライバを再インストールします。

    • ドライバインストールパッケージをダウンロードします。

      • 次のコマンドを実行して、内部URLからeRDMAドライバーインストールパッケージをダウンロードします。

        wget http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-latest.tar.gz
      • 次のコマンドを実行して、パブリックURLからeRDMAドライバーインストールパッケージをダウンロードします。

        wget https://mirrors.aliyun.com/erdma/erdma_installer-latest.tar.gz

      この例では、最新のeRDMAドライババージョンのインストールパッケージがダウンロードされています。 ビジネスシナリオに基づいて、特定のeRDMAドライバーバージョンのインストールパッケージをダウンロードできます。 eRDMAインストールパッケージのさまざまなバージョンのリリースについては、「eRDMAの使用」トピックの「ECSインスタンスにeRDMAドライバをインストールする」セクションをご参照ください。

    • 次のコマンドを実行してインストールパッケージを解凍し、インストールパッケージの解凍先ディレクトリに移動します

      tar -xvf erdma_installer-latest.tar.gz && cd erdma_installer
    • 次のいずれかの方法でeRDMAドライバをインストールします。

      • 方法1: 次のコマンドを実行してeRDMAドライバをインストールします。 インストールプロセス中に、関連するアンインストール手順と自動インストール手順を確認します。

        sudo sh install.sh
      • 方法2: 次のコマンドを実行して、eRDMAドライバを自動的にインストールします。

        sudo sh install.sh  --batch

      コマンド出力を表示して、ドライバがインストールされているかどうかを確認します。

      次のコマンド出力は、eRDMAドライバがインストールされていることを示します。

      4.png

      次のコマンド出力は、eRDMAドライバのインストールに失敗したことを示しています。 プロンプトに従って操作を実行し、eRDMAドライバを再インストールします。

      5.png

      説明

      ECSインスタンスがCentOS 7を実行していて、ドライバーの再インストール時にパッケージが見つからないことを示すエラーメッセージが表示された場合、yumコマンドを実行してパッケージの取得に失敗する可能性があります。 この場合、パッケージを取得する前に、yum install -y epel-releaseコマンドを実行してExtra Packages for Enterprise Linux (EPEL) リポジトリをインストールする必要があります。

  • ECSインスタンスにERIをバインドします。

    各エンタープライズレベルのECSインスタンスにバインドできるERIは1つだけです。 詳細については、このトピックの制限セクションを参照してください。

eRDMA書き込みレイテンシのテスト

eRDMAが設定されている2つのエンタープライズレベルのインスタンスで、ib_write_latを使用してPerftestをインストールし、書き込みレイテンシをテストできます。 Perftestテストの詳細については、「eRDMAの使用」トピックのPerftestテストセットセクションを参照してください。

ib_write_latパラメーター

  • -R: RDMA接続マネージャ (CM) を使用して接続を確立します。 RDMA CMプロトコルは、RDMA接続を管理するために使用され、グローバルネームサービスを必要とせずにRDMA接続を確立することができる。

  • -a: すべてのサイズでテストメッセージを送信します。 サイズ範囲は2バイトから2 ^ 23バイトです。 これにより、さまざまなメッセージサイズがレイテンシに与える影響をテストできます。

  • -F: 既存の接続を強制的に置き換えます。 既存のRDMA接続が必要ない場合は、既存の接続を無視して新しい接続を確立するように -Fパラメーターを設定します。

  • -s: 交換するメッセージのサイズを指定します。 デフォルト値:2

  • -u: キューペア (QP) タイムアウト期間の電力値 (マイクロ秒単位) を指定します。 タイムアウト時間は、4 × 2 ^( <Power value>) を用いて計算される。 デフォルト値: 14。

ib_write_latテスト結果のレイテンシデータ

  • #bytes: テストメッセージのペイロードのサイズ。 有効な値: 2 ~ 8388608 単位はバイトです。 異なるメッセージサイズは、異なる負荷でのパフォーマンスを理解するのに役立ちます。

  • #iterations: 反復回数。各サイズのメッセージを繰り返しテストする回数を指定します。 より大きな値は、平均値を含むより安定した統計結果を示す。

  • t_min[usec]: すべてのテストで記録された最小レイテンシ。 単位:マイクロ秒。 この値は、最良のネットワーク待ち時間の参照を提供します。

  • t_max[usec]: すべてのテストで記録された最大レイテンシ。 単位:マイクロ秒。 大きな値は、特定のネットワーク問題または一時的なトラフィック輻輳を示し得る。

  • t_typical[usec]: テストで記録された典型的なレイテンシ。 単位:マイクロ秒。 ほとんどの場合、値はすべてのテストの中央値です。

  • t_avg[usec]: すべてのテストの平均レイテンシ。 単位:マイクロ秒。 平均レイテンシは、ネットワークレイテンシに関する全体的なユーザーエクスペリエンスを反映します。

  • t_stdev[usec]: レイテンシの標準偏差。 単位:マイクロ秒。 値が小さいほど、レイテンシが安定していることを示す。 値が大きいほどレイテンシが変動することを示す。

  • 99% パーセンタイル [usec]: 99パーセンタイルでのレイテンシ値。テスト結果のレイテンシ値の99% がこの値よりも低いことを示します。 単位:マイクロ秒。 99パーセンタイルのデータポイントは、極端な場合のレイテンシーのパフォーマンスを理解するのに役立ちます。

  • 99.9% パーセンタイル [usec]: 99.9パーセンタイルのレイテンシ値。テスト結果のレイテンシ値の99.9% がこの値よりも低いことを示します。 単位:マイクロ秒。 99.9パーセンタイルのデータポイントは、極端な場合のレイテンシーのパフォーマンスを理解するのに役立ちます。

上記のレイテンシ統計では、ネットワークパフォーマンスの最適化とネットワークの問題のトラブルシューティングに役立つRDMAネットワークパフォーマンスの包括的な理解が得られます。 たとえば、特定のサイズのテストメッセージが送信されたときに、テスト結果がレイテンシの急激な増加を示す場合、ネットワーク構成またはハードウェアパフォーマンスがビジネス要件を満たしているかどうかを確認できます。 テスト結果がレイテンシの変動を示している場合は、トラフィックの輻輳またはネットワークの不安定性の問題を確認できます。

環境の準備

  1. サーバークライアントとして機能するエンタープライズレベルのECSインスタンスを2つ作成します。 ECSインスタンスにeRDMA設定 (eRDMAソフトウェアスタックのインストールやERI機能の有効化など) があることを確認します。

  2. インスタンスに有効なネットワーク設定があり、内部ネットワークを介して相互に通信できることを確認します。 詳細については、「内部ネットワークを介したECSインスタンスの接続」をご参照ください。

手順

  1. 2つのECSインスタンスに接続します。

    詳細については、「Workbenchを使用したSSH経由のLinuxインスタンスへの接続」をご参照ください。

  2. 両方のインスタンスのeRDMA設定が正しいことを確認して確認します。

    詳細については、「eRDMAの使用」トピックの「eRDMA設定の正しさの確認」をご参照ください。

  3. 各ECSインスタンスにPerftestをインストールします。

  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インスタンスにバインドされているERIのプライベートIPアドレスに置き換えます。 IPアドレスの照会方法については、「IPアドレスの表示」をご参照ください。

    3. テスト結果を確認してください。

      クライアントのテスト後、ib_write_latテスト構成情報接続情報、およびパフォーマンステスト結果を出力します。 統計には、最小レイテンシ、最大レイテンシ、および平均レイテンシが含まれます。 詳細については、このトピックの「ib_write_latテスト結果の待ち時間データ」をご参照ください。

      image