[This is written in Japanese, please look at OVERVIEW.en for English version.] Gfarm ファイルシステムの概要 ● Gfarm ファイルシステムについて ================================= Gfarm ファイルシステムは,ネットワークで接続された PC のローカル・スト レージを束ねて構成する分散ファイルシステムです.LAN に接続された複数の PC,単独の PC クラスタ,広域の複数の PC クラスタなどで構成され,大規模, 高性能な共有ファイルシステムとして利用することができます. Gfarm ファイルシステムは,ファイル複製をうまく活用して NFS や AFS のよ うなネットワーク共有ファイルシステムでしばしば問題となる,アクセス集中 によるアクセス性能の低下を防止します.また,ディスク,ネットワークの障 害時,災害時でのファイル・アクセスを可能とします. Gfarm でユニークな点は,ファイルシステムノードが同時に Gfarm ファイルシ ステムを利用するクライアントにもなれることです.ファイルシステムノード による Gfarm ファイルシステムの分散アクセスにより,超スケーラブルなアク セス性能を実現します. グリッドデータファームの詳細は,以下の論文を参照してください. [1] 建部 修見,森田 洋平,松岡 聡,関口 智嗣,曽田 哲之, 「ペタバイトスケールデータインテンシブコンピューティングのための Grid Datafarm アーキテクチャ」, 情報処理学会論文誌:ハイパフォーマンスコンピューティングシステム, 情報処理学会,Vol.43,No.SIG 6 (HPS 5),pp.184-195,2002 年 http://datafarm.apgrid.org/ ● Gfarm ファイルシステムの利用手段 =================================== Gfarm ファイルシステムは,次の3種類の方法で利用することができます. ・Gfarm コマンドや,Gfarm 並列入出力 API 複製機能や,ファイルビュー機能など,Gfarm 特有の機能にアクセスする ことができます. gfarm:/user/dir/file のようなパス名を用います. ・システムコールフックライブラリ Gfarm ファイルシステムを /gfarm にマウントしているように見せかけて, 既存のプログラムを何ら修正することなくアクセスすることができます. ただし,ローカルに複製のないファイルに対する mmap(2) など,利用でき ない機能が一部存在します. /gfarm/user/dir/file のようなパス名を用います. この機能の説明は README.hook.ja にあります. ・GfarmFS-FUSE FUSE (http://fuse.sourceforge.net/) の機能を利用して,Linux クライ アントから,Gfarm ファイルシステムをマウントします. 他の方法と異なり,既存のプログラムから完全に透過的にアクセスする ことができます. この機能を利用するには,本ソフトウェアに加えて,下記の URL で配布 されている GfarmFS-FUSE をインストールする必要があります. http://datafarm.apgrid.org/software/gfarmfs-fuse.ja.html ● Gfarm ファイルシステムを構成するホストの種類 =============================================== Gfarm ファイルシステムは,下記の種類のホストから構成されます. ・クライアント Gfarm ファイルシステムを利用するホストです. ・ファイルシステムノード Gfarm ファイルシステムのデータ記憶領域を提供するホスト群です.通常, ファイルシステムノードからも Gfarm ファイルシステムをアクセスするため, 同時にクライアントにもなります. 広域に存在する数千ノード,数万ノードも想定されています.それぞれのノー ド上では I/O デーモンの gfsd が走ります. ・メタデータサーバ Gfarm ファイルシステムのメタデータと,ユーザがリクエストした並列プロ セスを管理するホストです.並列プロセスはファイルシステムノードのホス ト群で実行されることになります.ホスト上では LDAP サーバ(slapd), PostgreSQL サーバ(postmaster) などのメタデータを管理するバックエンド・ データベースと,gfmd が走ります. ・メタデータ・キャッシュ・サーバ メタデータサーバへのアクセスを高速化するため,またメタデータサーバへ のアクセス集中を緩和するためメタデータをキャッシュするホストです.ホ スト上では,gfarm_agent が走ります. 上記4種類は,必ずしも別のホストで動かす必要はありません.すなわち,もし 利用可能なホストの数が限られているのであれば,同一のホストを,これらの 用途で利用することができます. Gfarm ファイルシステムでは,ファイルは任意のファイルシステムノードに配 置されます.また,ファイルは複製され,異るノードに配置されます.さらに, ファイルは(分割された)ファイルの集合として構成することもできます.こ の時,個々の構成ファイルは特にファイル断片と呼ばれ,任意のファイルシス テムノードに配置されます. Gfarm では, ・ファイルが格納されているファイルシステムノードで処理する ・ファイル集合の構成ファイルが格納されているファイルシステムノードで並 列処理する といった並列分散処理を支援します.この「なるべくファイルの存在するノー ドで処理する」という処理方式により,高いファイル I/O 性能と,高速なデー タ処理が実現されます. 例えば,「gfrun gfarm:gfgrep -o gfarm:output 正規表現 gfarm:input」を 実行すると,引数で指定した Gfarm ファイル ``gfarm:input'' が分散配置さ れているファイルシステムノード上で,コマンド gfarm:gfgrep が並列実行さ れ,出力ファイル gfarm:output が並列に生成されます. ● Gfarm ソフトウェアの構造 =========================== Gfarm system は,下記のソフトウェアからなります. ・libgfarm.a ライブラリ Gfarm ファイルシステムをアクセスするためにアプリケーション・プログラ ムにリンクされるライブラリです.Gfarm ファイルシステムのライブラリ・ インタフェースや,ユーティリティ関数からなります. ・PostgreSQL サーバ ないし OpenLDAP サーバ メタデータサーバ・マシン上で動作するデーモンプログラムです. どのファイルがどこに格納されているかなどのファイルシステムメタデータを 保持しています. ・gfmd - Gfarm メタデータサーバ メタデータサーバ・マシン上で動作するデーモンプログラムです.現状の実 装では,gfrun コマンドで起動されて実行中の並列プロセス情報のみを管理 しています. gfmd が管理している情報への取得は,gfps コマンドで可能です. ・gfarm_agent - Gfarm メタデータ・キャッシュ・サーバ メタデータ・キャッシュ・サーバは,メタデータサーバの代理サーバとして 機能し,クライアントからネットワーク的に近いノードで動作させることに より,メタデータ・アクセスの性能を向上させます.典型的には,Gfarm ファ イルシステムをアクセスする PC クラスタ毎に動作させます. ・gfsd - Gfarm ファイルシステム・デーモン ファイルシステムノード上の全ホストで動作するデーモンプログラムです. Gfarm ファイルの実データへアクセスを提供します. ファイルシステムノードのメタデータ情報の登録や,gfsd の動作状態の 検査には,gfhost コマンドを用います. ・Gfarm コマンドツール gfls, gfrm, gfwhere, gfrep などのファイルシステムコマンド,gfreg, gfexport などのファイル管理コマンド,gfps, gfrun などのプロセス管理, 実行コマンド,およびファイルシステムノード管理コマンド gfhost,認証 キー管理ツール gfkey などからなります. さらに,gfcp, gfgrep などの並列 Gfarm コマンドもあります. ● ユーザ認証について ===================== gfmd および gfsd は,下記 3種類の認証方法をサポートしています. Gfarm-FAQ.ja のセキュリティの項も参照してください. 1. sharedsecret ホームディレクトリに gfarm ソフトウェアが自動的に生成する共有鍵 ~/.gfarm_shared_key を用いて認証を行ないます。 Firewall で守られた環境に適しています. NFS などでホームディレクトリを共有している環境で簡易的に運用する 場合に向いています. 2. gsi GSI, すなわち Grid Security Infrastructure 方式です. PKI 証明書を用いて公開鍵認証を行ないます. また,これを用いた場合,通信内容の暗号化も行ないます. Internet での利用に適した方式です. 詳しくは下記の Globus プロジェクトのページを参照してください。 http://www.globus.org/security/overview.html 3. gsi_auth 認証には GSI を用いますが,その後の通信には単なる TCP コネクションを 用います. Firewall で守られた環境に適しています. PostgreSQL および OpenLDAP については,それぞれのソフトウェアが持つ 認証機能を用います. なお,現在のバージョンでは gfarm_agent は認証を行なっていません. このため gfarm_agent は必ずファイアウォールで守られた環境に置く 必要があります.