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

Elastic Compute Service:eRDMAの使用

最終更新日:Dec 16, 2024

Elastic Remote Direct Memory Access (eRDMA) をサポートするインスタンスタイプのelastic Compute Service (ECS) インスタンスを作成し、elastic RDMAインターフェイス (ERI) をインスタンスにバインドしてeRDMAを使用し、RDMAの大規模なネットワーク機能と低レイテンシの恩恵を受けることができます。 ERIは、ERI機能が有効になっているelastic network Interface (ENI) です。

ECSインスタンスでeRDMAを有効にする

eRDMAをサポートするインスタンスタイプの選択

ECSインスタンスへのERIのバインド

ECSインスタンスを作成するとき、またはインスタンスの作成後にERIをECSインスタンスにバインドするときに、プライマリENIのERI機能を有効にできます。

  • ERIの作成とECSインスタンスへのバインド

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

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

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

    以下の手順を実行します。

    1. ERIを作成するためのAPI操作を呼び出します。

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

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

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

      重要

      ECSインスタンスのインスタンスタイプがインスタンスごとに複数のERIをサポートしている場合、インスタンスに複数のERIをバインドするときに、NetworkCardIndexパラメーターをERIごとに異なる値に設定することを推奨します。 これにより、ERIが異なるチャネルにバインドされ、インスタンスの最大ネットワーク帯域幅が実現されます。 詳細については、「AttachNetworkInterface」トピックの「リクエストパラメーター」セクションをご参照ください。

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

重要
  • eRDMAドライバは、Alibaba Cloudによって社内で開発されています。 Alibaba Cloudは、eRDMAドライバーのテクニカルサポートを提供しています。

  • eRDMAドライバのインストールプロセスは、完了するまでに一定の時間を必要とする。

  • eRDMA driverインストールパッケージ

    異なるeRDMAドライババージョンのインストールパッケージのリリースノート (リリース日順、最新から最新まで)

    バージョン

    リリース日

    ダウンロードリンク

    チェックサム

    説明

    1.4.0

    2024-9-27

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.4.0.tar.gz

    • MD5: 77135d946dddc015000c8f3ea4e6c58 6

    • SHA256: 8613d3d81e8eb3b78bf840c37cbe02c79f62631df36cdc8b2c7c101f49f5af2 9

    異種GPUベースのシナリオでのパフォーマンスが最適化されます。

    1.3.3

    2023-10-09

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.3.tar.gz

    • MD5: 51ffb06266255139554275bc86fa 4caa

    • SHA256: 5aad6d006662bd902ef5e913fb97d2a6623aadeeacd06f1c3f1c74cbd1f5 7ded

    このバージョンは、最新のパッチを含むように更新されます。

    1.3.2

    2023-09-08

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.2.tar.gz

    • MD5: 8492016fc96eece6a60687b0e4ea6 6dd

    • SHA256: 89ab265dc9fa8d56f1b2d8b13d7f50032390a265eddb2e04eeee3aa86fd16 9ce

    このバージョンは、最新のパッチを含むように更新されます。

    1.3.1

    2023-08-18

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.1.tar.gz

    • MD5: b9b90212e6ba49d57b81d3c5d4210deb

    • SHA256: 4ebe31760443613f8f61fcdbef7a85b277dabc59039d048898536ea4fe5d8d 4a

    ドライバ側の基本的な送信モードは、強い順序付けに設定することができる。 強順序モードでは、データパケットは、順番にのみメモリに送信される。

    1.3.0

    2023-06-26

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.0.tar.gz

    • MD5: 2da0c65643b5e2ffb61d75e1b5e5a 7ab

    • SHA256: cce03aac0e07d0890884c35ad4f10e9d15f587535d788c8fc97ea268312ad4a9

    • マルチレベルページテーブルは、メモリ領域 (MR) 登録中にサポートされる。

    • IPv6機能がサポートされ、基盤となるハードウェアからのIPv6サポートが必要です。

    • Ubuntu 22.04がサポートされています。

    • このバージョンは、最新のパッチを含むように更新されます。

    1.2.3

    2023-05-30

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.3.tar.gz

    • MD5: 7496a6324f3872469d7194c2e234b1 9f

    • SHA256: 16c2de0d90da6906db91c2e2469aaad9e24131c44ce52b9464036f1c3747f8a 2

    このバージョンは、最新のパッチを含むように更新されます。

    1.2.2

    2023-05-04

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.2.tar.gz

    • MD5: f449d3961a41ff6a97a53cfa29e20d6c

    • SHA256: 11fdb4b3c778762ad0bdf2d0327008aa2ecb22dc508c9f9fae3568b41ae546 2b

    Ubuntu 22.04がサポートされています。

    1.2.1

    2023-04-04

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.1.tar.gz

    • MD5: e080103934da76ce83924da789aecece

    • SHA256: be3a89e57143d7544cf968052250df92f911aebb035f07b06ebeb8c5f13bf976

    このバージョンは、最新のパッチを含むように更新されます。

    1.2.0

    2023-03-09

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.0.tar.gz

    • MD5: c8d440a6e35ec6d2aaf1a568affea876

    • SHA256: d484997e28e29f862dc580c112b55b389a00faf88dc6aa89eea588ee1369a8ca

    • 互換モードがサポートされています。

    • このバージョンは、最新のパッチを含むように更新されます。

    1.1.0

    2023-01-16

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.1.0.tar.gz

    • MD5: 1fea69d819919a77384f902213eb68 1e

    • SHA256: 176c3bb35d5584e8c8e43eba9b1824b8cb2b43a19d802c4e469363ed8e33fea 6

    このバージョンは、最新のパッチを含むように更新されます。

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

    eRDMAをサポートするECSインスタンスを作成するときに [eRDMAドライバーの自動インストール] オプションを選択するか、またはインスタンスの作成後にeRDMAドライバーを手動でインストールすることで、eRDMAドライバーを自動的にインストールできます。

  • eRDMAカーネルモードドライバーのバージョンの確認

    eRDMAドライバーのインストール後、eadm verコマンドを実行して、eRDMAカーネルモードドライバーのバージョンを確認できます。 最新のeRDMAドライババージョン1.4.0は、eRDMAカーネルモードドライババージョン0.2.37に対応しています。

    image

eRDMA設定の正しさの確認

ibv_devinfoコマンドは、eRDMAが期待どおりに機能するかどうかを確認するのに役立ちます。 ibv_devinfoコマンドを実行して、ハードウェア属性、ポートステータス、デバイスのサポートされている機能など、デバイスに関する情報を取得できます。 少なくとも1つのポートがPORT_ACTIVE状態の場合、RDMAコンポーネントは期待どおりに実行され、RDMA機能は有効になり、期待どおりに使用できます。 詳細については、「13.7」をご参照ください。 初期のInfiniBand RDMA操作のテスト。

-vパラメーターをibv_devinfoコマンドに渡して、ハードウェアバージョン、サポートされている最大メッセージサイズ、キュー数、メモリウィンドウのサイズなど、各デバイスに関する詳細情報を照会することもできます。 上記の情報に基づいて、RDMAネットワークのパフォーマンスを最適化および確認できます。

ibv_devinfoコマンドを実行して、ECSインスタンスのeRDMA設定の正確性を確認できます。

  • 適切なeRDMA設定: ERIはECSインスタンスにバインドされ、eRDMAドライバーは期待どおりにインスタンスにインストールされます。

    説明
    • インスタンスが複数のERIをサポートしており、バインドされている場合、インスタンス上の各eRDMAデバイスのポートのstateフィールドがPORT_ACTIVEの場合、ERIは期待どおりに機能します。

    • ERIのポートに対する状態フィールドが無効状態である場合、ERIは異常である。 この場合、ERIが適切に設定されているかどうかを確認します。 たとえば、ifconfigコマンドを実行して、IPアドレスを含むERIのすべての設定が存在するかどうかを確認します。 詳細については、「セカンダリENIの設定」をご参照ください。

    image

  • インスタンスにERIがバインドされていません: eRDMAドライバはインスタンスにインストールされていますが、ERIはインスタンスにバインドされていません。 この場合、ERIsをインスタンスにバインドする必要があります。 詳細については、このトピックの「ECSインスタンスへのERIのバインド」セクションをご参照ください。

    image

  • eRDMAドライバーが想定どおりにインストールされていません: ERIはインスタンスにバインドされていますが、eRDMAドライバーは想定どおりにインスタンスにインストールされていません。 この場合、インスタンスにeRDMAドライバを再インストールする必要があります。 詳細については、このトピックの「ECSインスタンスへのeRDMAドライバーのインストール」をご参照ください。

    image

診断ツールを使用して、eRDMAの基本機能を確認することもできます。 詳細については、「eRDMAの監視と確認」トピックの「診断ツールを使用してRDMA関連の問題を確認し、eRDMAのパフォーマンスを評価する」を参照してください。

eRDMAネットワークパフォーマンスのテスト

Perftestは、送信、受信、読み取り、書き込みなどのネットワーク操作を評価するためのさまざまなテストオプションを提供するパフォーマンステストツールキットです。 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_lat (生のイーサネットレイテンシテスト)

perftestのインストール

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

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

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

YUMまたはAPTリポジトリ
説明

perftestの異なるバージョンは、異なるLinuxディストリビューションのリポジトリに含まれています。 非互換性が発生する可能性があります。 非互換性を防ぐために、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

perftestの使用例

perftestに含まれる各テストプログラムを個別のコマンドとして実行できます。 たとえば、送信レイテンシテストを実行するコマンドとしてib_send_latを実行します。

perftestを使用してパフォーマンステストを実行する場合は、正しいテストパラメーターが重要です。 パラメーターを適切に設定することで、perftestの動作をより正確に制御して、特定のテスト要件を満たし、より正確なテスト結果を得ることができます。 次の表に、perftestの特定の重要なパラメーターを示します。

共通テストパラメータ

<Subcommand> -hコマンドを実行して、テストパラメーターとパラメーターの設定方法を照会できます。

テストカテゴリ

テストパラメーター

遅延テスト

  • -C, -- report-cycles: レポート時間 (CPUサイクル単位) 。 このパラメータは、レイテンシを正確に測定するのに役立ちます。

  • -H, -- report-histogram: すべての結果を出力します。 デフォルトでは、概要のみが印刷されます。 このパラメーターは、データ分布を理解するのに役立ちます。

  • -U, -- report-unsorted: ソートされていない結果を出力します。 このパラメーターを指定すると、元のデータ分布を分析できます。 デフォルトでは、ソートされた結果が出力されます。

帯域幅テスト

  • -b, -- bidirectional: 双方向帯域幅を測定します。 デフォルトでは、単方向帯域幅が測定されます。 このパラメータは、ネットワークの双方向伝送能力を決定するための重要な指標です。

  • -N, -- no peak-bw: ピーク帯域幅 (peak-bw) の計算をキャンセルします。 デフォルトでは、ピーク帯域幅の計算はキャンセルされません。 これにより、安定した帯域幅パフォーマンスに集中できます。

  • -t, -- tx-depth=<dep>: テストの同時実行性とパフォーマンスに影響する送信 (Tx) キューのサイズを指定します。 デフォルト値: 128

  • -D, -- duration=<sec>: カスタマイズされた秒間テストを実行します。

Send test

  • -r, -- rx-depth=<dep>: バッファサイズとパフォーマンスに影響する受信 (Rx) キューのサイズを指定します。 デフォルト値: 512

  • -g, -- mcg=<num_of_qps>: <num_of_qps> キューペア (QP) がアタッチされているマルチキャストグループにメッセージを送信します。 このパラメーターは、マルチキャストのパフォーマンスをテストするのに役立ちます。

その他の高度なオプション

  • -u, -- qp-timeout=<timeout>: QPタイムアウトを指定します。 単位: マイクロ秒。 デフォルト値: 14。 QPタイムアウトは、以下の式を使用することによって計算される: 4 × 2 ^ (− u) 。

  • -- force-link=<type>: リンクを特定のタイプ (IBまたはイーサネット) に強制します。 このパラメーターを指定すると、特定の種類のネットワークリンクをテストできます。

  • -- use_hugepages: contigまたはmemalign割り当ての代わりにHugepagesを使用します。 これにより、メモリ使用量とパフォーマンスを最適化できます。

  • -- rate_limit=<limit>: 送信パッケージの最大レートを設定します。 デフォルトの単位: Gbit/s。 -- rate_unitsパラメーターを使用して、最大レートの単位を変更できます。

  • ネットワークレイテンシテストの実行方法については、「エンタープライズレベルのインスタンスにeRDMAを設定する」の「eRDMA書き込みレイテンシのテスト」をご参照ください。

関連ドキュメント

  • インスタンスのDockerコンテナにアプリケーションをデプロイする場合、コンテナでeRDMAを使用して、大規模なデータ転送と高性能なネットワーク通信を実現できます。 詳細については、「DockerコンテナーでのeRDMAの使用」をご参照ください。

  • Alibaba Cloud Container Service for Kubernetes (ACK) クラスターでeRDMAを使用すると、クラスター内のすべてのサービスとアプリケーションに低遅延で高スループットのネットワーク通信機能を提供できます。 詳細については、「eRDMAを使用したACKクラスターでのコンテナーネットワークの高速化」をご参照ください。

  • eRDMAのリアルタイムの作業ステータスを監視および確認できます。 詳細については、「eRDMAの監視と確認」をご参照ください。

  • eRDMAをTCPアプリケーションに統合できます。 詳細については、「eRDMAとアプリケーションの適応の概要」をご参照ください。