NFS(4P) — NEWS-OS Programmer’s Manual
名称
nfs、NFS − ネットワークファイルシステム
形式
options NFS
解説
Network File System ( NFS ) は、クライアントのワークステーションが、 ネットワーク全体で透過的なファイルアクセスを行えるようにするものです。 これを使うと、クライアントのワークステーションは様々なサーバ上にある ファイルを操作できるようになり、サーバのアーキテクチャや オペレーティングシステムが異なっていてもそれが行えます。 クライアントのファイルアクセスコールは NFS プロトコル要求に変換され、 ネットワーク上のサーバシステムに送られます。 サーバが要求を受け取ると、実際のファイルシステムの操作を実行し、 クライアントに応答を戻します。 Network File System は、外部データ表現 (XDR) プロトコルの 最上位に置かれた遠隔プロシージャコール (RPC) を使って、 ステートレスに動作します。 これらのプロトコルは、 Network Programming に記述されています。 RPC プロトコルにはバージョンや確認のパラメータが備わっており、 ネットワーク全体のセキュリティのためそれらが交換されます。 サーバは特定のファイルシステムに対するアクセス権を、 そのファイルシステムのエントリをサーバの /etc/exports ファイルに追加することで、あるクライアントに与えることができます。 クライアントは、 mount(2) システムコールでそのファイルシステムへのアクセスを獲得しますが、 そのシステムコールはファイルシステムそれ自体の ファイルハンドルを要求するものです。 ひとたびファイルシステムがクライアントによってマウントされると、 サーバは、クライアントがアクセスするファイル (またはディレクトリ) ごとにファイルハンドルを発行します。 ファイルが何かの理由でサーバ側で削除されると、 ファイルハンドルは陳腐化します (識別されているファイルから分離される)。 また、サーバは、ネットワーク上でマウントしたファイルシステムに対して クライアントにもなれますが、 そのサーバのクライアントはそうしたファイルシステムにはアクセスできません。 その代わり、クライアントはファイルシステムが存在するサーバから 直接そのファイルシステムをマウントしなければなりません。 ユーザ ID とグループ ID のマッピングは、 クライアントとサーバ間で同じでなければなりません。 しかし、サーバはクライアントのアクセス権を調べる前に、 uid 0 (スーパーユーザ) を uid −2 にマップします。 これによって、スーパーユーザの特権が遠隔ファイルシステムに対して 及ぶのを禁じています。 NFS に関係するルーチンや構造体定義は、 Network Programming の中の NFS Protocol Specification に記述されています。
エラー
一般に、サーバ側で検知された物理的なディスク I/O エラーは、 対処するためにクライアントに返されます。サーバがダウンしていたり アクセスできなかったりする場合には、 クライアントに次のようなコンソールメッセージが表示されます。
NFS: file server not responding: still trying.
クライアントは、それがサーバから確認を受け取るまで、 要求を再送し続けます (永久に)。 これはつまり、サーバがクラッシュしたり電源が落ちたりして 再び立ち上がることがあるわけですが、 それについてはクライアントは何も特別な動作が必要ないということです。 これはまた、I/O を要求するクライアントプロセスがブロックし、 シグナルを受け付けない状態のまま残って、 カーネル内部で PRIBIO でスリープし続けるということも意味します。
関連ファイル
/etc/exports
関連事項
mount(2), exports(5), fstab(5), mntent(5), mount(8), nfsd(8) NFS Protocol Specification in Network Programming
NEWS-OSRelease 4.2.1R