特定のエンタープライズレベルのElastic Compute Service (ECS) インスタンスにElastic Remote Direct Memory Access (eRDMA) を設定して、低レイテンシ、高スループット、高性能、高度にスケーラブルなRDMAネットワークサービスを使用し、ネットワークアーキテクチャを変更することなくネットワークパフォーマンスを向上させることができます。
制限事項
項目 | 説明 |
リージョン | eRDMAは、中国 (北京) 、中国 (上海) 、中国 (杭州) 、中国 (深セン) 、中国 (広州) 、中国 (ウランカブ) 、中国 (河源) の各リージョンでご利用いただけます。 |
インスタンスファミリー | 次のインスタンスファミリーがeRDMAをサポートしています。 |
イメージ |
説明 選択できるイメージは、インスタンスタイプによって異なります。 eRDMAをサポートするインスタンスタイプを選択すると、選択可能なイメージがインスタンス購入ページに表示されます。 |
ネットワーク |
|
エンタープライズレベルのECSインスタンスでのeRDMAの設定
ECSインスタンスの作成時にeRDMAを設定する
Alibaba Cloud Linux、Ubuntu、またはAnolis OSを実行するeRDMA対応インスタンスを作成する場合、eRDMAドライバーの自動インストールオプションを選択してeRDMAドライバーを自動的にインストールし、プライマリENIのERI機能を有効にすることで、eRDMAを有効にできます。
選択したオペレーティングシステムバージョンの [eRDMAドライバーの自動インストール] オプションを選択できない場合、またはeRDMAドライバーの自動インストールに失敗した場合は、インスタンスの作成後に手動またはスクリプトを使用してドライバーをインストールできます。 詳細については、このトピックの「既存のインスタンスでのeRDMAの設定」セクションをご参照ください。
ECSインスタンスを起動した後、システムがeRDMAドライバーをインストールするまでしばらく待ちます。
ERIをサポートするエンタープライズレベルのECSインスタンスを作成します。 ECSインスタンスを作成するときは、次のパラメーターまたはオプションに注意してください。 ECSインスタンス購入ページのその他のパラメーターについては、「カスタム起動タブでインスタンスを作成する」をご参照ください。
インスタンスとイメージ: eRDMAをサポートするインスタンスタイプを選択し、eRDMAドライバをインストールします。
インスタンス: 詳細については、このトピックの制限セクションを参照してください。
ENI: プライマリENIの右側にあるeRDMA Interfaceオプションを選択して、ERIをECSインスタンスにバインドします。
エンタープライズレベルのインスタンスを作成する場合、プライマリelastic network interface (ENI) に対してのみERI機能を有効にできます。 ECSコンソールで、またはAPI操作を呼び出すことによって、セカンダリENIのERI機能を有効にできます。
既存のECSインスタンスでeRDMAを設定する
eRDMAがインスタンスに期待どおりに設定されているかどうかを確認します。
詳細については、「eRDMAの使用」トピックの「eRDMA設定の正しさの検証」セクションをご参照ください。
検証結果に基づいて、次の操作を実行できます。eRDMAドライバーのインストールまたはECSインスタンスへのERIのバインド。
eRDMAドライバのインストール
インスタンスの作成時に [eRDMAドライバーの自動インストール] を選択しない場合、eRDMAドライバーはインスタンスに自動的にインストールされません。 eRDMAドライバを手動で、または実際のシナリオに基づいてスクリプトを使用してインストールします。
スクリプトを使用してeRDMAドライバーをインストールすると、最新の安定したeRDMAドライバーバージョンのインストールパッケージが自動的にダウンロードされます。
eRDMAドライバーを手動でインストールする場合は、特定のeRDMAドライバーバージョンのパッケージをダウンロードできます。
スクリプトを実行してeRDMAドライバをインストールする
次のコマンドを実行して、最新の安定したeRDMAドライバーパッケージをダウンロードします。
curl -O http://mirrors.cloud.aliyuncs.com/erdma/env_setup.sh
次のコマンドを実行して、eRDMAドライバーパッケージをインストールします。
sudo /bin/bash env_setup.sh > /var/log/erdma_install.log 2>&1
このスクリプトは、eRDMAドライバ、次にeRDMAドライバに必要な依存関係を自動的にインストールします。 スクリプトの実行が完了するまで待ちます。
説明スクリプトを使用してeRDMAドライバーをインストールできない場合は、
/var/log/erdma_install.log
ファイルのログを確認します。
eRDMAドライバーの手動インストール
前提条件パッケージを更新します。
Alibaba Cloud Linux 3、CentOS、およびAnolis OSの場合は、次のコマンドを実行します。
sudo yum update -y
Ubuntuの場合は、この手順をスキップしてください。
次のコマンドを順番に実行して、最新のカーネルパッケージバージョンとオペレーティングシステムのカーネルバージョンを照会します。
rpm -qa | grep kernel #Query the latest kernel package version. uname -r #Query the operating system kernel version.
次の図に示すコマンド出力は、カーネルパッケージのバージョンがオペレーティングシステムのカーネルのバージョンと同じであることを示しています。 この場合、追加の操作を実行する必要はありません。 バージョンが異なる場合は、ECSインスタンスを再起動して、バージョンを同じにします。
依存パッケージのインストール
ECSインスタンスが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 kernel-headers
ECSインスタンスがArmインスタンスの場合、ビルドタスクはソースコードに基づいて実行されます。 この場合、多数の依存関係が必要であり、変更される場合があります。 この手順をスキップしてインストールスクリプトを実行できます。 インストールスクリプトで依存関係パッケージのインストールに失敗した場合は、必要な依存関係パッケージのインストールを求められます。 プロンプトに従って依存関係パッケージをインストールし、eRDMAドライバを再インストールします。
ドライバインストールパッケージをダウンロードします。
次のコマンドを実行して、内部URLからeRDMAドライバーインストールパッケージをダウンロードします。
wget http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-latest.tar.gz
次のコマンドを実行して、パブリックURLからeRDMAドライバーインストールパッケージをダウンロードします。
wget https://mirrors.aliyun.com/erdma/erdma_installer-latest.tar.gz
この例では、最新のeRDMAドライババージョンのインストールパッケージがダウンロードされています。 ビジネスシナリオに基づいて、特定のeRDMAドライバーバージョンのインストールパッケージをダウンロードできます。 eRDMAインストールパッケージのさまざまなバージョンのリリースについては、「eRDMAの使用」トピックの「ECSインスタンスにeRDMAドライバをインストールする」セクションをご参照ください。
次のコマンドを実行してインストールパッケージを解凍し、インストールパッケージの解凍先ディレクトリに移動します。
tar -xvf erdma_installer-latest.tar.gz && cd erdma_installer
次のいずれかの方法でeRDMAドライバをインストールします。
方法1: 次のコマンドを実行してeRDMAドライバをインストールします。 インストールプロセス中に、関連するアンインストール手順と自動インストール手順を確認します。
sudo sh install.sh
方法2: 次のコマンドを実行して、eRDMAドライバを自動的にインストールします。
sudo sh install.sh --batch
コマンド出力を表示して、ドライバがインストールされているかどうかを確認します。
次のコマンド出力は、eRDMAドライバがインストールされていることを示します。
次のコマンド出力は、eRDMAドライバのインストールに失敗したことを示しています。 プロンプトに従って操作を実行し、eRDMAドライバを再インストールします。
説明ECSインスタンスがCentOS 7を実行していて、ドライバーの再インストール時にパッケージが見つからないことを示すエラーメッセージが表示された場合、
yum
コマンドを実行してパッケージの取得に失敗する可能性があります。 この場合、パッケージを取得する前に、yum install -y epel-release
コマンドを実行してExtra Packages for Enterprise Linux (EPEL) リポジトリをインストールする必要があります。
ECSインスタンスにERIをバインドします。
各エンタープライズレベルのECSインスタンスにバインドできるERIは1つだけです。 詳細については、このトピックの制限セクションを参照してください。
eRDMA書き込みレイテンシのテスト
eRDMAが設定されている2つのエンタープライズレベルのインスタンスで、ib_write_lat
を使用してPerftest
をインストールし、書き込みレイテンシをテストできます。 Perftestテストの詳細については、「eRDMAの使用」トピックのPerftestテストセットセクションを参照してください。
環境の準備
サーバーとクライアントとして機能するエンタープライズレベルのECSインスタンスを2つ作成します。 ECSインスタンスにeRDMA設定 (eRDMAソフトウェアスタックのインストールやERI機能の有効化など) があることを確認します。
インスタンスに有効なネットワーク設定があり、内部ネットワークを介して相互に通信できることを確認します。 詳細については、「内部ネットワークを介したECSインスタンスの接続」をご参照ください。
手順
2つのECSインスタンスに接続します。
詳細については、「Workbenchを使用したSSH経由のLinuxインスタンスへの接続」をご参照ください。
両方のインスタンスのeRDMA設定が正しいことを確認して確認します。
詳細については、「eRDMAの使用」トピックの「eRDMA設定の正しさの確認」をご参照ください。
各ECSインスタンスにPerftestをインストールします。
eRDMAネットワーク遅延が期待されるパフォーマンスを満たすかどうかをテストします。
サーバー側のインスタンスで、次のコマンドを実行して、クライアントからの接続をリッスンするサーバーとして
ib_write_lat
を起動します。ib_write_lat -R -a -F
クライアント側のインスタンスで、次のコマンドを実行して
ib_write_lat
を起動し、サーバーに接続します。ib_write_lat -R -a -F <server_ip>
<server_ip>
を、サーバー側ECSインスタンスにバインドされているERIのプライベートIPアドレスに置き換えます。 IPアドレスの照会方法については、「IPアドレスの表示」をご参照ください。テスト結果を確認してください。
クライアントのテスト後、
ib_write_lat
はテスト構成情報、接続情報、およびパフォーマンステスト結果を出力します。 統計には、最小レイテンシ、最大レイテンシ、および平均レイテンシが含まれます。 詳細については、このトピックの「ib_write_latテスト結果の待ち時間データ」をご参照ください。