バージョン 2 は、一般に広く使用された初めての NFS プロトコルです。バージョン 2 は、引き続き広範囲のプラットフォームで使用できます。Solaris のすべてのリリースが NFS プロトコルのバージョン 2 をサポートし、Solaris 2.5 より以前のリリースはバージョン 2 だけをサポートします。
NFS バージョン 3 のプロトコルは、Solaris 2.5 で新機能として追加されたものです。相互運用性とパフォーマンスを向上させるために、いくつかの変更が行われました。これらをすべて有効に利用するには、NFS サーバーとクライアントの両方で、バージョン 3 プロトコルを使用する必要があります。
バージョン 3 では、サーバーで非同期の書き込みが可能になります。サーバーがクライアントの書き込み要求をメモリーに保存するので、効率が向上しました。クライアントは、サーバーが変更内容をディスクに反映させるのを待つ必要がないため、応答時間が短縮されます。サーバーは要求をバッチ処理することもできるので、サーバー上の応答時間も短縮されました。
NFS バージョン 3 では、多くの操作でローカルキャッシュに保存されているファイル属性が返されます。キャッシュの更新頻度が増えたため、ローカルキャッシュのデータを更新する操作を独立して行う必要性が少なくなります。したがってサーバーに対する RPC コールの回数が減少し、パフォーマンスが向上します。
ファイルアクセス権の確認処理も改善されました。バージョン 2 では、ユーザーが適切なアクセス権を持っていないリモートファイルをコピーしようとすると、「書き込みエラー」や「読み出しエラー」というメッセージが出力されました。バージョン 3 では、ファイルを開く前に権利がチェックされるので、「オープンエラー」というメッセージが出力されます。
NFS バージョン 3 プロトコルでは、8K バイトの転送サイズ制限が解除されました。クライアントとサーバーは、バージョン 2 の 8K バイトの制限を受けることなく、サポートされている転送サイズをネゴシエートできます。Solaris 2.5 では、デフォルトで、転送サイズが 32K バイトに設定されていることに注意してください。
Solaris 2.5 で、アクセス制御リスト (ACL) サポートが追加されました。ACL では、ファイルアクセス権を通常の UNIX よりも厳密に設定します。この追加機能では効率は改善されませんが、ファイルへのアクセスがより厳密に制限されるので、セキュリティが向上します。ACL の詳細は、『Solaris のシステム管理 (セキュリティサービス)』の「アクセス制御リスト (ACL) の使用」を参照してください。
NFS プロトコルのデフォルトのトランスポートプロトコルは、Solaris 2.5 で TCP (Transmission Control Protocol) に変更されました。TCP は、低速ネットワークとワイドエリアネットワークのパフォーマンスの向上に役立ちます。TCP には、トラフィック抑制機能とエラー回復機能もあります。TCP を利用した NFS は、バージョン 2 でもバージョン 3 でも動作します。Solaris 2.5 より前のバージョンでは、NFS のデフォルトプロトコルは UDP (User Datagram Protocol) でした。
Solaris 2.5 からネットワークロックマネージャの改良版も含まれています。このため NFS ファイルに対して UNIX のレコードロックと PC のファイル共有を使用できます。NFS ファイルのロックメカニズムの信頼性の向上により、ロックを使用するコマンドのハングが起こりにくくなりました。
Solaris 2.6 の NFS バージョン 3 プロトコルから、2G バイトを超えるサイズのファイル (大規模ファイル) も正しく処理できるようになりました。NFS バージョン 2 プロトコル、および Solaris 2.5 に実装されているバージョン 3 プロトコルでは 2G バイトを超えるサイズのファイルは処理できませんでした。
Solaris 2.6 では、読み取り専用ファイルシステムの動的フェイルオーバー機能が追加されました。フェイルオーバーによって、マニュアルページ、その他のドキュメント、共有バイナリなどのあらかじめ複製されている読み取り専用リソースを高度に利用できます。フェイルオーバー機能は、ファイルシステムがマウントされた後ならばいつでも実行可能です。手動マウントでは、今までのリリースのオートマウンタのように複数の複製をリストできるようになりました。オートマウンタは、フェイルオーバーの際にファイルシステムが再マウントされるまで待つ必要がなくなったこと以外は変更されていません。詳細は、クライアント側フェイルオーバーを使用する方法 と クライアント側フェイルオーバー機能 を参照してください。
Solaris 2.0 では、Kerberos V4 クライアントがサポートされていました。Solaris 2.6 では、mount と share コマンドが Kerberos V5 認証を使用する NFS バージョン 3 のマウントをサポートするように変更されました。share コマンドもクライアントごとに異なる複数の認証機能を使用できるように変更されました。各種のセキュリティ機能の詳細は、RPCSEC_GSS セキュリティ方式 を参照してください。Kerberos V5 認証の詳細は、『Solaris のシステム管理 (セキュリティサービス)』の「SEAM NFS サーバーの構成」を参照してください。
Solaris 2.6 には、インターネット上のファイルシステムにファイアウォール経由でアクセスできるようにする機能も追加されました。この機能は、NFS プロトコルの拡張機能によって実現しました。 インターネットアクセスに WebNFSTM プロトコルを使用する利点の 1 つは、信頼性が高いことです。このサービスは、NFS バージョン 3 とバージョン 2 プロトコルの拡張として構築されています。さらに、WebNFS ではそうしたファイルを共有しても匿名 ftp サイトを管理するオーバーヘッドが生じません。WebNFS サービスのその他の変更については、WebNFS サービスのセキュリティネゴシエーション を参照してください。作業については、WebNFS の管理作業 を参照してください。
Solaris 7 から、新しいセキュリティ方式である RPCSEC_GSS がサポートされています。この方式では、標準的な GSS-API インタフェースを使用して、認証、一貫性、機密性を実現し、複数のセキュリティメカニズムをサポートしています。Kerberos V5 認証のサポートについての詳細は、NFS サービスのための Kerberos のサポート を参照してください。GSS-API についての詳細は、『GSS-API のプログラミング』を参照してください。
Solaris 7 で、mount コマンドと automountd コマンドが拡張され、マウント要求で MOUNT プロトコルの代わりに公開ファイルハンドルも使用できるようになりました。MOUNT プロトコルは、WebNFS サービスが使用するアクセス方法と同じです。公開ファイルハンドルを使用すると、ファイアウォールを越えたマウントが可能です。さらに、サーバーとクライアント間のトランザクションが少なくて済むため、マウントにかかる時間が短縮されます。
この機能拡張で、標準のパス名の代わりに NFS URL を使用することもできるようになりました。また、mount コマンドとオートマウンタのマップに public オプションを指定すると、必ず公開ファイルハンドルを使用するようになります。WebNFS サービスの変更の詳細は、WebNFS のサポート を参照してください。
Solaris 8 で、WebNFS クライアントが NFS サーバーとセキュリティメカニズムをネゴシエートするための新しいプロトコルが追加されました。このプロトコルの追加により、WebNFS サービスの使用時に、セキュリティ保護されたトランザクションを使用できます。詳細については、WebNFS セキュリティネゴシエーション機能のしくみ を参照してください。
Solaris 8 で、NFS サーバーはサーバーロギングによって、ファイルシステムに実行されたファイル操作の記録を提供できるようになりました。この記録には、どのファイルが、いつ、誰によってアクセスされたかという情報が含まれています。一連の構成オプションを使用して、これらの情報を含むログの場所を指定することができます。また、これらのオプションを使用して、ログに記録する処理を選択することもできます。この機能は、NFS クライアントや WebNFS クライアントで匿名 ftp を利用するサイトで特に便利です。詳細は、NFS サーバーログを有効にする方法 を参照してください。
autofs は、ローカルの名前空間に指定したファイルシステムで動作します。この情報は、NIS、NIS+、およびローカルファイルに保存されます。
Solaris 2.6 から、完全にマルチスレッド化された automountd が含まれています。この拡張によって autofs はさらに信頼性が高まりました。また、複数のマウントを同時にサービスできるようになったため、サーバーが使用できないときにサービスが停止することも避けられます。
この新しい automountd には、オンデマンドマウント機能もあります。Solaris 2.6 より前のリリースでは、階層に含まれるすべてのファイルシステムがマウントされていました。現在は、いちばん上のファイルシステムしかマウントされません。そのマウントポイントに関係する他のファイルシステムは、必要に応じてマウントされます。
autofs サービスで、間接マップを表示できるようになりました。これによりユーザーは、どのディレクトリがマウントできるかを確認するためにファイルシステムを実際に 1 つずつマウントする必要がなくなります。autofs マップに -nobrowse オプションが追加されたので、/net や /home などの大きなファイルが自動的に表示されることはありません。また、automount に対して -n を使用することによって、autofs の表示機能を各クライアントでオフにすることもできます。詳細は、autofs のブラウズ機能を無効にする を参照してください。