ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 でのネットワークファイルシステムの管理 Oracle Solaris 11.1 Information Library (日本語) |
3. ネットワークファイルシステムへのアクセス (リファレンス)
Oracle Solaris 11 リリースで NFS version 4 のデフォルトドメインを構成する
NFS version 4 におけるファイルシステムの共有解除と再共有
NFS version 4 におけるファイルシステムの名前空間
NFS version 4 における OPEN 共有サポート
NFS version 4 での ACL と nfsmapid
ACL エントリ内のすべてのユーザーおよびグループ ID が NFS version 4 のクライアントとサーバーの両方に存在することを確認します。
マウント時の -public オプションと NFS URL の意味
NFS version 4 におけるクライアント側フェイルオーバー機能
Web ブラウザの使用と比較した場合の WebNFS の制約
autofs のナビゲーションプロセス開始法 (マスターマップ)
autofs がクライアント用のもっとも近い読み取り専用ファイルを選択する方法 (複数ロケーション)
NFS アクティビティーをサポートするために、システムが実行レベル 3 またはマルチユーザーモードで稼動し始めたときに、複数のデーモンが起動されます。mountd デーモンおよび nfsd デーモンは、サーバーであるシステム上で実行されます。サーバーデーモンの自動起動は、少なくとも 1 つの NFS 共有が存在するかどうかで変わります。NFS 共有の現在のリストを表示するには、share -F nfs コマンドを実行します。NFS のファイルロックをサポートするために、lockd および statd デーモンが、NFS クライアントおよびサーバー上で実行されます。ただし、以前のバージョンの NFS とは異なり、NFS version 4 ではデーモン lockd、statd、および nfslogd は使用されません。
このセクションでは、次のデーモンについて説明します。
このデーモンは autofs サービスからのマウントおよびアンマウント要求を処理します。このコマンドの構文は次のとおりです。
automountd [ -Tnv ] [ -D name= value ]
このコマンドは、次のように動作します。
-T は、トレースを有効にします。
-n は、すべての autofs ノード上で、ブラウズを無効にします。
-v は、コンソールへのすべてのステータスメッセージを記録します。
-D name=value は、name によって示された自動マウントマップ変数の値を value に置き換えます。
自動マウントマップのデフォルト値は /etc/auto_master です。トラブルシューティングには -T オプションを使用してください。
コマンド行で行うのと同じ指定を、sharectl コマンドを使用して行うことができます。ただし、コマンド行オプションとは異なり、サービスの再起動、システムのリブート、およびシステムのアップグレードを行なったときも SMF リポジトリは指定を保持します。automountd デーモンに設定できるパラメータは次のとおりです。
ステータスメッセージをコンソールに記録します。このキーワードは automountd デーモンの -v 引数と同等です。デフォルトの値は FALSE です。
すべての autofs マウントポイントのブラウズをオンまたはオフにします。このキーワードは -automountd の n 引数と同等です。デフォルトの値は FALSE です。
各リモート手続き呼び出し (RPC) を拡張し、拡張された RPC を標準出力に表示します。このキーワードは、-automountd の T 引数と同等です。デフォルト値は 0 です。値の範囲は 0 から 5 です。
さまざまな値をさまざまな環境に割り当てることを許可します。このキーワードは、-automountd の D 引数と同等です。environment パラメータは複数回使用できます。ただし、環境割り当てごとにエントリを分けて使用する必要があります。
このデーモンは NFS ファイルのレコードロックをサポートします。lockd デーモンは、ネットワークロックマネージャー (NLM) プロトコルについて、クライアントとサーバー間の RPC 接続を管理します。通常は、パラメータを指定しないで起動します。使用できるオプションは 3 つあります。lockd(1M) のマニュアルページを参照してください。これらのオプションは、コマンド行から使用するか、sharectl コマンドでパラメータを設定して使用することができます。次に、設定できるパラメータについて説明します。
注 - LOCKD_GRACE_PERIOD キーワードと -g オプションは非推奨です。非推奨のキーワードは、新しい grace_period パラメータに置き換えられています。両方のキーワードが設定されている場合、grace_period の値は、LOCKD_GRACE_PERIOD の値をオーバーライドします。次の grace_period の説明を参照してください。
LOCKD_GRACE_PERIOD と同様に、grace_period= graceperiod パラメータは、クライアントがサーバーのリブート後に NFS version 3 のロック (NLM が提供) と version 4 のロックを再要求するまでの秒数を設定します。つまり、grace_period の値は、NFS version 3 と NFS version 4 の両方についてロックリカバリの猶予期間を制御します。
lockd_retransmit_timeout=timeout パラメータは、ロックリクエストをリモートサーバーに再転送するまで待機する秒数を選択します。このオプションは NFS クライアントのサービスに関係します。timeout のデフォルト値は 5 秒です。この値を小さくすると、トラフィックの多いネットワーク上の NFS クライアントに対する応答時間を改善できます。ただし、ロック要求が増えることによってサーバーの負荷が増す可能性があります。デーモンに -t timeout オプションを指定して開始すると、コマンド行から同じパラメータを使用できます。
lockd_servers=number パラメータは、同時に処理できる lockd リクエストの最大数を指定します。デフォルト値は 1024 です。
UDP を使用するすべての NFS クライアントは、NFS サーバーと 1 つの接続を共有します。その場合、UDP 接続が使用できるスレッドの数を増やさなければならないことがあるかもしれません。各 UDP クライアントには、少なくとも 2 つのスレッドを許可します。ただし、この数は、クライアントの負荷により違います。そのため、クライアントごとに 2 つのスレッドを許可しても、十分ではない場合があります。多くのスレッドを使用する場合の不利な点は、これらのスレッドを使用すると、NFS サーバー上で使用するメモリーの容量が増えるという点です。ただし、スレッドを使用しない場合は、nthreads の値を増やしても影響がありません。デーモンに nthreads オプションを指定して開始すると、コマンド行から同じパラメータを使用できます。
このデーモンは、リモートシステムからのファイルシステムマウント要求を処理して、アクセス制御を行います。mountd デーモンは、/etc/dfs/sharetab を調べて、リモートマウントに使用可能なファイルシステムと、リモートマウントを実行できるシステムを判断します。このコマンドでは、-v オプションと -r オプションを使用できます。mountd(1M) のマニュアルページを参照してください。
-v オプションは、コマンドを冗長モードで実行します。クライアントが付与されるアクセス権を NFS サーバーが決定するたびに、コンソールにメッセージが表示されます。この情報は、クライアントがファイルシステムにアクセスできない理由を調べるときに役立ちます。
-r オプションは、その後のクライアントからのマウント要求をすべて拒絶します。このオプションを指定しても、すでにファイルシステムがマウントされているクライアントには影響しません。
コマンド行オプションに加え、いくつかの SMF パラメータを使用して mountd デーモンを構成できます。
NFS クライアントによって使用される最小バージョンの NFS プロトコルを設定します。デフォルトは 2 です。有効な値はほかに 3 と 4 があります。「NFS サービスの設定」を参照してください。
NFS クライアントによって使用される最大バージョンの NFS プロトコルを設定します。デフォルトは 4 です。有効な値はほかに 2 と 3 があります。「NFS サービスの設定」を参照してください。
NFS version 4 クライアントの排他使用のための nfs4cbd は、NFS version 4 コールバックプログラムでの通信の終端を管理します。デーモンには、ユーザーがアクセス可能なインタフェースがありません。詳細は、nfs4cbd(1M) のマニュアルページを参照してください。
これは、他のクライアントからのファイルシステム要求を処理するデーモンです。このコマンドに対してはいくつかのオプションを指定できます。オプションをすべて確認するには、nfsd(1M) のマニュアルページを参照してください。これらのオプションは、コマンド行から使用するか、sharectl コマンドで適切な SMF パラメータを設定して使用することができます。
listen_backlog=length パラメータは、接続型トランスポートを使用した NFS および TCP の接続キューの長さを設定します。デフォルト値は 32 エントリです。nfsd に -l オプションを指定して開始すると、コマンド行から同じ項目を選択できます。
max_connections=#-conn パラメータは、接続型トランスポートごとの最大接続数を選択します。#-conn のデフォルト値はありません。コマンド行から -c #-conn オプションを指定してデーモンを開始すると、同じパラメータを使用できます。
servers=nservers パラメータは、サーバーが同時に処理できるリクエストの最大数を選択します。nservers のデフォルト値は 1024 です。nfsd に nservers オプションを指定して開始すると、コマンド行から同じ選択を行うことができます。
以前のバージョンの nfsd デーモンとは異なり、現在のバージョンの nfsd では複数のコピーを作成して要求を同時に処理することはありません。処理テーブルを ps でチェックすると、動作しているデーモンのコピーが 1 つしかないことがわかります。
さらに、これらの SMF パラメータを使用して mountd デーモンを構成できます。これらのパラメータには同等のコマンド行オプションはありません。
サーバーによって登録および提供される最小バージョンの NFS プロトコルを設定します。デフォルトは 2 です。有効な値はほかに 3 と 4 があります。「NFS サービスの設定」を参照してください。
サーバーによって登録および提供される最大バージョンの NFS プロトコルを設定します。デフォルトは 4 です。有効な値はほかに 2 と 3 があります。「NFS サービスの設定」を参照してください。
NFS version 4 の委託機能をサーバーで有効にするかどうかを制御します。この機能が有効な場合、サーバーは NFS version 4 のクライアントに委託しようとします。デフォルトでは、サーバー委託は有効になっています。サーバー委託を無効にするには、「サーバー上で異なるバージョンの NFS を選択する方法」を参照してください。詳細は、「NFS version 4 における委託」を参照してください。
このデーモンは実行された処理のログ機能を提供します。サーバーに対して記録される NFS 操作は、/etc/default/nfslogd に定義されている構成オプションに基づくものです。NFS サーバーのログ機能がオンになると、選択されたファイルシステム上でのすべての RPC 操作の記録がカーネルによりバッファーファイルに書き込まれます。次に nfslogd がこれらの要求を後処理します。ログインおよび IP アドレスへの UID をホスト名に割り当てやすくするために、ネームサービススイッチが使用されます。識別されたネームサービスで一致するものが見つからない場合は、その番号が記録されます。
パス名へのファイルハンドルの割り当ても nfslogd により行われます。このデーモンは、ファイルハンドルパスマッピングテーブル内でこれらの割り当てを追跡します。/etc/nfs/nfslogd で識別される各タグについて 1 つのマッピングテーブルが存在します。後処理の後に、レコードが ASCII ログファイルに書き込まれます。
注 - NFS version 4 は、このデーモンを使用しません。
version 4 の NFS プロトコル (RFC3530) では、クライアントとサーバーの間でユーザー識別子またはグループ識別子を交換する方法が変更されました。このプロトコルでは、NFS version 4 クライアントと NFS version 4 サーバーとの間で、ファイルの所有者とグループの属性をそれぞれ user@nfsv4_domain、group@nfsv4_domain の形式で文字列として交換する必要があります。
たとえば、known_user ユーザーに完全指定のホスト名が system.example.com である NFS version 4 クライアント上に UID 123456 が割り当てられているとします。このクライアントが NFS version 4 サーバーに要求を行うには、UID 123456 を known_user@example.com に割り当ててから、この属性を NFS version 4 サーバーに送信する必要があります。NFS version 4 サーバーは、ユーザーとグループのファイル属性を user_or_group@nfsv4_domain 形式で受信することを予期します。サーバーがクライアントから known_user@example.com を受信すると、サーバーはこの文字列をローカルの UID 123456 に割り当て 、配下のファイルシステムがこれを認識します。この機能では、ネットワーク上のすべての UID と GID が一意であること、およびクライアント上の NFS version 4 のドメインがサーバー上の NFS version 4 のドメインと一致していることを前提としています。
注 - NFS version 4 のドメインが一致している場合でも、渡されたユーザー名またはグループ名をサーバーが認識しない場合、そのサーバーはそのユーザー名またはグループ名を一意の ID (整数値) に割り当てることができません。そのような場合は、サーバーは着信ユーザー名または着信グループ名を nobody ユーザーに割り当てます。そうした状況が発生することを避けるために、管理者は NFS version 4 クライアントだけに存在する特別なアカウントを作成しないようにしてください。
NFS version 4 のクライアントとサーバーは、整数から文字列への変換と文字列から整数への変換に対応しています。たとえば、NFS version 4 サーバーが GETATTR 処理を受け取ると、配下のファイルシステムから取得した UID および GID をそれぞれの文字列表現に割り当てたうえで、この情報をクライアントに送信します。またクライアントでも、UID と GID を文字列表現に割り当てる必要があります。たとえば、クライアントが chown コマンドを受け取ると、新しい UID および GID を文字列表現に割り当ててから、SETATTR 処理をサーバーに送信します。
ただし、クライアントとサーバーでは、文字列が認識されない場合の対処が異なることに注意してください。
ユーザーがサーバー上に存在しない場合、特に同じ NFS version 4 ドメイン構成の中に存在しない場合には、サーバーはリモート手続き呼び出し(RPC) を拒否し、クライアントにエラーメッセージを返します。このような場合は、リモートユーザーが実行できる操作が制限されます。
ユーザーがクライアント上とサーバー上に存在している場合でも、そのドメインが一致しない場合には、サーバーが受け取った属性変更処理のうち、着信ユーザー文字列を整数値に割り当てて配下のファイルシステムが認識できるようにする必要がある処理 (SETATTR など) については、サーバーで拒否されます。NFS version 4 のクライアントとサーバーが正常に機能するには、それらの NFS version 4 ドメイン (文字列のうち、@ 記号のあとの部分) が一致しているべきです。
NFS version 4 クライアントがサーバーから送信されたユーザー名またはグループ名を認識しない場合には、クライアントはその文字列を一意の ID (整数値) に割り当てることができません。そのような場合は、クライアントは着信ユーザー文字列または着信グループ文字列を nobody ユーザーに割り当てます。nobody に割り当てられると、さまざまなアプリケーションでさまざまな問題が発生します。NFS version 4 の機能では、ファイル属性を変更する処理は失敗します。
クライアントとサーバーのドメイン名を変更するには、sharectl コマンドで次のオプションを使用します。
クライアントとサーバーに共通のドメインを設定します。ローカル DNS ドメイン名を使用するデフォルトの動作はオーバーライドされます。タスクの詳細は、「NFS サービスの設定」を参照してください。
次に、nfsmapid デーモンが、svc:system/name-service/switch と svc:/network/dns/client に見つかった SMF 構成情報をどのように使用するかについて説明します。
nfsmapid は、標準の C ライブラリ関数を使用して、バックエンドネームサービスにパスワードおよびグループ情報を要求します。これらのネームサービスは、svc:system/name-service/switch SMF サービスの設定によって制御されます。サービスのプロパティーへの変更は、nfsmapid の動作に影響します。svc:system/name-service/switch SMF サービスの詳細は、nsswitch.conf(4) のマニュアルページを参照してください。
NFS version 4 クライアントがさまざまなドメインのファイルシステムを確実にマウントできるように、nfsmapid は DNS TXT リソースレコード (RR) _nfsv4idmapdomain の構成に依存しています。_nfsv4idmapdomain リソースレコードの構成の詳細については、「nfsmapid と DNS TXT レコード」を参照してください。また、次の点にも注意してください。
DNS TXT RR は、必要なドメイン情報を使って、DNS サーバー上で明示的に構成するようにしてください。
svc:system/name-service/switch SMF サービスは、resolver が DNS サーバーを見つけてクライアントとサーバーの NFS version 4 ドメインの TXT レコードを検索できるように、必要なパラメータを使って構成するようにしてください。
詳細については、次を参照してください。
nfsmapid が正しく動作するには、NFS version 4 のクライアントとサーバーが同じドメインに割り当てられている必要があります。NFS version 4 ドメインが確実に一致するように、nfsmapid は次の厳密な優先ルールに従って動作します。
デーモンは、nfsmapid_domain パラメータに割り当てられている値を SMF リポジトリで最初に確認します。値が検出された場合、その割り当てられている値は他の設定よりも優先されます。割り当てられている値は、発信属性文字列に追加され、着信属性文字列と比較されます。手順については、「NFS サービスの設定」を参照してください。
注 - NFSMAPID_DOMAIN 設定を使用する方法はスケーラブルではないため、大規模な配備を行う場合には推奨されません。
値が nfsmapid_domain に割り当てられていない場合、デーモンは DNS TXT RR でドメイン名を確認します。nfsmapid は、resolver の一連のルーチンによって使用される /etc/resolv.conf ファイル内の指令に依存します。resolver は、構成されている DNS サーバーから _nfsv4idmapdomain TXT RR を検索します。DNS TXT レコードを使用する方がよりスケーラブルです。このため、SMF リポジトリでパラメータを設定するよりも、TXT レコードを継続して使用することをお薦めします。
ドメイン名を提供する DNS TXT レコードが構成されていない場合、nfsmapid デーモンは /etc/resolv.conf ファイル内の domain または search 指令で指定された値を使用します。このとき、最後に指定された指令が優先されます。
次の例では、domain および search の両方の指令が使用されています。nfsmapid デーモンは、search 指令のあとに最初に記載されているドメイン名である company.com を使用します。
domain example.company.com search company.com foo.bar.com
/etc/resolv.conf ファイルが存在しない場合、nfsmapid は domainname コマンドの動作に従って NFS version 4 ドメインの名前を取得します。より詳しく説明すると、/etc/defaultdomain ファイルが存在する場合には、nfsmapid は NFS version 4 ドメインのためにそのファイルの内容を使用します。/etc/defaultdomain ファイルが存在しない場合には、nfsmapid はネットワークに構成されているネームサービスから渡されるドメイン名を使用します。詳細は、domainname(1M) のマニュアルページを参照してください。
DNS は汎用性が高いので、NFS version 4 のドメイン名を格納して配布するための効率的なメカニズムです。また、DNS は本質的にスケーラブルなので、DNS TXT リソースレコードを使用する方法は、大規模な配備の NFS version 4 のドメインを構成するうえで、もっとも推奨される方法です。エンタープライズレベルの DNS サーバーでは、_nfsv4idmapdomain TXT レコードを構成するようにしてください。このように構成すれば、NFS version 4 のクライアントまたはサーバーは DNS ツリーをたどることによって NFS version 4 ドメインを見つけることができます。
DNS サーバーから NFS version 4 のドメイン名を提供するように設定するときは、次の例のように入力することをお勧めします。
_nfsv4idmapdomain IN TXT "foo.bar"
この例では、構成されるドメイン名は、二重引用符で囲まれている値です。ttl フィールドが指定されていないことと、ドメインが owner フィールドの値である _nfsv4idmapdomain に追加されていないことに注意してください。この構成により、TXT レコードで、Start-Of-Authority (SOA) レコードのゾーンの ${ORIGIN} エントリを使用できるようになります。たとえば、さまざまなレベルのドメイン名前空間で、レコードは次のように読み取ることができます。
_nfsv4idmapdomain.subnet.yourcorp.com. IN TXT "foo.bar" _nfsv4idmapdomain.yourcorp.com. IN TXT "foo.bar"
この構成では、DNS クライアントが DNS ツリー階層を検索するときに、resolv.conf ファイルを使用して柔軟に検索することができます。resolv.conf(4) のマニュアルページを参照してください。この機能により、TXT レコードの検索での確率がより高くなります。柔軟性の向上により、低いレベルの DNS サブドメインが、自身の DNS TXT リソースレコード (RR) を定義できるようになりました。この機能により、低いレベルの DNS サブドメインが、高いレベルの DNS ドメインの定義した TXT レコードをオーバーライドできます。
注 - TXT レコードで指定したドメインには、任意の文字列を使用できます。この文字列は、NFS version 4 を使用するクライアントとサーバーの DNS ドメインと同じである必要はありません。 NFS version 4 データをほかの DNS ドメインと共有しないようにするオプションがあります。
ネットワークの NFS version 4 ドメインの値を割り当てる前に、ネットワークに NFS version 4 ドメインがすでに構成されているかどうかを確認します。次の例は、ネットワークの NFS version 4 ドメインを確認する方法を示します。
NFS version 4 ドメインを DNS TXT RR で確認するには、nslookup コマンドまたは dig コマンドを使用します。
nslookup コマンドの出力例を次に示します。
# nslookup -q=txt _nfsv4idmapdomain Server: 10.255.255.255 Address: 10.255.255.255#53 _nfsv4idmapdomain.example.company.com text = "company.com"
dig コマンドの出力例を次に示します。
# dig +domain=example.company.com -t TXT _nfsv4idmapdomain ... ;; QUESTION SECTION: ;_nfsv4idmapdomain.example.company.com. IN TXT ;; ANSWER SECTION: _nfsv4idmapdomain.example.company.com. 21600 IN TXT "company.com" ;; AUTHORITY SECTION: ...
DNS TXT RR の設定方法については、「nfsmapid と DNS TXT レコード」を参照してください。
ネットワークに NFS version 4 の DNS TXT RR が設定されていない場合は、次のコマンドを使用して、NFS version 4 ドメインを DNS ドメイン名で確認します。
# egrep domain /etc/resolv.conf domain example.company.com
/etc/resolv.conf ファイルがクライアントの DNS ドメイン名を提供するように構成されていない場合は、次のコマンドを使用して、ネットワークの NFS version 4 ドメイン構成でドメインを確認します。
# cat /system/volatile/nfs4_domain company.com
NIS などの別のネームサービスを使用している場合は、次のコマンドを使用して、ネットワークに構成されているネームサービスでドメインを確認します。
# domainname it.example.company.com
詳細は、次のマニュアルページを参照してください。
このセクションでは、ネットワークがどのようにして目的のデフォルトドメインを取得するかについて説明します。
最新リリースについては、「Oracle Solaris 11 リリースで NFS version 4 のデフォルトドメインを構成する」を参照してください。
初期 Solaris 10 リリースの場合は、「Solaris 10 リリースで NFS version 4 のデフォルトドメインを構成する」を参照してください。
Oracle Solaris 11 リリースでは、コマンド行から次のコマンドを入力して、デフォルトの NFS ドメインバージョンを設定できます。
# sharectl set -p nfsmapid_domain=example.com nfs
注 - DNS 特有のユビキタスでスケーラブルな性質のため、大規模な NFS version 4 配備のドメイン構成には DNS TXT レコードを引き続き使用することを強く推奨します。「nfsmapid と DNS TXT レコード」を参照してください。
初期 Solaris 10 リリースの NFS version 4 では、ネットワーク内に複数の DNS ドメインが存在しているにもかかわらず、単一の UID および GID 名前空間しかない場合、すべてのクライアントが nfsmapid_domain に対して単一の値を使用する必要があります。DNS を使用するサイトでは、nfsmapid が、_nfsv4idmapdomain に割り当てられた値からドメイン名を取得して、この問題を解決します。詳細は、「nfsmapid と DNS TXT レコード」を参照してください。ネットワークが DNS を使用するように構成されていない場合は、システムの最初のブート時に、OS は sysidconfig ユーティリティーを使用して NFS version 4 のドメイン名に関する次のプロンプトを提供します。
This system is configured with NFS version 4, which uses a domain name that is automatically derived from the system's name services. The derived domain name is sufficient for most configurations. In a few cases, mounts that cross different domains might cause files to be owned by nobody due to the lack of a common domain name. Do you need to override the system's default NFS verion 4 domain name (yes/no)? [no]
デフォルトの応答は [no] です。[no] を選択すると、次のプロンプトが表示されます。
For more information about how the NFS version 4 default domain name is derived and its impact, refer to the man pages for nfsmapid(1M) and nfs(4), and the System Administration Guide: Network Services.
[yes] を選択すると、次のプロンプトが表示されます。
Enter the domain to be used as the NFS version 4 domain name. NFS version 4 domain name []:
注 - nfsmapid_domain の値が SMF リポジトリに存在する場合は、指定した [domain_name] がその値をオーバーライドします。
nfsmapid の詳細は、次を参照してください。
nfsmapid(1M) のマニュアルページ
nfs(4) のマニュアルページ
reparsed デーモンは、再解析ポイントに関連付けられたデータを解釈します。データは SMB および NFS ファイルサーバーで DFS および NFS リフェラルによって使用されます。このサービスは SMF によって管理されるため、手動で起動しないようにしてください。
lockd とともに動作し、ロックマネージャーにクラッシュ/回復機能を提供します。statd デーモンは、NFS サーバーにロックを保持するクライアントを追跡します。サーバーがクラッシュした場合は、サーバーのリブート中に、サーバー側 statd がクライアント側 statd にコンタクトします。次にクライアント側 statd は、サーバー上のすべてのロックを再要求します。クライアント側 statd は、サーバー上のクライアントのロックがクリアされるように、サーバー側 statd にクライアントがいつクラッシュしたかを通知します。このデーモンにオプションはありません。詳細は、statd(1M) のマニュアルページを参照してください。
Solaris 7 で、statd がクライアントを追跡する方法が改善されました。以前のすべての Solaris リリースでは、statd は、クライアントごとにそのクライアントの修飾されていないホスト名を使用して、/var/statmon/sm にファイルを作成しました。そのため、同じホスト名の 2 つのクライアントが異なるドメインに存在する場合や、クライアントが NFS サーバーと異なるドメインに存在する場合に、このファイルのネーミングが原因となり問題が発生していました。修飾されていないホスト名はホスト名のみを表示し、ドメインや IP アドレスの情報がないため、以前のバージョンの statd にはこのようなクライアントを区別する方法がありませんでした。この問題を解決するため、Solaris 7 の statd は、修飾されていないホスト名に対してクライアントの IP アドレスを使用して /var/statmon/sm にシンボリックリンクを作成します。新規リンクは、次のようになります。
# ls -l /var/statmon/sm lrwxrwxrwx 1 daemon 11 Apr 29 16:32 ipv4.192.168.255.255 -> myhost lrwxrwxrwx 1 daemon 11 Apr 29 16:32 ipv6.fec0::56:a00:20ff:feb9:2734 -> v6host --w------- 1 daemon 11 Apr 29 16:32 myhost --w------- 1 daemon 11 Apr 29 16:32 v6host
この例では、クライアントのホスト名は myhost で、クライアントの IP アドレスは 192.168.255.255 です。ほかのホストが myhost という名前を持ち、ファイルシステムをマウントしていると、myhost というホスト名に対するシンボリックリンクは 2 つ作成されます。
注 - NFS version 4 は、このデーモンを使用しません。