1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
|
.\"
.\" nfsd(7) - The nfsd filesystem
.\"
.\" Copyright (C) 2003 Neil Brown <neilb@cse.unsw.edu.au>
.\" Licensed for public use under the terms of the FSF
.\" General Public License (GPL) version 2.
.\"
.\" Japanese Version Copyright (c) 2006 Yuichi SATO
.\" all rights reserved.
.\" Translated Sun Jun 4 06:13:28 JST 2006
.\" by Yuichi SATO <ysato444@yahoo.co.jp> catch up to v1.0.7
.\"
.TH nfsd 7 "3 July 2003"
.SH 名前
nfsd \- Linux NFS を制御する特殊ファイルシステム
.SH 書式
.B "mount -t nfsd nfsd /proc/fs/nfsd"
.SH 説明
.B nfsd
ファイルシステムは Linux NFS サーバーへのアクセスを提供する
特殊ファイルシステムである。
このファイルシステムは複数個のファイルを含む 1 つのディレクトリで構成される。
これらのファイルが実際には NFS サーバーへのゲートウェイになる。
これらのファイルに書き込むことにより、サーバーに影響を及ぼすことができる。
これらのファイルを読み出すことにより、サーバーの情報が提供される。
.P
このファイルシステムは Linux 2.6 以降
(と開発版である 2.5 系の後期から 2.6 まで) のカーネルでのみ利用可能である。
この man ページは 2.4 以前には適用されない。
.P
このファイルシステムだけではなく、
.B procfs
ファイルシステム (通常は
.B /proc
にマウントされている) にも NFS サーバーを制御するためのファイル群がある。
この man ページは、これら全てのファイルについて記述している。
.P
.I exportfs
と
.I mountd
プログラム (nfs-utils パッケージの一部) は、このファイルシステムが
.B /proc/fs/nfsd
または
.B /proc/fs/nfs
にマウントされていることを想定している。
マウントされていない場合、これらのプログラムは 2.4 系の機能に戻る。
2.4 系の機能には、システムコール経由で
NFS サーバーにアクセスすることが含まれる。
このシステムコールは 2.6 カーネルより後の系列では削除される予定である。
.SH 詳細
.B nfsd
ファイルシステムに含まれる 3 つのファイルは、以下の通りである:
.TP
.B exports
このファイルには、現在エクスポートされているファイルシステムと
各ファイルシステムがエクスポートされている先のクライアントの一覧が、
クライアントとファイルシステムのペア毎のエクスポートオプションの
リストと共に含まれている。
これは 2.4 における
.B /proc/fs/nfs/exports
ファイルと似ている。
1 つの違いは、1 つのクライアントが 1 つのホストと対応する
必要がないという点である。
これにより同一に扱うべき多くのホストに対して応答できる。
ファイルの各行には、パス名・クライアント名・
括弧で括られたオプションが含まれる。
パス名またはクライアント名に含まれる
スペース・タブ・改行・バックスラッシュ文字は、
バックスラッシュとそれらの文字の 8 進数 ASCII コードに置き換えられる。
.TP
.B threads
このファイルは現在実行されている
.B nfsd
スレッドの数を表している。
このファイルを読み出すとスレッド数が表示される。
ASCII の 10 進数を書き込むと、その数になるようにスレッド数が変更される
(必要に応じて増加または減少させる)。
.TP
.B filehandle
これは多少変わったファイルで、ファイルから読み出されるものは、
ファイルに書き込まれるものに依存している。
このファイルはトランザクションのインタフェースを提供する。
プログラムはこのインタフェースでファイルのオープン・
リクエストの書き込み・レスポンスの読み出しができる。
2 つの別々のプログラムがオープン・書き込み・読み出しを同時に行った場合でも、
リクエスト同士は混同されない。
.B filehandle
に書き込まれるリクエストは、クライアント名・パス名・バイト数である。
その後には、改行・空白で区切ったフィールド・
特殊文字を 8 進数表記したものが続く。
このファイルに書き込むことにより、プログラムは
指定されたクライアントにエクスポートされるパスに対する
ファイルハンドルを読み返すことができる。
ファイルハンドルの長さは、指定されたバイト数以下にされる。
ファイルハンドルは先頭に '\ex' を付けた 16 進数で表現される。
.PP
.B procfs
ファイルシステム上のディレクトリ
.B /proc/net/rpc
には、いくつかのファイルとディレクトリが含まれる。
ファイルには
.I nfsstat
プログラムを使って表示できる統計情報が含まれる。
ディレクトリには NFS サーバが管理するいろいろなキャッシュが含まれる。
これらのキャッシュは、各クライアントがファイルシステム毎に持つ
アクセス許可を把握するためのものである。
キャッシュは以下の通り:
.TP
.B auth.domain
このキャッシュはクライアント (またはドメイン) の名前を
内部データ構造にマップする。
利用可能なアクセスは、キャッシュの書き出し (flush) のみである。
.TP
.B auth.unix.ip
このキャッシュは IP アドレスから認証されたドメインへのマップを保持する。
認証されたドメインでは、この IP アドレスがドメインの一部として扱われる。
.TP
.B nfsd.export
このキャッシュはディレクトリとドメインから
エクスポートオプションへのマッピングを保持する。
.TP
.B nfsd.fh
このキャッシュはドメインとファイルシステム識別子から
ディレクトリへのマッピングを保持する。
ファイルシステム識別子はファイルハンドルに格納され、
識別子のタイプを表す数値と
識別子の内容を表す 16 進数のバイトの数値で構成される。
.PP
キャッシュを表す各ディレクトリは 1 〜 3 個のファイルを保持できる。
ファイルは以下の通り:
.TP
.B flush
紀元 (epoch, 1970 年 1 月 1 日) からの秒数がこのファイルに書き込まれると、
その時刻より前に更新されたキャッシュ内の全てのエントリが無効化され、
そのエントリはフラッシュされる (書き出される)。
1 を書き込むと全てのエントリが書き出される。
このファイルだけが常に存在するだろう。
.TP
.B content
このファイルが存在する場合、キャッシュ内の全てのエントリの文字列表現が
1 行に 1 個ずつ含まれる。
エントリがまだキャッシュ内にあり (アクティブで使用中であり)、
かつ期限切れの場合、またはそれ以外でエントリが無効である場合、
そのエントリは (先頭にハッシュ記号を付けた) コメントとして表される。
.TP
.B channel
このファイルが存在する場合、カーネルベースの NFS サーバーからのリクエストを、
ユーザー空間のプログラムが扱うための受け渡しをするチャンネルとして働く。
カーネルがキャッシュにない情報を必要とする場合、
情報のキーとなる 1 行を
.B channel
ファイルに書き込む。
ユーザー空間プログラムは、これを読み込み、答えを見つけ、
キー・満了時刻・内容を含む行を書き込まなければならない。
たとえば、カーネルが
.ti +5
nfsd 127.0.0.1
.br
を
.B auth.unix.ip/content
ファイルに書き込んだ場合、ユーザー空間プログラムは
.ti +5
nfsd 127.0.0.1 1057206953 localhost
.br
を書き込んで、少なくとも今のところは
127.0.0.1 を localhost にマップすべきであることを示す。
プログラムが select(2) または poll(2) を使って
.B channel
から読み込めるかを確かめたときに、
ファイルの終わり (end-of-file) は見つからないが、
全てのリクエストに答え終わっているという場合には、
プログラムは他のリクエストが現れるまでブロックする。
.PP
.B /proc
ファイルシステムには、nfsd とそれに関連するコードの
より詳細なトレースを可能にするための、4 つのファイルがある:
.in +5
.B /proc/sys/sunrpc/nfs_debug
.br
.B /proc/sys/sunrpc/nfsd_debug
.br
.B /proc/sys/sunrpc/nlm_debug
.br
.B /proc/sys/sunrpc/rpc_debug
.br
.in -5
これらのファイルは、それぞれ、
NFS クライアント・NFS サーバー・ネットワークロックマネージャ (lockd)・
下層の RPC レイヤのトレースを制御する。
これらのファイルに対して 10 進数を読み書きできる。
各数値は特定の種類のトレースを有効にするためのビットのパターンを表す。
どの数値がどのトレースに対応するかを見つけるには、
カーネルのヘッダファイルを調べてほしい。
.SH 関連項目
.BR rpc.nfsd (8),
.BR exports (5),
.BR nfsstat (8),
.BR mountd (8)
.BR exportfs (8).
.SH 著者
NeilBrown
|