Grid Datafarm: NFS [Japanese]

文書集 > ユーザーズマニュアル > nfs

# NFSでマウント

English | 日本語

## 1. 概要

gfarm2fs を使って Gfarm ファイルシステムをマウントし，そのマウントポイントを NFS サーバで公開する方法をご紹介します．
しかし，使い勝手の点で，お勧めできる方法ではありません．

必要な環境や設定

- NFS サーバマシン側
  - FUSE がインストールされている．
  - FUSE の README.NFS に目を通しておく．
  - 一般ユーザが FUSE でマウントしたマウントポイントに他ユーザがアクセスすることを許可されている．(user_allow_other 設定)
  - Gfarm 環境にアクセスできる設定が済んでいる．
  - 認証方法は sharedsecret 認証を使用し，Gfarm のファイルシステムノードのホームディレクトリが共有されていることを推奨する．そうでない場合は，使用する前に ~/.gfarm_shared_key を各ノードに配布したり，grid-proxy-init を実行しておかなければならない．
  - gfarm2fs がインストールされていて，実行できる．
  - NFS サーバを動かすことができる．
  - この NFS サーバのマシン上で Gfarm のファイルシステムノード(gfsd)を動かしている場合は，gfarm.conf の write_local_priority を無効にすることを推奨する．
  - 一般ユーザが FUSE でマウントするマウントポイントに NFS 経由でアクセスできるような NFS の設定にする．
  - FUSE でマウントしてから(しなおした場合も)，nfs restart をする必要がある．
- NFS クライアントマシン側
  - 上記 NFS のサービスにアクセスができる．

関連ソフトウエア一覧

- Gfarm and gfarm2fs: http://oss-tsukuba.org/software/gfarm
- FUSE: http://fuse.sourceforge.net/

## 2. gfarm2fs で Gfarm をマウント

NFS でエクスポートする前に，gfarm2fs コマンドを実行して，Gfarm ファイルシステムをマウントしておく必要があります． 下記の NFS サーバを動す予定の Linux マシン上で， かつ Gfarm の環境を使う準備ができている一般ユーザ権限で実行します．

gfhost -l などで，ファイルシステムノードにアクセスできる状態であることを確認してから， 以下のコマンドを実行してマウントします．
詳しくは Gfarm と gfarm2fs のドキュメントをご覧ください．

      $ gfarm2fs [gfarm2fs のオプション] マウントポイント -o allow_root [FUSE のオプション]

-o allow_root が使えずマウントできない場合は，/etc/fuse.conf に

    user_allow_other

と記述します．このことに関しては，FUSE パッケージの README もご覧ください．

マウントポイントは NFS で公開しているディレクトリ自体，またはそれ以下のディレクトリにします．
以下では，説明のため，このマウントポイントを /tmp/yourname/gfarmfs としています．

### 注意

-o allow_other オプションを指定しないでください． -o allow_other オプションをつけると，他の一般ユーザがアクセスできてしまいます． しかも，マウントしたユーザの権限で Gfarm の環境にアクセスすることになります．

## 3. NFS サーバの設定

FUSE の README.NFS を参照してください．FUSE 2.5.3 時点では，Linux カーネル 2.6.14 以降を使用している場合に，FUSE の ./configure に --enable-kernel-module をつけてカーネルモジュールを毎回インストールしなおす必要があります．
/etc/exports には，マウントポイントを公開する設定に fsid と anonuid の設定も加えます． その他，/etc/hosts.allow /etc/hosts.deny などの設定をして，nfs restart します．

/etc/exports の例です．

    /tmp/yourname/gfarmfs  AAA.BBB.CCC.0/255.255.255.0(rw,fsid=10,anonuid=1205)

fsid には，他のファイルシステムで使われていない任意の値を指定するようです．(詳しい方いらっしゃいませんか？)
anonuid には，gfarm2fs でマウントしたユーザの uid を指定します．

## 4. NFS クライアントからマウント

NFS クライアントから，上記の NFS サーバをマウントします． クライアント側は，一般的な方法で NFS マウントするだけで，特別な設定は要りません． mount コマンドでマウントします． /etc/fstab に記述もできます．

/etc/fstab の例です．

    AAA.BBB.CCC.1:/tmp/yourname/gfarmfs  /mnt/gfarm/yourname  nfs  rw,sync,noauto  0  0

## 5. 使い勝手について

NFS サーバ側では，gfarm2fs でマウントしておいてから，nfs restart をかけます． しかし，通常，gfarm2fs でマウントするのは一般ユーザで，nfs restart するのは root になります． さらに，gfarm2fs を再びマウントしなおした場合は，nfs restart しなければなりません．(reload や exportfs -r ではだめでした)
NFS クライアントはからは, root 権限でマウントすることになり，そのマウントポイントには，gfarm2fs でマウントしたユーザ(と uid, gid が一致している)しか利用できません．/etc/fstab に user オプションを指定しても，一般ユーザがマウントできるようになるだけで，gfarm2fs をマウントしたユーザしかアクセスできません．

## 6. コメント

質問やコメントがありましたら， gfarmfs at gmail.com まで自由にメールを送付してください．