この章では、NIS+ クライアントが使用するサーバーのカスタマイズおよび制御方法について説明します。
クライアントマシン、ユーザー、アプリケーション、あるいはプロセスは、アクティブな NIS+ サーバー (マスターまたは複製) を検索して、そこから必要な情報を取り込みます。巨大なネットワーク、サブネットを多く持ったネットワーク、あるいは広域リンクにまたがったネットワークでは、サーバーの使用法をカスタマイズすることにより NIS+ の性能を強化できます。
カスタマイズ前の状態で、nisprefadm コマンドによるサーバーの優先順位設定がなにも設定されていなければ、クライアントは、まず自分自身のローカルサブネット上の NIS+ サーバーから情報を入手しようとします。そのサブネットにアクティブなサーバーが見つかれば、応答のあった最初のローカルサーバーから必要な情報を入手します。ローカルサブネットにサーバーがない場合、次にクライアントは、ローカルサブネットの外部を検索し、応答のあった最初の遠隔サーバーから必要な NIS+ 情報を入手します。
ネットワークが大規模で、混雑している場合、上記のデフォルトの検索動作では NIS+ の性能を十分に発揮させることができないことがあります。それは次のような理由によります。
サブネット上の複数のサーバーが多数のクライアントに情報の配布を行なっている場合、クライアントのデフォルト検索パターンがランダムなために、他にあまり使われていないサーバーがあるのに、いくつかのサーバーの負荷が高くなりすぎる可能性があります。
ローカルサブネットの外で NIS+ サーバーを検索する際、クライアントは、オーバーワークしているサーバーであっても、低速な広域ネットワーク接続方式 (たとえば、モデム) や、すでにトラフィック多い専用回線によってリンクされているサーバーであっても、最初に応答したものから情報を入手します。
Solaris 8 リリースには、新規機能 (サーバーの使用のカスタマイズ) が搭載されています。この機能を使用すると、クライアントが NIS+ サーバーを検索する順序をコントロールできます。この新規機能では、次のような方法でサーバーの使用の度合いをバランスよくカスタマイズできます。
クライアントが特定のサーバーを優先的に選択する (検索する) ように指定します。
使用できるローカルサーバーがない場合、クライアントが遠隔サーバーを使用してもよいかどうかを指定します。
指定した検索基準は、ドメイン内のすべてのクライアント、サブネット上のすべてのクライアント、またはマシンごとに独立したクライアントに適用できます。
サーバー使用の優先順位を特定のマシンに設定すると、この優先順位は、そのマシンで実行中のユーザー、アプリケーション、処理、または他のクライアントすべてに適用されます。同じマシン上の別のクライアントに、異なるサーバー使用のパターンを設定できません。
使用サーバーのカスタマイズは、多数のサブネットを持つ大規模ネットワークや、モデムまたは専用回線で接続された複数の地理的サイトにまたがるネットワークで使用すると特に効果があります。ネットワークの性能を最大にするには、サブネット間やより低速な接続によってリンクされたサイト間のトラフィックを最小限にする必要があります。これは、クライアントが使用できる NIS+ サーバーとその優先順位を指定することによって実現できます。このようにして、可能な限り NIS+ ネットワークトラフィックがローカルサブネットから出ないようにします。
この節では、サーバー使用のカスタマイズの概要について説明します。
使用サーバーをカスタマイズするには、クライアントで nis_cachemgr を実行している必要があります。クライアントマシンが nis_cachemgr を実行していない場合は、使用サーバーのカスタマイズ機能は利用できません。クライアントマシン上で、nis_cachemgr を実行していない場合は、そのクライアントは、「デフォルトでのクライアントの検索動作」で説明した方法で識別された最初のサーバーを使用します。
nisprefadm コマンドは、次のように、その使用方法により、ローカルの client_info ファイルまたはドメインの client_info テーブルのどちらかを作成します。
「ファイル」
nisprefadm を使用して、マシンの /var/nis ディレクトリに格納される、ローカルなマシン固有の client_info を作成できます。ローカルファイルは、サーバーの優先順位をそのマシンだけに指定するためのものです。マシンに、ローカルの /var/nis/client_info ファイルがある場合、そのマシンは、ドメインの client_info.org_dir テーブルに入っているサーバーの優先順位は無視します。ローカル client_info ファイルを作成するには、-L オプションを指定した nisprefadm を実行してください。
「テーブル」
nisprefadm を使用して、各ドメインの NIS+ ディレクトリオブジェクト org_dir 内に格納される NIS+ client_info テーブルを作成できます。このテーブルは、次のものに対してサーバーの優先順位を指定できます。
個別のマシン
マシンにローカルの /var/nis/client_info ファイルがある場合、ドメインの client_info テーブルによって、そのマシンに対して指定された優先順位はすべて無視されます。
1 つの特定のサブネット上にあるすべてのマシン
サブネット上のマシンにローカルの /var/nis/client_info ファイルがあるか、またはテーブル内にそのマシン固有の優先順位が設定されている場合、そのマシンは、サブネットに指定された優先順位を無視します。
1 つのサブネット上のすべてのマシンに適用されるグローバル client_info テーブルを作成するには、-G および -C オプションを指定して nisprefadm を実行してください。これについては、「グローバルサーバー優先順位を指定する」で説明しています。
マシンに、以下で説明するような、固有のローカル client_info ファイルがある場合、そのマシンに対してグローバル client_info テーブル内に設定されたサーバーの優先順位はすべて無視されるので注意してください。マシンに、ローカル client_info ファイルがあるか、またはグローバル client_info テーブルにそのマシン固有のエントリがある場合は、そのサブネットに設定された優先順位は無視されます。
client_info ファイルと client_info テーブルを変更する場合は、nistbladm コマンドだけを使用してください。nistbladm などの、他の NIS+ コマンドは絶対に使用しないでください。
client_info テーブルまたは client_info ファイルを処理する場合は、-G または -L オプションを使用して、グローバルテーブル (-G) またはコマンドを実行中のマシンのローカルファイル (-L) のどちらにそのコマンドを適用させるかを指定する必要があります。
サーバーの優先順位は、各サーバーに「優先順位を表す番号」を指定することによって制御されます。クライアントは、数値で指定された優先順位にしたがって NIS+ サーバーを検索します。検索の順序は、まず、優先順位格付け番号が小さいサーバーを先に検索し、次に大きい数値の付いたサーバーを検索します。
つまり、クライアントは、まず初めにゼロの優先順位の付いた NIS+ サーバーから名前空間情報を入手しようとします。使用できる優先順位=0 のサーバーがない場合、クライアントは、次に優先順位=1 のサーバーに問い合わせを行います。1 のサーバーが使用できない場合は、2 のサーバーを検出しようと、次に 3 というように、この検索は必要な情報が入手できるか、または検索するサーバーがなくなるまで続きます。
優先順位格付け番号は、nisprefadm コマンドを使用してサーバーに割り当てます。これについては、「グローバルサーバー優先順位を指定する」で説明しています。
サーバーの優先順位番号は、client_info テーブルと client_info ファイル内に格納されます。マシンに、固有の /var/nis/client_info ファイルがある場合は、このファイル内に格納された優先順位番号が使用されます。マシンに、固有の client_info ファイルがない場合は、ドメインの client_info.org_dir テーブル内に格納された優先順位番号が使用されます。このような client_info テーブルと client_info ファイルを、「優先サーバーのリスト」、または単に「サーバーリスト」と呼びます。
各クライアントのサーバーの優先順位を制御することで、サーバーの使用法をカスタマイズします。たとえば、ドメインに mailer という名前のクライアントマシンがあり、このマシンは名前空間情報を頻繁に利用していて、さらにこのドメインには、マスターサーバー (nismaster) と複製サーバー (replica1) の両方があるとします。ここで、mailer マシン用に nismaster に優先順位番号 1 を割り当て、replica1 に優先順位番号 0 を割り当てると、mailer マシンは、名前空間情報を、必ず最初に replica1 から入手しようとし、その後で nismaster に移ります。次に、このサブネット上にある他のすべてのマシンに対して、優先順位番号を nismaster サーバーにはゼロを、replica1 には 1 を割り当てます。この結果、他のマシンは、必ず最初に nismaster に問い合わせを行います。
同じ優先順位番号を、ドメイン内の複数のサーバーに割り当てることができます。たとえば、nismaster1 と replica2 の両方に優先順位番号 0 を割り当て、replica3、replica4、replica5 に優先順位番号 1 を割り当てることができます。
client_info ファイルまたはテーブルがない場合は、キャッシュ管理プログラムが自動的に、ローカルサブネット上のすべてのサーバーにデフォルトの優先順位番号ゼロ (0) を割り当て、ローカルサブネットの外部のすべてのサーバーに無限大の優先順位を割り当てます。nisprefadm は、このデフォルトの優先順位番号を自由に変更するためのものです。
クライアントは、すべてのサーバーを指定された優先順位番号を使用して昇順に検索しなければなりません。クライアントが指定された優先順位番号をもつすべてのサーバーを検索するには、5 秒以上必要です。つまり、ドメイン内に 1 つのマスターサーバーと 4 つの複製サーバーがあり、それぞれのサーバーに 0 から 4 の異なる優先順位番号を指定した場合、クライアントがこれらの優先レベルをすべて実行するには、25 秒以上かかるということです。
性能を最大にするために、サーバーの優先レベルを 2 つまたは 3 つ以上使用しないでください。たとえば、上記のような場合は、5 つのサーバーのうちの 1 つに優先順位= 0 を割り当て、他すべてのサーバーには優先順位 1 を割り当てるか、または 5 つのサーバーのうち 2 つに優先順位 1 を、残りの 3 つのサーバーに 2 を割り当てるといった方法をとってください。
サーバーリストには、クライアントが優先サーバーを検出できなかった場合の処置も指定できます。「優先サーバー」とは、優先順位にゼロが指定されたサーバー、または nisprefadm を使用して優先順位番号を割り当てたサーバーです。
デフォルトでは、クライアントは優先サーバーに到達できないと、検索モードを使用して、ネットワーク上のあらゆる場所を検索し、検出できるあらゆるサーバーを検索します。これについては、「デフォルトでのクライアントの検索動作」で説明しています。このデフォルト機能を、nisprefadm -o オプションを使用して変更し、クライアントが優先サーバーだけを使用し、使用できるサーバーがない場合でも、優先サーバー以外のサーバーには問い合わせしないように指定できます。詳細は、「優先サーバー限定指定」を参照してください。
マシンのドメインに優先サーバーが全くない場合、このオプションは無視されます。
現在特定のクライアントマシンに対して有効なサーバーの優先順位を表示するには、-l オプションを指定した nisprefadm を実行してください。これについては、「現行のサーバー優先順位の表示」で説明しています。
サーバーまたはクライアントマシンを指定する場合、次の点に注意してください。
サーバー名とクライアント名は、同じ NIS+ ドメイン内にあり、オブジェクトを個別に特定できれば、完全指定名である必要はありません。マシン名を単独で使用できます。
サーバーまたはサブネットが別の NIS+ ドメインにある場合は、そのマシンを個別に特定できるだけのドメイン名を含める必要があります。たとえば、sales.doc.com ドメイン内にいて、manf.doc.com ドメイン内の nismaster2 マシンを指定する必要がある場合、nismaster2.manf と入力します。
以下のマシンにサーバーの優先順位を指定する方法は、それぞれ次のとおりです。
「個別のクライアントマシン」にサーバーの優先順位を指定するには、-L オプションを使用すると、nisprefadm を実行中のマシンにローカル client_info ファイルを作成します。-G -C マシンオプションを使用すると、グローバル client_info テーブル内にマシン固有の優先順位を作成します。
「サブネット上のすべてのマシン」にサーバーの優先順位を指定するには、-G -C サブネット番号オプションを使用してください。
マシン固有のまたはサブネット固有の優先順位を持たない、現在のドメイン内にあるすべてのマシンにサーバーの優先順位を指定するには、-G オプションを使用してください。
マシンまたはサブネットのサーバー優先順位の変更内容は、通常、指定したマシンがその nis_cachemgr データを更新するまでは有効になりません。マシンの nis_cachemgr がそのサーバー使用情報を更新するタイミングは、マシンがサーバーの優先順位をグローバル client_info テーブルまたはローカル /var/nis/client_info ファイルのどちらから入手するかによって決まります (「グローバルテーブルまたはローカルファイル」を参照してください)。
「グローバルテーブル」から入手する場合
サーバーの優先順位をグローバルテーブルから入手するマシンのキャッシュ管理プログラムは、マシンがブートされた時、または client_info テーブルの存続時間 (TTL) の値が満了した時に、マシン用のサーバーの優先順位を更新します。デフォルトでは、この TTL 値は 12 時間ですが、変更可能です。「オブジェクトの生存期間を変更する」を参照してください。
「ローカルファイル」
ローカルファイルからサーバーの優先順位を入手するマシンのキャッシュ管理プログラムは、サーバーの優先順位を 12 時間ごとに更新するか、または nisprefadm を実行してサーバーの優先順位を変更した時に必ず更新します。マシンをリブートしても、キャッシュ管理プログラムのサーバーの優先順位情報は更新されません。
ただし、nisprefadm に -F オプションを指定して実行すると、サーバーの優先順位の変更内容を強制的にただちに有効にできます。-F オプションを使用すると、nis_cachemgr で、ただちにその情報が更新されます。詳細は、「優先順位の変更内容をただちに実現する方法」を参照してください。
ここからの節では、nisprefadm コマンドを使用して、サーバーの優先順位を設定、変更、削除する方法について説明します。
nisprefadm コマンドは、クライアントが優先的に選択するサーバーを指定するために使用します。
nisprefadm -a|-m|-r|-u|-x|-l -L|-G [-o type] ¥ [-d domain] ¥ [-C machine] ¥ servers nisprefadm -F |
オプション |
説明 |
---|---|
-G |
ドメインの org_dir ディレクトリ内に格納されるグローバル client_info テーブルを作成する。つまり、グローバルな優先されるサーバーリストを作成する。このオプションは、指定したサブネット上のすべてのマシンに対して優先順位を指定する場合は -C subnet、個別のマシンに優先順位を指定する場合は -C machine のどちらかと同時に使用しなければならない |
-L |
ローカルマシンの /var/nis ディレクトリに格納されるローカル client_info ファイルを作成する。つまり、コマンドを実行中のマシンにだけ適用される優先サーバーのリストを作成する |
-o type |
オプションを指定する。有効なオプションには、クライアントが接続できる優先サーバーがない場合、優先サーバー以外のサーバーを使用できるように指定する pref_type=all と、指定した優先サーバーだけをクライアントが使用するように指定する pref_type=pref_only がある |
-d domain |
指定したドメインまたはサブドメインに、グローバルな優先サーバーの client_info テーブルを作成する |
-C subnet |
優先順位を適用するサブネットの番号 |
-C machine |
クライアントマシン名 |
servers |
1 つまたは複数の NIS+ サーバー。ここで指定されたサーバーは優先的に選択される |
-a |
サーバーリストに指定サーバーを追加する |
-m |
サーバーリストを変更する。たとえば、-m オプションを使用すると、1 つまたは複数のサーバーに指定された優先順位番号を変更できる |
-r |
サーバーリストから指定したサーバーを削除する |
-u |
サーバーリストを消去してから、指定したサーバーを追加する (つまり、現行のサーバーリストを優先サーバーの新規リストに置換する) |
-x |
サーバーリストを完全に削除する |
-l |
現行の優先サーバー情報を一覧表示 (表示) する |
-F |
優先サーバーのリストを強制的にただちに変更する |
-C machine オプションは、-L (ローカル) フラグとともに使用しても無効となるので、使用しないでください。たとえば、nisprefadm を altair マシン上で実行しているとします。ここで、-L フラグを使用して、指定した優先順位が altair のローカル client_info ファイルに書き込まれるように指定し、さらに、-C vega オプションを使用して、作成した優先順位が vega マシンに適用されるように指定します。すると、nisprefadm コマンドは、vega 用の優先順位を altair のファイルに書き込みますが、vega は、サーバーの優先順位を必ず自分のローカル client_info ファイルまたはドメインのグローバル client_info テーブルから入手するため、これらの情報を参照することはありません。そのため、-C オプションは、nisprefadm に -G (グローバル) フラグを指定して実行する場合にだけ意味をもちます。
現行のサーバー優先順位を表示するには、nisprefadm に -l
オプションを指定して実行してください。
そのマシン上で、nisprefadm に -L と -l を指定して実行します。
sirius# nisprefadm -L -l |
このようにすると、マシンのローカル /var/nis/client_info ファイル内に定義されたサーバーの優先順位がすべて表示されます。ローカルファイルがない場合は、情報は表示されず、シェルプロンプトに戻ります。
nisprefadm に、-l、-G、-C machinename オプションを指定して実行します。
sirius# nisprefadm -G -l -C machinename |
machinename には、マシンの IP アドレス (番号) が入ります。
このようにすると、このマシン用にドメインのグローバル client_info テーブル内に設定された優先順位が表示されます。
nisprefadm に、-l、-G、-C subnet オプションを指定して実行します。
sirius# nisprefadm -G -l -C subnet |
subnet には、サブネットの IP アドレス (番号) が入ります。
このようにすると、このサブネット用にドメインのグローバル client_info テーブル内に設定された優先順位が表示されます。
デフォルトでは、-a オプションの後ろにリストしたサーバーには、すべて優先順位番号ゼロが指定されます。別の優先順位番号を指定する場合は、次のように、サーバー名の直後に指定する番号をカッコで囲んで入れてください (-a name(n)) 。name にはサーバー名が、n には優先順位番号が入ります。
たとえば、replica2 サーバーに優先順位番号 3 を割り当てる場合は、次のように入力します。
# nisprefadm -G -a replica2(3) |
シェルの中には、次のように要素を 2 重引用符で囲まなければならないものがあります。"name(n)"
サーバーの優先順位格付け番号の基礎知識については、「優先順位の番号の指定」を参照してください。
ローカルまたは遠隔ドメインに、グローバルサーバー優先順位を設定できます。優先順位は、個別のマシンと 1 つのサブネット上のすべてのマシンに設定できます。
この節では、NIS+ ドメインのマスターサーバーに存在するグローバル client_info テーブル内にサーバーの優先順位を設定する方法を説明します。マスターサーバー上にテーブルがある場合、NIS+ は、そのテーブルをドメインの既存の複製サーバー上に複写します。
個別のマシンにローカル client_info ファイルを作成する方法については、「ローカルサーバー優先順位を指定する」 を参照してください。
グローバル client_info テーブルとローカル client_info ファイルの違いについては、「グローバルテーブルまたはローカルファイル」を参照してください。
サーバーの優先順位番号を割り当てるには、次のどちらかを指定した nisprefadm を実行してください。
新規または別の優先サーバーを追加する場合は、-a オプションを指定します。
既存のサーバー優先順位を削除して、新規の優先順位を作成する場合は、-u オプションを指定します。
1 つのサブネット上のすべてのマシンのグローバルテーブルにサーバーの優先順位を割り当てるには、次のようにします。
nisprefadm に -G および -C subnet オプションを指定して実行します。
# nisprefadm -G -a -C subnet servers (preferences) |
-C subnet には、優先順位を適用するサブネットの IP 番号を指定します。使用するシェルによっては、マシンを引用符で囲む必要があります。
servers (preferences) には、1 つまたは複数のサーバーが入ります。それらには優先順位格付け番号を指定できます。
たとえば、サブネット 123.123.123.123 が、nismaster および replica3 サーバーにはデフォルトの優先順位番号ゼロを付け、manf.replica6 サーバーには優先順位番号 1 を付けて使用するように指定する場合は、次のように入力してください。
polaris# nisprefadm -a -G -C 123.123.123.123 nismaster1 ¥ replica3 "manf.replica6(1)" |
# nisprefadm -G -a -C machine servers (preferences) |
-C マシンには、優先順位を適用するマシンを指定します。使用するシェルによっては、machine を引用符で囲む必要があります。
servers (preferences) には、1 つまたは複数のサーバーが入ります。それらには優先順位格付け番号を指定できます。
たとえば、マシン cygnus に指定された現行の優先順位を、replica7 と replica9 の両方にデフォルトの優先順位番号ゼロを指定したものに置き換える場合は、次のように入力します。
polaris# nisprefadm -u -G -C cygnus replica7 replica9 |
遠隔ドメイン内の個別のマシン、または遠隔ドメイン内の 1 つのサブネット上にあるすべてのマシンにサーバーの優先順位を割り当てるには、次のようにします。
nisprefadm に -C、-G、-d オプションを指定して実行します。
# nisprefadm -a -G -C name ¥ -d domain servers (preferences) |
name には、サブネットの IP 番号またはマシン名が入ります。このコマンドを使用して行なった変更は、ここに入力したサブネットまたはマシンに適用されます。
domainname には、遠隔ドメイン名が入ります。
servers (preferences) には、1 つまたは複数のサーバーが入ります。それらには優先順位格付け番号を指定できます。
たとえば、デフォルトの優先順位番号ゼロを指定した nismaster2 サーバーを、遠隔ドメイン sales.doc.com 内のサブネット 111.11.111.11 の優先サーバーのリストに追加する場合は、次のように入力します。
polaris# nisprefadm -a -G -C 111.11.111.11 -d sales.doc.com. nismaster2 |
ここでは、ローカル client_info ファイルの作成および変更方法について説明します。ローカル client_info ファイルは、このファイルが存在するマシンにサーバーの優先順位を指定するためのものです。
マシンに /var/nis/client_info ファイルがある場合、このマシンは、NIS+ サーバー上のグローバル client_info テーブルではなく、そのマシンのローカルファイルからサーバーの優先順位を入手します。つまり、ローカルファイルはグローバルテーブルよりも優先されます。
NIS+ サーバーのグローバル client_info テーブルを作成する方法については、「グローバルサーバー優先順位を指定する」を参照してください。
グローバル client_info テーブルとローカル client_info ファイルの相違点については、「グローバルテーブルまたはローカルファイル」を参照してください。
サーバーの優先順位を割り当てるには、次のどちらかを指定した nisprefadm を実行してください。
新規または別の優先サーバーを追加する場合は、-a オプションを指定します。
既存のサーバー優先順位を削除して、新規の優先順位を作成する場合は、-u オプションを指定します。
nisprefadm コマンドを実行中のローカルマシンにサーバーの優先順位を割り当てるには、次のようにします。
nisprefadm に -L オプションと -a または -u オプションを指定して実行します。
#nisprefadm -a -L servers (preferences) |
ここで、servers (preferences) には、1 つまたは複数のサーバーが入ります。それらには優先順位格付け番号を指定できます。
たとえば、deneb マシンが NIS+ 情報を、まず初めにデフォルトの優先順位番号ゼロが指定された replica3 から検索し、次に manf.doc.com ドメイン内の (優先順位番号 1 が指定された) サーバー replica6 を検索するように指定する場合は、次のように入力します。
deneb# nisprefadm -a -L replica3 replica6.manf(1) |
サーバーの優先順位番号は、変更することができ、また別のサーバーに優先順位番号の割り当てを移すこともできます
優先サーバーまたはサーバーに割り当てた優先順位番号を変更するには、nisprefadm に -m oldserver-=newserver(n) オプションを指定して実行してください。
nisprefadm に -m server=server(new) オプションを指定して実行します。
#nisprefadm -L|-G -C name -m oldserver= newserver(n) |
L|G には、ローカルファイルとグローバルテーブルのどちらを修正するかを指定します。
-C name には、サブネットの IP 番号またはマシン名が入ります。このオプションは、-G オプションを使用している場合にだけ使用します。このコマンドを使用して行なった変更は、ここに指定したサブネットまたはマシンに適用されます。
-m は、サーバーリストを変更するオプションです。
old server には、その優先順位番号を変更したいサーバー名が入ります。
new server(n) には、サーバー名とその新しい優先順位番号が入ります。
たとえば、deneb マシン上で、deneb のローカル client_info ファイルの replica6.manf サーバーに指定された番号を 2 に変更する場合は、次にように入力します。
deneb# nisprefadm -L -m replica6.manf=replica6.manf(2) |
優先順位リスト内で、1 つのサーバーを別のサーバーに変更するには、次のようにします。
nisprefadm に -m oldserver=newserver オプションを指定して実行します。
# nisprefadm -L|-G -C name -m oldserver=newserver ( prefnumber) |
-L|-G には、ローカルまたはドメイン全体のどちらのサーバーリストを変更するのかを指定します。
-C name には、サブネットの IP 番号またはマシン名が入ります。このオプションは、-G オプションを使用している場合にだけ使用します。このコマンドを使用して行なった変更は、ここに指定したサブネットまたはマシンに適用されます。
-m は、サーバーリストを変更するオプションです。
oldserver には、置換する対象となる旧サーバーが入ります。
newserver (prefnumber) には、優先サーバーリスト内の旧サーバーの位置に入る新規サーバー (優先順位格付け番号を指定できる) を入力します。
-G オプションを使用して、グローバル client_info テーブル内のサーバーを置換する場合には、その置換内容は -C オプションで特定したサブネットまたはマシンにだけ適用されるので注意してください。それ以外にリストされている置換対象 (旧) サーバーは影響を受けません。
たとえば、3 つのサブネットを持つドメインを所有していて、この中の 2 つのサブネット用に replica1 サーバーが優先サーバーのリストに入っている場合を考えます。これ以上 replica1 を使用しないので、使用サーバーから除外する場合は、nisprefadm -m を実行して、最初のサブネットの replica1 を新規サーバーに置換します。この時、2 番目のサブネットに対しても同様の処理を行うまでは、replica1 はそのサブネットの優先サーバーのリストに入っています。個別のマシンの優先サーバーでも同様です。
たとえば、ドメインのグローバル client_info テーブル内で、サブネット 123.12.123.12 用に指定された replica3 サーバーを replica6 サーバーに置換し、replica6 に優先順位番号 1 を割り当てる場合は、次のように入力します。
nismaster# nisprefadm -G -C 123.12.123.12 -m replica3 replica6(1) |
優先順位リストから 1 つまたは複数のサーバーを削除するには、次のようにします。
nisprefadm に -r オプションを指定して実行します。
# nisprefadm -L|-G -C name -r servers |
-L|-G には、ローカルまたはドメイン全体のサーバーリストのどちらを変更するのかを指定します。
-C name には、サブネットの IP 番号またはマシン名が入ります。このオプションは、-G オプションを使用している場合にだけ使用します。このコマンドを使用した優先サーバーの削除は、ここに名前を指定したサブネットまたはマシンに適用されます。
-r は、servers に名前を指定したサーバーをリストから削除するオプションです。
たとえば、ドメインのグローバル client_info テーブル内から、マシン polaris に指定された replica3 および replica6.manf サーバーを削除する場合は、次のように入力します。
polaris# nisprefadm -G -C polaris -r replica3 replica6.manf |
グローバル client_info テーブルまたはマシンのローカル client_info ファイルどちらかの中にある、サブネットまたはマシンに指定された優先サーバーのリスト全体を置換するには、nisprefadm に -u オプションを指定して実行してください。
-u オプションは、マシンまたはサブネットに指定されたサーバーの優先順位を、まず初めにすべて削除してから指定した新規の優先順位を追加しますが、これ以外は、-a オプションと同じ処理を行います。既存の優先順位がある場合、-a オプションでは旧リストに新しい優先順位を追加します。
-u オプションの使用例については、「個別のマシンにグローバル優先順位を設定する方法」を参照してください。
優先サーバーが使用できない場合に、クライアントがとる動作を指定できます。
デフォルトでは、クライアントは、優先サーバーに到達できない場合、検出できたサーバーであればどれでも使用してしまいます。優先サーバー限定オプションを設定すると、クライアントが優先サーバーだけを使用するように指定できます。優先サーバー限定オプションと全サーバーオプションの基礎知識については、優先サーバー限定とすべてのサーバーを参照してください。
優先サーバーが使用できない場合のクライアントの動作を指定するには、nisprefadm に -o value オプションを指定して実行してください。
サーバーリストを使用するクライアントが、リスト内に記述されたサーバーだけから NIS+ 情報を入手するように指定するには、次のようにします。
nisprefadm に -o pref_only オプションを指定して実行してください。
# nisprefadm -L|-G -o pref_only |
-L|-G には、ローカルまたはドメイン全体のサーバーリストのどちらを変更するかを指定します。
-o pref_only により、クライアントがリスト内に記述されたサーバーだけから NIS+ 情報を入手するように指定されます。
このオプションは、優先サーバーが全くないドメインでは無視されます。
たとえば、altair のローカル client_info ファイル内に、altair が必ず優先サーバーを使用し、altair の優先サーバーリストにないサーバーは使用しないように指定するには、次のように入力します。
altair# nisprefadm -L -o pref_only |
サーバーリストを使用するクライアントが、優先サーバーが使用できない場合に、リストに記載されていないサーバーから NIS+ 情報を入手するように指定するには、次のようにします。
# nisprefadm -L|-G -o all |
-L|-G には、ローカルまたはドメイン全体のサーバーリストのどちらを変更するかを指定します。
-o all は、クライアントが、優先サーバーが使用できない場合に、リストに記載されていないサーバーから NIS+ 情報を入手するように指定するオプションです。
これは、デフォルトの動作です。そのため、-o all オプションは、以前に -o pref_only オプションを使用して優先サーバーだけを指定していた場合に限り使用する必要があります。
たとえば、altair が優先サーバーを使用できない場合には、altair のローカル client_info ファイル内に、優先サーバー以外のサーバーを使用できるように指定し直すには、次のように入力してください。
altair# nisprefadm -L -o all |
使用サーバーのカスタマイズ機能の使用を終了し、「デフォルトでのクライアントの検索動作」で説明した NIS+ 情報の入手方法に戻すことができます。
サーバーの優先順位の使用を終了するには、nisprefadm に -x オプションを指定して実行してください。
サーバーの優先順位の使用を終了する場合、クライアントは、「サーバーの優先順位が有効になるタイミング」で説明していることがらが通常どおり進行するまではサーバーの優先順位の使用を終了しません。また、サーバーの優先順位の使用を強制的にただちに終了させることもできます。これについては、「サーバーの優先順位の有効化」で説明しています。
nisprefadm に -G および -x オプションを指定して実行してください。
# nisprefadm -G -x |
これにより、グローバルサーバーの優先順位が削除されます。
ローカルサーバーの優先順位が指定されていないクライアントマシンは、「デフォルトでのクライアントの検索動作」で説明したように NIS+ 情報を入手します。
ローカル /var/nis/client_info ファイルで設定されたサーバーの優先順位があるクライアントマシンは、引き続きそのファイルに指定されたサーバーを使用します。
ローカル優先順位を終了するということは、次の異なる 3 つの事項のいずれか 1 つを意味すると考えられます。
特定のマシンで、サーバーの優先順位にローカル client_info ファイルの使用を終了し、かわってドメインのグローバル client_info テーブル内にそのサブネット用に設定された優先順位を使用したい場合
このマシンで、サーバーの優先順位にローカル client_info ファイルの使用を終了し、かわってドメインのグローバル client_info テーブル内にそのマシン固有に設定された優先順位を使用したい場合
特定のマシンで、サーバーの優先順位をまったく使用したくない場合。マシンがサーバーの優先順位を使用しない場合、そのマシンは、「デフォルトでのクライアントの検索動作」に説明した方法で NIS+ 情報を入手する
マシンの /var/nis/client_info ファイルを削除します。
# rm /var/nis/client_info |
この結果、マシンはドメインのグローバル client_info テーブル内でマシンのサブネットに指定された優先順位を使用するようになります。
マシンの /var/nis/client_info ファイルを削除します。
# rm /var/nis/client_info |
-G と -C オプションを使用して、グローバルテーブル内にそのマシン用の優先順位を指定します。
詳細は、「個別のマシンにグローバル優先順位を設定する方法」を参照してください。
マシンの /var/nis/client_info ファイルを削除します。
# rm /var/nis/client_info |
マシンのドメインにグローバル client_info テーブルがない場合、必要な処理はこの手順だけです。ドメインに client_info テーブルがある場合は、手順 2 に進んでください。
空の /var/nis/client_info ファイルを作成します。
# touch /var/nis/client_info |
マシンに固有の /var/nis/client_info ファイルがある場合、そのマシンは client_info テーブルのグローバル優先順位は使用しません。マシンに空の /var/nis/client_info ファイルがある場合、そのマシンはどの優先順位も使用せず、「デフォルトでのクライアントの検索動作」で説明した方法で NIS+ 情報を入手します。
使用サーバーの変更内容は、通常、クライアントマシンをリブートするか、またはマシンのキャッシュ管理プログラムを更新した時に有効になります。
ローカル client_infoファイル (-L オプション) を使用するローカルマシン上で、nisprefadm を使用してサーバーの優先順位の設定または変更した場合は、その変更内容はただちに有効になります。
グローバル client_info テーブル (-G オプション) からサーバーの優先順位を入手しているマシンの場合、nisprefadm に -F オプションを指定して実行すると、サーバーの優先順位に加えた変更を強制的にただちに有効にできます。
# nisprefadm -F |
-F オプションとは、マシンのキャッシュ管理プログラムに、そのサーバーの優先順位情報をドメインのグローバル client_info テーブルを使って強制的にただちに更新させるオプションです。nisprefadm -F を実行するマシンが、/var/nis 内にそのマシン固有のローカル client_info ファイルを持つ場合、そのマシン上で nisprefadm -F を実行しても無効になります。
-F オプションは、他の nisprefadm オプションと同時に使用できません。nisprefadm -F コマンドは、必ず、このコマンドを適用するマシン上で、単独で使用してください。-G オプションを使用して、ドメイン内にあるすべてのマシンのキャッシュ管理プログラムを更新できません。nisprefadm -F コマンドは、各マシン上でそれぞれ実行する必要があります。
新しく作成、または変更したサーバーリストを、指定したマシン上で強制的にただちに有効にするためには、次のようにします。
# nisprefadm -F |
たとえば、vega の優先サーバーリストへの変更内容を、強制的にただちに実現させるには (ローカルまたはグローバルのどちらの場合でも)、次のように入力してください。
vega# nisprefadm -F |