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
オプション
rsize=n NFS サーバからファイルを読み込む際に、 NFS が用いるバッ
ファのバイト数を指定する。デフォルト値はカーネルに依存す
る。現在は 1024 バイト。 (しかし rsize=8192 でうまく動作
するようなら、転送速度は大きく向上する。)
wsize=n NFS サーバにファイルを書き込む際に、 NFS が用いるバッ フ
ァのバイト数を指定する。デフォルト値はカーネルに依存する
。現在は 1024 バイト。 (しかし wsize=8192 でうまく動作す
るようなら、転送速度は大きく向上する。)
timeo=n RPC タイムアウトの後、最初の再送を行うまでの時間を 1/10
秒単位で指定する。デフォルトは 7(つまり 0.7 秒)。最 初
のタイムアウトの後は、タイムアウトの時間は倍々される。こ
れはタイムアウトが最大値の 60 秒になるか、あるいは再送の
回数が指定した値よりも大きくなって、メジャータイムアウト
となるまで続けられる。メジャータイムアウトになると、ファ
イルシステムがハードマウントされている場合には、新たなタ
イムアウトシーケンスが初期値を 2 倍にして再び試みられ る
(シーケンス内部でのタイムアウトは倍々)。タイムアウトの
最大値は常に 60 秒である。ネットワークが混雑している、サ
ーバが遅い、経路に複数のルータまたはゲートウェイがある、
などの場合には、このタイムアウトを増やすと全体の性能を向
上させることができるかもしれない。
retrans=n マイナータイムアウトと再送の合計数がこの値を超えるとメジ
ャータイムアウトとなる。デフォルトは 3 回。メジャータ イ
ム ア ウトが起こると、ファイル操作は中断されるか、あるい
は"server not responding" のメッセージがコンソールに表示
される。
acregmin=n 一般のファイル (regular file) の属性 (attribute) がキャ
ッシュされる最小の時間を秒単位で指定する。この時間内では
、サーバーへの新たな情報の問い合わせは行われない。デフォ
ルトは 3 秒。
acregmax=n 一般のファイルの属性がキャッシュされる最大の時間を秒単位
で指定する。この時間を越えると、必ずサーバーへ新たな情報
の問い合わせが行われる。デフォルトは 60 秒。
acdirmin=n ディレクトリの属性がキャッシュされる最小の時間を秒単位で
指定する。この時間内では、サーバーへの新たな情報の問い合
わせは行われない。デフォルトは 30 秒。
acdirmax=n ディレクトリの属性がキャッシュされる最大の時間を秒単位で
指定する。この時間を越えると、必ずサーバーへ新たな情報の
問い合わせが行われる。デフォルトは 60 秒。
actimeo=n acregmin, acregmax, acdirmin, acdirmax すべてを同じ値 に
する。デフォルト値はない。
retry=n フォアグラウンド、またはバックグラウンドでの NFS マウン
トオペレーションが、リトライを放棄するまでの時間を指定す
る。デフォルトは 10000 分 (だいたい一週間) である。
namlen=n NFS サーバが RPC マウントプロトコルのバージョン 2 をサポ
ートしていない場合に、このオプションを用いるとリモートフ
ァイルシステムにおいてサポートされているファイル名の最大
長を指定できる。これは POSIX pathconf 関数をサポートする
ために用いられる。デフォルトは 255文字。
port=n NFS サーバに接続する際のポート番号を指定する。指定が 0 (
デフォルト) の場合、用いるべきポート番号をリモートホスト
の ポートマッパーに尋ねる。もしリモートホストの NFS デー
モンがポートマッパーに登録されていなければ、一般的 なNFS
ポート番号である 2049 を使用する。
mountport=n mountd のポート番号を指定する。
mounthost=name mountd が起動されているホスト名を指定する。
mountprog=n リモートホストの mount デーモンに接続する際に、通常と異
なる RPC プログラム番号を用いる。このオプションは複数 の
NFS サーバが動作しているホストに対して用いると便利である
。デフォルトは 100005 で、これは mount デーモンに対し て
標準的に用いられるプログラム番号である。
mountvers=n リモートホストの mount デーモンに接続する際に、通常と異
なる RPC バージョン番号を用いる。このオプションは複数 の
NFS サーバが動作しているホストに対して用いると便利である
。デフォルトは 1。
nfsprog=n リモートホストの NFS デーモンに接続する際に、通常と異 な
る RPC プログラム番号を用いる。このオプションは複数の
NFS サーバが動作しているホストに対して用いると便利である
。 デフォルトは 100003 で、これは NFS デーモンに対して標
準的に用いられるプログラム番号である。
nfsvers=n リモートホストの NFS デーモンに接続する際に、通常と異 な
る RPC バージョン番号を用いる。このオプションは複数の
NFS サーバが動作しているホストに対して用いると便利である
。デフォルトは 2。
nolock NFS ロックを無効にする。lockd を起動しない。これは古い
NFS サーバーに使わなくてはならない。
bg 最初の NFS マウントの試行がタイムアウトになったときに 、
バックグラウンドでマウントを試み続ける。マウント動作がバ
ックグラウンドになると、その NFS サーバーに対して引き 続
き 行われることになっている、他の mount 動作もただちにバ
ックグラウンドになる。これらに対して、最初のマウント試行
は行われない。マウントポイントが失われると、タイムアウト
と同じように扱われる。 NFS マウントのネストを許すため で
ある。
fg 最初の NFS マウントの試行がタイムアウトになったときに、
再試行をフォアグラウンドで行う。これは bg の反対の意味を
持つ指定であり、こちらがデフォルト。
soft NFS へのファイル操作がメジャータイムアウトとなった場合、
呼び出したプログラムに対し I/O エラーを返す。デフォル ト
では、ファイル操作を無期限に再試行し続ける。
hard NFS へのファイル操作がメジャータイムアウトとなった場合、
コンソールに "server not responding"と表示し、ファイル操
作を無期限に再試行し続ける。これがデフォルトの動作である
。
intr NFS へのファイル操作がメジャータイムアウトとなり、かつそ
の NFS 接続が hard マウントされている場合、シグナルによ
るファイル操作の中断を許可し、中断された場合には呼び出し
た プログラムに対して EINTR を返す。デフォルトではファイ
ル操作の中断を許さない。 intr / nointr マウントオプシ ョ
ンは kernel 2.6.25 以降で廃止される。 SIGKILL シグナルだ
けが、 これらの kernel 上で待ち状態のファイル操作を中 断
で きる。もし指定された場合、 このマウントオプションは古
い kernel との後方互換のために無視される。
posix POSIX の手法を用いて NFS ファイルシステムをマウントす る
。ファイル名の最大長がマウントサーバに問い合わされるよう
になり、 NFS ファイルシステムが POSIX pathconf コマン ド
を正しくサポートできるようになる。これを行うためには、リ
モートホストが RPC マウントプロトコルのバージョン 2 をサ
ポ ートしていなければならない。多くの NFS サーバはバージ
ョン 1 しかサポートしていない。
nocto ファイルを作成するときに、新たな属性の取得を抑制する。
noac 属性のキャッシングのすべてを完全に無効にする。これはサー
バの性能を低下させるが、 2 つの異なる NFS クライアントの
両方が、サーバ上の共通のファイルシステムに頻繁に書き込み
をしている場合に、正しい結果をそれぞれのクライアントに返
すことを保証する。
tcp NFS ファイルシステムのマウントに、デフォルトの UDP プ ロ
トコルではなく TCP プロトコルを用いる。多くの NFS サーバ
は UDP しかサポートしていない。
udp NFS ファイルシステムのマウントに UDP プロトコルを用い る
。こちらがデフォルトである。
lookupcache=mode
与えられたマウントポイントに対するディレクトリエントリー
のキャッシュをカーネルがどのように管理するかを指定する。
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"
コロナウイルスの日ごとの感染者数・死者数をグラフ化してみました。どの国が増加傾向にあり、どの国が終息に向かっているかを視覚化しています。
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa