Ultra-low latency RDMA ネットワーキングを実現するには、対応インスタンスタイプでドライバーをインストールし、Elastic RDMA Interface (ERI) をバインドします。
ECS インスタンスでの eRDMA 有効化
ステップ 1:インスタンスおよびイメージの対応状況を確認
eRDMA は特定のインスタンスタイプおよびイメージでのみサポートされます。
-
エンタープライズレベル CPU インスタンス:「eRDMA に対応するエンタープライズレベル CPU インスタンスタイプおよびイメージ」をご参照ください。
-
GPU インスタンス:「eRDMA に対応する GPU インスタンスタイプおよびイメージ」をご参照ください。
ステップ 2:eRDMA ドライバーをインストール
-
eRDMA ドライバーは Alibaba Cloud が開発および保守しています。
-
ドライバーのインストールには時間がかかる場合があります。
-
ドライバーインストールパッケージ
-
eRDMA ドライバーのインストール
eRDMA ドライバーは、インスタンス作成時に自動的にインストールするか、既存のインスタンスに手動でインストールできます。
-
エンタープライズレベル CPU インスタンス:「エンタープライズレベルインスタンスでの eRDMA 設定」をご参照ください。
-
GPU インスタンス:「GPU インスタンスでの eRDMA 有効化」をご参照ください。
-
-
eRDMA カーネルドライバー
eRDMA ドライバーをインストールした後、
eadm verを実行して eRDMA カーネルドライバーのバージョンを確認します。最新のインストーラーパッケージ (1.4.5) はカーネルドライバーバージョン 0.2.38 に対応しています。
eRDMA カーネルドライバーは、利用可能な接続確立方法を決定する 2 つのインストールモードをサポートしています。eRDMA 接続確立の詳細については、「RDMA_CM」をご参照ください。
-
Standard:RDMA_CM 接続確立のみをサポートします。重要デフォルトでは、eRDMA をサポートする CPU ベースのインスタンスファミリーは、eRDMA カーネルモードドライバーを標準モードでインストールします。このモードでは、RDMA_CM 接続確立方法のみがサポートされます。
-
Compat:RDMA_CM および OOB 接続確立の両方をサポートします。重要デフォルトでは、eRDMA をサポートする GPU ベースのインスタンスファミリーは、eRDMA カーネルモードドライバーを Compat モードでインストールします。このモードでは、RDMA_CM および OOB 接続確立方法がサポートされます。
CLI を使用して、RDMA_CM と OOB 接続確立方法間の互換性を有効化できます。詳細については、「eRDMA の接続確立モードを変更して bRPC との互換性を確保」をご参照ください。
Compat モードでは、30608 ~ 30623 の範囲にある追加の TCP ポート 16 個が使用されます。
-
ステップ 3:インスタンスに ERI をバインド
インスタンス作成時にプライマリ ENI で eRDMA インターフェイスを有効にするか、既存のインスタンスに ERI をバインドします。
DescribeInstanceTypes API オペレーションを呼び出して、インスタンスタイプがサポートする ERI の最大数を照会できます。応答内の EriQuantity パラメーターの値を確認してください。値が 0 の場合、そのインスタンスタイプは ERI をサポートしていません。
-
インスタンス作成時に ENI の eRDMA インターフェイス を有効化
「インスタンス作成時に ERI を作成」をご参照ください。
-
ERI を作成して ECS インスタンスにバインド
-
ERI を作成するには、「スタンドアロン ERI の作成」をご参照ください。
-
ERI を ECS インスタンスにバインドするには、「セカンダリ ENI のバインド」をご参照ください。
-
-
バインド済み ENI の属性を変更して eRDMA インターフェイスを有効化
「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 構成の検証
デバイスのハードウェアプロパティ、ポートのステータス、およびサポートされている機能を確認するには、ibv_devinfo を実行します。RDMAコンポーネントが正常に動作している場合、ibv_devinfo の出力には少なくとも 1 つのポートが PORT_ACTIVE として表示されます。「RDMA 操作のテスト」をご参照ください。
ibv_devinfo に -v フラグを付けて実行すると、ハードウェアバージョン、メッセージ最大サイズ、キュー数、メモリウィンドウサイズなどの詳細なデバイス情報が表示されます。
ibv_devinfo を実行して eRDMA 構成を検証します。
-
eRDMA が正しく構成されている場合:ENI 上で eRDMA インターフェイスが有効になっており、ドライバーが正しくインストールされています。
説明-
ご利用のインスタンスに複数の ERI がアタッチされている場合、各 eRDMA デバイスポートの
stateがPORT_ACTIVEとして表示される必要があります。 -
stateがinvalid stateと表示されている場合、eRDMA ネットワークインターフェイスに異常があります。セカンダリ ENI が正しく構成されているか確認してください。たとえば、ifconfigを実行して、すべてのネットワークインターフェイスと IP アドレスを確認します。「セカンダリエラスティックネットワークインターフェイスの構成」をご参照ください。

-
-
eRDMA ドライバーが正しくインストールされていない場合:ドライバーが不足しているか、不適切にインストールされています。「ステップ 2:ECS インスタンスへの eRDMA ドライバーのインストール」をご参照ください。

-
インスタンスに ERI がバインドされていない場合:ドライバーはインストールされていますが、ENI 上で ERI が有効になっていません。「ステップ 3:ECS インスタンスへの ERI のバインド」をご参照ください。

診断ツールを使用して eRDMA をテストすることもできます。「診断ツールを使用した RDMA 関連の問題のチェックおよび eRDMA パフォーマンスの評価」をご参照ください。
eRDMA ネットワークパフォーマンスのテスト
perftest は、送信、受信、読み取り、書き込み操作の RDMA 操作レイテンシおよび帯域幅を測定します。RDMA デバイスのパフォーマンスを評価し、ネットワークの問題を診断するために使用します。「perftest ドキュメント」をご参照ください。
perftest テストスイート
perftest パッケージには、以下の帯域幅およびレイテンシテストが含まれています。
|
RDMA 操作 |
帯域幅テストプログラム |
レイテンシテストプログラム |
|
送信 |
ib_send_bw (送信帯域幅テスト) |
ib_send_lat (送信レイテンシテスト) |
|
RDMA 読み取り |
ib_read_bw (読み取り帯域幅テスト) |
ib_read_lat (読み取りレイテンシテスト) |
|
RDMA 書き込み |
ib_write_bw (書き込み帯域幅テスト) |
ib_write_lat (書き込みレイテンシテスト) |
|
RDMA アトミック |
ib_atomic_bw (アトミック帯域幅テスト) |
ib_atomic_lat (アトミックレイテンシテスト) |
|
ネイティブイーサネット |
raw_ethernet_bw (Raw Ethernet 帯域幅テスト) |
raw_ethernet_lat (Raw Ethernet レイテンシテスト) |
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
perftest 使用例
各テストは独立したコマンドとして実行されます。たとえば、ib_send_lat は送信レイテンシテストを実行します。
正確な perftest 結果を得るために、perftest の動作を制御する正しいテストパラメーターを設定します。以下のガイドラインに従って、perftest を構成および実行してください。
-
ネットワークリーテンシテスト:「eRDMA が有効なインスタンスの書き込みレイテンシパフォーマンスのテスト」をご参照ください。
-
ネットワーク帯域幅テスト:「GPU インスタンスでの eRDMA 有効化」をご参照ください。
参照
-
大規模データ転送および高性能ネットワーキングのためにコンテナ内で eRDMA を使用します。「Docker コンテナでの eRDMA 有効化」をご参照ください。
-
Alibaba Cloud Container Service for Kubernetes (ACK) クラスターで eRDMA を使用して、サービス間の低レイテンシかつ高スループット通信を実現します。「eRDMA を使用したコンテナネットワークの高速化」をご参照ください。
-
Redis、Spark、Kafka などの TCP アプリケーションやその他の HPC アプリケーションと eRDMA を統合します。「アプリケーション統合」をご参照ください。
-
eRDMA のステータスをリアルタイムで監視、診断、トラッキングします。「eRDMA の監視および診断」をご参照ください。