日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
NFSV4(4) FreeBSD カーネルインタフェースマニュアル NFSV4(4) 名称 NFSv4 -- NFS Version 4 プロトコル 解説 NFS クライアントとサーバは、NFSv4 仕様のサポートを行います。Network File System (NFS) Version 4 Protocol RFC 7530 と Network File System (NFS) Version 4 Minor Version 1 Protocol RFC 5661 を参照してください。プロトコ ルは、NFS バージョン 3 とほぼ同様ですが、実に多くの点で異なっています。そ れは操作を一緒に連結する単一の合成 (compound) RPC を使用します。これらの 操作のそれぞれは、NFS バージョン 3 の RPC と同様です。複合物での操作は、 それらの 1 つが失敗して (エラーを返し)、次に、RPC が、その時点で終了する まで、順番に実行されます。 それには、サーバがもはやステートレスでないことを意味する、統合されたロッ クのサポートがあります。そのようなものとして、NFSv4 サーバは、リブートの 後に (常にサーバが使用するリース (lease) 持続時間より大きい) グレース (grace) 期間の復旧モードのままとなります。このグレースの期間の間に、クラ イアントは、状態を復旧しますが、操作を変更する他の open/lock 状態を実行し ません。正しい復旧意味論に提供するために、stablerestart(5) によって記述さ れた小さなファイルは、復旧フェーズの間にサーバによって使用されます。この ファイルが不足しているか、または空であるなら、使用される nfsd(8) によって 維持されるバックアップコピーがあります。いずれかのファイルが不足している なら、それらは、nfsd(8) によって作成されます。ファイルとバックアップコ ピーの両方が空であるなら、復旧のためのグレース期間を提供せずに、サーバが 開始されることとなります。nfsd(8) が単に再開されているときではなく、サー バマシンがリブートされるときだけ、復旧が起こることに注意してください。 NFS バージョン 3 に存在しない、いくつかのオプション機能を提供します: - NFS バージョン 4 ACL - 委託 (Referral)、他のサーバにサブツリーをリダイレクトする (未実装) - 委譲 (Delegation)、クライアントがファイルを局所的に操作することができる - pNFS, ここで、I/O 操作は、メタデータの操作から分離されます NFSv4 プロトコルは、別々のマウントプロトコルを使用せず、サーバが単一の ファイルシステムツリー構造を提供すると仮定し、1 つ以上で指定されたローカ ルファイルシステムツリーの点をルートとします。 V4: <rootdir> [-sec=secflavors] [host(s) or net] exports(5) ファイルの (複数の) 行。(詳細については、exports(5) を参照して てください。) nfsd(8) によって、エクスポートされているサブツリーへのツ リーの縦断が可能となるように、ローカルファイルシステムのエクスポートされ ないサブツリーで操作の制限されたサブセットを実行することができます。その ようなものとして、エクスポートされていないファイルシステムで ``<root dir>'' となることができます。例外は、``<rootdir>'' 以下のすべての ZFS ファイルシステムがエクスポートされなければならないものとして、エクスポー トをチェックする、ZFS です。しかしながら、その時、ルートとされた全体のツ リーは、エクスポートされた NFS であるかもしれないタイプであるローカルファ イルシステムになければなりません。NFSv4 ファイルシステムは、``<rootdir>'' をルートとするので、``/'' 以外の何かにこれを設定すると、NFS バージョン 2 または 3 より NFSv4 のための異なったマウントパスを使用するために要求され ることとなります。NFS バージョン 2 と 3 と異なって、バージョン 4 によっ て、クライアントマウントは、複数のサーバファイルシステムの向こう側に橋渡 しすることができますが、すべてのクライアントが、これを行うことができると いうわけではありません。 NFSv4 は、数値の代わりにユーザとグループのための文字列を使用します。有線 で、これらの文字列は、文字列の数値があるか、または次の形式取ることができ ます: <user>@<dns.domain> ここで、``<dns.domain>'' は、ホスト名の検索のために使用される DNS ドメイ ンと同じではありませんが、通常、同じ文字列に設定されます。ほとんどのシス テムは、この ``<dns.domain>'' をデフォルトでマシンの hostname(1) のドメイ ン名の部分に設定します。しかしながら、通常、名前<->数値マッピングを行うた めに使用されるデーモンのためのコマンドラインのオプションまたは設定ファイ ルによってこれを上書きすることができます。FreeBSD の下では、マッピング デーモンは、nfsuserd(8) と呼ばれ、マシンのホスト名のドメイン部分を上書き するコマンドラインのオプションがあります。クライアントまたはサーバのいず れかの NFSv4 で文字列のこの形式を使用のためには、このデーモンが、実行され ていなければなりません。 数値が文字列にある形式は、AUTH_SYS のためだけに使用することができます。利 用者のシステムをこの方法で設定するために、nfsuserd(8) デーモンは、サーバ で実行している必要はありませんが、次の sysctl は、サーバで 1 に設定される 必要があります。 vfs.nfs.enable_uidtostring vfs.nfsd.enable_stringtouid クライアントで、sysctl vfs.nfs.enable_uidtostring は、1 に設定されなければならず、nfsuserd(8) デーモンは、実行されている必 要はありません。 これらの文字列が正しく設定されていないなら、通常、``ls -l'' は、多くの ``nobody'' と ``nogroup'' 所有者を報告します。 uid/gid 番号は、もはや上記の文字列のオプションを除いて、NFSv4 プロトコル で使用されませんが、それらは、デフォルトである AUTH_SYS (sec=sys) を使用 するとき、まだ RPC 認証フィールドにあります。そのようなものとして、この場 合、ユーザ/グループ名と数値の空間の両方がクライアントとサーバの間で一致し ていなければなりません。 しかしながら、利用者が RPCSEC_GSS (sec=krb5, krb5i, krb5p) で NFSv4 を実 行するなら、名前と KerberosV チケットだけが通知されます。 サーバのセットアップ NFSv4 をサポートする NFS サーバをセットアップするためには、次のように rc.conf(5) の変数を設定する必要があります: nfs_server_enable="YES" nfsv4_server_enable="YES" と nfsuserd_enable="YES" サーバがユーザ/グループ文字列の ``<user>@<domain>'' 形式を使用しているな ら、nfsuserd(8) のための ``-manage-gids'' オプションを使用します。 また、利用者は、NFSv4 が動作するために、少なくとも 1 つの ``V4:'' 行を exports(5) ファイルに追加する必要があります。 利用者がエクスポートしているファイルシステムが NFSv4 を通してアクセスされ ているだけなら、性能を向上させるかもしれない、利用者が変更することができ る 2、3 の sysctl(8) 変数があります。 vfs.nfsd.issue_delegations 0 以外に設定されるなら、サーバは、クライアント Open Delegation を 発行することができます。これらの委譲 (delegation) は、クライアン トがクライアントでローカルにファイルを操作することを許可します。 残念ながら、現時点では、委譲のクライアントの使用は、制限されるの で、性能向上は、観測されていません。NFSv4 クライアントにエクス ポートされるファイルシステムが、サーバでローカルにアクセスされて いないときだけ、これを有効にすることができます、そして、NFS バー ジョン 2 または 3 クライアントを通してアクセスされるなら、これら のクライアントは、NLM を使用することができません。 vfs.nfsd.enable_locallocks ローカルなバイト範囲のロックの獲得を無効にするために、0 に設定す ることができます。エクスポートしているファイルシステムをローカル にアクセスしないか、または NLM がそれらで操作できない場合にだけ、 ローカルなロックを無効にすることができます。 Samba サーバのアクセスが上記の議論のための ``local access'' であると見な されるかもしれないことに注意してください。 リンクされている NFSv4 をサポートする NFS サーバがあるカーネルを構築する には、次を options NFSD カーネルの config(5) ファイルに指定しなければなりません。 クライアントのマウント NFSv4 マウントを行うためには、mount_nfs(8) コマンドラインで ``nfsv4'' オ プションを指定します。これは、NFSv4 をサポートするクライアントの使用を強 制して、``tcp'' と NFSv4 を設定します。 nfsuserd(8) は、上記のように、name<->uid/gid マッピングが使用されているな ら、実行されなければなりません。また、NFSv4 のマウントは、サーバにクライ アントをユニークに識別するためにホスト uuid を使用するので、 hostid_enable="NO" が rc.conf(5) で設定されるなら、安全に NFSv4 マウントを行うことができませ ん。 NFSv4 サーバが委譲のサポートでマウントされているなら、利用者は、クライア ント側のコールバックを扱うために nfscbd(8) デーモンを開始することができま す。次が、 nfsuserd_enable="YES" <-- name<->uid/gid マッピングが 使用されているなら. nfscbd_enable="YES" rc.conf(5) に設定されているなら、これは起こります。 機能しているコールバックのパスなしで、サーバは、決してクライアントに委譲 (Delegation) を発行しません。 NFSv4.0 について、デフォルトで、コールバックアドレスは、カーネルと port# 7745 で rtalloc() を通して獲得された IP アドレスに設定されます。デフォル トの port# を上書きするために、nfscbd(8) のためのコマンドラインオプション を使用することができます。 NAT ゲートウェイの後ろで、動作するコールバックを取得するために、コール バックサービスのためのポートは、NAT ゲートウェイで設定される必要があり、 次に NAT ゲートウェイのアドレス (ホスト IP と port#) は、sysctl(8) 変数 vfs.nfs.callback_addr を次の形式の文字列に割り当てることによって設定され る必要があります: N.N.N.N.N.N ここで、最初の 4 つの N は、ホスト IP アドレスで、最後の 2 は、ネットワー クバイト順の port# (ポート番号) (範囲 0-255 ですべて 10 進数の #) です。 NFSv4.1 について、(backchannel と呼び出される) コールバックのパスは、マウ ントとして同じ TCP 接続を使用するので、上記のどれも適用せず、あらゆる問題 なしでゲートウェイを通して動作するべきです。 リンクされた NFSv4 をサポートするクライアントがあるカーネルを構築するため には、次のオプション options NFSCL がカーネルの config(5) ファイルで指定されなければなりません。 ``nfsuserd_flags'' と ``nfscbd_flags'' rc.conf(5) 変数を通してブート時に nfsuserd(8) と nfscbd(8) デーモンのためにオプションを指定することができま す。 同じホストのエクスポートされた (複数の) ボリュームに対する NFSv4 マウント は、ハングアップした NFS サーバの結果となるかもしれないので、推奨されませ ん。nfsd スレッドが新しい vnode を獲得する部分として NFSv4 VOP_RECLAIM()/Close RPC を行おうことを試みるとき、それは、生じます。他の すべての nfsd スレッドが、この nfsd スレッドによって保持されたロックを 待っていてブロックされるなら、Close RPC をサービスする nfsd スレッドは、 ありません。 関連ファイル /var/db/nfs-stablerestart NFS V4 の安定した再開ファイル /var/db/nfs-stablerestart.bak ファイルのバックアップコピー 関連項目 stablerestart(5), mountd(8), nfscbd(8), nfsd(8), nfsdumpstate(8), nfsrevoke(8), nfsuserd(8) バグ 現時点では、ローカルファイルシステム操作のための委譲 (delegation) のリ コールはありません。そのようなものとして、委譲は、NFS がボリュームをエク スポートするように、単に使用されているファイルシステムのためにだけ有効に されるべきであり、ローカルのシステムコールを通してアクセスされず、Samba のようなサービスでもありません。 FreeBSD 11.4 July 19, 2017 FreeBSD 11.4