220 likes | 440 Views
GfarmFS-FUSE の使い方. 石橋拓也 , 穴見和朗 ( 創夢 ) 建部修見 ( 産総研 ) http://datafarm.apgrid.org /software/gfarmfs-fuse.ja.html. 概要. GfarmFS-FUSE の特徴 利点・機能・性能 必要なソフトウエア 構築方法 マウント方法 Windows から Gfarm にアクセスする例. GfarmFS-FUSE の特徴. Gfarm ファイルシステムを各ユーザがマウント可能 Gfarm システムコールフックライブラリとは別の方法として既存アプリケーションを利用可能
E N D
GfarmFS-FUSEの使い方 石橋拓也, 穴見和朗 (創夢) 建部修見 (産総研) http://datafarm.apgrid.org /software/gfarmfs-fuse.ja.html
概要 • GfarmFS-FUSEの特徴 • 利点・機能・性能 • 必要なソフトウエア • 構築方法 • マウント方法 • WindowsからGfarmにアクセスする例
GfarmFS-FUSEの特徴 • Gfarmファイルシステムを各ユーザがマウント可能 • Gfarmシステムコールフックライブラリとは別の方法として既存アプリケーションを利用可能 • 複数のGfarm環境を同時にマウント可能 • FUSE (Filesystem in Userspace)を使用 • Gfarmシステムコールフックライブラリを使った場合に不具合があるアプリケーションを使えるようになる可能性がある
FUSEについて(補足) • Filesystem in Userspace • Linux Kernel 2.4 or 2.6 で利用可能 • 一般ユーザが一般ユーザの空間でファイルシステム実装を動作させて、マウントすることが可能 • 既存のさまざまなライブラリを使用してファイルシステムを実装可能 • さまざまな言語でファイルシステムを実装可能 • デフォルトではマウントしたユーザ自身しかそのファイルシステムにアクセスできない
GfarmFS-FUSEの特徴(続き) • link, symlink を独自に可能にした • マウント時オプション • 現在Gfarm自体ではサポートしていないので • システムコールフックライブラリと比べて、 • 動作するアプリケーションが多い • findが速い(実装の違い) • I/O性能はFUSE自体がネックになる
I/O性能比較(テスト環境) • Xeon 2.8GHz Dual, RAM 1GB • RAID0 (HDDx4) (110MB/s前後) • 1GbE LAN • 複数ノードで構成 • thput-fsysによるベンチマーク • bench/ に収録 • -s 10240 (10GBをI/Oしたときの平均値) • (予備実験程度)
I/O性能比較(ローカル) • システムコールフック • WRITE: 82MB/s, READ: 82MB/s (-b 4096) • WRITE: 84MB/s, READ: 82MB/s (-b 65536) • GfarmFS-FUSE • WRITE: 50MB/s, READ: 55MB/s (-b 4096) • WRITE: 53MB/s, READ: 58MB/s (-b 65536) • GfarmFS-FUSE (direct_io) • WRITE: 56MB/s, READ: 51MB/s (-b 4096) • WRITE: 61MB/s, READ: 68MB/s (-b 65536)
I/O性能比較(リモート) • システムコールフック • WRITE: 18MB/s, READ: 38MB/s (-b 4096) • WRITE: 46MB/s, READ: 37MB/s (-b 65536) • GfarmFS-FUSE • WRITE: 32MB/s, READ: 31MB/s (-b 4096) • WRITE: 32MB/s, READ: 31MB/s (-b 65536) • GfarmFS-FUSE (direct_io) • WRITE: 34MB/s, READ: 30MB/s (-b 4096) • WRITE: 35MB/s, READ: 34MB/s (-b 65536)
I/O性能比較(fusexmp_fh) • ルートディレクトリをマウントするexample • これを経由してRAID領域を使用 • デフォルト • WRITE: 53MB/s, READ: 69MB/s (-b 4096) • WRITE: 55MB/s, READ: 72MB/s (-b 65536) • direct_io (FUSEのオプション) • WRITE: 60MB/s, READ: 57MB/s (-b 4096) • WRITE: 64MB/s, READ: 94MB/s (-b 65536)
フックでできないこと • フックしていないシステムコール • mmap, sendfile: ローカルにファイルがあれば可 • statfs: df /gfarm 不可 • link, symlinkはGfarmがサポートしていない • 動かないアプリケーション(例) • dd • リダイレクト入力や tar zxf • GFARM_FLAGS=r後シェル起動、fsノードで可能
GfarmFS-FUSEでできないこと • statfs • 未実装 (FUSEの枠組としては可能) • df . で各値が 0 • 他には?
GfarmFS-FUSEに必要なソフトウエア • Gfarmのライブラリ・ヘッダ・クライアント • サーバ関係パッケージは不要 • gfsdが動いていてもよい(新規作成はローカル) • clientパッケージも通常は必要 • gfhost, gfwhere, gfrep, gfrm などは gfarmfs経由だけではできない操作 • FUSE 2.2 以降(最新2.3.0) • Linux Kernel 2.4 or 2.6 • カーネルヘッダ
FUSEのインストール • Linux kernel 2.4 or 2.6 環境 • カーネルヘッダをインストール • $ ./configure • $ make • # make install • /usr/local 以下 • 必要であれば /etc/ld.so.conf に追加, ldconfig 実行
gfarmfsの構築 • $ ./configure • オプションは --prefix= のみ • $ make • カレントディレクトリにgfarmfsコマンド生成 • $ make install • 必要であればインストール
マウント方法 $ gfarmfs [オプション] mountpoint [FUSEオプション] • 書き込み権限のある自分用のディレクトリ作成 • $ mkdir –p /tmp/takuya/mnt • Gfarmを利用できるか確認 • $ gfhost –l など • マウント • $ gfarmfs –l -s /tmp/takuya/mnt • アンマウント • $ fusermount –u /tmp/takuya/mnt
gfarmfsオプション • -s • シンボリックリンクを作成可能 • “名前.gfarmfs-symlink” というファイルにリンク先を格納 • -l • ハードリンクをコピーで代用 • -a <アーキテクチャ名> • ファイルシステムノードではない場合に指定 • Gfarm 1.2 では環境変数か.gfarmrcで指定可能
FUSEオプション(一部紹介) • -f, -d • フォアグランド動作、デバッグ表示 • -o allow_root • rootもマウントポイントにアクセス可能にする • rootで動くサーバ類がアクセスする場合など • -o allow_other • 他の一般ユーザもアクセス可能にする • マウントしたユーザの権限でアクセスすることになるので危険
metadata server gfsd gfsd libgfarm libgfarm gfsd GfarmFS-FUSE libgfs_hook gfsd smbd smbd gfsd gfsd gfsd WindowsからGfarmにアクセス Gfarm Samba Windows PC PC PC Samba PC
WindowsからGfarmにアクセス • SambaとGfarmFS-FUSEを使う方法 • gfarmfsコマンドでマウントしたディレクトリをSambaで公開 • ユーザごとに予めマウントしておく必要あり • FUSEのオプション -o allow_root が必要 • Sambaとシステムコールフックを使う方法 • フックライブラリをプリロードするようにしてからsmbdを起動すればよいので簡単 • /gfarm を公開する設定
WindowsからGfarmにアクセス • SambaマシンからはNFSでホームディレクトリ共有してsharedsecret認証にしておく • できないならば、手動で鍵を配布かgsi_auth • Sambaマシンでgfsdを動かすと、そのマシンにだけファイルが新規作成されてしまう • Samba以外のサーバなどでも応用可能 • 詳細は doc/html/ja/user/index.html • フックで動かなかったらGfarmFS-FUSEで
まとめ • 一般ユーザがGfarmをマウントして使用可能 • システムコールフックライブラリと比べて不具合なしで動く可能性が高い • Gfarm自体ではできないシンボリックリンクとハードリンク(はコピー)が可能 • I/O性能はFUSEがネック • ローカルで3割、リモートで2割の低下(スループット次第) • ユーザごとにマウントしなければならない • 応用例としてSambaと組み合わせ可能