従来のリモートダイレクトメモリアクセス (RDMA) と比較して、エラストリックRDMA (eRDMA) は、Redisベースのキャッシュデータベース、Sparkベースのビッグデータ分析、ハイパフォーマンスコンピューティング (HPC) の気象調査予測モデル (WRF) 、AIトレーニングなど、さまざまなシナリオで使用できます。 eRDMAを使用してHPCアプリケーションをクラウドにデプロイし、柔軟性の高い高性能アプリケーションクラスターを低コストで構築できます。 VPCをeRDMAネットワークに置き換えて、アプリケーションを高速化することもできます。
eRDMAとは何ですか?
eRDMAは、Alibaba Cloudがクラウド向けに開発した柔軟なRDMA (Remote Direct Memory Access) ネットワークです。 eRDMAは、基盤となるリンクとして仮想プライベートクラウド (VPC) を再使用し、Alibaba Cloudによって開発された輻輳制御 (CC) アルゴリズムを使用します。 eRDMAは、RDMAサポートに基づく高スループットと低レイテンシを備えています。 RDMAと比較して、eRDMAは数秒以内に大規模なRDMAネットワーキングを実装します。 eRDMAは、従来のHPCアプリケーション、AIアプリケーション、および伝送制御プロトコル /インターネットプロトコル (TCP/IP) アプリケーションをサポートします。
なぜeRDMA?
TCP/IPプロトコルスタックは、多くのアプリケーションが構築される主流のネットワーク通信プロトコルを提供する。 データセンターに関連するビジネスの発展に伴い、低レイテンシや高スループットなど、ネットワークパフォーマンスに対するより高い要件が課されています。 TCP/IPは、高いコピーオーバーヘッド、クロスプロトコルスタック処理、複雑なCCアルゴリズム、および頻繁なコンテキストスイッチングなどの制限により、通信ネットワークの性能を制限するボトルネックになっている。
RDMAは、前述の問題点を解決するのに役立ちます。 RDMAは、ゼロコピーやカーネルバイパスなどの機能を提供し、データがコピーされてコンテキストが頻繁に切り替えられるときのオーバーヘッドを防ぎます。 TCP/IP通信と比較して、RDMAは、低レイテンシ、高スループット、および低CPU使用率を特徴とする。 ただし、RDMAには、高価格とO&Mコストのため、いくつかの使用シナリオがあります。
Alibaba Cloud eRDMAは、多様なクラウド環境との包括的な互換性を持つように設計されています。 eRDMAは、低レイテンシを提供し、クラウド環境に適応してパフォーマンスを向上させる幅広いアプリケーションの要件を低減します。
eRDMAのメリット
高性能
RDMAはカーネルスタックをバイパスして、ネットワーク伝送のためにユーザモードプログラムからホストチャネルアダプタ (HCA) にデータを転送します。 これにより、CPUの負荷とレイテンシが大幅に削減されます。 eRDMAは、従来のRDMAインターフェイスの利点を提供し、RDMAをVPCに適用します。 eRDMAは、RDMAがクラウドネットワークに提供する超低レイテンシを備えています。
説明HCAは、サーバをネットワークに接続し、RDMAのサポートを提供するハードウェアネットワークインタフェースカード (NIC) である。
包括性
eRDMAは無料で有効にできます。 eRDMAを有効にするには、ECSインスタンスの購入時にElastic RDMA Interfaceオプションのみを選択する必要があります。
大規模なデプロイ
従来のRDMAは、無損失ネットワークに基づいている。 これは、大規模な展開を高価かつ困難にする。 eRDMAは、Alibaba Cloudが開発したCCアルゴリズムを使用して、VPCの伝送品質 (レイテンシやパケット損失など) を制御します。 eRDMAは、損失の多いネットワークで優れたパフォーマンスを提供します。
スケーラビリティ
別個のハードウェアNICを必要とするRDMAと比較して、eRDMAは、Shenlongアーキテクチャに基づくクラウド属性を有するRDMA HCAカードを使用する。 eRDMAは、ECSの使用時にデバイスを動的に追加でき、ホット移行をサポートするため、柔軟なデプロイが可能です。
共有VPC
eRDMAはENIに依存し、ENIが属するネットワークを再利用する。 これにより、サービスネットワークを変更することなく、レガシーネットワークでRDMA機能をアクティブ化できます。
eRDMA通信の実装
Elastic Compute Service (ECS) インスタンスのeRDMAの有効化: Alibaba Cloudは、ECSインスタンスのeRDMAを迅速に設定し、VPCでRDMA機能を有効化し、通信用のRDMA接続を確立するための柔軟で便利な設定オプションを提供します。 詳細については、「ECSインスタンスでのeRDMAの有効化」をご参照ください。
eRDMAへのアプリケーションの迅速な適応: 低レイテンシ、高帯域幅、低CPU使用率の要件を満たすようにアプリケーションにRDMA関連のロジックを実装および構成する場合は、Network Accelerator (NetACC) またはServer Migration Center (SMC) を使用してアプリケーションを適応させることができます。 詳細については、「eRDMAとアプリケーションの適応の概要」をご参照ください。
eRDMAの基本機能と仕様
RDMAネットワーク通信では、キューペア (QP) 、完了キュー (CQ) 、メモリ領域 (MR) 、および動詞Opcodeがコアコンポーネントです。 RDMA通信で重要な役割を果たし、RDMAネットワーク通信の高効率と低遅延を保証します。
このセクションでは、eRDMAの仕様について説明します。 eRDMAを使用する場合は、サービス仕様の要件が満たされていることを確認してください。 そうしないと、アプリケーションが期待どおりに機能しない場合があります。
QP
QPは、RDMAにおける基本的な通信エンティティである。 これは、送信待ち行列 (SQ) と受信待ち行列 (RQ) とからなる。 QPは、送受信されるデータを管理するために使用される。
特徴: QPにより、アプリケーションはデータを送受信できます。 RDMA通信の中核です。 QPステートマシンは、初期化から終了までの接続のステータスを管理します。
eRDMA QP仕様:
項目
リソースプランの仕様
説明
接続確立方法
RDMA_CM
RDMA_CMは、RDMA接続の確立、保守、および閉鎖を管理するために使用される。 RDMA接続の管理プロセスが簡素化され、アプリケーションがRDMA機能を使用しやすくなります。 これは、Message Passing Interface (MPI) 、Shared Memory Communications over Remote Direct Memory Access (SMC-R) 、PolarDB SCCなどのシナリオで一般的に使用されます。 詳細については、「Linux rdma_cm」をご参照ください。
eRDMAは、Tensorflow、NVIDIA Collective Communications Library (NCCL) 、より優れたRemote Procedure Call (bRPC) など、帯域外 (OOB) シナリオのアプリケーションにcompatモードを提供します。
重要CLIを使用して、RDMA_CMとOOBの互換性を実装できます。 詳細については、「互換性のためのeRDMAとbRPC間のチェーンモードの変更」をご参照ください。
互換性モードでは、30608から30623の範囲の追加の16個のTCPポートが占有されます。
QPタイプ
RC
RCタイプのQPは、信頼できる接続サービスを提供する。 RCタイプのQPは、送信動作、RDMA書き込み動作、RDMA読み出し動作、およびアトミック動作をサポートする。
共有受信キュー (SRQ)
サポートされていません。
なし。
最大QP (max_qp_num)
このパラメーターは、インスタンスファミリーによって異なります。 最大131,071個のQPを作成できます。
RDMAデバイスまたはネットワークインターフェイスで作成できるQPの最大数。
このパラメーターは、RDMAネットワークで作成できる同時接続の最大数を決定します。これは、ネットワークの拡張性と同時処理機能に影響します。
最大送信ワークリクエスト (WR) の深さ (max_send_wr)
8,192
QP送信キューの作業要求の最大数。
このパラメータは、QPが同時に開始することができる送信動作の数を決定し、これは、QPの送信性能およびスループットに影響を及ぼす。
最大受信WR深度 (max_recv_wr)
32,768
QP受信キュー内の作業要求の最大数。
このパラメータは、QPが同時に処理することができる受信動作の数を決定し、QP受信性能およびスループットに影響を及ぼす。
送信WRの最大SGE (max_send_sge)
説明6
送信WR内のスキャッタギャザー要素 (SGE) の最大数。
このパラメータは、QPが単一の送信動作で処理できるメモリセグメントの最大数を決定し、データ転送の効率と柔軟性に影響を与えます。
受信WRの最大SGE (max_recv_sge)
1
受信WR内のSGEの最大数。
このパラメータは、QPが1回の受信動作で処理できるメモリセグメントの最大数を決定します。これは、データ受信の効率と柔軟性に影響します。
CQ
CQは、WRの完了をアプリケーションに通知するために使用される。 データの送信または受信などのRDMA動作が完了すると、関連する完了情報がCQに入れられる。
機能: CQは、RDMAでの非同期操作完了通知の鍵です。 CQは、アプリケーションが非同期イベントを管理し、エラーを処理するのに役立ちます。 CQは、どのオペレーションが完了したかをアプリケーションに通知するメカニズムを提供します。これは、非同期オペレーションの管理に不可欠です。
eRDMA CQ仕様:
項目
リソースプランの仕様
説明
CQs
CQの数は、インスタンスタイプによって異なります。 CQIの最大数は、QPの数の2倍である。
なし。
CQのベクトル (vector_num)
CQ内のベクトルの数は、インスタンスタイプによって異なります。 CQにおけるベクトルの最大数は31である。 CPUの数は、QPの数に関連する。
各ベクトルは、ハードウェア割り込みに対応する。 実際の使用では、通信要件を満たすために各CPUを最大1つのベクトルで構成できます。
各ベクトルは、eRDMA内の完了イベントキュー (CEQ) に関連付けられる。
最大CEQ深度
4,096
CEQの最大深度はバージョン0.2.34で256されます。
イベントモードでは、各ベクトルに4,096を超えるCQIをバインドしないことを推奨します。 そうでなければ、CEQオーバーフローが発生する。
最大CQ深度
1,048,576
なし。
RDMAメモリ管理
MRおよびメモリウィンドウ (MW) は、RDMAにおけるメモリ管理のための重要な概念である。
MR: RDMAがアクセスできるメモリ領域を指定します。 MRを登録すると、アプリケーションはRDMAハードウェアにこのメモリ領域への直接アクセスを許可できます。
機能: MRを使用すると、RDMAはリモートホストのメモリ上で読み取りや書き込み操作などの操作を直接実行できます。 これは、RDMAのゼロコピー特徴の基礎である。
eRDMA MR仕様:
項目
リソースプランの仕様
MRs
MRの数は、インスタンスタイプによって異なります。 MRの最大数は、QPの数の2倍である。
最大MRサイズ
MRのサイズは、基盤となるハードウェアによって異なります。 サポートされるMRの最小サイズは2 GB、サポートされるMRの最大サイズは64 GBです。
MW: Alibaba CloudはMWをサポートしていません。
動詞インターフェイス
動詞は、RDMAプログラミングの基礎であり、RDMAデバイスの動作を制御するためのインターフェースのセットを定義します。 オペコードは、特定のタイプの操作を指定するためにこれらのインターフェイスで使用されるコードです。
機能: Opcodeは、送信 (send) 、受信 (receive) 、読み取り (read) 、書き込み (write) などのRDMA操作のタイプを定義します。 オペコードは、RDMAハードウェア固有の命令を実行し、アプリケーションがRDMAハードウェアと直接対話して効率的なデータ転送を行うことを可能にします。
Opcodeサポート:
オペコード
操作がサポートされているかどうか
RDMA書き込み
対応
即時でのRDMA書き込み
対応
RDMA読み取り
対応
送信
対応
無効にして送信
対応
即時送信
対応
Solicitedイベントで送信
対応
ローカル無効化
対応
アトミック操作
対応