一部のエンタープライズレベルの Elastic Compute Service (ECS) インスタンスは eRDMA をサポートしています。この機能は、既存のネットワークアーキテクチャを変更することなく、超低レイテンシー、高スループット、高い弾力性を備えた RDMA ネットワークサービスを提供します。このトピックでは、エンタープライズレベルの ECS インスタンスで eRDMA を有効化する方法について説明します。
制限事項
制限事項 | 説明 |
インスタンスタイプ | 次のインスタンスタイプは eRDMA をサポートしています: |
イメージ |
説明 利用可能なイメージはインスタンスタイプによって異なります。インスタンス購入ページには、選択したインスタンスタイプと互換性のあるイメージのみが表示されます。 |
eRDMA デバイス数 | 特定のインスタンスタイプの ECS インスタンスにバインドできる ERI の最大数をクエリするには、DescribeInstanceTypes 操作を呼び出し、応答の EriQuantity パラメーターの値を確認します。値 0 は、そのインスタンスタイプの ECS インスタンスに ERI をバインドできないことを示します。 |
ネットワークの制限事項 |
|
エンタープライズインスタンスでの eRDMA の設定
インスタンス作成時
オペレーティングシステムが eRDMA ドライバーの自動インストールをサポートしていない場合、または自動インストールに失敗した場合は、インスタンス作成後に手動またはスクリプトでドライバーをインストールできます。詳細については、「既存のインスタンスの場合」をご参照ください。
eRDMA ドライバーのインストールはインスタンス起動後に開始され、完了までに時間がかかる場合があります。
ERI 機能をサポートするエンタープライズレベルインスタンスを作成します。インスタンス作成時に、次のパラメーターに注意してください。その他のパラメーターについては、「ウィザードを使用してインスタンスを作成」をご参照ください。
インスタンスとイメージ:eRDMA をサポートするインスタンスタイプを選択し、eRDMA ドライバーをインストールします。
インスタンス:詳細については、「制限事項」をご参照ください。
イメージ:公開イメージ を選択し、次に [Install eRDMA Driver] を選択します。eRDMA ドライバーは、インスタンスの起動時に自動的にインストールされます。

ENI:[Primary ENI] の右側で ERI 機能を有効化し、ERI を ECS インスタンスにバインドします。
説明エンタープライズレベルインスタンスの作成時に ERI 機能を有効化できるのは、プライマリ ENI のみです。セカンダリ ENI に対して eRDMA を設定する必要がある場合は、コンソールまたは API を呼び出して、セカンダリ ENI で ERI 機能を有効化できます。詳細については、「Elastic RDMA ネットワークインターフェースカード (ERI)」をご参照ください。
既存のインスタンスの場合
インスタンスタイプが「eRDMA をサポートするインスタンスタイプのリスト」に含まれていることを確認します。
eRDMAをサポートするインスタンスタイプを選択する必要があります。インスタンス上の eRDMA 設定を確認します。
インスタンスで eRDMA が正しく設定されているかを確認します。詳細については、「eRDMA 設定の確認」をご参照ください。
eRDMA が設定されていない場合は、eRDMA ドライバーをインストールし、ERI をバインドします。
インスタンスに eRDMA ドライバーをインストールします。
インスタンス作成時に [eRDMA Driver] を選択しなかった場合、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 ドライバーが自動的にインストールされます。インストールが完了するまで待機してください。
説明ドライバーのインストールスクリプトが失敗した場合は、
/var/log/erdma_install.logのインストールログを確認してください。
手動インストール
次のコマンドを実行して、前提条件となるパッケージを更新 します。
Alibaba Cloud Linux 3、CentOS、または Anolis OS:
sudo yum update -yUbuntu:更新は不要です。この手順をスキップしてください。
次のコマンドを順に実行して、最新のカーネルパッケージバージョンと実行中のカーネルバージョン を確認します。
rpm -qa | grep kernel # 最新のカーネルパッケージバージョンを表示します。 uname -r # オペレーティングシステムの実行中のカーネルバージョンを表示します。次のサンプル出力のようにバージョンが同一であれば、追加の操作は不要です。バージョンが異なる場合は、変更を有効にするためにインスタンスを再起動する必要があります。

次のコマンドを実行して、依存パッケージ をインストールします。
x86 インスタンスの場合は、次の操作を実行します:
Alibaba Cloud Linux 3、CentOS、または Anolis OS:
sudo yum install gcc-c++ dkms cmake kernel-devel kernel-headers libnl3 libnl3-develUbuntu:
sudo apt-get install dkms cmake libnl-3-dev libnl-route-3-dev linux-headers-generic
Arm インスタンスはソースベースのビルドタスクが必要なため、多数の依存パッケージがあり、変更される可能性があります。そのため、この手順をスキップしてインストールスクリプトを直接実行できます。インストールスクリプトが失敗した場合は、必要な依存パッケージをインストールするよう促されます。プロンプトに従ってインストールし、その後インストールスクリプトを再実行してください。
次のコマンドを実行して、ドライバーのインストールパッケージ をダウンロードします。
内部 URL からパッケージを取得します:
wget http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-latest.tar.gzパブリック URL からパッケージを取得します:
wget https://mirrors.aliyun.com/erdma/erdma_installer-latest.tar.gz
デフォルトでは、ドライバーのインストールパッケージの最新バージョンがダウンロードされます。要件に応じて特定のバージョンをダウンロードすることもできます。各 eRDMA インストーラーパッケージバージョンのリリース情報については、「Step 2: Install the eRDMA driver for an ECS instance」をご参照ください。
次のコマンドを実行して、インストールパッケージを展開し、ファイルディレクトリに移動 します。
tar -xvf erdma_installer-latest.tar.gz && cd erdma_installer次のコマンドを実行して、ドライバーをインストール します。
方法 1:インストール中にアンインストールと自動ダウンロードの手順を手動で確認します。
sudo sh install.sh方法 2:確認なしでインストールを実行します。
sudo sh install.sh --batch
出力でインストール結果を確認します。
次の情報が返された場合、ドライバーは正常にインストールされています。

次の情報が返された場合、ドライバーのインストールに失敗しています。プロンプトの指示に従い、再度ドライバーのインストールを試行してください。
説明CentOS 7 を使用していて、ドライバーの再インストール中にパッケージが不足しており、
yumで取得できない場合は、yum install -y epel-releaseコマンドを実行して EPEL リポジトリをインストールする必要がある場合があります。その後、必要なパッケージを取得できます。
インスタンスに ERI をバインドします。
ERI は次のいずれかの方法でインスタンスにバインドできます。
説明DescribeInstanceTypes API オペレーションを呼び出して、インスタンスタイプがサポートする ERI の最大数を照会できます。応答内の EriQuantity パラメーターの値を確認してください。値が 0 の場合、そのインスタンスタイプは ERI をサポートしていません。
-
バインド済み ENI の属性を変更して eRDMA インターフェイスを有効化
「ENI の属性の変更」をご参照ください。
-
ERI を作成して ECS インスタンスにバインド
-
ERI を作成するには、「スタンドアロン ERI の作成」をご参照ください。
-
ERI を ECS インスタンスにバインドするには、「セカンダリ ENI のバインド」をご参照ください。
-
-
API オペレーションを使用して eRDMA インターフェイスが有効なセカンダリ ENI を作成し、インスタンスにバインド
API オペレーションを使用してセカンダリ ENI を作成およびバインドします。
-
API オペレーションを呼び出して ERI を作成します。
CreateNetworkInterface オペレーションを呼び出し、NetworkInterfaceTrafficMode パラメーターを HighPerformance に設定して、ERI 機能が有効なエラスティックネットワークインターフェイスを作成します。
NetworkInterfaceIdパラメーターで返された ENI ID を記録します。 -
AttachNetworkInterface を呼び出します。NetworkInterfaceId に前のステップで取得した ID を、InstanceId にターゲットインスタンス ID を設定して、ERI が有効な ENI をバインドします。
重要ご利用のインスタンスタイプが複数の ERI をサポートしている場合、ネットワーク帯域幅を最大化するために、各 ERI をバインドする際に異なる NetworkCardIndex を指定してください。これにより、ERI が異なるチャンネルにバインドされます。「ネットワークカードインデックス」をご参照ください。
-
-
eRDMA の書き込みレイテンシーのテスト
2 台の eRDMA を有効化したエンタープライズレベルインスタンスに perftest をインストールし、ib_write_lat を使用して書き込みレイテンシーのテストを実行できます。perftest の詳細については、「perftest テストスイート」をご参照ください。
前提条件
2 台 の eRDMA が設定済みのエンタープライズレベルインスタンスを用意します。1 台を サーバー、もう 1 台を クライアントとして使用します。
ネットワーク設定が正しく、2 台のインスタンスが内部ネットワーク経由で相互通信できることを確認します。詳細については、「ECS インスタンス間の内部通信を有効化」をご参照ください。
操作手順
2 台のインスタンスそれぞれにリモート接続します。
詳細については、「Workbench を使用して Linux インスタンスに接続」をご参照ください。
両方のインスタンスで eRDMA が正しく設定されていることを確認します。
詳細については、「eRDMA 設定の確認」をご参照ください。
両方のインスタンスで次のコマンドを実行して、perftest ツールをインストールします。
perftest は公式リポジトリ(パブリック IP アドレスが必要)または YUM/APT リポジトリからインストールできます。
公式リポジトリ
-
ECS インスタンスにパブリック IP アドレスを割り当てます。
-
公式 perftest リポジトリから perftest をダウンロードしてインストールします。
YUM または APT リポジトリ
説明ソフトウェアリポジトリ内の
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-R:RDMA Connection Manager (RDMA_CM) を使用して接続を確立することを指定します。重要eRDMA をサポートする CPU ベースのインスタンスタイプでは、eRDMA カーネルドライバーのデフォルトのインストールモードは Standard であり、RDMA_CM による接続確立方法のみをサポートします。詳細については、「接続確立方法」をご参照ください。
デフォルトでは、perftest はアウトオブバンド (OOB) 接続を使用します。CPU ベースのインスタンスで perftest を実行する場合は、サーバーとクライアントの両方で -R パラメーターを使用して RDMA_CM の接続確立方法を指定できます。指定しない場合、接続確立時に例外が発生する可能性があります。
コマンドラインを使用して、RDMA_CM と OOB 接続方式に互換性を持たせることもできます。詳細については、「eRDMA の接続確立モードを変更して bRPC と互換にする」をご参照ください。互換性を有効化すると、-R パラメーターは不要になります。
-a:2 ~ 2^23 バイトのすべてのメッセージサイズでテストを実行します。これにより、メッセージサイズの違いがレイテンシーに与える影響をテストできます。-F:既存の接続を強制的に上書きします。つまり、以前に接続が確立されていた場合でも、-Fオプションを使用するとそれらの接続を無視し、新しい接続の確立を強制します。
クライアントインスタンスで次のコマンドを実行し、
ib_write_latを起動してサーバーに接続します。ib_write_lat -R -a -F <server_ip><server_ip>は、テストに使用し、ERI 機能を有効化している サーバーインスタンス上のネットワークインターフェースの プライベート IP アドレスです。IP アドレスを取得するには、「IP アドレスを表示」をご参照ください。テスト結果を確認します。
クライアント側のテストが完了すると、
ib_write_latはテスト設定情報、接続情報、および パフォーマンステスト結果 (最小、最大、平均レイテンシーなど、レイテンシーに関する統計情報) を出力します。