Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all 

名前
nfsd - Linux NFS を制御する特殊ファイルシステム
書式
mount -t nfsd nfsd /proc/fs/nfsd
説明
nfsd ファイルシステムは Linux NFS サーバーへのアクセスを提供する 特殊ファイルシステムである。 このファイ ルシステムは複数個のファイルを含む 1 つのディレクトリで構成される。 これらのファイルが実際には NFS サー バーへのゲートウェイになる。 これらのファイルに書き込むことにより、サーバーに影響を及ぼすことができる。 これらのファイルを読み出すことにより、サーバーの情報が提供される。 このファイルシステムは Linux 2.6 以降 (と開発版である 2.5 系の後期から 2.6 まで) のカーネルでのみ利用可能 である。 この man ページは 2.4 以前には適用されない。 このファイルシステムだけではなく、 procfs ファイルシステム (通常は /proc にマウントされている) にも NFS サーバーを制御するためのファイル群がある。 この man ページは、これら全てのファイルについて記述している。 exportfs と mountd プログラム (nfs-utils パッケージの一部) は、このファイルシステムが /proc/fs/nfsd また は /proc/fs/nfs にマウントされていることを想定している。 マウントされていない場合、これらのプログラムは 2.4 系の機能に戻る。 2.4 系の機能には、システムコール経由で NFS サーバーにアクセスすることが含まれる。 こ のシステムコールは 2.6 カーネルより後の系列では削除される予定である。
詳細
nfsd ファイルシステムに含まれる 3 つのファイルは、以下の通りである: exports このファイルには、現在エクスポートされているファイルシステムと 各ファイルシステムがエクスポートさ れている先のクライアントの一覧が、 クライアントとファイルシステムのペア毎のエクスポートオプション の リストと共に含まれている。 これは 2.4 における /proc/fs/nfs/exports ファイルと似ている。 1 つの 違いは、1 つのクライアントが 1 つのホストと対応する 必要がないという点である。 これにより同一に扱 うべき多くのホストに対して応答できる。 ファイルの各行には、パス名・クライアント名・ 括弧で括られたオプションが含まれる。 パス名またはクラ イアント名に含まれる スペース・タブ・改行・バックスラッシュ文字は、 バックスラッシュとそれらの文字 の 8 進数 ASCII コードに置き換えられる。 threads このファイルは現在実行されている nfsd スレッドの数を表している。 このファイルを読み出すとスレッド 数が表示される。 ASCII の 10 進数を書き込むと、その数になるようにスレッド数が変更される (必要に応 じて増加または減少させる)。 filehandle これは多少変わったファイルで、ファイルから読み出されるものは、 ファイルに書き込まれるものに依存し ている。 このファイルはトランザクションのインタフェースを提供する。 プログラムはこのインタフェース でファイルのオープン・ リクエストの書き込み・レスポンスの読み出しができる。 2 つの別々のプログラム がオープン・書き込み・読み出しを同時に行った場合でも、 リクエスト同士は混同されない。 filehandle に書き込まれるリクエストは、クライアント名・パス名・バイト数である。 その後には、改行・ 空白で区切ったフィールド・ 特殊文字を 8 進数表記したものが続く。 このファイルに書き込むことにより、プログラムは 指定されたクライアントにエクスポートされるパスに対 する ファイルハンドルを読み返すことができる。 ファイルハンドルの長さは、指定されたバイト数以下にさ れる。 ファイルハンドルは先頭に '\x' を付けた 16 進数で表現される。 procfs ファイルシステム上のディレクトリ /proc/net/rpc には、いくつかのファイルとディレクトリが含まれる。 ファイルには nfsstat プログラムを使って表示できる統計情報が含まれる。 ディレクトリには NFS サーバが管理す るいろいろなキャッシュが含まれる。 これらのキャッシュは、各クライアントがファイルシステム毎に持つ アクセ ス許可を把握するためのものである。 キャッシュは以下の通り: auth.domain このキャッシュはクライアント (またはドメイン) の名前を 内部データ構造にマップする。 利用可能なアク セスは、キャッシュの書き出し (flush) のみである。 auth.unix.ip このキャッシュは IP アドレスから認証されたドメインへのマップを保持する。 認証されたドメインで は、この IP アドレスがドメインの一部として扱われる。 nfsd.export このキャッシュはディレクトリとドメインから エクスポートオプションへのマッピングを保持する。 nfsd.fh このキャッシュはドメインとファイルシステム識別子から ディレクトリへのマッピングを保持する。 ファイ ルシステム識別子はファイルハンドルに格納され、 識別子のタイプを表す数値と 識別子の内容を表す 16 進 数のバイトの数値で構成される。 キャッシュを表す各ディレクトリは 1 〜 3 個のファイルを保持できる。 ファイルは以下の通り: flush 紀元 (epoch, 1970 年 1 月 1 日) からの秒数がこのファイルに書き込まれると、 その時刻より前に更新さ れたキャッシュ内の全てのエントリが無効化され、 そのエントリはフラッシュされる (書き出される)。 1 を書き込むと全てのエントリが書き出される。 このファイルだけが常に存在するだろう。 content このファイルが存在する場合、キャッシュ内の全てのエントリの文字列表現が 1 行に 1 個ずつ含まれる。 エントリがまだキャッシュ内にあり (アクティブで使用中であり)、 かつ期限切れの場合、またはそれ以外で エントリが無効である場合、 そのエントリは (先頭にハッシュ記号を付けた) コメントとして表される。 channel このファイルが存在する場合、カーネルベースの NFS サーバーからのリクエストを、 ユーザー空間のプログ ラムが扱うための受け渡しをするチャンネルとして働く。 カーネルがキャッシュにない情報を必要とする場合、 情報のキーとなる 1 行を channel ファイルに書き込 む。 ユーザー空間プログラムは、これを読み込み、答えを見つけ、 キー・満了時刻・内容を含む行を書き込 まなければならない。 たとえば、カーネルが nfsd 127.0.0.1 を auth.unix.ip/content ファイルに書き込んだ場合、ユーザー空間プログラムは nfsd 127.0.0.1 1057206953 localhost を書き込んで、少なくとも今のところは 127.0.0.1 を localhost にマップすべきであることを示す。 プログラムが select(2) または poll(2) を使って channel から読み込めるかを確かめたときに、 ファイル の終わり (end-of-file) は見つからないが、 全てのリクエストに答え終わっているという場合には、 プロ グラムは他のリクエストが現れるまでブロックする。 /proc ファイルシステムには、nfsd とそれに関連するコードの より詳細なトレースを可能にするための、4 つの ファイルがある: /proc/sys/sunrpc/nfs_debug /proc/sys/sunrpc/nfsd_debug /proc/sys/sunrpc/nlm_debug /proc/sys/sunrpc/rpc_debug これらのファイルは、それぞれ、 NFS クライアント・NFS サーバー・ネットワークロックマネージャ (lockd)・ 下 層の RPC レイヤのトレースを制御する。 これらのファイルに対して 10 進数を読み書きできる。 各数値は特定の種 類のトレースを有効にするためのビットのパターンを表す。 どの数値がどのトレースに対応するかを見つけるには、 カーネルのヘッダファイルを調べてほしい。
関連項目
rpc.nfsd(8), exports(5), nfsstat(8), mountd(8) exportfs(8).
著者
NeilBrown 3 July 2003 nfsd(7)