NFS

以下では、 とします。host や client といったサーバの名前は、 各々の /etc/hosts で定義されているものとします。

インストール(ホスト側)

NFS サーバとなるためのパッケージをインストールする。
% sudo apt-get install nfs-kernel-server

設定(ホスト側)

nfs-kernel-server をインストールすると /etc/exports ができるので、 このファイルに設定を書く。
/etc/exports
/hoge client(rw,sync,no_subtree_check)

カッコ内はオプションで意味は以下の通り。 より詳しくは、man exports を参照のこと。
rw 読み書き可
sync clientの要求がhostで実行されてから、 hostはclientに返信を返す
no_subtree_check clientからアクセス要求があったファイルが要求ディレクトリにない場合、 サブディレクトリにないかチェックするのが subtree_checkで、 このオプションはそれを無効にする。man exports によると、 読み書きするようなディレクトリを exports する場合は、 no_subtree_check を指定しておくのが一般的だそうな。

設定が終わったら、NFS を再起動しておく。

% sudo /etc/init.d/nfs-kernel-server restart

次に、/etc/hosts.allow で client からの接続を許可する。 次の二行を追加する。もし最後の行に
ALL : ALL : deny
を書いているのなら、それより前の行に追加する。

/etc/hosts.allow
rpcbind : client : allow
mountd : client : allow

インストール(クライアント側)

NFS クライアントとなるためのパッケージをインストールする。
% sudo apt-get install nfs-common

設定(クライアント側)

NFSマウントできるか、まず手動でチェックする。
% sudo mount -t nfs host:/hoge /mnt
マウントできたら一度アンマウントして、/etc/fstab に設定を書き込む。
/etc/fstab
host:/hoge /mnt nfs _netdev,auto 0 0

左から、NFS元、NFS先、mountタイプ(nfs)、オプション、dump、pass の指定です。

オプション:
参考サイト: NFS

_netdev ネットワークが起動するまで待つ
auto 起動時に自動的にマウントする
hard/soft host が使用不能になった時、host が復帰するのを待つ(hard)か、 エラーを報告する(soft)かを指定する。 hard の場合は intr オプションがないと、再開を待つプロセスを修了できない。
intr host がダウンしたときに NFS 要求を割り込ませることができる
nolock ファイルロッキングを無効にする。 古いNFSサーバには使わないといけないらしい。
rsize=数字, wsize=数字 一度に転送されるデータブロックサイズ(バイト)の指定。 大きいほど速いが、正常に機能しない恐れもあるとかで、 値の変更は注意を要する。 NFSv2, NFSv3 のデフォルトは 8192 で NFSv4 は 32768 だそうな。
timeo=数字 タイムアウトの後、最初の再送を行うまでの時間の指定。 単位は 1/10 秒。
proto=tcp/udp NFSマウントが TCPプロトコルを使うか、UDPプロトコルを使うかの指定
fg/bg 最初のNFSマウントがタイムアウトになったとき、 再試行をフォアグラウンドで行うか、バックグラウンドで行うかの指定

dump: ファイルシステムをdumpする必要があるか否か (dump コマンドの対象か否か)の指定。 "0" は dump不要の意味。

pass: システム起動時に fsck を行うか否かの指定。 "0" はチェックしない。 "1" はルートファイルシステムでチェックする場合、 "2" はルート以外のファイルシステムでチェックする場合に指定する。


Last modified: Thu Oct 3 12:12:53 JST 2013