MOUNT_NFS(8)

名称
mount_nfs - NFS (ネットワークファイルシステム) をマウントする

書式
mount_nfs [-23NPTUbcdiLls] [-D deadthresh] [-I readdirsize] [-R retrycnt] [-a maxreadahead] [-g maxgroups] [-o options] [-r readsize] [-t timeout] [-w writesize] [-x retrans] rhost:path node

解説
mount_nfs ユーティリティは、ファイルシステムツリー上の指定された node にリモートの NFS ファイルシステム (rhost:path) をマウントするために、 mount(2) システムコールを呼び出します。このコマンドは通常、 mount(8) によって実行されます。このプログラムは、RFC 1094 の Appendix. A および Appendix I. に記述されているマウントプロトコルを実装しています。

デフォルトでは、マウントが成功するまで、 mount_nfs はリトライを続けます。 この動作は、 fstab(5) に列挙された、ブート処理に必須なファイルシステムでの使用を意図しています。 必須ではないファイルシステムには、 -b および -R のフラグを使用して、 サーバが利用不可の場合でもブート処理がハングしないようにできます。

NFS ファイルシステムのマウント中にサーバが応答しなくなった場合、 当該ファイルシステム上の新規または未解決のファイル処理は、 サーバが回復するまで、割り込まれることなくハングします。 このデフォルトの動作を修正するには、 -i と -s のフラグを見てください。

オプションを以下に示します:

-2  NFS バージョン 2 プロトコルを使用します (デフォルトはバージョン 3 をまず試した後にバージョン 2 を用います)。 NFS バージョン 2 では、 ファイルサイズは 2 ギガバイトに制限されることに注意してください。

-3  NFS バージョン 3 プロトコルを使用します。

-D  NQNFSにおいて “停止サーバ閾 (dead server threshold)” をタイムアウト (round trip timeout) 回数で指定します。 これを越えると “server not responding” メッセージが表示されます。

-I  readdir での読み取りサイズを指定した値にします。 値は通常 DIRBLKSIZ の倍数であり、マウントの読み取りサイズ以下です。

-L  xNQNFS において、リース期間を指定した秒数にします。 x応答遅延 (round trip delay) が大きな場合だけ使って下さい。 x値は通常、10 秒から 30 秒の間です。 fcntl(2) ロックをネットワーク転送しません。 すべてのロックはローカルとなり、 サーバおよび他の NFS クライアントには見えなくなります。 これにより rpcbind(8) サービスを実行する必要がなくなり、 rpc.statd(8) と rpc.lockd(8) のサーバをクライアント上で実行する必要がなくなります。 本オプションは最初のマウント実行時にのみ尊重され、 マウントオプション更新時には黙って無視されます。

-N  予約されたソケットポート番号を使用し ません (後述)。

-P  予約されたソケットポート番号を使います。 このフラグは廃れたものであり、互換性のためだけにあります。 現在、予約されたソケットポート番号をデフォルトで使用します。 NFS がより安全になるとの考え方 (これは誤りです) に基づいて クライアントが予約ポートを使用しないとマウントさせないサーバ をマウントするのに役立ちます。 (クライアントの root が信頼でき、ネットワークケーブルも安全な場所にあ るが、クライアントのユーザは信頼できないという、まれな場合には 役に立つでしょうが、通常のデスクトップクライアントには当てはまりません。)

-R  マウントのリトライ回数を、指定された値にします。 デフォルトのリトライ数は 0 であり、 これは永遠にリトライを続けることを意味します。 各リトライの間隔は 60 秒です。

-T  UDP の代わりに TCP を使います。これは、サーバがクライアントと 同じ LAN ケーブル上にない場合に使うことをお勧めします (注意: この機能は大抵の非 BSD サーバではサポートされていません)。

-U  TCP NFS マウントであっても、マウントプロトコルに UDP を強制します。 (古い BSD サーバにて必要です。)

-a  先読みブロック数を指定した値に設定します。値は 0 から 4 までの範囲で、 サイズの大きなファイルをシーケンシャルに読む場合、 何ブロック先読みするかを決定します。 帯域幅×遅延が大きな状況でマウントする場合に 1 より大きな値をお勧めします。

-b  最初にサーバの接続に失敗した場合、子プロセスを起動して、 バックグラウンドでマウントを続けようとします。 マルチユーザモードで起動する際、重要でないファイルシステムを fstab(5) に書いておく場合に役に立ちます。

-c  UDP マウントポイントに対しては、 connect(2) を使いません。 これは、標準のポート番号 2049 からのリクエストに答えないサーバ に対しては使う必要があります。

-d  再送タイムアウト時間を動的に予測しません。これは、 動的に予測される再送タイムアウト時間が非常に短いために、 UDP マウントが高いリトライレートを示しているような場合に有効です。

-g  認証用のグループリストの最大サイズを、指定した値に設定します。 RFC 1057 ではグループリストのサイズは 16 と記述されていますが、これを 扱えない古いサーバをマウントするときに使うべきです。 多くのグループに属しているユーザに対してマウントポイントから 応答がない場合は、8 を指定してみて下さい。

-i  マウントを割り込み可能とします。これは、応答しないサーバがあるために ファイル関連のシステムコールが遅れるような場合、 プロセスに終了シグナルが送られると、EINTR で システムコールが失敗することを意味します。

-l  NQNFS と NFSV3 において、Readdir_and_Lookup RPCを使うことを 指定します。 このオプションは “ls -l” するようなときに RPC のトラフィックを減らしますが、 属性と名前のキャッシュをプリフェッチエントリで溢れさせる傾向があります。 このオプションを指定して性能が良くなるのか悪くなるのかを確認して下さい。 バンド幅と遅延の積が大きなネットワークにて最も有用でしょう。

-o  -o フラグの後に、オプションをコンマで区切って並べ指定します。 指定可能なオプションとその意味は mount(8) を参照してください。 以下の NFS 固有のオプションを使用可能です:

    port=<port_number>
        指定したポート番号を NFS 要求に使用します。 デフォルトでは portmapper に問い合わせます。

    acregmin=<seconds>

    acregmax=<seconds>

    acdirmin=<seconds>

    acdirmax=<seconds>
        ファイル属性がキャッシュされたときに、 キャッシュエントリをエクスパイアするためにタイムアウトを計算します。 これらの 4 つの値は、``ディレクトリ'' および ``通常'' (ディレクトリ以外) の 上限および下限を決定します。 デフォルトでは、 通常ファイルは 3 から 60 秒、 ディレクトリは 30 から 60 秒です。 タイムアウトの算出アルゴリズムはファイルの古さを元にするものです。 ファイルが古くなると、キャッシュが有効であると見倣す期間も長くなり、 上記限界に近付きます。

    歴史的な -o オプション

    これらのオプションを使用する事は勧められません。 歴史的な mount_nfs との互換性のためにここに記述してあります。

    bg  -b と同じ。

    conn
        -c を指定しない場合と同じ。

    dumbtimer
        -d と同じ。

    intr
        -i と同じ。

    lockd
        -L を指定しない場合と同じ。

    nfsv2
        -2 と同じ。

    nfsv3
        -3 と同じ。

    rdirplus
        -l と同じ。

    mntudp
        -U と同じ。

    resvport
        -P と同じ。

    seqpacket
        -p と同じ。

    soft
        -s と同じ。

    tcp -T と同じ。

-r  データのリードサイズを指定した値にします。この値は通常 1024 以上の 2 のべき乗でなければなりません。これはマウントポイント を頻繁に使っている間に、 “タイムアウトで消失したフラグメント数” が大きくなっていくときに、UDP マウントに対して使います (netstat(1) を -s オプション付きで使う ことで、 “タイムアウトで消失したフラグメント数” の値を見ることができます)。 -w オプションも参照 してください。

-s  ソフトマウントを行います。これは、 タイムアウトが決められたリトライ回数に達すると、 システムコールが失敗することを意味します。

-t  指定した値に初期再送タイムアウト時間を設定します。パケット の消失レートの高いネットワークや負荷の高いサーバで行う UDP マウントを チューニングするときに役立ちます。 ファイルシステムがアクティブなときに nfsstat(1) が高い再送レートを示す場合には、この値を増やしてみて下さい。 一方、再送レートは低いが、応答遅延が長い場合はこの値を減らします。 (通常、-d オプションをこのオプションとともに使い、 手動でタイムアウトインターバルを調整します。)

-w  指定した値にライトデータサイズを設定します。解説は -r オプションと同様ですが、 “タイムアウトで消失したフラグメント数” は、クライアントのかわりにサーバの値を使います。 -r や -w のオプションは、マウントするサーバが TCP マウントをサポートしていない場合にパフォーマンスを向上させる 最後の手段であることに注意してください。

-x  ソフトマウントの再送タイムアウト回数を設定します。

関連項目
mount(2), unmount(2), fstab(5), mount(8), nfsd(8), nfsiod(8), showmount(8)

バグ
Sun RPCは UDP (信頼性のないデータグラム) トランスポート層上に 実装されているため、マウントの性能をチューニングしても 限界があります。サーバが同じ LAN ケーブル上にない場合や、 サーバの負荷が高い場合には、 TCP トランスポートを使うことを強くすすめますが、 残念なことに、ほぼ 4.4BSD サーバに限られています。