Elastic RDMA インターフェース (ERI) は、Elastic Compute Service (ECS) インスタンスにバインドできる仮想ネットワークインターフェースです。 ERI は、ECS インスタンスで Elastic Remote Direct Memory Access (eRDMA) を実装するための主要コンポーネントとして機能します。 ERI は、ERI 機能が有効になっている Elastic Network Interface (ENI) です。
機能の説明
ECS インスタンスで eRDMA を構成するには、ERI をインスタンスにバインドする必要があります。 eRDMA は、Alibaba Cloud が提供する低レイテンシ、高スループット、高パフォーマンス、および拡張性の高い Remote Direct Memory Access (RDMA) ネットワークサービスです。 eRDMA は、ERI を使用することにより、ECS インスタンスに超低レイテンシと高スループットのネットワーク通信を提供できます。 詳細については、「概要」をご参照ください。
ERI は、特定のインスタンスファミリの ECS インスタンスにのみバインドできます。 ERI をサポートするインスタンスファミリの詳細については、「インスタンスファミリの概要」をご参照ください。
特定のインスタンスタイプの ECS インスタンスにバインドできる ERI の最大数をクエリするには、DescribeInstanceTypes 操作を呼び出し、応答の EriQuantity パラメーターの値を確認します。値 0 は、そのインスタンスタイプの ECS インスタンスに ERI をバインドできないことを示します。
複数の ERI を 1 つの ECS インスタンスにバインドする場合は、インスタンスでサポートされるキューペア (QP) の最大数を考慮する必要があります。 詳細については、このトピックの「QP の最大数」セクションをご参照ください。
ERI を作成する
ECS インスタンスの作成時に ERI を作成する
インスタンスタイプが eRDMA をサポートしている場合は、ERI 機能を有効にするECS インスタンスを作成する際に、ENI の ことができます。構成は、インスタンスタイプによって異なります。
エンタープライズレベルインスタンスで eRDMA を構成する方法については、「エンタープライズレベルインスタンスで eRDMA を構成する」トピックの「ECS インスタンスの作成時に eRDMA を構成する」セクションをご参照ください。
GPU インスタンスで eRDMA を構成する方法については、「GPU インスタンスで eRDMA を有効にする」をご参照ください。
個別に ERI を作成する
セカンダリ ENI を作成する際に、[eRDMA インターフェース] をオンにします。 ERI は、ENI の IP アドレスやセキュリティグループルールなど、セカンダリ ENI の設定を共有します。 詳細については、「ENI の作成と管理」をご参照ください。
API オペレーションを呼び出して ERI を作成する
CreateNetworkInterface オペレーションを呼び出して ENI を作成し、NetworkInterfaceTrafficMode高パフォーマンス パラメーターを に設定して、ENI の ERI 機能を有効にします。
ECS インスタンスへの ERI のバインド、ECS インスタンスからの ERI のバインド解除、ERI の属性の変更など、ERI の管理方法については、「ENI の管理」をご参照ください。
ERI を表示する
ECS コンソールで ERI を表示する
ECS コンソールで、ENI の ERI 機能が有効になっているかどうかを確認できます。次の手順を実行します。
[ECS コンソール] にログインします。
左側のナビゲーションウィンドウで、 を選択します。
ENI を表示する ECS インスタンスを見つけ、インスタンス ID をクリックしてインスタンスの詳細ページに移動します。
[ENI] タブをクリックし、ECS インスタンスにバインドされている ENI に関する詳細情報を表示します。
[NIC タイプ] 列に [フレキシブル RDMA インターフェース] と表示されている場合、ENI の ERI 機能は有効になっています。
API 操作を呼び出して ERI を表示する
DescribeNetworkInterfaceAttribute オペレーションを呼び出して ENI の属性をクエリし、レスポンスの NetworkInterfaceTrafficMode パラメーターの値を確認して、ERI 機能のステータスを取得します。
HighPerformance:ERI 機能は有効になっており、eRDMA 通信モードが使用されています。
Standard:ERI 機能は無効になっており、TCP 通信モードが使用されています。
ECS インスタンスに接続した後に、インスタンスにバインドされている ERI を表示する
ECS インスタンスにバインドされている ENI の ERI 機能を有効にした後、インスタンスに接続して ERI を表示できます。
ECS インスタンスに接続します。
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
次のコマンドを実行して、RDMA デバイスを表示します。
ibv_devices
返されるデバイス名は、デバイスが ERI であることを示します。
複数の ERI 対応 ENI が ECS インスタンスにバインドされている場合は、次のコマンド出力が返されます。
ibv_devinfo
コマンドを実行して、ポートステータスや ERI でサポートされるキューの最大数など、ERI パラメーターに関する追加情報を表示できます。上記の情報が返されない場合は、eRDMA ドライバーが正しくインストールされていないか、ERI の構成エラーが発生している可能性があります。 問題のトラブルシューティングについては、「eRDMA 構成の正確性を検証する」をご参照ください。
既存の ENI の ERI 機能のステータスを変更する
ModifyNetworkInterfaceAttribute 操作を呼び出す場合は、NetworkInterfaceTrafficConfig の下の NetworkInterfaceTrafficMode パラメーターを HighPerformance に設定して、ENI の ERI 機能を有効にします。
HighPerformance:ERI 機能は有効になっており、eRDMA 通信モードが使用されています。
Standard:ERI 機能は無効になっており、TCP 通信モードが使用されています。
ECS コンソールでは、既存の ENI の ERI 機能を有効にすることはできません。
QP の最大数
QP は、RDMA における基本的な通信エンティティです。 送信キュー (SQ) と受信キュー (RQ) で構成されます。 QP は、送受信されるデータの管理に使用されます。
RDMA デバイスまたは ERI で作成できる QP の最大数は、RDMA ネットワークがサポートできる同時接続の最大数を決定し、ネットワークのスケーラビリティと同時処理能力に影響します。
ECS インスタンスでサポートされる QP の最大数
ECS インスタンスでサポートされる QP の最大数は、インスタンスタイプによって異なります。 複数の ERI を 1 つの ECS インスタンスにバインドする場合、インスタンスでサポートされる QP の最大数は、インスタンスにバインドされているすべての ERI でサポートされる QP の最大数の合計です。 DescribeInstanceTypes オペレーションを呼び出して、特定のインスタンスタイプのインスタンスでサポートされる QPS の最大数をクエリできます。
エンタープライズレベルの CPU ベースインスタンス: 応答の QueuePairNumber パラメーターの値は、特定のインスタンスタイプのインスタンスでサポートされる QP の最大数です。
GPU インスタンス: 特定のインスタンスタイプのインスタンスでサポートされる QP の最大数は、QueuePairNumber * NetworkCardQuantity です。
ERI がサポートする QPS の最大数
ERI を ECS インスタンスにバインドするときに QueuePairNumber パラメーターを指定しない場合、インスタンスでサポートされている QP の最大数が、ERI でサポートされている QP の最大数として使用されます。この場合、インスタンスタイプでインスタンスに追加の ERI をバインドすることが許可されていても、インスタンスに追加の ERI をバインドすることはできません。インスタンスに追加の ERI をバインドするには、各 ERI でサポートされている QP の最大数を変更して、すべての ERI でサポートされている QP の合計最大数が、インスタンスでサポートされている QP の最大数を超えないようにする必要があります。
ERI でサポートされる QPS の最大数を変更する
ModifyNetworkInterfaceAttribute オペレーションを呼び出し、キューペア番号 パラメーターを、ERI でサポートする QP の数に設定します。
サポートされる QP の最大数を変更する ERI が ECS インスタンスにバインドされている場合は、数を変更する前にインスタンスを停止する必要があります。
ECS インスタンスにバインドされているセカンダリ ENI の場合は、インスタンスから ENI のバインドを解除し、QueuePairNumber パラメーターの値を変更してから、インスタンスに ENI をバインドできます。
ERI でサポートされる QPS の最大数を確認する
DescribeNetworkInterfaceAttribute オペレーションを呼び出して ERI の属性をクエリし、レスポンスの キューペア番号 パラメーターの値を確認して、ERI でサポートされる QP の最大数を取得します。
ENI が ECS インスタンスにバインドされていない場合、セカンダリ ENI の QueuePairNumber パラメーターは返されません。
適切なサポート対象の QPS 数を指定する
アプリケーションのパフォーマンスを最適化するには、適切なサポート QP 数を指定する必要があります。 QP の数が多すぎたり少なすぎたりすると、リソースが無駄になったり、パフォーマンスのボトルネックになる可能性があります。
アプリケーション要件を理解する。アプリケーションのシナリオ、インスタンスタイプ、および使用する ERI の数に基づいて、必要な QP 数を決定することをお勧めします。アプリケーションが高並列処理で低レイテンシの場合、より多くの同時接続数をサポートするために、より多くの QP が必要になる場合があります。ビッグデータ転送シナリオでは、単一の QP の帯域幅使用率を優先する必要がある場合があります。
ハードウェアの制限事項を考慮する。
ECS インスタンスでサポートされる QP の最大数は、インスタンスタイプによって異なります。 詳細については、このトピックの「ECS インスタンスでサポートされる QP の最大数」セクションをご参照ください。
メモリサイズなどの要因を考慮します。 各 QP は、一定量のシステムリソースを消費します。
ERI のパフォーマンスをテストし、ERI の構成を最適化する。 ECS インスタンスで ERI を構成した後、実際の環境で ERI のパフォーマンスをテストする必要があります。次に、テスト結果に基づいて、サポートされている QPS の数とその他の関連パラメーターを変更します。エラーメッセージやパケット損失率の増加など、例外が発生するかどうかを確認します。
システムの状態を継続的に監視します。適切な構成スキームが見つかった場合でも、ビジネスの成長やその他の変更に応じて現在の設定が適切なままであることを確認するために、システムの状態を定期的に確認する必要があります。
サポートされる QP の数を指定する場合は、複数の要因を総合的に考慮する必要があります。 ビジネス特性、既存のインフラストラクチャ、および予想されるパフォーマンス要件に基づいて、ERI の構成を慎重に計画および調整することをお勧めします。