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

Elastic Compute Service:エンタープライズレベルインスタンスでの eRDMA の有効化

最終更新日:Mar 01, 2026

一部のエンタープライズレベルの Elastic Compute Service (ECS) インスタンスは、elastic Remote Direct Memory Access (eRDMA) をサポートしています。この機能は、既存のネットワークアーキテクチャを変更することなく、超低レイテンシー、高スループット、高弾力性を備えた高性能な RDMA ネットワークサービスを提供します。このトピックでは、エンタープライズレベルの ECS インスタンスで eRDMA を有効にする方法について説明します。

制限事項

制限事項

説明

インスタンスタイプ

以下のインスタンスファミリーは eRDMA をサポートしています:

g9ae、c9ae、r9ae、g9a、c9a、r9a、u2a などの一部のインスタンスタイプでは、eRDMA をサポートするために 4 つ以上の vCPU が必要です。

クリックしてサポートされているインスタンスタイプを表示

イメージ

  • Alibaba Cloud Linux 3 (推奨)

  • Alibaba Cloud Linux 2 (x86 ベースのシステムのみ)

  • CentOS 7.9 (x86 ベースのシステムのみ)

  • Ubuntu 18.04、20.04、22.04、または 24.04

  • Anolis OS 8.4 ANCK または 8.6 ANCK (Arm ベースのシステムのみ)

説明

利用可能なイメージはインスタンスタイプによって異なります。インスタンス購入ページで利用可能なイメージが最終的なものです。

eRDMA デバイスの数

特定のインスタンスタイプの ECS インスタンスにバインドできる ERI の最大数を照会するには、DescribeInstanceTypes 操作を呼び出し、応答の EriQuantity パラメーターの値を確認します。値が 0 の場合、そのインスタンスタイプの ECS インスタンスに ERI をバインドできないことを示します。

ネットワークの制限

  • ENI (Elastic Network Interface) の ERI 機能を有効にした後、その ENI に IPv6 アドレスを割り当てることはできません。

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

  • eRDMA 対応の GPU インスタンスは、eRDMA の動作モードが異なるため、eRDMA 対応のエンタープライズレベルインスタンスと直接通信できません。通信を有効にするには、GPU インスタンスに eRDMA をデプロイするのと同じ方法で、エンタープライズレベルインスタンスに eRDMA をデプロイする必要があります。これには、eRDMA および OpenFabrics Enterprise Distribution (OFED) ドライバーのインストールと、エンタープライズレベルインスタンスへの ERI のアタッチが含まれます。詳細については、「GPU インスタンスでの eRDMA の有効化」をご参照ください。

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

インスタンス作成時の eRDMA の設定

重要
  • オペレーティングシステムが eRDMA ドライバーをサポートしていない場合、または自動インストールに失敗した場合は、インスタンス作成後にスクリプトを使用するか手動でドライバーをインストールできます。詳細については、「既存インスタンスでの eRDMA の設定」をご参照ください。

  • インスタンスの起動後、eRDMA ドライバーのインストールが完了するまでに時間がかかる場合があります。

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

  2. ERI をサポートするエンタープライズレベルのインスタンスを作成します。作成プロセス中に、以下の設定項目に注意してください。その他のパラメーターについては、「ウィザードを使用したインスタンスの作成」をご参照ください。

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

      • インスタンス:詳細については、「制限事項」をご参照ください。

      • イメージ[パブリックイメージ] を選択し、次に [eRDMA ドライバーのインストール] を選択します。eRDMA ドライバーはインスタンスの起動時に自動的にインストールされます。手動でインストールする必要はありません。

        image

    • ENIプライマリ ENI の右側で、ERI 機能を有効にして ERI を ECS インスタンスにアタッチします。

      image

      説明

      エンタープライズレベルのインスタンスを購入する場合、ERI 機能はプライマリ ENI に対してのみ有効にできます。セカンダリ ENI に eRDMA を設定するには、コンソールで、または API 操作を呼び出して、セカンダリ ENI の ERI 機能を有効にできます。詳細については、「Elastic RDMA Interface (ERI)」をご参照ください。

既存インスタンスでの eRDMA の設定

  1. インスタンスタイプが eRDMA をサポートするインスタンスタイプのリスト に含まれていることを確認します。

    インスタンスタイプは eRDMA をサポートしている必要があります。

  2. インスタンスで eRDMA が正しく設定されていることを確認します。

    • まず、インスタンスで eRDMA が正しく設定されていることを確認します。詳細については、「eRDMA 設定の確認」をご参照ください。

    • インスタンスに eRDMA が設定されていないことを確認した場合は、次の手順を実行して eRDMA ドライバーをインストールし、ERI をインスタンスにアタッチします。

  3. インスタンスへの eRDMA ドライバーのインストール

    インスタンス作成時に [eRDMA ドライバー] を選択しなかった場合、ドライバーは自動的にインストールされません。その場合は、手動またはスクリプトを使用してインストールする必要があります。

    • スクリプトベースのインストール:デフォルトで最新の安定版ドライバーパッケージがダウンロードされます。

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

    ワンクリックスクリプトによるインストール

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

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

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

      インストールスクリプトを実行すると、スクリプトは eRDMA ドライバーに必要なソフトウェアの依存関係を自動的にインストールし、その後 eRDMA ドライバーをインストールします。スクリプトの実行が完了するまでお待ちください。

      説明

      スクリプトを使用してドライバーのインストールに失敗した場合は、インストールログを確認してください。インストールログのパスは /var/log/erdma_install.log です。

    手動でのステップバイステップインストール

    1. 次のコマンドを実行して、前提条件となるソフトウェアパッケージを更新します。

      • Alibaba Cloud Linux 3、CentOS、または Anolis OS の場合:

        sudo yum update -y
      • Ubuntu の場合:更新を実行する必要はありません。このステップをスキップしてください。

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

      rpm -qa | grep kernel  # 最新のカーネルパッケージバージョンを表示します。
      uname -r  # オペレーティングシステムのカーネルバージョンを表示します。

      コマンドの出力が次の例のようであれば、バージョンは一致しており、これ以上の操作は必要ありません。バージョンが一致しない場合は、インスタンスを再起動して変更を有効にしてください。

      image.png

    3. 次のコマンドを実行して、依存関係パッケージをインストールします。

      • 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 linux-headers-generic
      • Arm ベースのインスタンスの場合、ビルドタスクはソースコードに基づいて実行されます。このプロセスには多くのソフトウェア依存関係が必要であり、変更される可能性があります。このステップをスキップして、インストールスクリプトを直接実行できます。インストールスクリプトが失敗した場合は、必要なソフトウェア依存関係をインストールするように求められます。プロンプトに従って依存関係をインストールし、再度ソフトウェアのインストールを実行してください。

    4. 次のコマンドを実行して、ドライバーインストールパッケージをダウンロードします。

      • 内部ネットワークアドレスからソフトウェアパッケージを取得します。

        wget http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-latest.tar.gz
      • インターネットアドレスからソフトウェアパッケージを取得します。

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

      デフォルトでは、最新バージョンのドライバーインストールパッケージがダウンロードされます。特定のバージョンのドライバーパッケージをダウンロードすることもできます。eRDMA インストールパッケージのさまざまなバージョンのリリースについては、「ステップ 2:ECS インスタンス用の eRDMA ドライバーのインストール」をご参照ください。

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

      tar -xvf erdma_installer-latest.tar.gz && cd erdma_installer
    6. 次のコマンドを実行して、ドライバーをインストールします。

      • 方法 1:インストールプロセス中にアンインストールと自動ダウンロードのステップを手動で確認します。

        sudo sh install.sh
      • 方法 2:確認なしでインストールする

        sudo sh install.sh  --batch

      返された情報に基づいてインストール結果を確認します。

      次の情報が返された場合、ドライバーはインストールされています。

      4.png

      次の情報が返された場合、ドライバーのインストールに失敗しました。プロンプトに従って操作を実行し、再度ドライバーのインストールを試みてください。

      5.png

      説明

      CentOS 7 システムを使用していて、ドライバーの再インストール時にソフトウェアパッケージが不足しているというメッセージが表示され、yum を使用してパッケージを取得できない場合は、パッケージを取得する前に yum install -y epel-release コマンドを実行して EPEL リポジトリをインストールする必要がある場合があります。

  4. インスタンスへの ERI のアタッチ

    次のいずれかの方法でインスタンスに ERI をアタッチできます。

    説明

    特定のインスタンスタイプの ECS インスタンスにバインドできる ERI の最大数を照会するには、DescribeInstanceTypes 操作を呼び出し、応答の EriQuantity パラメーターの値を確認します。値が 0 の場合、そのインスタンスタイプの ECS インスタンスに ERI をバインドできないことを示します。

    • ECS インスタンスにバインドされている ENI の ERI 機能を有効にする

      ENI の属性を変更することで、ECS インスタンスにバインドされている ENI の ERI 機能を有効にできます。詳細については、「ERI」トピックの「既存の ENI の ERI 機能のステータスを変更する」セクションをご参照ください。

    • ERI を作成し、ERI を ECS インスタンスにバインドする

    • API 操作を呼び出して ERI を作成し、ERI を ECS インスタンスにバインドする

      次の手順を実行します:

      1. API 操作を呼び出して ERI を作成します。

        CreateNetworkInterface 操作を呼び出して ENI を作成し、NetworkInterfaceTrafficMode パラメーターを HighPerformance に設定して ENI の ERI 機能を有効にします。

        呼び出しが成功したら、ERI ID である NetworkInterfaceId パラメーターの戻り値を記録します。

      2. NetworkInterfaceId パラメーターを前のステップで記録した戻り値に設定し、InstanceId パラメーターを ECS インスタンスの ID に設定して、AttachNetworkInterface 操作を呼び出して ERI を ECS インスタンスにバインドします。

        重要

        ECS インスタンスのインスタンスタイプがインスタンスごとに複数の ERI をサポートしている場合、複数の ERI をインスタンスにバインドする際には、ERI ごとに NetworkCardIndex パラメーターに異なる値を設定することをお勧めします。これにより、ERI が異なるチャネルにバインドされ、インスタンスの最大ネットワーク帯域幅が達成されます。詳細については、「ネットワークカードインデックス」をご参照ください。

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

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

前提条件

  1. eRDMA が設定された2 つのエンタープライズレベルインスタンスを準備します。eRDMA ソフトウェアスタックがインストールされ、ERI がインスタンスにアタッチされている必要があります。1 つのインスタンスはサーバーとして、もう 1 つはクライアントとして機能します。

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

手順

  1. 2 つのインスタンスにリモートで接続します。

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

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

    詳細については、「eRDMA 設定の確認」をご参照ください。

  3. 2 つのインスタンスで次のコマンドを実行して、perftest ツールをインストールします。

    公式の perftest リポジトリから perftest パッケージをダウンロードしてインストールするか、Yellowdog Updater, Modified (YUM) または Advanced Packaging Tool (APT) リポジトリを使用して perftest をインストールできます。

    公式 perftest リポジトリ

    1. perftest をインストールする ECS インスタンスのパブリック帯域幅を有効にします。詳細については、「パブリック帯域幅の有効化」をご参照ください。

    2. 公式 perftest リポジトリから perftest パッケージをダウンロードして perftest をインストールします。

    YUM または APT リポジトリ

    説明

    異なる Linux ディストリビューションのリポジトリには、異なるバージョンの perftest が含まれています。互換性の問題が発生する可能性があります。互換性の問題を避けるため、perftest をインストールする ECS インスタンスが実行している Linux ディストリビューションを特定し、同じ Linux ディストリビューションのリポジトリに含まれる perftest バージョンをインストールすることをお勧めします。そうでない場合は、公式 perftest リポジトリから perftest パッケージをダウンロードして perftest をインストールしてください

    • 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
      • -R:RDMA_CM を使用して接続を確立します。

        重要
        • デフォルトでは、eRDMA をサポートする CPU ベースのインスタンスタイプは、標準モードで eRDMA カーネルドライバーをインストールします。このモードでは、RDMA_CM 接続確立方法のみがサポートされます。詳細については、「接続確立方法」をご参照ください。

        • デフォルトでは、perftest はアウトオブバンド (OOB) 接続を確立します。CPU ベースのインスタンスで perftest テストを実行する場合、サーバーとクライアントの両方で -R パラメーターを指定して、RDMA_CM 接続確立方法を使用できます。そうしないと、接続確立時に例外が発生する可能性があります。

        • コマンドラインを使用して、RDMA_CM と OOB の接続確立方法を互換させることもできます。詳細については、「eRDMA と bRPC の接続確立モードを変更して互換性を確保する」をご参照ください。方法を互換させた後、コマンドに -R パラメーターを追加する必要はありません。

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

      • -F:既存の接続を強制的に上書きします。これは、以前に接続が確立されていた場合、-F オプションを使用すると既存の接続を無視して新しい接続を強制的に確立することを意味します。

    2. クライアントインスタンスで、次のコマンドを実行して ib_write_lat を起動し、サーバーに接続します。

      ib_write_lat -R -a -F <server_ip>

      <server_ip> を、サーバー ECS インスタンスで ERI 機能が有効になっているネットワークインターフェースカード (NIC) のプライベート IP アドレスに置き換えます。IP アドレスの取得方法については、「IP アドレスの表示」をご参照ください。

    3. テスト結果を表示します。

      クライアントテストが完了すると、ib_write_latテスト設定情報接続情報、およびパフォーマンステスト結果を出力します。結果には、最小、最大、平均レイテンシーなどのレイテンシー関連の統計が含まれます。

      image

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

      • #bytes:メッセージサイズ。これは、テストで使用されるペイロードのサイズで、2 バイトから 8,388,608 バイトの範囲です。さまざまなメッセージサイズは、さまざまな負荷の下でのパフォーマンスを理解するのに役立ちます。

      • #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 ネットワークのパフォーマンスを包括的に理解し、ネットワークの最適化やトラブルシューティングに役立てることができます。たとえば、特定のメッセージサイズでレイテンシーが急激に増加することを発見した場合、ネットワーク設定やハードウェアのパフォーマンスが要件を満たしているかどうかを確認する必要があるかもしれません。レイテンシーに大きな変動が見られる場合は、ネットワークの輻輳や不安定性をさらに調査する必要があるかもしれません。