ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris のシステム管理 (ネットワークサービス) Oracle Solaris 11 Information Library (日本語) |
パート II ネットワークファイルシステムへのアクセス (トピック)
6. ネットワークファイルシステムへのアクセス (リファレンス)
ここでは、NFS サービスの重要な機能について説明します。
version 2 は、一般に広く使用された初めての NFS プロトコルです。version 2 は、引き続き広範囲のプラットフォームで使用できます。Oracle Solaris のすべてのリリースが NFS プロトコルの version 2 をサポートしています。
NFS version 2 プロトコルとは異なり、NFS version 3 プロトコルは 2G バイト以上のファイルを扱えます。以前の制限はなくなりました。「NFS 大規模ファイルのサポート」を参照してください。
NFS version 3 では、サーバーで非同期の書き込みが可能になります。サーバーがクライアントの書き込み要求をメモリーに保存するので、効率が向上しました。クライアントは、サーバーが変更内容をディスクに反映させるのを待つ必要がないため、応答時間が短縮されます。サーバーは要求をバッチ処理することもできるので、サーバー上の応答時間も短縮されました。
Solaris NFS version 3 の多くの操作では、ローカルキャッシュに保存されているファイル属性が返されます。キャッシュの更新頻度が増えたため、ローカルキャッシュのデータを更新する操作を独立して行う必要性が少なくなります。したがってサーバーに対する RPC コールの回数が減少し、パフォーマンスが向上します。
ファイルアクセス権の確認処理も改善されました。version 2 では、ユーザーが適切なアクセス権を持っていないリモートファイルをコピーしようとすると、「書き込みエラー」や「読み取りエラー」というメッセージが出力されました。version 3 では、ファイルを開く前にアクセス権がチェックされるため、「オープンエラー」というメッセージが出力されます。
NFS version 3 プロトコルでは、8K バイトの転送サイズ制限が解除されました。クライアントとサーバーは、version 2 の 8K バイトの制限を受けることなく、サポートされている転送サイズをネゴシエートできます。以前の Solaris の実装では、デフォルトで、プロトコルが 32K バイトの転送サイズに設定されていることに注意してください。Solaris 10 以降のリリースでは、書き込み転送サイズの制限が緩和されました。使用するトランスポートプロトコルに基づいて転送サイズが決定されるようになりました。
NFS version 4 は、以前のバージョンでは使用できない機能を備えています。
NFS version 4 プロトコルでは、ユーザー ID とグループ ID が文字列として表されます。nfsmapid は、次の目的でクライアントとサーバーが使用します。
version 4 のこれらの ID 文字列をローカルの数値 ID に割り当てる
ローカルの数値 ID を version 4 の ID 文字列に割り当てる
詳細は、「nfsmapid デーモン」を参照してください。
NFS version4 では、ID マッパー nfsmapid を使用して、サーバー上の ACL エントリ内のユーザーまたはグループ ID を、クライアント上の ACL エントリ内のユーザーまたはグループ ID にマッピングします。逆も同じです。詳細は、「NFS version 4 での ACL と nfsmapid」を参照してください。
NFS version 4 では、ファイルシステムの共有を解除するとき、そのファイルシステムにあるオープンファイルまたはファイルロックの状態がすべて削除されます。NFS version 3 では、ファイルシステムが共有解除される前に、サーバーはクライアントが取得したロックを保持しました。詳細は、「NFS version 4 におけるファイルシステムの共有解除と再共有」を参照してください。
NFS version 4 のサーバーは擬似ファイルシステムを使用して、クライアントがサーバーにエクスポートされたオブジェクトにアクセスできるようにします。NFS version 4 以前のバージョンには、擬似ファイルシステムがありません。詳細は、「NFS version 4 におけるファイルシステムの名前空間」を参照してください。
NFS version 2 と version 3 では、サーバーは持続的ファイルハンドルを返しました。NFS version 4 は、揮発性ファイルハンドルをサポートします。詳細は、「NFS version 4 における揮発性ファイルハンドル」を参照してください。
委託とは、サーバーがファイルの管理をクライアントに委託するテクニックです。委託は、クライアントとサーバーの両方でサポートされます。たとえば、サーバーは、読み取り委託または書き込み委託のいずれかをクライアントに付与できます。詳細は、「NFS version 4 における委託」を参照してください。
Solaris 10 以降のリリースでは、NFS version 4 は LIPKEY/SPKM セキュリティー方式をサポートしません。
また、NFS version 4 は次のデーモンを使用しません。
mountd
nfslogd
statd
NFS version 4 での機能の一覧は、「NFS version 4 における機能」を参照してください。
NFS version 4 の使用に関する手順については、「NFS サービスの設定」を参照してください。
SMF リポジトリには、クライアントとサーバーの両方によって使用される NFS プロトコルを制御するためのパラメータが含まれています。たとえば、パラメータを使用して、バージョンネゴシエーションを管理できます。詳細は、クライアントパラメータについては 「mountd デーモン」、サーバーパラメータについては 「nfsd デーモン」、または nfs(4) のマニュアルページを参照してください。
Solaris 2.5 で、アクセス制御リスト (ACL) サポートが追加されました。 アクセス制御リスト (ACL) では、ファイルアクセス権を通常の UNIX ファイルアクセス権よりも厳密に設定するメカニズムを提供します。NFS ACL サポートは、Oracle Solaris NFS クライアントから Oracle Solaris NFS サーバーへの ACL エントリを変更および表示する方法を提供します。
NFS version 2 と version 3 プロトコルは、旧 POSIX ドラフトスタイルの ACL をサポートします。 POSIX ドラフト ACL は、UFS によりネイティブでサポートされます。UFS ACL の詳細は、『Oracle Solaris の管理: セキュリティーサービス』の「アクセス制御リストによる UFS ファイルの保護」を参照してください。
NFS version 4 プロトコルは、新しい NFSv4スタイルの ACL をサポートします。 NFSv4 ACL は、ZFS によりネイティブでサポートされます。NFSv4 ACL の全機能を利用するには、NFSv4 サーバーの基盤となるファイルシステムとして ZFS を使用する必要があります。NFSv4 ACL は、豊富な継承プロパティーセット、および標準の読み取り、書き込み、実行を超えたアクセス権ビットセットを備えています。新しい ACL の概要については、『Oracle Solaris の管理: ZFS ファイルシステム』の第 8 章「ACL および属性を使用した Oracle Solaris ZFS ファイルの保護」を参照してください。NFS version 4 での ACL のサポートの詳細は、「NFS version 4 での ACL と nfsmapid」を参照してください。
NFS プロトコルのデフォルトのトランスポートプロトコルは、Solaris 2.5 で TCP (Transport Control Protocol) に変更されました。TCP は、低速ネットワークとワイドエリアネットワークのパフォーマンスの向上に役立ちます。TCP には、トラフィック抑制機能とエラー回復機能もあります。TCP を利用した NFS は、version 2、version 3、および version 4 で動作します。Solaris 2.5 より前のリリースでは、NFS のデフォルトプロトコルはユーザーデータグラムプロトコル (UDP) でした。
注 - InfiniBand の RDMA が使用可能な場合は、RDMA が NFS のデフォルトのトランスポートプロトコルになります。詳細は、「RDMA 経由の NFS」を参照してください。ただし、proto=tcp マウントオプションを使用する場合、NFS マウントには強制的に TCP のみが使用されることに注意してください。
Solaris 10 以降のリリースでは、NFS クライアントで余分な UDP ポートが使用されなくなりました。これまで、UDP 経由の NFS 転送では、未処理の要求ごとに別々の UDP ポートが使用されていました。これからはデフォルトで、予約済みの UDP ポートが 1 つだけ使用されるようになりました。ただし、このサポートは設定可能です。複数のポートを同時に使用したほうがスケーラビリティーが高まり、結果的にシステムのパフォーマンスが向上するような場合には、複数のポートを使用するようにシステムを設定できます。なお、この機能は、TCP 経由の NFS に最初から備わっていた同種の設定可能なサポートを UDP に移植したものです。詳細は、『Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル』を参照してください。
注 - NFS version 4 は、UDP を使用しません。proto=udp オプションを使用してファイルシステムをマウントする場合は、NFS version 3 が version 4 の代わりに使用されます。
NFS のデフォルトのトランスポートプロトコルは RDMA (Remote Direct Memory Access) プロトコルです。RDMA は、高速ネットワーク上でデータのメモリー間転送を行うテクノロジです。特に、RDMA により、CPU の介入なしでメモリーに遠隔データ転送を直接行えます。この機能を提供するために、RDMA は、SPARC プラットフォーム上の InfiniBand のインターコネクト I/O テクノロジと Oracle Solaris オペレーティングシステムを組み合わせます。詳細は、「RDMA 経由の NFS」を参照してください。
ネットワークロックマネージャーは、NFS ファイルに対して UNIX のレコードロック機能と PC のファイル共有機能を提供します。NFS ファイルのロックメカニズムの信頼性の向上により、ロックを使用するコマンドのハングアップが起こりにくくなりました。
注 - ネットワークロックマネージャーは、NFS version 2 と version 3 のマウントでのみ使用されます。ファイルロックは、NFS version 4 プロトコルに組み込まれています。
Solaris 2.6 の NFS version 3 プロトコルから、2G バイトを超えるサイズのファイル (大規模ファイル) も正しく処理できるようになりました。NFS version 2 プロトコル、および Solaris 2.5 に実装されている version 3 プロトコルでは 2G バイトを超えるサイズのファイルは処理できませんでした。
Solaris 2.6 では、読み取り専用ファイルシステムの動的フェイルオーバー機能が追加されました。フェイルオーバーによって、マニュアルページ、その他のドキュメント、共有バイナリなどのあらかじめ複製されている読み取り専用リソースを高度に利用できます。フェイルオーバー機能は、ファイルシステムがマウントされた後ならばいつでも実行可能です。手動マウントでは、今までのリリースのオートマウンタのように複数の複製を一覧表示できるようになりました。オートマウンタは、フェイルオーバーの際にファイルシステムが再マウントされるまで待つ必要がなくなったこと以外は変更されていません。詳細は、「クライアント側フェイルオーバーを使用する方法」 と 「クライアント側フェイルオーバー機能」を参照してください。
NFS サービスは、Kerberos V4 クライアントをサポートしています。mount と share コマンドが Kerberos V5 認証を使用する NFS version 3 のマウントをサポートするように変更されました。share コマンドもクライアントごとに異なる複数の認証機能を使用できるように変更されました。セキュリティー方式に関連する変更の詳細は、「RPCSEC_GSS セキュリティー方式」を参照してください。Kerberos V5 認証の詳細は、『Oracle Solaris の管理: セキュリティーサービス』の「Kerberos NFS サーバーの構成」を参照してください。
Solaris 2.6 には、インターネット上のファイルシステムにファイアウォール経由でアクセスできるようにする機能も追加されました。この機能は、NFS プロトコルの拡張機能によって実現しました。インターネットアクセスに WebNFS プロトコルを使用する利点の 1 つは、信頼性が高いことです。このサービスは、NFS version 3 と version 2 プロトコルの拡張として構築されています。さらに、WebNFS ではそうしたファイルを共有しても匿名 ftp サイトを管理するオーバーヘッドが生じません。WebNFS サービスに関連する変更の詳細は、「WebNFS サービスのセキュリティーネゴシエーション」を参照してください。作業の詳細は、「WebNFS の管理作業」を参照してください。
注 - NFS version 4 プロトコルは、WebNFS サービスに優先します。NFS version 4 は、MOUNT プロトコルと WebNFS サービスに追加されたすべてのセキュリティーネゴシエーションを完全に統合します。
Solaris 7 から、RPCSEC_GSS と呼ばれるセキュリティー方式がサポートされています。この方式では、標準的な GSS-API インタフェースを使用して、認証、一貫性、機密性を実現し、複数のセキュリティーメカニズムをサポートしています。Kerberos V5 認証のサポートについての詳細は、「NFS サービスのための Kerberos のサポート」を参照してください。GSS-API の詳細については、『Oracle Solaris 11 セキュリティーサービス開発ガイド』を参照してください。
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 サーバーログを有効にする方法」を参照してください。
注 - NFS version 4 は、サーバーロギングをサポートしません。
autofs は、ローカルの名前空間に指定されているファイルシステムで動作します。この情報は、NIS またはローカルファイルに保持できます。
完全にマルチスレッド化されたバージョンの automountd が含まれています。この拡張によって autofs はさらに信頼性が高まりました。また、複数のマウントを並行してサービスできるようになったため、あるサーバーが使用できないときにサービスが停止することも避けられます。
automountd は、改善されたオンデマンドマウント機能を提供します。Solaris 2.6 より前のリリースでは、階層に含まれるすべてのファイルシステムがマウントされていました。現在は、いちばん上のファイルシステムしかマウントされません。そのマウントポイントに関係する他のファイルシステムは、必要に応じてマウントされます。
autofs サービスで、間接マップを表示できるようになりました。これによりユーザーは、どのディレクトリがマウントできるかを確認するために各ファイルシステムを実際にマウントする必要がなくなります。autofs マップに -nobrowse オプションが追加されたので、/net や /home などの大きなファイルが自動的に表示されることはありません。また、-automount で n オプションを使用することによって、autofs のブラウズ機能をクライアントごとにオフにすることもできます。詳細は、「autofs のブラウズ機能を無効にする」を参照してください。