日本語 English 中文
世界中のHPC専門最先端技術製品の販売・サポート

厄介なストレージ負荷に立ち向かう

ワークロードの変遷

Top500が巨大な連立一次方程式を解く性能を競っていることに代表されますが、HPCのメインストリームは多数のノードを並列動作させて巨大な問題を解くことを目指してきました。当然そこで扱われるデータも巨大なサイズでした。ところが昨今では、多数のジョブを実行して「膨大な数のデータ」を処理することが必要とされることが増えました。またGPU等により計算能力は増大し、従来長時間かけていた処理も瞬時に終えられるケースも増えています。その結果、ストレージに求められる性能指標がこれまでとは大幅に異なっています。膨れ上がるデータ量に応じて、容量の拡大は留まるところを知りませんが、一方で旧来の思想の延長で作られたスパコンやクラスター計算機では新しいワークロードに対応できず、期待する性能が出ない、計算ノードやGPUがI/O待ち稼働率が上がらない、ひどい時はシステムが全く応答しなくなる、最悪システムが落ちるといった問題を耳にするようになりました。

結論から先に言ってしまうと、多数のファイルへのアクセスが殺到した結果、共有ファイルシステムのメタデータサーバーが飽和しているケースが多いと思われます。PCで起きていた全く同様の問題は、HDDからSSDにドライブを変更することで大幅な改善を見ましたが、特に大規模なシステムにおいては既に打てる手は打ってあり、本質的な改善は難しい状況にあると思います。特にメタデータは実データへのアクセスと異なり、一元管理なためスケールアウトさせにくいという原理的な問題を抱えています。

Pacific Teckのポートフォリオ

Pacific Teckでは、こうした問題に対するアプローチを要件に合わせて複数提案しています。これらのソリューションが、どのように問題を解決していくのか、簡単にご紹介していきます。

軽量なメタデータ処理でスケールする並列ファイルシステムBeeGFS

ThinkParQ社の並列ファイルシステムであるBeeGFSは、同じ並列ファイルシステムであるLustreに比べ、メタデータの処理が大幅に軽量になるよう、そしてスケールするよう設計されています。特にメタデータを下層のファイルの拡張属性として保存するという特徴は、I/O負荷を大幅に軽減し、その高性能を支える重要なポイントとなっています。

ジョブに最近接するオンデマンド並列ファイルシステムBeeOND

BeeGFSのオプションであるBeeONDは、コマンド一つで複数のサーバーのドライブを統合したBeeGFSを構築・抹消できるツールです。ジョブスケジューラと連携させることで複数の計算ノードを並列利用する際は、当該ジョブの動いているノード上にスクラッチディスクをオンデマンドに構成し、ジョブ完了後に削除できます。これによりジョブ実行中に発生するI/Oに対して高速なデータ入出力を実現すると共に、共用ストレージへの負荷を軽減させます。ただし仕組み上、ジョブの前後にファイルコピーを必要とするため、反復的な読み書きが発生しないジョブでは恩恵がありません。またノードをまたがないジョブではそもそも並列ファイルシステムを構築する意味がなく、直接ドライブにアクセスする方が効率的です。大規模かつI/O負荷も高いジョブに向いたソリューションです。

ユーザーが能動的にファイル単位でステージングBeeGFSのStoragePool

BeeGFSはデータの保存先としてヘテロなストレージターゲットを統合し、I/Oの特性に合わせてユーザーが保存先を指定したり移動させたりすることができます。例えばHDDによる大容量ターゲットとオールフラッシュストレージを使ってシングルネームスペースを構成し、ユーザーがジョブ実行時にアクセスが頻繁になるファイルだけフラッシュ側に保存するといった運用が可能です。同一ディレクトリ内で保存先を分けることができるので、ディレクトリ名の変更やファイルコピーによる混乱が生ずる懸念がありません。こちらは特定のファイルへの細かいI/Oが発生する場合等には有効ですが、メタデータサーバーは共通となるため、これが飽和している場合の解決策とはなりえません。

高可用性かつ超高性能ストレージを実現するNVMesh

Excelero社のNVMeshは、RAID等による容量の拡大やHA構成が作りにくいというNVMeドライブの問題を根本的に解消するソフトウエアプロダクトです。複数のサーバーに搭載されるNVMeドライブを統合し、ミラーリングやイレージャコーディングによるHA構成を複数サーバーをまたいで構築できます。データ転送は特許技術であるNVMe over RDMAを用いてCPUやOSをバイパスして行われるため、ドライブとネットワーク帯域以外への負荷は極めて軽微なものとなります。そのため、クラスターの計算ノードにNVMeを搭載して並列ファイルシステムを構成すれば、別途高価な専用ストレージ製品を導入することなく、安定な超高速ファイルストレージを実現できます。

インテリジェントなファイルハンドリングを実現するiRODS

高性能なストレージは当然高価です。無尽蔵に増えていくデータを全てそこに置けばコストパフォーマンスは極めて悪くなります。巨大なクラウドストレージ、ホットアーカイブ、共有ファイルシステム、容量は小さいが超高速なストレージ等、さまざまなストレージの特性を活かして併用つつ、利便性の高いシステムを低コストで構築できれば、本当に高性能が要求されるところに集中投資が可能です。iRODSは、Datacore SwarmやRStor SpaceをはじめとするS3互換オブジェクトストレージを含む、ヘテロなファイルストレージを統合して単一ネームスペースの仮想ファイルシステムを構築します。ユーザーがファイルに任意のタグ付けをしてデータベースで管理し、それをトリガーにルールベースのエンジンで自動的なファイルハンドリングを実現するiRODSは、こうした課題に対する有効なOSSプロダクトであり、弊社は開発元であるRENCIと直接契約してサポートしています。

Singularityで共有ストレージのメタデータアクセスを回避

Singularity logo

なぜコンテナがストレージに対するソリューションなのか。この意外な組み合わせは、メタデータサーバー飽和の問題に苦しむ多くの大規模システムを救う可能性があると考えられています。Singularityは、システム要件が頻繁に更新される、例えばAI/機械学習等の用途で、最新または過去の実行環境を独立に用意でき、異なるシステムで環境を共有したりといったことを容易に実現するコンテナエンジンです。SingularityコンテナイメージのフォーマットであるSIFは単一ファイルであることが特徴で、その実体はSquashFSというリードオンリーの圧縮ファイルシステムです。つまりSIFイメージ自体は共有ファイルシステム上にあっても、その中で発生するファイルI/Oはコンテナ内に閉じています。また、Overlay機能を用いれば、別の単独イメージファイルを書き込み可能なファイルシステムとしてコンテナに統合できます。これらのイメージ内へのファイルアクセスは共用ファイルシステムのメタデータに一切アクセスしないため、問題解消のための強力なソリューションとなり得ます。

次回は、このSingularityのOverlay機能の使い方を詳しく紹介したいと思います。