nfsd(7) | Miscellaneous Information Manual | nfsd(7) |
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 つのファイルは、以下の通りである:
ファイルの各行には、パス名・クライアント名・ 括弧で括られたオプションが含まれる。 パス名またはクライアント名に含まれる スペース・タブ・改行・バックスラッシュ文字は、 バックスラッシュとそれらの文字の 8 進数 ASCII コードに置き換えられる。
filehandle に書き込まれるリクエストは、クライアント名・パス名・バイト数である。 その後には、改行・空白で区切ったフィールド・ 特殊文字を 8 進数表記したものが続く。
このファイルに書き込むことにより、プログラムは 指定されたクライアントにエクスポートされるパスに対する ファイルハンドルを読み返すことができる。 ファイルハンドルの長さは、指定されたバイト数以下にされる。
ファイルハンドルは先頭に '\x' を付けた 16 進数で表現される。
procfs ファイルシステム上のディレクトリ /proc/net/rpc には、いくつかのファイルとディレクトリが含まれる。 ファイルには nfsstat プログラムを使って表示できる統計情報が含まれる。 ディレクトリには NFS サーバが管理するいろいろなキャッシュが含まれる。 これらのキャッシュは、各クライアントがファイルシステム毎に持つ アクセス許可を把握するためのものである。 キャッシュは以下の通り:
キャッシュを表す各ディレクトリは 1 〜 3 個のファイルを保持できる。 ファイルは以下の通り:
カーネルがキャッシュにない情報を必要とする場合、 情報のキーとなる 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
進数を読み書きできる。
各数値は特定の種類のトレースを有効にするためのビットのパターンを表す。
どの数値がどのトレースに対応するかを見つけるには、
カーネルのヘッダファイルを調べてほしい。
NeilBrown
3 July 2003 |