eRDMA対応のエンタープライズレベルのelastic Compute Service (ECS) インスタンスにElastic Remote Direct Memory Access (eRDMA) を設定して、低レイテンシ、高スループット、高性能、高度にスケーラブルなRDMAネットワークサービスを使用し、ネットワークアーキテクチャを変更することなくネットワークパフォーマンスを向上させることができます。 このトピックでは、エンタープライズレベルのECSインスタンスでeRDMAを設定する方法について説明します。
制限事項
次の表は、リージョン、インスタンスファミリー、イメージ、eRDMAデバイスの数、およびネットワークに関するeRDMAの制限を示しています。
項目 | 説明 |
リージョン | eRDMAは、中国 (北京) 、中国 (上海) 、中国 (杭州) 、中国 (深セン) 、中国 (広州) 、中国 (ウランカブ) 、中国 (河源) の各リージョンでサポートされています。 |
インスタンスファミリー | 次のインスタンスファミリーがeRDMAをサポートしています。 |
イメージ |
説明 選択できるイメージは、インスタンスタイプによって異なります。 eRDMAをサポートするインスタンスタイプを選択すると、選択可能なイメージがインスタンス購入ページに表示されます。 |
eRDMAデバイスの数 | 各ECSインスタンスは1つのERIのみをサポートします。 |
ネットワーク |
|
手順
インスタンスが次の条件を満たす場合にのみ、eRDMA対応のECSインスタンスでeRDMAを有効にできます。eRDMAドライバーがインスタンスにインストールされ、ERIがインスタンスにバインドされています。
ECSインスタンス作成時のeRDMAの設定
Alibaba Cloud Linux、Ubuntu、またはAnolis OSを実行するeRDMA対応インスタンスを作成する場合、eRDMAドライバーの自動インストールオプションを選択してeRDMAドライバーを自動的にインストールし、プライマリENIのERI機能を有効にすることで、eRDMAを有効にできます。 選択したオペレーティングシステムバージョンの [eRDMAドライバーの自動インストール] オプションを選択できない場合、またはeRDMAドライバーの自動インストールに失敗した場合は、インスタンスの作成後に手動またはスクリプトを使用してドライバーをインストールできます。 詳細については、このトピックの「既存のインスタンスでのeRDMAの設定」をご参照ください。
ERIsをサポートするECSインスタンスを作成します。 ECSインスタンスを作成するときは、次のパラメーターまたはオプションに注意してください。 ECSインスタンス購入ページのその他のパラメーターについては、「カスタム起動タブでインスタンスを作成する」をご参照ください。
インスタンスとイメージ: eRDMAとイメージをサポートするインスタンスタイプを選択します。 詳細については、このトピックの制限セクションを参照してください。 eRDMAドライバの自動インストール: ECSインスタンスの作成中にeRDMAドライバーを自動的にインストールするには、このオプションを選択します。
ENI: プライマリENIの右側にあるeRDMAインターフェイスを選択します。
既存のECSインスタンスでのeRDMAの設定
ECS コンソールにログインします。 eRDMAを設定するECSインスタンスを見つけ、インスタンスIDをクリックして [インスタンスの詳細] ページに移動します。 ネットワークインタフェース タブをクリックし、ERIがインスタンスにバインドされているかどうかを確認します。
ERIがECSインスタンスにバインドされている場合は、この手順をスキップします。
ECSインスタンスにバインドされているERIがない場合は、次の手順に進みます。
ECSインスタンスのプライマリENIまたはセカンダリENIのERI機能を有効にします。
重要ECSインスタンスごとにERIを1つだけ持つことができます。 ECSインスタンスのプライマリENIまたはセカンダリENIのERI機能を有効にします。
ECSインスタンスのプライマリENIまたはセカンダリENIのERI機能を有効にします。 プライマリENIのERI機能を有効にすることを推奨します。
ECSインスタンスのプライマリENIまたはセカンダリENIのERI機能を有効にするには、NetworkInterfaceIdをENI IDに設定し、
NetworkInterfaceTrafficMode
をHighPerformance
に設定して、ModifyNetworkInterfaceAttribute操作を呼び出します。セカンダリENIを作成し、ENIのERI機能を有効にしてから、ENIをECSインスタンスにアタッチします。
説明ENIを個別に作成する場合にのみ、セカンダリENIのERI機能を有効にできます。 ECSインスタンスの作成時、またはENIの作成後に、セカンダリENIのERI機能を有効にすることはできません。
セカンダリENIを作成します。 詳細については、「ENI の作成」をご参照ください。
VPCおよびvSwitch: ECSインスタンスがデプロイされているVPCと、ECSインスタンスが接続されているvSwitchを選択します。
eRDMAインターフェイス: このスイッチをオンにします。
セカンダリENIをECSインスタンスにバインドします。 詳細については、「セカンダリENIのバインド」をご参照ください。
説明セカンダリENIをECSインスタンスにバインドする前に、インスタンスのプライマリENIとセカンダリENIが同じvSwitchに接続されていないことを確認してください。 そうでない場合、セカンダリENIのRDMA機能は、場合によっては、デフォルトルートのために利用できないことがある。
ERI機能が有効になっているセカンダリENIをECSインスタンスからバインド解除する場合は、ENIをバインド解除する前にインスタンスを停止します。 詳細については、「インスタンスの停止」をご参照ください。
ifconfig
コマンドを実行して、セカンダリENIを表示します。 セカンダリENIに関する情報がコマンド出力に表示されない場合は、セカンダリENIを設定します。 詳細については、「セカンダリENIの設定」をご参照ください。 コマンド出力にセカンダリENIに関する情報が表示されている場合は、この手順をスキップします。説明セカンダリENIがECSインスタンスにバインドされた後、ECSインスタンスが使用する特定のイメージは新しいセカンダリENIを認識できません。
eRDMAドライバをインストールします。
eRDMAドライバを手動で、または実際のシナリオに基づいてスクリプトを使用してインストールします。
スクリプトを使用してeRDMAドライバーをインストールすると、最新の安定したeRDMAドライバーバージョンのインストールパッケージが自動的にダウンロードされます。
eRDMAドライバーを手動でインストールする場合は、特定のeRDMAドライバーバージョンのパッケージをダウンロードできます。
スクリプトを使用して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ドライバーに必要な依存関係パッケージを自動的にインストールし、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ドライバを再インストールします。
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ドライバーバージョンのリリースノートを示します。
次のコマンドを実行してインストールパッケージを解凍し、インストールパッケージの解凍先ディレクトリに移動します。
tar -xvf erdma_installer-latest.tar.gz && cd erdma_installer
eRDMAドライバをインストールします。
方法1: 次のコマンドを実行してeRDMAドライバをインストールします。 インストールプロセス中に、関連するアンインストール手順と自動インストール手順を確認します。
sudo sh install.sh
方法2: 次のコマンドを実行して、eRDMAドライバを自動的にインストールします。
sudo sh install.sh --batch
コマンド出力を表示して、ドライバがインストールされているかどうかを確認します。
次のコマンド出力は、ドライバがインストールされていることを示します。
次のコマンド出力は、ドライバのインストールに失敗したことを示します。 プロンプトに従って操作を実行し、ドライバを再インストールします。
説明ECSインスタンスがCentOS 7を実行していて、ドライバーの再インストール時にパッケージが見つからないというエラーが表示された場合、
yum
コマンドを実行してもパッケージの取得に失敗する可能性があります。 この場合、パッケージを取得する前に、yum install -y epel-release
コマンドを実行してExtra Packages for Enterprise Linux (EPEL) リポジトリをインストールする必要があります。
eRDMAパフォーマンスのテスト
Perftestツールは、eRDMAの基本的なパフォーマンスをテストするために使用できるベンチマークツールです。 詳細については、「Perftestドキュメント」をご参照ください。
サーバーとクライアントにPerftestツールをインストールします。 次のいずれかの方法を使用して、Perftestツールをインストールします。
方法1: 公式Perftestリポジトリからperftestツールをダウンロードし、ツールをインストールします。 この方法を使用してECSインスタンスにツールをインストールする場合は、インスタンスがインターネットにアクセスできることを確認してください。
方法2: YUMおよびAPTリポジトリを使用して、Perftestツールをインストールします。 インスタンスオペレーティングシステムに基づいて次のいずれかのコマンドを実行し、Perftestツールをインストールします。
Alibaba Cloud Linux 3、CentOS、およびAnolis OSの場合は、次のコマンドを実行します。
sudo yum install perftest -y
Ubuntuの場合は、次のコマンドを実行します。
sudo apt install perftest -y
説明さまざまなバージョンのPerftestツールが、さまざまなLinuxディストリビューションのリポジトリに含まれています。 非互換性が発生する可能性があります。 この方法を使用してPerftestツールをインストールする場合は、通信中のECSインスタンスで同じLinuxディストリビューションを使用することを推奨します。 それ以外の場合は、方法1を使用します。
eRDMAレイテンシをテストします。
サーバーで次のコマンドを実行します。
ib_write_lat -R -a -F
クライアントで次のコマンドを実行します。
ib_write_lat -R -a -F <server_ip>
<server_ip>
は、サーバーとして使用されるECSインスタンス上のERIのプライベートIPアドレスを指定します。 IPアドレスの取得方法については、「IPアドレスの表示」をご参照ください。
次のコマンド出力が返されます。 コマンド出力には、平均レイテンシ、最大レイテンシ、最小レイテンシなどのパフォーマンスメトリックが含まれ、eRDMAが期待どおりに機能することを示します。
関連ドキュメント
コンテナーで大規模なデータ転送と高性能ネットワーク通信が必要なシナリオでは、Docker環境でeRDMAを使用して、コンテナーアプリケーションがカーネルをバイパスし、ホスト上の物理的なeRDMAデバイスに直接アクセスできるようにします。 これにより、データ転送速度と通信効率が向上します。 詳細については、「DockerでのeRDMAの設定」をご参照ください。
Alibaba Cloud Container Service for Kubernetes (ACK) クラスターでeRDMAを使用すると、クラスター内のすべてのサービスとアプリケーションに低遅延で高スループットのネットワーク通信機能を提供できます。 詳細については、「ACKクラスターでのeRDMAの使用」をご参照ください。
eRDMAのリアルタイムの作業ステータスを監視および確認できます。 詳細については、「eRDMAの監視と確認」をご参照ください。