大容量データを広域で共有し,効率的にアクセス,高速に処理するために,ま ず,それぞれのノードに大容量ローカルディスクを持つクラスタを高性能ディ スクを持つ計算サーバとみせ,また,広域の高速ネットワークで接続された複 数のクラスタ間で必要なファイルの複製を持つことにより,冗長性を高め,負 荷分散を図る.それら全体を,単一の仮想ファイルシステムとして 提供し,広域で安全かつ高効率に利用できる環境を構築する.
大容量の高速ファイルシステムとしては,クラスタの各ノードのローカルディ スクを利用したクラスタファイルシステムが有望と考えられる.が,ペタバイ ト級のディスク容量とするためには,それぞれのノードに1TBのディスクを搭 載しても,数千ノード必要となる.このとき,クラスタファイルシステムでは, 複数ディスクによるI/O性能の向上の一方で,ネットワーク性能がボトルネッ クとなってしまう.
そこで,このボトルネックを解消するためには,ネットワークによるデー タ移動を最少限とし,ノード台数にスケーラブルに増加するノード内部のロー カルI/Oのバンド幅を活用する必要がある.
グリッドデータファームアーキテクチャでは,I/Oノードと計算ノードを統合したクラス タを利用して,新しい並列ファイルシステムを構成する.ここでは,ファイル はアプリケーションが操作可能な任意のファイル断片に分割される.ファイル 断片単位のファイルビューと,ファイル断片を格納しているノードを考慮した 並列プロセススケジューラにより,アクセス局所性のあるデータ処理に関して, ノード台数にスケーラブルなI/Oバンド幅と計算性能を,単一システムイメー ジで柔軟に可能とする.
グリッドデータファームでは,広域の複数のクラスタに対して,上記システムをグリッ ドサービスとして構成する.広域環境における効率的なデータアクセスおよび 冗長性を高めるために,それぞれの地域,クラスタ間では,必要なファイルは 複製される.ファイル複製では,分割された複数のファイル断片を並列ストリー ムで転送することにより,ネットワークの帯域を活用する.
グリッドデータファームの参照システムであるGfarmは,大きくGfarmファイルシステム, Gfarm並列I/O API,Gfarmプロセスマネージャにより構成される.
Gfarmファイルは,複数のインデックス付けされたファイル断片に分割され, 複数のディスクに格納される.ファイルアクセスは,ファイル全体(グローバ ルファイルビュー),特定のファイル断片(インデックスファイルビュー)な ど,ファイルビューによってアクセス範囲を制限することにより,アクセスの 局所性を利用することができる.インデックスファイルビューでは,それぞれ のファイル断片を自由にアクセスすることができるため,任意長のファイル断 片を扱うことができる.
また,後述のアフィニティスケジューリングと組み合わせることにより,それ ぞれのプロセスが担当するファイル断片を指すローカルファイルビューを利用 することができる.ローカルファイルビューは,インデックスファイルビュー に対し,特定のファイル断片のインデックスを陽に指定しないものであり,ノー ド数,インデックス番号,ホスト名などを意識しないで,柔軟にプログラミン グすることができる.ローカルファイルビューは,スケジューリングで利用し たファイルのほか,新規作成ファイルに関しても適用することができる.
Gfarmでは,グローバルファイルビューによるファイル全体に対するアクセス でも,並列ファイルシステムとして,高バンド幅を得ることができるが,ロー カルファイルビューを利用することにより,柔軟にローカルI/Oバンド幅のス ケーラビリティを利用したアクセスが可能となる.
ファイル断片は複製を持つことができるため,スケジュールされるノードには 任意性があり,また,ノードの負荷状況,ディスクの利用状況などによっては, ファイル断片を持たないノードにもスケジュールすることができるため,様々 なスケジューリング手法が考えられる.
図1では,プロセスAはデータAが分散しているノードに スケジューリングされている.プロセスBは,同様にデータBの分散しているノー ドにスケジューリングされるが,データBは3分割され,それぞれのファイル断 片が複製されているため,複製を含めて6ノードに分散している.よって,プ ロセスBは,ノードの負荷状況などにより,そのうち3ノードにスケジューリン グされている.このように,複製は耐故障性のためではなく,負荷分散にも利 用される.