Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)

ルート複製サーバーの作成

NIS+ サービスを常に利用可能な状態にしておくため、ルート複製サーバーを少なくとも 1 つは作成しておくことをお勧めします。複製サーバーを作成すると複数のサーバーが存在することになり、要求の処理を分散させることができるため、ネットワーク要求の処理も高速化されます。

パフォーマンス上の理由から、1 つのドメインに多くの複製サーバーを置くことはお勧めできません。ネットワークが複数のサブネットで構成されている場合、あるいは広域ネットワーク (WAN) でリモートサイトに接続されている場合には、複製サーバーを追加すると良い場合があります。

最適な複製サーバー数の決定方法については、「ルート複製サーバーの作成」を参照してください。

「ルート複製サーバーを作成する方法」では、マシン client1doc.com. ドメインのルート複製サーバーとして構成します。この手順では、NIS+ スクリプトの nisserver を使用します。「NIS+ コマンドを使って複製サーバーを構成する」で説明しているように、NIS+ コマンドを使用して複製サーバーを構成することもできます。

nisserver を実行してルート複製サーバーを作成するための前提条件

nisserver を実行して複製サーバーを作成するには、次の条件を満たしている必要があります。

必要な情報

nisserver を実行するには、次の情報が必要です。

ルート複製サーバーを作成する方法

  1. NIS+ ドメインのルートマスターサーバー上でスーパーユーザー (root) として次のように入力して、ルート複製サーバーを作成します。


    master1# nisserver -R -d doc.com. -h client1
    This script sets up a NIS+ replica server for domain doc.com.
    Domain name: :doc.com.
    NIS+ server	: :client1
    Is this information correct? (type 'y' to accept, 'n' to change)

    -R オプションは、複製サーバーを構成することを示します。-d オプションは NIS+ ドメイン名 (このサンプルでは doc.com.) を指定します。-h オプションはルート複製サーバーとなるクライアントマシン (この例では client1) を指定します。

  2. y を入力して操作を続けます。

    n を入力すると、スクリプトは正しい情報の入力を要求します。n を入力した場合の操作については、「誤った情報を変更する方法」を参照してください。


    Is this information correct? (type 'y' to accept, 'n' to change) 
    y
    This script will set up machine “client1” as an NIS+ replica server for domain 
    doc.com. without NIS compatibility. The NIS+ server daemon, rpc.nisd, must 
    be running on client1 with the proper options to serve this domain. 
    Do you want to continue? (type 'y' to continue, 'n' to exit this script)
  3. y を入力して操作を続けます。

    n を入力するとスクリプトは問題なく終了します。クライアントマシン上で rpc.nisd が動作していない場合、スクリプトは自動的に終了します。


    Is this information correct? (type 'y' to continue, 'n' to exit this script)
    y
    The system client1 is now configured as a replica server for domain doc.com..
    The NIS+ server daemon, rpc.nisd, must be running on client1 with the proper 
    options to serve this domain. ... 

    注 –

    この複製サーバーを NIS (YP) 互換モードで実行する場合は、/lib/svc/method/nisplus ファイルに -Y オプションを追加します。このファイルの変更が必要となるのは、ルート複製サーバーで NIS クライアント要求を実行する場合で、このサーバーが NIS 互換サーバーとして構成されていない場合に限られます。NIS 互換サーバーの作成方法については、「クライアントを NIS+ サーバーとして構成する方法」を参照してください。NIS+ でのサービス管理機能コマンドの使用方法については、「NIS+ とサービス管理機能」を参照してください。


  4. (省略可能) 複製サーバーを NIS (YP) 互換モードで稼働させることができるように構成します。

    複製サーバーを NIS 互換モードで稼働させるには、次の手順に従います。

    1. NIS+ サービスを停止します。


      # svcadm disable /network/rpc/nisplus:<instance>
      
    2. サーバーの /lib/svc/method/nisplus ファイルを編集して -Y オプションを追加します。

    3. NIS+ サービスを再起動します。


      # svcadm enable /network/rpc/nisplus:<instance>
      
  5. 新たに作成した複製サーバーに名前空間データをロードします。

    これには、次の 2 つの方法があります。

    • NIS+ の保存と復元の機能を使用して、マスターサーバーのデータを保存し、作成した複製サーバーに復元します (こちらの方法をお勧めします)。具体的な手順については、「名前空間データをロードする方法—nisrestore による方法」を参照してください。

    • nisping を実行します。nisping を実行すると、マスターサーバーのすべての NIS+ データを複製サーバーに完全に再同期させることができます。しかし、大きな名前空間の場合、処理に長時間かかることがあります。その間、マスターサーバーはビジーになって応答が遅く、また作成した複製サーバーはまだ NIS+ 要求に応答できない状態になることがあります。具体的な手順については、「名前空間データをロードする方法—nisping による方法」を参照してください。

    名前空間データのロードが終了すれば、マシン client1 は NIS+ ルート複製サーバーとなります。この新しいルート複製サーバーは、ルートドメインのクライアントからの要求を処理できます。これでドメインで使用可能なサーバーが 2 台となるため、要求を速く処理できます。

    これらの手順に従って、複製サーバーを必要なだけ作ることができます。同じ手順を使ってサブドメインに複製サーバーを作ることもできます。

Multihomed NIS+ 複製サーバーの設定方法

Multihomed NIS+ サーバーを設定する手順は、単一インタフェースサーバーの設定手順と同じです。唯一の相違点は、ローカルの /etc/hosts ファイル、/etc/inet/ipnodes ファイルと NIS+ の hosts テーブルおよび ipnodes テーブル内に定義する必要があるインタフェースが、単一インタフェースサーバーよりも多いという点です。ホスト情報を定義したら、nisclientnisserver スクリプトを使用して Multihomed NIS+ サーバーを設定します。


注意 – 注意 –

Multihomed NIS+ サーバーを設定する場合は、サーバーの主体名はシステムのノード名と同じにする必要があります。これは、Secured RPC と nisclient を同時に使用する際の必要条件です。

ノード名と主体名が異なる場合、Secured RPC 認証は適正に動作できず、その結果 NIS+ で問題が発生します。


次に、NIS+ ルートマスター以外のサーバーの設定手順を示します。以下の例では、ルートドメインの複製を作成しています。muitihomed ルートサーバーの設定方法については、「Multihomed NIS+ ルートマスターサーバーの設定方法」を参照してください。

  1. サーバーのホスト情報を hosts ファイルまたは ipnodes ファイル内に追加します。

    たとえば、3 つのインタフェースを装備した hostB システムの場合は、次のように入力します。


    192.168.11.y hostB hostB-11
    192.168.12.x hostB hostB-12
    192.168.14.z hostB hostB-14
     
  2. ルートマスターサーバー上で、nispopulate または nisaddent のどちらかを使用して、新しいホスト情報を hosts テーブルまたは ipnodes テーブル内にロードします。

    たとえば、以下のようになります。


    hostA# nispopulate -F -d sun.com hosts
    

    この例では、sun.com は NIS+ ルートドメイン名を表しています。自分の NIS+ ルートドメイン名を指定して nispopulate コマンドを実行してください。

  3. ルートマスターサーバー上で、nisclient スクリプトを使用して新しいクライアントの資格を作成します。

    たとえば、以下のようになります。


    hostA# nisclient -c -d sun.com hostB
    

    この例では、sun.com は ルートドメイン名を表しています。自分のルートドメイン名を指定して nisclient コマンドを実行してください。

  4. ルート以外のマスターサーバー上で、新しいサーバーがまだ稼働していない場合は、nisclient を使用して新しいサーバーを起動し、このマシンを NIS+ クライアントとして初期化します。

    たとえば、以下のようになります。


    hostB# nisclient -i -d sun.com
    

    この例では、sun.com は ルートドメイン名を表しています。自分のルートドメイン名を指定して nisclient コマンドを実行してください。

  5. ルートマスター上で、nisserver を使用してルートマスター以外のサーバーを設定します。

    たとえば、以下のようになります。


    hostA# nisserver -M -d eng.sun.com -h hostB.sun.com.
    

    この例では、eng.sun.com は NIS+ ドメイン名を表し、hostB.sun.com は NIS+ サーバーの完全指定ホスト名を表しています。nisserver コマンドは、自分の NIS+ ドメイン名と NIS+ サーバーの完全指定ホスト名を指定して実行してください。

  6. ルートマスターサーバー上で、nisserver を使用して複製サーバーを設定します。

    たとえば、以下のようになります。


    hostA# nisserver -R -d sun.com -h hostB.sun.com.
    

    この例では、sun.com は 複製サーバーを表し、hostB.sun.com は NIS+ サーバーの完全指定ホスト名を表しています。nisserver コマンドは、自分の複製サーバー名と NIS+ サーバーの完全指定ホスト名を指定して実行してください。

multihomed NIS+ 複製サーバーの設定が完了したら、このあとの設定手順は、単一インタフェースのサーバーの設定手順とまったく同じです。