Network File System(NFS)は主にUNIXで利用される分散ファイルシステムおよびそのプロトコルである[1]。1984年にサン・マイクロシステムズによって実質的な最初の規格となるNFS version 2 (NFS v2) が発表され、.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}RFC 1094
・RFC 1813・RFC 3530・RFC 5661・RFC 7530・RFC 7862 などによって定義されている。NFSは、ローカルに接続されたストレージをネットワークを介してリモートの計算機に提供する分散ファイルシステムとそのプロトコルである。マウントされたNFSボリュームは、ネットワーク上にあることを意識せずローカルと同じように利用出来る。NFS v2, v3 では、Network File System#関連プロトコルで述べるように、ファイルロック機能やクォータ管理機能などはNFSプロトコル本体に含まれず、それぞれ別のプロトコルによって提供される。これらは NFS v4 ではプロトコル本体に含まれている。
ネットワークファイルシステムに代わる方法としてリモートファイルシェアリング(Remote File Sharing
NFSのサービスは一般的にTCPの2049番ポートで提供される。NFS v4はTCPのみだが、NFS v3はTCPとUDP(同じく2049番ポート)を使える。ボリュームを提供するNFSサーバとそれを利用するクライアント間の遠隔手続き呼出し (RPC) には、NFSの一部として開発されたONC RPCを利用している。NFSv3までは、ファイルロックやマウント要求等のONC RPCに使われるポート番号はポートマッパーによって動的に割り当てられることが一般的であった。そのため、ポート番号を固定するオプションを持たない実装の場合、ファイアウォールによるポート番号ベースの通信制御は困難であった。NFSv4からは、同等の機構がNFS本体に組み込まれ、サーバ-クライアント間の通信にはTCPの2049番ポートのみを利用するようになった。 NFS version 1 (NFS v1) は、サン・マイクロシステムズ内の実験にとどまり、対外的なリリースはされなかった。 NFS v2の仕様は1984年に発表され、1985年にはNFS v2を初めて実装したSunOS 2.0がリリースされた。その後1989年3月には RFC 1094 また、NFS v2の時点ですでにTCPによる転送をサポートするベンダーが複数存在したことから、サン・マイクロシステムズはNFS v3からTCP転送を仕様に追加した。これによりWANを介したNFSがより安定して動作するようになった。
歴史
NFS version 1
NFS version 2
NFS version 3 で定義されたNFS v3では、主に以下の機能追加が行われた。
ファイルサイズおよび読み書き時に指定するオフセットの型を32bitから64bitに拡張し、4GiB以上のファイルをサポートした。
書き込み性能を向上させるため、サーバへの非同期書き込みをサポートした。
ファイル属性を別途取得するプロシージャ呼び出しを省くために、多くのプロシージャでその返値にファイル属性を追加した。
ディレクトリを走査する時、そこに含まれるファイル名に加えファイルハンドルと属性を一度に取得できるREADDIRPLUSプロシージャを追加した。
NFS version 4 で、また2003年4月に RFC 3530
NFS version 4.1 は、2010年1月に RFC 5661 で、2020年8月に RFC 8881 で公開された。
NFS version 4.2 は、2016年11月に RFC 7862 で公開された。 NFSに付随するプロトコルは次のようなものがある。 NFS v2およびNFS v3では、ユーザーのアクセス権限にUNIXのユーザー識別子およびグループ識別子をそのまま用いている。
関連プロトコル
Network Lock Manager (NFS v2, v3)
UNIX System Vに追加されたファイルロック機構
クォータ情報の遠隔通知 (NFS v2, v3)
NFSサーバが管理するクォータの状態をクライアントに通知するもので、rquotaとも呼ばれる。なお、クォータ管理そのものはサーバの役割であり、クライアントはその情報を受け取っているだけである。
WebNFS (NFS v2, v3)
ウェブブラウザとNFSを統合し、ファイアウォールを介した利用を実現するNFS v2, v3の拡張
アクセスコントロール