Scroll to navigation

NFS(5) Linux Programmer's Manual NFS(5)

名前

nfs - NFS 関係の fstab フォーマットとオプション

書式

/etc/fstab

説明

fstab ファイルにはファイルシステムをマウントする場所と、その時に用いるオプショ ンとが記述されている。 NFS マウントの場合は、マウントの対象にする NFS サーバ−名と、そのサーバー でエキスポートされているディレクトリ、マウントポイントにするロー カルディレクトリ、ファイルシステムのマウント方法を制御する NFS 固有の オプション、が記述される。

以下は /etc/fstab ファイルにおける NFS マウントの記述例である。

server:/usr/local/pub	/pub	nfs	rsize=8192,wsize=8192,timeo=14,intr

オプション

NFS サーバからファイルを読み込む際に、 NFS が用いるバッファのバイト数 を指定する。デフォルト値はカーネルに依存する。現在は 1024 バイト。 (しかし rsize=8192 でうまく動作するようなら、転送速度は大きく向上する。)
NFS サーバにファイルを書き込む際に、 NFS が用いるバッファのバイト数を 指定する。デフォルト値はカーネルに依存する。現在は 1024 バイト。 (しかし wsize=8192 でうまく動作するようなら、転送速度は大きく向上する。)
RPC タイムアウトの後、最初の再送を行うまでの時間を 1/10 秒単位で指定す る。デフォルトは 7(つまり 0.7 秒)。最初のタイムアウトの後は、タイム アウトの時間は倍々される。これはタイムアウトが最大値の 60 秒になるか、 あるいは再送の回数が指定した値よりも大きくなって、メジャータイムアウト となるまで続けられる。メジャータイムアウトになると、ファイルシステムがハード マウントされている場合には、新たなタイムアウトシーケンスが初期値を 2 倍にして再び試みられる(シーケンス内部でのタイムアウトは倍々)。タイム アウトの最大値は常に 60 秒である。ネットワークが混雑している、サーバが 遅い、経路に複数のルータまたはゲートウェイがある、などの場合には、このタ イムアウトを増やすと全体の性能を向上させることができるかもしれない。
マイナータイムアウトと再送の合計数がこの値を超えるとメジャータイムアウ トとなる。デフォルトは 3 回。メジャータイムアウトが起こると、ファイル 操作は中断されるか、あるいは"server not responding" のメッセージがコン ソールに表示される。
一般のファイル (regular file) の属性 (attribute) がキャッシュされる 最小の時間を秒単位で指定する。 この時間内では、サーバーへの新たな情報の問い合わせは行われない。 デフォルトは 3 秒。
一般のファイルの属性がキャッシュされる最大の時間を秒単位で指定する。 この時間を越えると、必ずサーバーへ新たな情報の問い合わせが行われる。 デフォルトは 60 秒。
ディレクトリの属性がキャッシュされる最小の時間を秒単位で指定する。 この時間内では、サーバーへの新たな情報の問い合わせは行われない。 デフォルトは 30 秒。
ディレクトリの属性がキャッシュされる最大の時間を秒単位で指定する。 この時間を越えると、必ずサーバーへ新たな情報の問い合わせが行われる。 デフォルトは 60 秒。
acregmin, acregmax, acdirmin, acdirmax すべてを同じ値にする。デフォルト値はない。
フォアグラウンド、またはバックグラウンドでの NFS マウントオペレーショ ンが、リトライを放棄するまでの時間を指定する。デフォルトは 10000 分 (だいたい一週間) である。
NFS サーバが RPC マウントプロトコルのバージョン 2 をサポートしていない 場合に、このオプションを用いるとリモートファイルシステムにおいてサポー トされているファイル名の最大長を指定できる。これは POSIX pathconf 関数 をサポートするために用いられる。デフォルトは 255文字。
NFS サーバに接続する際のポート番号を指定する。指定が 0 (デフォルト) の 場合、用いるべきポート番号をリモートホストのポートマッパーに尋ねる。も しリモートホストの NFS デーモンがポートマッパーに登録されていなければ、 一般的なNFS ポート番号である 2049 を使用する。
mountd のポート番号を指定する。
mountd が起動されているホスト名を指定する。
リモートホストの mount デーモンに接続する際に、通常と異なる RPC プログ ラム番号を用いる。このオプションは複数の NFS サーバが動作しているホス トに対して用いると便利である。デフォルトは 100005 で、これは mount デー モンに対して標準的に用いられるプログラム番号である。
リモートホストの mount デーモンに接続する際に、通常と異なる RPC バージョ ン番号を用いる。このオプションは複数の NFS サーバが動作しているホスト に対して用いると便利である。デフォルトは 1。
リモートホストの NFS デーモンに接続する際に、通常と異なる RPC プログ ラム番号を用いる。このオプションは複数の NFS サーバが動作しているホス トに対して用いると便利である。デフォルトは 100003 で、これは NFS デー モンに対して標準的に用いられるプログラム番号である。
リモートホストの NFS デーモンに接続する際に、通常と異なる RPC バージョ ン番号を用いる。このオプションは複数の NFS サーバが動作しているホスト に対して用いると便利である。デフォルトは 2。
NFS ロックを無効にする。lockd を起動しない。 これは古い NFS サーバーに使わなくてはならない。
最初の NFS マウントの試行がタイムアウトになったときに、バックグラウン ドでマウントを試み続ける。マウント動作がバックグラウンドになると、その NFS サーバーに対して引き続き行われることになっている、他の mount 動作 もただちにバックグラウンドになる。これらに対して、最初のマウント試行は 行われない。マウントポイントが失われると、タイムアウトと同じように扱わ れる。 NFS マウントのネストを許すためである。
最初の NFS マウントの試行がタイムアウトになったときに、再試行をフォア グラウンドで行う。これは bg の反対の意味を持つ指定であり、こちらがデフォルト。
NFS へのファイル操作がメジャータイムアウトとなった場合、呼び出したプロ グラムに対し I/O エラーを返す。デフォルトでは、ファイル操作を無期限に 再試行し続ける。
NFS へのファイル操作がメジャータイムアウトとなった場合、コンソールに "server not responding"と表示し、ファイル操作を無期限に再試行し続ける。 これがデフォルトの動作である。
NFS へのファイル操作がメジャータイムアウトとなり、かつその NFS 接続が hard マウントされている場合、シグナルによるファイル操作の中断を許可し、 中断された場合には呼び出したプログラムに対して EINTR を返す。デフォル トではファイル操作の中断を許さない。 intr / nointr マウントオプションは kernel 2.6.25 以降で廃止される。 SIGKILL シグナルだけが、 これらの kernel 上で待ち状態のファイル操作を 中断できる。もし指定された場合、 このマウントオプションは古い kernel との後方互換のために無視される。
POSIX の手法を用いて NFS ファイルシステムをマウントする。ファイル名の 最大長がマウントサーバに問い合わされるようになり、 NFS ファイルシス テムが POSIX pathconf コマンドを正しくサポートできるようになる。 これを行うためには、リモートホストが RPC マウントプロトコルのバージョ ン 2 をサポートしていなければならない。多くの NFS サーバはバージョン 1 しかサポートしていない。
ファイルを作成するときに、新たな属性の取得を抑制する。
属性のキャッシングのすべてを完全に無効にする。これはサーバの性能を低下さ せるが、 2 つの異なる NFS クライアントの両方が、サーバ上の共通のファイ ルシステムに頻繁に書き込みをしている場合に、正しい結果をそれぞれのクラ イアントに返すことを保証する。
NFS ファイルシステムのマウントに、デフォルトの UDP プロトコルではなく TCP プロトコルを用いる。多くの NFS サーバは UDP しかサポートしていない。
NFS ファイルシステムのマウントに UDP プロトコルを用いる。こちら がデフォルトである。
与えられたマウントポイントに対するディレクトリエントリーのキャッシュをカーネルがどのように管理するかを指定する。 mode には all, none, pos, あるいは positive のどれかを指定する。 このオプションはカーネル 2.6.28 以降でサポートされる。
Linux の NFS クライアントは、すべての NFS LOOKUP リクエストの結果をキャッシュする。 要求されたディレクトリエントリーがサーバー上に存在する場合、 positive とされる。 要求されたディレクトリエントリーがサーバー上に存在しない場合、 negative とされる。
このオプションが指定されない場合、 もしくは all が指定された場合、 クライアントは、 親ディレクトリのキャッシュされた属性が 期限切れになるまで、 どちらのディレクトリキャッシュエントリーの種類とも 有効であると見なす。
pos あるいは positive が指定された場合、 クライアントは、 親ディレクトリのキャッシュされた属性が 期限切れになるまで、 positive エントリーが有効であると見なすが、 アプリケーションが使用する前に、 negative エントリーは常に再確認する。
none が指定された場合、 クライアントは、アプリケーションが使用する前に、 どちらのディレクトリキャッシュエントリーの種類とも再確認する。 これは他のクライアントによって作成、あるいは削除されたファイルを迅速に 検出することを可能にするが、 アプリケーションや、 サーバーの 性能に影響する可能性がある。
データとメタデータの一貫性の節ではこれらのトレードオフの詳細な論考が含まれる。

数値を指定しないオプションすべてに対して、それぞれ no を前置したオプショ ンが存在する。例えば、 nointr はファイル操作の中断を許可しない。

データとメタデータの一貫性

いくつかのモダンなクラスターファイルシステムでは、 クライアント間の完全なキャッシュの一貫性を提供する。 殊の外、ワイド・エリア・ネットワーク上では、 異種の NFS クライアント間の完全なキャッシュの一貫性を実現するにはコストがかかる。 従って、 NFS は、 大部分のファイル共有タイプの要件を満たす弱いキャッシュの一貫性で済ませている。

ディレクトリエントリーのキャッシュ

Linux の NFS クライアントは、 すべての NFS LOOKUP リクエストの結果をキャッシュする。 要求されたディレクトリエントリーがサーバー上に存在する場合、結果は possitive lookup result とされる。 要求されたディレクトリエントリーがサーバー上に存在しない場合 ( つまり、サーバーが ENOENT を返す場合 )、 結果は negative lookup result とされる。

サーバー上でディレクトリエントリーが追加、 あるいは削除されたことを 検出するために、 Linux の NFS クライアントはディレクトリの mtime を監視する。 クライアントがディレクトリの mtime に変更を検出した場合、 クライアントはそのディレクトリのすべてのキャッシュされた LOOKUP の結果を破棄する。 ディレクトリの mtime は、 キャッシュされた属性であるため、 クライアントがその変更に気づくまでには時間がかかることがある。 ディレクトリの mtime がキャッシュされる期間についての情報は acdirmin, acdirmax, そして noac マウントオプションの説明を参照。

ディレクトリエントリーのキャッシュは、 他のクライアント上の アプリケーションでファイルを共有しない、 アプリケーションの性能を向上させる。 また一方、 ディレクトリに関するキャッシュされた情報の利用は、 複数のクライアント上で、 同時に実行してファイルの作成や削除を手早く検出する必要がある アプリケーションに干渉する可能性がある。 lookupcache マウントオプションは、 ディレクトリエントリーキャッシュの挙動の チューニングを可能にする。

カーネルリリース 2.6.28 以前は、 Linux の NFS クライアントは positive lookup result だけを追跡していた。 これは、 キャッシュすることに対する性能についてのいくつかの利点を 提供しつつ、 他のクライアントによって作られた 新しいディレクトリエントリーを 迅速にアプリケーションが検出することを可能にする。 アプリケーションが、以前の Linux の NFS クライアントのルックアップキャッシュの挙動に 依存する場合、 lookupcache=positive を使用することになる。

クライアントがそのキャッシュを無視し、 サーバーでアプリケーションのルックアップ要求毎に確認する場合、 そのクライアントは、 新しいディレクトリエントリーが作成あるいは別のクライアントによって削除された時 早急に検出することができる。 lookupcache=none を使うことで、 この挙動を指定できる。 クライアントがディレクトリエントリをキャッシュしない場合に必要となる追加の NFS リクエストは、 性能上のペナルティを発生させる。 ルックアップキャッシュを無効にすることは、 noac を使うよりも性能上のペナルティは少なくなるはずであり、 NFS クライアントがどのようにファイルの属性を キャッシュするかに影響を与えない。

ファイル

/etc/fstab

関連項目

fstab(5), mount(8), umount(8), exports(5)

著者

"Rick Sladkey" <jrs@world.std.com>

バグ

posix オプションと nocto オプションは mount によって受け入れられるが、 現在のところは単に無視される。

tcp および namlen オプションは実装されているが、現在のところ Linux カー ネルではサポートされていない。

umount コマンドは、 NFS ファイルシステムがアンマウントされたときにサー バに通知するべきである。

ファイルディスクリプタによって参照された NFS ファイルシステム上にあるファイルのチェック( fcntlioctl などの関数)は、たとえ noac が使用されたとしても、カーネル内での一貫性チェックが不足しているため、誤った結果を返すことがある。

20 November 1993 Linux 0.99