NFS の管理

付録 A NFS の調整機能

NFS サービスの機能を高めるため、いくつかのパラメータを設定できます。これらのパラメータは /etc/system で定義することができ、システムのブート時に読み込まれます。各パラメータは、それが入っているカーネルモジュールの名前と、それを識別する記号名で識別できます。


警告 - 警告 -

記号の名前、それらが常駐するモジュールおよびデフォルト値は、リリース版ごとに異なる場合があります。変更を加えたり、前のリリース版の値を適用するときは、あらかじめ稼働中の SunOS バージョンの関連ドキュメントを確認してください。


表 A-1 には、nfs モジュールの一部であるパラメータを示します。表 A-2 には、nfssrv モジュールの一部であるパラメータを示します。表 A-3 は、rpcmod モジュールの一部であるパラメータのリストです。「カーネルパラメータの値を設定する方法」 では、これらのパラメータの変更方法について説明します。/etc/system ファイルについて詳しくは、system(4) のマニュアルページを参照してください。

表 A-1 nfs モジュール用の NFS パラメータ

記号名 

説明 

デフォルト設定 

authdes_win

この記号は AUTH_DES の使用時に、サーバとクライアント間で許容されるクロックの時間差を指定する。 

デフォルトは 300 秒。 

authkerb_win

この記号は AUTH_KERB の使用時に、サーバとクライアント間で許容されるクロックの時間差を指定する。 

デフォルトは 300 秒。 

nfs_acl_cache

この記号は NFS_ACL プロトコルを使用中のクライアントで、ACL をキャッシュするかどうかを制御する。 

デフォルトはオフ (0)。 これはおそらく安全に有効 (1) 設定でき、Solaris の将来のリリースではオンがデフォルトになる予定。 

nfs_cots_timeo

NFS バージョン 2 クライアントによる接続指向トランスポートに対する操作の、 デフォルトのタイムアウト 

600 * 1/10 秒。 

nfs3_cots_timeo

NFS バージョン 3 クライアントによる接続指向トランスポートに対する操作の、 デフォルトのタイムアウト 

600 * 1/10 秒。 

nfs_do_symlink_cache

この記号は NFS バージョン 2 を使用してマウントしたファイルシステムで、シンボリックリンクをキャッシュするかどうかを制御する。 

デフォルトはオン (1)。システムで amd などを使う場合には無効 (0) にできる。 これが無効に設定されていると、クライアントシステムのパフォーマンスが低下する場合がある。 

nfs3_do_symlink_cache

この記号は NFS バージョン 3 を使ってマウントしたファイルシステムで、シンボリックリンクをキャッシュするかどうかを制御する。 

デフォルトはオン (1)。これは無効 (0) に設定できるが、クライアントシステムのパフォーマンスが低下する可能性がある。 

nfs_dynamic

この記号は NFS バージョン 2 を使ってマウントしたファイルシステムで、動的再転送のサポートを使用するかどうかを制御する。 

デフォルトはオン (1)。 安全にオフ (0) にできるが、処理の遅いサーバや 8K バイトの読み書き転送を完全にサポートできないサーバでは、相互運用に問題が生じる可能性がある。 

nfs3_dynamic

この記号は NFS バージョン 3 を使ってマウントしたファイルシステムで、動的再転送のサポートを使用するかどうかを制御する。 

デフォルトはオフ (0)。これは変更しないこと。 

nfs_lookup_neg_cache

この記号は NFS バージョン 2 を使ってマウントしたファイルシステムで、失敗した検索要求をキャッシュさせるかどうかを制御する。 

デフォルトはオフ (0)。 おそらく安全に有効 (1) に設定できるが、正常なディレクトリ名のキャッシュ処理に悪影響が生じることもある。 

nfs3_lookup_neg_cache

この記号は NFS バージョン 3 を使ってマウントしたファイルシステムで、失敗した検索要求をキャッシュさせるかどうか制御をする。 

デフォルトはオフ (0)。 おそらく安全に有効 (1) に設定できるが、正常なディレクトリ名のキャッシュ処理に悪影響が生じる可能性がある。 

nfs_max_threads

この記号は NFS バージョン 2 を使ってマウントしたファイルシステムごとに、非同期スレッドを起動する最大数を制御する。 

デフォルトは 8。この数字はファイルシステムごとのスレッド数に影響するので、ファイルシステムの多いクライアントでは、大きな変更を行うとパフォーマンスを大幅に劣化させる原因になる。 

nfs3_max_threads

この記号は NFS バージョン 3 を使ってマウントしたファイルシステムごとに、非同期スレッドを起動させる最大数を制御する。 

デフォルトは 8。この数字はファイルシステムごとのスレッド数に影響するので、ファイルシステムの多いクライアントでは、大きな変更を行うとパフォーマンスを大幅に劣化させる原因になる。 

nfs3_max_transfer_size

この記号は NFS バージョン 3 のクライアントファイルのブロックサイズを制御する。 

デフォルトは 32K バイト。変更はできるだけ行わないこと。 

nfs_nra

この記号は NFS バージョン 2 を使ってマウントしたファイルシステムで、読み込まれる先読みブロックの数を制御する。 

デフォルトは 4。値を大きくしてもパフォーマンスは向上せず、クライアント側でのメモリ利用が増大する。 

nfs3_nra

この記号は NFS バージョン 3 を使ってマウントしたファイルシステムについて、読み込まれる先読みブロックの数を制御する。 

デフォルトは 4。値を大きくしてもパフォーマンスは向上せず、クライアント側でのメモリ利用が増大する。 

nrnode

この記号はキャッシュされる NFS rnode の数を制御する。 

この記号に割り当てられる値はブート時に構成され、サーバに適合するようスケーリングされる。1 に設定してキャッシュ処理を無効にできる。 

nfs_shrinkreaddir

この記号は回線上で、NFS バージョン 2 READDIR 要求を 1024 バイトに縮小するかどうかを制御する。一部古い NFS バージョン 2 のサーバの中には、1024 バイト以上の READDIR 要求を正しく処理できないものがある。 

デフォルトはオフ (0) で、この場合 READDIR 要求を削減しない。これは安全に有効 (1) に設定できるが、ディレクトリの読み込み中にパフォーマンスに悪影響を与える恐れがある。 

nfs_write_error_interval

この記号は NFS ENOSPC によるエラーメッセージの書き込みがログされる頻度を、秒単位で制御する。 

デフォルトは 5。 

nfs_write_error_to_cons_only

この記号は NFS 書き込みのエラーメッセージが、システムコンソールか、システムコンソールおよび syslog にログされるかどうかを制御する。 

デフォルトはオフ (0) で、この場合 NFS 書き込みエラーメッセージをすべて、システムコンソールと syslog にログする。この機能を有効 (1) に設定すると、NFS 書き込みエラーメッセージのほとんどが、システムコンソールでしか出力されないことになる。 

表 A-2 nfssrv モジュール用の NFS パラメータ

記号名 

説明 

デフォルト設定 

nfs_portmon

この記号は IP ポート番号に基づき、NFS サーバで要求のフィルタ処理を行うかどうかを制御する。予約済みポート番号のバークレー表記法を使用する。 

デフォルトはオフ (0)。有効 (1) にできるが、相互運用上の問題が発生する恐れがある。 

nfsreadmap

この記号は現在ではアクティブではなく、今ではマップの読み込みは実装していない。移行を容易にするため残されている。 

デフォルトはオフ (0)。 

rfs_write_async

この記号は書き込みの処理能力を安全に高めるため、NFS バージョン 2 サーバが、書き込みのクラスタ化機能を使用するかどうかを制御する。 

デフォルトはオン (1)。無効 (0) に設定できるが、性能は低下する場合がある。 

表 A-3 rpcmod モジュール用の NFS パラメータ

記号名 

説明 

デフォルト設定 

authdes_cachesz

authdes 応答キャッシュのサイズ。 これは、セキュリティ保護された RPC 要求すべてについてクライアントの資格を確認しなくても済むようにする、パフォーマンスを向上のための機能拡張。 

デフォルトは 128。 この値を大きくし過ぎると、システムのパフォーマンスが低下する可能性がある。 

authkerb_cachesz

authkerb 応答キャッシュのサイズ。これは、セキュリティ保護された RPC 要求すべてについてクライアントの資格を確認しなくても済むようにする、パフォーマンスを向上のための機能拡張。 

デフォルトは 128。この値を大きくし過ぎると、システムのパフォーマンスが低下する可能性がある。 

svc_ordrel_timeout

カーネルが接続を強制的に切断するまでの時間 (ミリ秒)。カーネル RPC に使われている TCP 接続が、万一終了の途中でハングした場合に使われる。接続がハングする原因には、NFS サーバが接続に対する正常なクローズ (FIN) を試み、クライアントがそのクローズの完了 (FIN 確認) ハンドシェークに失敗した場合が考えられる。 

デフォルトは 600000 ミリ秒 (10 分)。値が小さすぎると、TCP 接続を閉じるのに十分な時間がクライアントに与えられない。大きすぎると、欠陥のあるクライアントや害を及ぼすクライアントがサーバと TCP 接続を結ぶことになる。 

カーネルパラメータの値を設定する方法

  1. root になります。

  2. /etc/system ファイルを編集し、行を追加してパラメータを設定します。

    それぞれのエントリは次の形式に従ってください。

    set module:symbol=value

    ここで、module は、必要なパラメータを含むカーネルモジュールの名前であり、symbol はパラメータの名前、value はパラメータに割り当てる数値です。以下に例を上げます。

    set nfs:nfs_nra=4

    これで NFS バージョン 2 を使ってマウントしたファイルシステムについて、読み込まれる先読みブロック数が変更になります。

  3. システムをリブートします。