シンプルな分散メモリプーリングをRDMAで実現する技術が面白い:「The Next Platform」で読むグローバルITトレンド(8)(2/2 ページ)
ミシガン大学の研究者チームが、Linuxカーネルに常駐するオープンソースプログラム「Infiniswap」を生み出した。Infiniswapの目標はノードが相互のメモリをスワップファイルとして使用し、各ノードで動作するアプリケーションで使用可能な実行メモリ容量を増やし、クラスタ全体でメモリリソースを効率的に利用することだ。
従来のメモリ割り当て技術に比べ、スループットが大幅に改善
研究チームはInfiniswapをVoltDB、PowerGraph、GraphX、Memcached、Apache Sparkでテストし、FacebookやGoogleがデータセンターで使用しているのに非常に似た実際のクラスタを構築しようとした(規模的にはかなり小さいが)。GoogleやFacebookは通常、従来の割り当て技術に基づいてメモリリソースの割り当てを行っている。この技術では、企業がワークロードを評価し、それに応じてメモリやストレージのようなサーバリソースを構築する。
研究チームは、そうしたデータセンターで従来の割り当て技術を使わずに、Infiniswapがどのようなパフォーマンスを発揮するかを実験で調べた。結果は良好で、メモリの利用が42%改善しスループットが16倍向上した。
「インメモリ処理は、データセットがメモリに収まらなくなりディスクへのスワップアウトが発生するまでは威力を発揮する」と、チョードリ氏は説明する。この原理を実証するため、ミシガン大学の研究チームは以下の3つのベンチマークを実行した。いずれもメモリをまず25%、次に50%削減し、パフォーマンスへの悪影響を測定している。
だが、そのクラスタでInfiniswapを有効にして同じテストを行ったところ、以下の結果になった。
Infiniswapの実験の規模は、MicrosoftやFacebook、Googleのデータセンターでの運用規模と比べて小さい。だが、実際のクラスタでは負荷分散を行うのは難しい。メモリの利用状況を予測するのは困難だからだ。FacebookやGoogleはアクセスの変動が大きく、ワークロードによってはリモートメモリの利用率が低くなるかもしれない。また、複数サーバにおけるメモリ要件は過小評価したり、過大評価したりしがちだ。しかし、リソースの不足や超過を望む企業はない。そこで大抵は、Infiniswapの出番となる。この技術を使えば、負荷分散を気にしないで済む。
リモートメモリの障害への対応が課題?
Infiniswapにはユニークなところがある。このソフトウェアは、リモートメモリに書き込むだけでなく、データブロックのコピーをローカルストレージに作成する。ローカルストレージは、NVM Express(NVMe)を使ってシステムに接続された高速フラッシュSSDが理想的だ。
データブロックのコピーの作成は、フェイルオーバーメカニズムとしての意味合いが大きい。リモートメモリに障害が発生しても、そのデータをストレージから取り出し、他のリモートメモリに再度の書き込みが可能だ。だが、リモートメモリの障害は、一瞬のパフォーマンス低下につながる可能性もある。そのデータのコピーをストレージから取り出し、書き込み先のリモートメモリを見つけるのに時間がかかるからだ。これは、Infiniswapのデメリットの1つだ。
ただし、研究チームは新しい実装によってこの問題を克服しようとしている。新しい実装は、リモートCPUの助けを借りてデータブロックを複数のサーバに分ける高度な分散メモリシステムを含んでいる。これについての論文が近いうちに発表されるが、この実装にはリモートCPUへの依存という別のデメリットがある。これは、Infiniswapの現在の実装にはないものだ。
RDMAネットワークで大きなメモリバンクをエクスポーズするのはいいことずくめだ。Infiniswapを使うのにデータセンター設計の変更は必要なく、企業は新しいハードウェアの購入予算を組む必要もない。
だが、サーバ設計では大きな変化が起ころうとしている。HPEはThe Machineでインメモリコンピューティングを推進している。The Machineが実現されるのはまだ数年先だが、それとともに新しいプログラミングモデル、ハードウェア、インターコネクトが登場することになる。
Infiniswapの柔軟性から見て、InfiniswapがThe Machineのさまざまなインスタンスと連携して動作するのは間違いない。「The Machineはライバルだが、Infiniswapと相互に補完するものでもある。The Machine はインタフェースをエクスポーズしており、Infiniswapをコンポーネントとして使用できる可能性がある」と、チョードリ氏は語る。
Infiniswapはまだ初期の実験段階であり、研究チームの次のステップはこのソフトウェアを実用化することだ。研究チームはミシガン大学のHPCユーザーからヒアリングを行っている。これらのユーザーはコンピュータメモリに関して問題を抱えているからだ。
また、研究チームはInfiniswapをクラウドプロバイダーに提供することも目指している。だが、FacebookやGoogleがこの技術を導入するかどうかは未知数だ。さらに研究チームは、InfiniswapをCPUとGPUの統合メモリに対応させることも目標に掲げている。
チョードリ氏は、Infiniswapを分散ディープラーニングモデルに適用しようとしており、このモデルはGPU上の統合メモリとの低レイテンシ通信を行う必要がある。研究チームはCNTKについてMicrosoftと協力しており、GoogleのTensorFlowを使ったテストも行っている。
出典:Clever RDMA Technique Delivers Distributed Memory Pooling(The Next Platform)
Copyright © ITmedia, Inc. All Rights Reserved.