RDMA:リモートダイレクトメモリアクセスとは
大規模なデータセットや複雑なプロセスを扱う企業にとって、高いレイテンシとCPUのボトルネックは大きな課題です。では、この問題をどのように解決すればよいのでしょうか。リモートダイレクトメモリアクセス(RDMA)は、CPUを介さずにデータ転送を可能にする技術であり、レイテンシとCPU使用率を大幅に削減します。しかし、RDMAがどのように機能するかが鍵になります。
RDMA(リモートダイレクトメモリアクセス)とは?
RDMAは、CPU、キャッシュ、およびオペレーティングシステムを介さずに、2つのデバイスのメモリ間で直接データ転送を可能にする技術です。このメモリ間での直接通信により、データ転送速度が加速し、待ち時間が短縮され、CPUの負荷が軽減され、システム全体のパフォーマンスが向上します。特に高速ネットワーク環境ではその効果が顕著です。
1990年代に開発された当初、RDMAは従来のデータ転送の非効率性を改善することを目的としており、ネットワーク上の複数のノードにまたがるメモリーへの直接アクセスを可能にしました。主な進展としては、RDMAを普及させた高スループットで低レイテンシのネットワーク規格であるInfiniBandの導入、およびその後、RoCE(RDMA over Converged Ethernet)やiWARP(Internet Wide Area RDMA Protocol)を経由してイーサネットなどの他のネットワークファブリックへの統合が挙げられます。RDMAは、パフォーマンスの向上とリソース使用量の削減を実現する能力により、データセンター、クラウドコンピューティング、ストレージソリューションなど、さまざまなアプリケーションの重要なコンポーネントとなっています。
RDMAの仕組み
RDMAを動作させるには、各通信デバイスに搭載されたRoCEやInfiniBandなどのネットワーク・インターフェース・コントローラ(NIC)にトランスポート・プロトコルを実装する必要があります。ゼロコピー・ネットワーキングと呼ばれるプロセスにより、これらのNICはリモート・マシンのCPUを介さずにリモート・マシンのメモリからデータを読み込み、メモリにデータを書き込むことができます。これにより、レイテンシとCPU負荷が軽減されるだけでなく、データ・スループットが大幅に向上します。
RDMAの利点
RDMAには、ネットワーク環境における高性能データ転送に最適なテクノロジーとなるいくつかの重要な利点があります。主な利点は以下の通りです。
低レイテンシ:RDMAは、従来のネットワークプロトコルスタックをバイパスして、CPUを介在させる必要性を低減し、メモリとメモリ間の直接通信を可能にします。これによりレイテンシが大幅に低減され、RDMAは金融取引や高性能コンピューティングなどのリアルタイムデータ処理を必要とするアプリケーションに最適です。
高いスループット:RDMAは、メモリ領域間でデータを直接転送できるため、従来のデータ転送方法と比較してはるかに高いスループットを実現します。これは、データセンターやクラウドコンピューティングなど、大量のデータを迅速に移動する必要がある環境において特に有益です。
CPU使用率の削減:RDMAはデータ転送タスクをRDMA対応NICにオフロードするため、プロセスにおけるCPUの関与を最小限に抑えます。これにより、CPUリソースを他の重要なタスクに解放し、特にデータ移動に大きく依存する作業負荷において、システム全体のパフォーマンスと効率性を向上させることができます。
拡張性:RDMAは、レイテンシやCPU使用率を大幅に増加させることなく、多数のノードにわたる効率的な通信をサポートします。これにより、拡張性に優れ、成長中のデータセンターや大規模な分散コンピューティング環境に最適です。
アプリケーションパフォーマンスの向上:データベース、ストレージソリューション、仮想化プラットフォームなど、サーバー間の頻繁なデータ交換に依存するアプリケーションは、RDMAの機能によりデータ転送に必要な時間とリソースを削減でき、パフォーマンスと応答性が向上します。
エネルギー効率:CPUの負荷を軽減し、データ転送プロセスを最適化することで、RDMAはデータセンターの電力消費量を削減し、高性能なネットワーク接続のエネルギー効率を高めることができます。
RDMAの使用例
低レイテンシ、高スループット、CPU使用率の低減を実現するRDMAの能力は、特に需要の高いいくつかのシナリオにおいて特に有益です。RDMAが特に優れた効果を発揮する主な使用例を以下に示します。
ハイパフォーマンスコンピューティング(HPC):HPC環境では、ノード間の高速かつ効率的なデータ転送を可能にすることで、RDMAが広く使用され、コンピューティングクラスターのパフォーマンスが向上します。これは、大量のデータを迅速に処理および交換する必要がある科学シミュレーション、気象モデリング、および数値流体力学などのアプリケーションにおいて特に重要です。
金融サービス:金融サービス、特に高頻度取引(HFT)などの超低レイテンシを必要とするアプリケーションでは、RDMAは非常に有益です。このような環境では、ミリ秒単位の差がトランザクションの結果に大きな影響を与えることがあります。
データセンター:データセンターでは、RDMAはストレージネットワーク、ハイパーコンバージドインフラ、クラウドコンピューティングプラットフォームのパフォーマンスを向上させます。RDMA over Converged Ethernet(RoCE)やInfiniBandを統合することで、データセンターはより高速なデータ転送を実現し、CPUの負荷を軽減することができます。これは、高いデータスループットが求められる環境において特に有益です。
機械学習とAIのワークロード:大規模なデータトレーニングモデルでは分散データセットへの高速アクセスが必要となるため、機械学習とAIの環境ではRDMAの使用がますます増えています。RDMAは分散トレーニングモデルのデータ転送時間を最小限に抑え、結果を高速化し、より迅速な反復を可能にします。
仮想化およびクラウドサービス:RDMAは、仮想マシン(VM)の移行パフォーマンスの向上やストレージアクセス速度の高速化により、仮想化環境やクラウドサービスにおいて重要な役割を果たします。これにより、ダウンタイムの削減とサービス提供の改善が可能となり、RDMAは、顧客に高性能なサービスを提供しようとするクラウドプロバイダーにとって重要なテクノロジーとなります。
ストレージソリューション:RDMAは、NVMe over Fabrics(NVMe-oF)などのリモートストレージデバイスへのアクセスを高速化するストレージソリューションにも活用されています。RDMAを使用することで、これらのストレージネットワークはレイテンシを大幅に削減し、データアクセス速度を向上させることができます。これは、リアルタイム分析や大規模データベース管理など、迅速なデータ取得を必要とするアプリケーションにとって不可欠な要素です。
RDMAと従来のネットワーク通信の比較
RDMAは、従来のネットワーク通信方法と比較して、大幅なパフォーマンスの向上、レイテンシの低減、効率性の改善を実現している点で際立っています。 それでは、主な相違点を強調した詳細な比較を見てみましょう。
パフォーマンス:従来のネットワーク通信では、データ転送の処理にCPUとオペレーティングシステムが大きく関与しています。 プロトコル処理、パケットの組み立て/分解、エラーチェックなど、複数のステップが関与するため、遅延が発生し、CPUリソースを大幅に消費する可能性があります。 これに対し、RDMAではこれらのタスクをRDMA対応NICにオフロードし、異なるマシンのメモリ間でデータを直接移動させることができます。 CPUとOSをバイパスすることでオーバーヘッドが削減され、データスループットとシステム全体のパフォーマンスが大幅に向上します。
レイテンシの低減:RDMAの最も重要な利点のひとつは、レイテンシを大幅に低減できることです。TCP/IPなどの従来の方法では、ユーザー空間とカーネル空間間のコンテキストスイッチが複数回必要となり、また広範なプロトコル処理も必要となるため、データ転送のたびにレイテンシが発生します。RDMAは、ダイレクトメモリアクセスを提供することで、これらのステップを排除し、レイテンシがほぼゼロの通信を実現します。このため、RDMAは、高頻度取引、リアルタイム分析、HPCなどのレイテンシに敏感なアプリケーションに特に適しています。
CPUの効率性:従来のネットワークでは、CPUがアプリケーションのメモリとネットワークバッファ間のデータのコピーを含むデータ転送を管理する必要がありました。これによりCPUサイクルが消費されるだけでなく、同時に処理できるデータ量にも制限が生じます。しかし、RDMAではNICが直接データ転送を管理することでCPUの関与を最小限に抑え、CPUを他のタスクに割り当てることが可能になります。この効率性の向上は、多数の同時作業負荷を処理する上でCPUの可用性を最大限に高めることが重要なデータセンターやクラウド環境において特に有益です。
プロトコルのオーバーヘッド:従来のネットワーク通信では、エラー訂正、輻輳制御、パケットシーケンスなど、プロトコルのオーバーヘッドが大幅に発生します。一方、RDMAは、ハードウェアレベルの制御でデータの配置を直接管理することでプロトコルのオーバーヘッドを削減し、最小限の追加処理で信頼性の高い伝送を実現します。
拡張性と柔軟性:RDMAの合理化された通信モデルにより、ノードの数が増えるにつれてプロトコルのオーバーヘッドやCPUの制限により処理が遅くなる従来の方法よりも、より効果的に拡張することができます。RDMAは、待ち時間やCPU負荷の増加を伴うことなく、大規模な分散環境をサポートします。そのため、成長中のデータセンターや拡張可能なクラウドアーキテクチャに最適です。
RDMAプロトコルと標準規格
RDMAは、さまざまなプロトコルや標準規格を通じて実装されています。以下に、主なRDMAプロトコルとその意義について概説します。
InfiniBand
InfiniBandは、特にハイパフォーマンスコンピューティング(HPC)環境において最も広く使用されているRDMAプロトコルの1つです。これは、最も高速で効率的なデータ転送機能を提供するように設計された、高速で低レイテンシのネットワーク標準です。インフィニバンドは、サーバーの仮想化、オーバーレイ、ソフトウェア定義ネットワークをネイティブでサポートしているため、科学シミュレーション、ビッグデータ分析、AIワークロードなど、コンピューティングノード間の高速なデータ移動を必要とするアプリケーションに最適です。
RDMA over Converged Ethernet (RoCE)
RoCEは、RDMAの機能をイーサネットネットワーク上で使用できるようにするRDMAプロトコルであり、データセンターにコスト効率の高い柔軟なソリューションを提供します。RoCEには2つのバージョンがあります。レイヤー2(リンクレイヤー)で動作するRoCE v1と、ルーティングが可能で、より大規模で複雑なネットワークトポロジーに適したレイヤー3(ネットワークレイヤー)で機能するRoCE v2の2種類があります。 RoCEは、最新のデータセンターで一般的なイーサネットベースのインフラにRDMAのメリットをもたらします。
iWARP
iWARPは、標準のTCP/IPイーサネットネットワーク上で動作するように設計されたRDMAプロトコルです。TCP/IP内にRDMAトラフィックをカプセル化し、専用ハードウェアや既存のネットワークインフラへの大幅な変更を必要とせずに、ダイレクトメモリアクセスを可能にします。このアプローチにより、RDMAのメリットを必要とする一方で、従来のイーサネットネットワークにも依存する環境では、iWARPが実用的な選択肢となります。直接データ配置プロトコルを含む、複数のレイヤーを組み合わせて使用します。これらのレイヤーはすべて、TCP/IP上でRDMAサービスを提供するために使用されます。iWARPにより、RDMAを既存のイーサネットインフラストラクチャにシームレスに統合でき、従来のデータセンターや企業環境への展開が容易になります。
StarWindが提供するもの
StarWindは、RDMAの統合の最先端にあり、データストレージと管理に優れたパフォーマンスと効率性を提供します。RDMAを利用することで、StarWind Virtual SAN (VSAN) はデータ転送タスクをホストCPUからオフロードし、レイテンシを大幅に削減し、CPUリソースを他の重要な処理に解放します。では、どのようにしてそれを実現しているのでしょうか?
StarWind VSANは、レプリケーションネットワークにiSER(RDMA用のiSCSI拡張)をサポートしています。これは、RDMA機能でiSCSIプロトコルを拡張します。これにより、従来のTCP/IPのボトルネックを回避し、CPU負荷を軽減し、レイテンシを最小限に抑えることで、ネットワーク全体でより高速で効率的な同期レプリケーションが可能になります。
StarWind VSANは、データおよびレプリケーションネットワークにNVMe-oFを搭載しており、NVMeストレージデバイスの潜在能力を最大限に引き出すためにRDMAを使用できます。NVMe-oFは、従来のストレージスタックをバイパスしてホストとNVMeストレージ間の直接通信を可能にすることで、データ転送速度を向上させます。これにより、特に高スループット環境において、パフォーマンスが大幅に改善されます。StarWindは、次のリリースでNVMe-oFサポートをマルチノードの高可用性構成に拡張し、重要なデータ操作にさらに優れた柔軟性と耐障害性を提供することを計画しています。
結論
リモートダイレクトメモリアクセス(RDMA)は、CPUやOSをバイパスしてメモリとメモリの直接通信を可能にすることで、レイテンシを低減し、スループットを向上させ、CPU使用率を低下させることで、最新のネットワークを大幅に強化します。 InfiniBand、RoCE、iWARPなどのプロトコルは、HPCから標準のイーサネットネットワークまで、さまざまな環境に多様なソリューションを提供します。
StarWindは、RDMAの利点を活用し、StarWind Virtual SANのようなソリューションを提供しています。StarWind Virtual SANは、iSCSIとNVMe over RDMAを利用して、ストレージとネットワークに優れたパフォーマンスと効率性を提供します。その結果、RDMAは、今日の高性能環境において、より高速で効率的なデータ転送を求める組織にとって重要な技術となっています。