RDMA – 算術ネットワークの主要テクノロジー

演算ネットワークは、演算電力の供給の問題を解決するものであり、リモート ダイレクト データ アクセス (RDMA) を含む演算電力のいくつかの主要テクノロジは、ネットワークのパフォーマンス指標と密接に関連しています。

RDMAとはRemote Direct Memory Accessの略で、ネットワーク伝送におけるサーバー側のデータ処理の遅延を解決するために作られました。

RDMA は、ネットワーク経由でデータをコンピュータのストレージ領域に直接転送し、オペレーティング システムに影響を与えることなく、あるシステムからリモート システムのメモリにデータを迅速に移動するため、多くのコンピューティング処理機能を使用する必要がありません。 外部メモリのレプリケーションとコンテキスト切り替えのオーバーヘッドが排除されるため、メモリ帯域幅と CPU サイクルが解放され、アプリケーション システムのパフォーマンスが向上します。

伝統的な意味での DMA

ダイレクト メモリ アクセス (DMA) は、I/O 交換が完全にハードウェアによって実行される動作モードです。 このモードでは、DMA コントローラが CPU からバスの完全な制御を引き継ぎ、CPU を経由せずにメモリと IO デバイスの間でデータ交換が直接行われます。 DMA コントローラは、アドレスと制御信号をメモリに送信し、アドレスを変更し、転送されたワード数をカウントし、転送動作の終了を割り込みで CPU に報告します。

DMA 方式を使用する目的は、専用の DMA コントローラ (DMAC) を使用してアクセス アドレスを生成し、アクセス プロセスを制御することで、大規模なデータ転送時の CPU オーバーヘッドを削減することです。 利点は、演算がハードウェア回路によって実装されること、転送速度が速いこと、CPU が干渉せず初期化と終了時にのみ関与すること、CPU が周辺デバイスと並行して動作して効率が高いことです。

伝統的な意味での DMA

RDMAの動作原理

通常の NIC は、ハードウェア チェックのサポートとソフトウェアの改善を統合して、送信データのコピー数を削減しますが、大量の CPU 計算サイクルを必要とする受信データのコピー数は削減しません。

通常のNICの動作プロセス

  1. データ送信者は、ユーザー空間のバッファからカーネル空間のソケット バッファにデータをコピーする必要があります。
  2. データ送信者は、データをカプセル化するためにカーネル空間にパケット ヘッダーを追加する必要があります。
  3. データは、ネットワーク送信のためにカーネル空間のソケット バッファから NIC バッファにコピーされます。
  4. データ受信者は、リモート マシンから送信されたパケットを受信し、そのパケットを NIC バッファからカーネル空間のソケット バッファにコピーします。
  5. 一連のマルチレイヤ ネットワーク プロトコルによってパケットが解析された後、解析されたデータはカーネル空間のソケット バッファからユーザー空間のバッファにコピーされます。
  6. この時点で、システム コンテキストの切り替えが実行され、ユーザー アプリケーションが呼び出されます。

受信したパケットはまずシステム上にキャッシュされ、そこで処理され、対応するデータが TCP 接続に割り当てられます。 次に、受信システムは、要求されていない TCP データを対応するアプリケーションに関連付け、システム バッファから宛先ストレージ アドレスにデータをコピーします。 したがって、ネットワーク速度の制約が生じます。アプリケーション通信の強度の増加と、カーネルとアプリケーション メモリ間のデータ処理におけるホスト CPU の重いタスクにより、システムはホスト CPU リソースを継続的に追加し、効率的なソフトウェアを構成し、システム負荷管理を強化する必要があります。

この問題の鍵は、ホスト CPU での不必要かつ頻繁なデータ転送を排除し、システム間のメッセージ遅延を短縮することです。

RDMA は、ネットワーク経由でコンピュータのストレージに情報を直接転送することで、オペレーティング システムに影響を与えることなく、あるシステムからリモート システムのメモリにデータを迅速に移動するため、コンピュータの処理能力があまり使用されません。 外部メモリのコピーやテキスト交換操作が不要になるため、バススペースと CPU サイクルが解放され、アプリケーションのパフォーマンスが向上します。 一般的な方法では、システムは、受信した情報を正しい領域に保存する前に、分析してタグ付けする必要があります。

RDMAの作業プロセス

  • アプリケーションが RDMA 読み取りまたは書き込み要求を実行するとき、データのレプリケーションは実行されません。 カーネル メモリが関与することなく、RDMA リクエストはユーザー空間で実行されているアプリケーションからローカル NIC (NIC=) に送信されます。ネットワークインターフェースカード).
  • NIC はバッファの内容を読み取り、ネットワーク経由でリモート NIC に送信します。
  • ネットワーク経由で送信される RDMA 情報には、ターゲット仮想アドレス、メモリ キー、およびデータ自体が含まれます。 リクエストの完了は、完全にユーザー空間で (ユーザーレベルの完了アラインメントをポーリングすることにより) 処理することも、リクエストが完了するまでアプリケーションがスリープする場合はカーネル メモリを通じて処理することもできます。 RDMA 操作により、アプリケーションはリモート アプリケーションのメモリからデータを読み取ったり、メモリにデータを書き込んだりすることができます。
  • ターゲット NIC はメモリ キーを認識し、データをアプリケーション キャッシュに直接書き込みます。 操作に使用されるリモート仮想メモリ アドレスは、RDMA 情報に含まれています。

RDMA のゼロコピー テクノロジー

ゼロコピー ネットワーキング テクノロジにより、NIC はアプリケーション メモリとの間でデータを直接転送できるため、アプリケーション メモリとカーネル メモリの間でデータをコピーする必要がなくなります。 カーネル メモリ バイパスを使用すると、アプリケーションはカーネル メモリ呼び出しを実行せずに NIC にコマンドを送信できます。 カーネル メモリが関与しないため、RDMA リクエストはユーザー空間からローカル NIC に送信され、ネットワークを介してリモート NIC に送信されます。これにより、ネットワーク転送ストリームを処理するときにカーネル メモリ空間とユーザー空間の間で環境を切り替える回数が減ります。

RDMA のゼロコピー テクノロジー

左側には、従来の TCP/IP プロトコルと通常の NIC によって実行される通信プロセスが表示されます。 明らかに、アプリケーション層が NIC からデータ メッセージを取得したい場合、XNUMX つのバッファと通常の TCP/IP プロトコル スタックを通過する必要があります。ソフト割り込みは、最初の受信キュー バッファからデータ メッセージを読み取る役割を果たします。次に、それを MSGBuff にコピーし、最後にアプリケーション層がシステム コールを通じてデータ メッセージをユーザー状態に読み取ります。 一方、右側は、次のルールを持つ RDMA を使用したゼロコピー プロセスです。

1) RDMA とその LLP (下位層プロトコル) は、RNIC と呼ばれる NIC 上に実装できます (RNIC は RDMA Network Interface Card)。

2) 1) で述べた XNUMX つの実装はどちらも次のステップを経ます。送受信されたデータはマークされたメモリ空間にキャッシュされ、その後、このメモリ空間は XNUMX 者間で取り決められたルールに従ってアプリケーション空間に直接マッピングされます。これにより、従来の実装方法では少なくとも XNUMX つのメモリ コピーが削減され、ゼロ コピーが実現されます。 細い線はデータ フローの方向を示します。実際、マーカー キャッシュは RDMA 経由でユーザー キャッシュ スペースに直接マッピングされます。

RDMAの構成

RDMA は、iWARP プロトコル ファミリを構成する XNUMX つのプロトコル、RDMA、DDP、MPA によって実装されており、高速ネットワークの相互運用性を確保するために使用されます。 DDP は、RDMA メッセージを DDP パケットにカプセル化し、下位のマーカーベースのプロトコル データ ユニット アラインメント (MPA) 層に転送する必要があります。MPA 層では、識別子、長さ、および CRC チェックが DDP パケットに挿入され、MPA データが形成されます。セグメント。 IP 層は、必要なネットワーク ルーティング データをパケットに追加します。

データ操作方法

RDMA プロトコルは、リモート ダイレクト データ バッファに対して XNUMX 種類の制御操作を提供します。 リモート バッファ読み取り操作を除く各 RDMA 制御操作では、対応する RDMA メッセージが XNUMX つだけ生成されます。

  1. 送信: 送信操作は、送信メッセージを使用して、送信側アプリケーションからデータ受信側アプリケーションによって明示的に宣言されていないバッファにデータを直接送信します。 したがって、送信メッセージは DDP タグなしバッファ データ転送モデルを使用して、上位アプリケーション メッセージを受信アプリケーションのメタタグ付きキュー バッファに転送します。
  2. 無効化して送信: 送信するスタッグを追加します。 メッセージがスタッグによって指定されたピア アプリケーション バッファにキャッシュされ、メッセージ到着通知が受信側アプリケーションに伝達されると、受信側アプリケーションがバッファが使用可能であることを再宣言するまで、受信側アプリケーションは送信側アプリケーションにバッファへのアクセスを許可しません。送信側アプリケーションが引き続き使用できるようにします。
  3. 要請イベントで送信 (SE で送信): このメッセージは、送信のすべての機能とメッセージへの追加フィードバックを使用して、送信側アプリケーションのデータをデータ受信側アプリケーションのタグなしキュー バッファーに直接送信するために使用されます。
  4. 要請イベント付き送信および無効化 (SE 付き送信および無効化): このメッセージに対応するアクションは、送信側アプリケーションのデータを、データ受信側アプリケーションによってまだ明示的に宣言されていないバッファに直接送信することです。バッファには、送信のすべての機能があります。 SE と連携し、メッセージにフィードバックを追加します。 Send with SE のすべての機能が備わっており、メッセージにフィードバックを追加します。
  5. リモート ダイレクト メモリ アクセス書き込み: RDMA 書き込み操作に対応し、送信側アプリケーションから受信側アプリケーションによって宣言されたバッファにデータを渡すために使用されます。 この操作では、受信側アプリケーションはマークされたアプリケーション受信バッファを事前に割り当て、送信側アプリケーションがバッファ書き込みを直接実行できるようにする必要があります。 同時に、送信側アプリケーションは、宣言内のバッファの位置、サイズ、および対応するスタッグに関する情報も取得します。 次に、送信側アプリケーションは RDMA 書き込み操作を開始します。この操作では、DDP のタグ付きバッファ データ転送モデルを使用して、送信側アプリケーションのメッセージを受信側アプリケーションによって宣言されたタグ付きバッファに直接転送します。
  6. リモート ダイレクト メモリ アクセス読み取り: RDMA 読み取り操作に対応し、反対側のマークされたアプリケーション バッファ (データ ソースに対応) からローカル側のマークされたアプリケーション バッファ (データ レシーバーに対応) にデータを渡します。 データ ソースの上位層アプリケーションは、まずタグ付きアプリケーション バッファを事前に割り当て、このバッファの内容に対する直接読み取り操作を許可する必要があります。 同時に、データ ソースの上位層アプリケーションは、宣言されるデータ ソース バッファの位置、サイズ、対応するスタッグなどの情報をローカルの上位層アプリケーションに渡す必要があります。 上記の宣言を取得した後、データ受信側の上位アプリケーションは、対応するタグ付きアプリケーション バッファを割り当て、相手側からのデータの読み取りを開始します。
  7. 終了: 終了操作では、終了メッセージを使用して、現在のデータ ダイレクト キャッシュ操作を終了するために発生したエラー メッセージをローカル アプリケーションに通知します。 Terminate 操作では、DDP のメタタグ付きバッファ モデルを使用して、反対側のタグなしバッファに Terminate を渡します。

RDMAデータ送信プロセス

RDMAの応用例

RDMA には、従来のネットワーク ハードウェアを使用して TCP/IP およびイーサネット標準を使用してインターネットを構築するという利点があり、小規模サーバーをクラスターに接続して、十数個のプロセッサーを備えた今日のハイエンド サーバーが処理できる大規模なデータベースを処理できるようにするために使用されます。取り持つ。 RDMA、TOE、および 10GB イーサネット これらを総合すると、これは非常に素晴らしいテクノロジーです。

TOE (TCP Offエンジンのロード、CPU から NIC までの TCP/IP プロトコル処理)

ネットワークを介したホストの通信中、CPU は、データ複製、プロトコル処理、割り込み処理などの多層ネットワーク プロトコルのパケット処理に多くのリソースを費やす必要があります。 TOE テクノロジーは、CPU をこれらの操作から解放し、ホスト プロセッサーの上記の作業を NIC に移します。 TOE テクノロジーには、サポートする特定の NIC が必要です。 Offローディング。マルチレイヤ ネットワーク プロトコルのパケットをカプセル化できます。 通常の NIC はパケットごとに割り込みをトリガーしますが、TOE NIC を使用すると、各アプリケーションは割り込みをトリガーする前に完全なデータ処理プロセスを完了できるため、割り込みに対するサーバーの応答負荷が大幅に軽減されます。

TOE NIC は、データを受信するときに NIC 内でプロトコル処理を実行します。 したがって、データをカーネル空間バッファにコピーする必要はなく、ユーザー空間バッファに直接コピーする必要があります。 この「ゼロコピー」アプローチにより、NIC とサーバー間での不要なデータのコピーが回避されます。

ネイティブRDMA

RDMA は、急速に高速クラスタおよびサーバー エリア ネットワークの基本的な機能になりつつあります。 InfiniBand ネットワークと仮想インターフェイス アーキテクチャ ベースのネットワークは RDMA をサポートし、トランスポートでの使用には RDMA over TCP/IP をサポートします。 offロード エンジン ネットワーク カードは現在開発中です。 RDMA を使用した高パフォーマンスをサポートするプロトコルには、ソケット ダイレクト プロトコル、SCSI RDMA プロトコル (SRP)、およびダイレクト アクセス ファイル システム (DAFS) が含まれます。 RDMA を使用する通信ライブラリには、ダイレクト アクセス プロバイダー ライブラリ (DAPL)、メッセージ パッシング インターフェイス (MPI)、および仮想インターフェイス プロバイダー ライブラリ (VIPL) が含まれます。 分散アプリケーションを実行するクラスターは、R​​DMA が優れている分野の XNUMX つです。DAPL または VIPL およびクラスター上で実行されているデータベース ソフトウェアと併用すると、同じノード数を持つ他の初期の RDMA アプリケーションと比較して、より高いパフォーマンスと優れたスケーラビリティを提供できるためです。 さらに、RDMA テクノロジは急速に高速クラスタ システムおよびストレージ エリア ネットワークの基本的な機能になりつつあり、iWARP/RDMA が基本的な構成要素となっています。 iWARP (インターネット ワイド エリア RDMA プロトコル) は、TCP/IP プロトコルに基づく RDMA テクノロジであり、TCP の上に DDP の層を追加することで、既存の TCP/IP プロトコル スタックの上に RDMA テクノロジを実装します。 スイッチによってサポートされるロスレス イーサネット伝送を必要とせずに、標準イーサネット インフラストラクチャでの RDMA テクノロジの使用をサポートしますが、サーバーは iWARP をサポートするネットワーク カードを使用する必要があります。 ただし、TCPの影響で若干パフォーマンスが悪くなります。 さらに、RDMA の iSCSI 拡張機能である iSER は、RDMA 機能を最大限に活用します。 初期の RDMA アプリケーションには、DAFS を介したリモート ファイル サーバー アクセスと、SRP を介したストレージ デバイス アクセスが含まれています。 RDMA は、急速に高速クラスタおよびサーバー エリア ネットワークの基本的な機能になりつつあります。

アプリケーション NASとSANで

従来の直接接続ストレージ (DAS) はサーバー中心のストレージ構造であり、容量の制約、接続距離の制限、共有と管理の難しさなどの制限があります。 これではネットワーク時代のアプリケーションニーズに応えることができません。 ネットワーク時代の到来は、ストレージ テクノロジーに大きな変化をもたらしました。 ネットワーク接続ストレージ (NAS) とストレージ エリア ネットワーク (SAN) は、ネットワーク上のアプリケーション システムに豊富で高速かつ便利なストレージ リソースを提供すると同時に、共有ストレージ リソースと集中管理も可能にし、今日の理想的なストレージ管理およびアプリケーション モデルとなっています。 ただし、NAS 構造には、転送容量の制限、スケーラビリティの制限、バックアップ機能の制限、データベース サービスの非効率なサポートなど、解決が難しい問題がいくつかあります。 DAFS は、RDMA と NAS ストレージ機能の利点を統合し、すべての読み取りおよび書き込み操作が RDMA ドライバーによって直接実行されるため、ネットワーク ファイル プロトコルによって引き起こされるシステム負荷が軽減されます。 将来的には、NAS ストレージ システムは DAFS テクノロジーを採用してシステム パフォーマンスを向上させ、パフォーマンスと価格の点で SAN ストレージ システムと強力に競争することになります。

インフィニバンド

InfiniBand の 10 つの主な利点は、標準プロトコル、XNUMX GB/秒のパフォーマンス、RDMA、およびトランスポートに基づいています。 offロード。 その利点は、RDMA とトランスポートの高速伝送にあります。 offエンジンに負荷をかけます。 InfiniBand ネットワークと仮想インターフェイス アーキテクチャ ベースのネットワークは RDMA の使用をサポートし、トランスポートを備えた RDMA over TCP/IP もサポートします。 offロード エンジン NIC は InfiniBand サーバーをサポートします。 ホスト チャネル アダプター (HCA) はプロトコルをサーバーの内部 PCI-X または PCI-Express バスに変換します。RDMA 機能を備えた HCA はカーネル バイパスと呼ばれることもあります。 InfiniBand (IB) は、 専用の IB ネットワーク カードと IB スイッチを必要とするアーキテクチャ。 パフォーマンスの点では、InfiniBand ネットワークが明らかに最高ですが、ネットワーク カードとスイッチの価格も非常に高価です。

RoCE (RDMA over Ethernet) は、イーサネットに基づく RDMA テクノロジーであり、IBTA によって提案されました。 RoCE は、標準のイーサネット インフラストラクチャで RDMA テクノロジーの使用をサポートしますが、ロスレス イーサネット伝送にはスイッチのサポートが必要で、ネットワーク カードは RoCE をサポートする特殊な NIC である必要があります。

テクノロジーが進化し続けるにつれて、主流の RDMA テクノロジーは、IB テクノロジーと、イーサネット ベースの RDMA テクノロジーをサポートする IBoE (IB over Ethernet) の XNUMX つのグループに分けることができます。 RoCE と iWARP はこのテクノロジーに属します。 IBoE (IB over Ethernet) はイーサネット上で伝播し、イーサネット スイッチで使用できますが、IB プロトコルには専用のハードウェアとルーターが必要です。

コンピューティング電力ネットワークの継続的な発展に伴い、もともと単一マシンまたはローカルエリアのアプリケーションに使用されていた DMA テクノロジは、より大規模なスペースに適用され、コンピューティング電力ネットワークの主要なテクノロジになるでしょう。

RDMA

コメント

上へスクロール