この章では、複製の Sun Directory Services での動作方法と、管理コンソールを使ったディレクトリサーバーの複製の構成方法について説明します。
マスターの名前付きコンテキストの情報は、dspushd デーモンによって複製に伝達されます。この情報は、複製サーバーで動作する dspulld デーモンでマスターサーバーから「受信」することもできます。dspushd デーモンと dspulld デーモンは、LDAP プロトコルを使って複製名前付きコンテキストを更新します。
複製が定義されているマスター名前付きコンテキストでは、複製ログが維持されます。マスターの名前付きコンテキストが更新されるたびに、そのトランザクションが複製ログに記録されます。dspushd デーモンは、起動されると複製ログを読み込み、変更を複製名前付きコンテキストを持つサーバーに送信します。dsservd サーバーは、dspushd からの更新要求を他の要求と同じように扱います。そして、バインド要求に指定された情報を使って、dspushd 要求に与えるアクセスレベルを設定します。すべての複製更新が行われるためには、dspushd は、複製名前付きコンテキストの構成時に定義された識別名でバインドしなければなりません。別の識別名を指定すると、すべてのエントリに対する書き込みアクセスが与えられないことがあります。
複製をスレーブサーバーで管理する場合は、dspulld デーモンがマスターの名前付きコンテキストと複製の名前付きコンテキストを比較し、複製に対する必要な更新を行います。
複製データ格納には、マスターデータ格納を指す照会があります。複製サーバーは、エントリの変更要求を受け取ると照会をクライアントに返し、マスターサーバーにコンタクトするように指示します。マスター名前付きコンテキストが変更されると、この変更は、dspushd デーモンが次に起動されたときに複製の名前付きコンテキストに送られます。
複製の名前付きコンテキストを含め、データ格納の名前付きコンテキストはどれでも別のサーバーへ複製できます。
マスターサーバーやスレーブサーバーで複製の構成を始める前に、次の点を決めておく必要があります。
どの情報を複製するか
どのサーバーでマスターコピーを持つか
どのサーバーで複製コピーを持つか
更新をマスターサーバーがすべてのスレーブに配信するか、あるいは更新を複製サーバーがマスターから個別に受信するか
複製する情報の定義では、次の内容を指定します。
複製するエントリ
複製する属性
サブツリーの識別名を指定する。サブツリーのすべてのエントリが複製されます。
個別のエントリ (オブジェクト) を指定する。
フィルタを指定する。
すべての属性を指定する。
一定の属性を複製に含む、または複製から除外する。
さらに、複製同期スケジュールを定義できます。このスケジュールによって、すべての更新を複製にいつ送るかが決まります。同期には次の 3 種類があります
「即時 (Immediate)」。複製デーモン dspushd が常に動作し、マスターが変更されるたびに、更新を複製に送信します。
「遅延 (Delayed)」。変更は、dspushd が次に起動されるまで記録されます。この同期を選択した場合は、dspushd のスケジュールを指定する必要があります。
管理コンソールの「更新を直ちに送信 (Send updates now)」コントロールを使うと、未処理の変更を直ちに複製に送信できます。更新トラフィックが予測できない場合や、リモートサーバーがダイヤルアップ回線で接続されている場合には、同期を「無効 (Disabled)」に設定し、「更新を直ちに送信 (Send updates now)」コントロールを使って複製の更新を手動で開始する方がよいこともあります。
すべての複製サーバーを定義する 。「複製を作成するには」を参照してください。
(省略可能) 同期スケジュールを設定する。「マスターサーバーの複製同期スケジュールを設定するには」を参照してください。
「データ格納の作成 (Create Data Store)」ウィンドウか「データ格納の変更 (Modify Data Store)」ウィンドウの「作成 (Create)」メニューから「複製... (Replica...)」を選択します。
「複製の追加 (Add Replica)」ウィンドウが表示されます。
複製の種類 (サブツリーまたはオブジェクト) を指定します。
「サブツリー (Subtree)」または「オブジェクト (Object)」フィールドに、複製するサブツリーかオブジェクトの識別名を指定します。
データ格納全体の複製を作成する場合は、データ格納を識別する名前付きコンテキストの識別名を指定します。
複製する属性を選択します。
すべての属性を選択したり、一定の属性を含めたり除外したりできます。「属性(Attributes)」ポップアップメニューから「除外する属性 (Exclude attributes)」か「含める属性 (Include attributes)」を選択する場合は、複製から除外するまたは複製に含める特定の属性を指定します。
次のパラメータを指定します。
複製を格納するターゲットホスト名 (複製サーバー名)
複製デーモン dspushd が使用する、複製サーバー上の dsservd サーバーのポート
認証を要求するときにマスターが指定する識別名とパスワード
バインド方式 (「なし (Simple)」、「SASL/CRAM-MD5 (SASL with CRAM-MD5)」、または「SASL/外部 SASL (SASL with the EXTERNAL mechanism)」)
セキュリティモード (「セキュリティ保護なし (Insecure)」、「TLS」、または「SSL」)、およびセキュリティモードに「TLS」か「SSL」を選択する場合は SSL キーパッケージ
たとえば図 9-1 は、boston サーバー (ここには示されていない) から名前付きコンテキスト ou=People, o=XYZ, c=US を london スレーブサーバーに複製する例を示しています。
「了解 (OK)」をクリックして複製の定義を保存し、「複製の追加 (Add Replica)」ウィンドウを終了します。
この複製に関する情報が、「データ格納の作成 (Create Data Store)」か「データ格納の変更 (Modify Data Store)」ウィンドウの「複製 (Replicas)」のリストに追加されます
「了解 (OK)」をクリックして、ウィンドウを閉じます。
管理コンソールメインウィンドウの「データ格納 (Data Store)」セクションで、このデータ格納のフォルダアイコンをクリックして、作成した複製が「複製 (Replicas)」フォルダの下に表示されているか確認します。
たとえば図 9-2 は、boston サーバーの名前付きコンテキストと london スレーブサーバー用に定義した複製を示しています。
「更新を複製に送信 (Send Updates to Replica)」メニューボタンから「遅延 (Delayed)」を選択します。
「日付 (Day)」と「時刻 (Time)」メニューボタンが表示されます。
複製を行う日付と時刻を選択します。
管理コンソールメインウィンドウの「適用 (Apply)」をクリックして、変更を保存します。
管理コンソールメインウィンドウの「データ格納 (Data Store)」セクションで、マスターと同期させたい複製を強調表示し、「更新を直ちに送信 (Send updates now)」ボタンをクリックします。
「データ格納を作成するには」に従って、複製の名前付きコンテキストをサーバーに作成します。このとき、必ず「スレーブ (Slave)」モードを選択してください。
(省略可能) マスターサーバーが更新を複製に自動的に配信するようにマスターサーバーを構成していない場合は、受信複製の構成を行います。
(省略可能) 同期スケジュールを設定します。「スレーブサーバーから複製を開始するには」を参照してください。
スレーブサーバーがサポートするスキーマは、複製するエントリに適合していなければなりません。マスターサーバースキーマの変更が、複製されるエントリに影響する場合は、同じ変更をスレーブサーバーのスキーマにも行わなければなりません。マスターサーバーのスキーマからサブスキーマのオブジェクトクラスをスレーブサーバーのスキーマにコピーするだけでは十分ではありません。
この手順は、「データ格納を作成するには」の手順の一部です。この複製名前付きコンテキストが存在する場合は、管理コンソールの「データ格納 (Data Store)」セクションでこのコンテキストをダブルクリックします。
「名前付きコンテキストの追加 (Add Naming Context)」か「名前付きコンテキストの変更 (Modify Naming Context)」ウィンドウの「受信複製を設定 (Configure Pull Replication)」ボタンで「はい (Yes)」を設定します。
追加の複製パラメータフィールドが表示されます。
複製する属性を選択します。
「含める属性 (Include attributes)」か「除外する属性 (Exclude attributes)」を選択する場合は、複製に含める、または複製から除外する属性のリストを指定する必要があります。
マスターサーバーに対する次のパラメータを指定します。
認証を要求するときにスレーブサーバーが指定する識別名とパスワード
バインド要求での LDAP タイムアウト
バインド方式、セキュリティモード、およびセキュリティモードに SSL を選択する場合は SSL キーパッケージ
「了解 (OK)」をクリックして変更を保存し、「名前付きコンテキストの追加 (Add Naming Context)」ウィンドウを終了します。
管理コンソールメインウィンドウの「データ格納 (Data Store)」セクションに追加のコントロールが表示されます。これらのコントロールでは、スレーブサーバーの同期スケジュールを設定したり、任意の時にスレーブから複製を開始したりできます。
「マスターからの更新要求 (Request Updates from Master)」メニューボタンから「有効 (Enabled)」を選択します。
「日付 (Day)」と「時刻 (Time)」メニューボタンが表示されます。
複製を行う日付と時刻を選択します。
管理コンソールメインウィンドウの「適用 (Apply)」をクリックして、変更を保存します。
管理コンソールメインウィンドウの「データ格納 (Data Store)」セクションで、マスターと同期させたい複製を強調表示し、「更新を直ちに要求 (Request updates now)」ボタンをクリックします。
複製名前付きコンテキストの構成が終了したら、マスターデータ格納とスレーブデータ格納を同じ状態にする必要があります。これにより、複製が複製更新をマスターから受け取れるようになります。マスターデータ格納にエントリがすでにある場合は、管理コンソールのダイアログボックスが表示されるので、複製を作成できます。この機能を使えば、マスターにあるエントリから複製を自動的に作成できます。
管理コンソールから複製プロセスを開始できますが、管理コンソールはこのプロセスを制御していないため、エラーメッセージが表示されません。複製ログファイル dspush.log と dspull.log を調べて、複製プロセスが正常に終了したかどうかを確認してください。