同期

同期は、あるレプリカから他のレプリカへのディレクトリ情報の伝播であるため、各パーティションの情報は他のパーティションの情報と整合性を保ちます。eDirectoryは自動的にそれらのサーバの同期を維持します。

同期には、インバウンド同期とアウトバウンド同期があります。たとえば、データに加えられた変更をserver1とserver2の間で同期する必要がある場合、「アウトバウンド」という用語は、server1からserver2に送信される同期プロセスを意味します。「インバウンド」という用語は、server2によって受信されたserver1からの同期プロセスを意味します。

図 23
アウトバウンド同期とインバウンド同期

同期には、次の2つのタイプがあります。

次の表に、通常同期と優先度同期の比較を示します。


表 1. 通常同期またはレプリカ同期と優先度同期の比較

通常同期またはレプリカ同期 優先度同期

レプリカリング内の任意のサーバのデータに変更が加えられた場合にトリガされます。

詳細については、通常同期またはレプリカ同期を参照してください。

重要データとして指定しているデータに変更が加えられた場合のみトリガされます。

詳細については、優先度同期を参照してください。

データが変更されると、変更内容はバッファに保存されます。通常同期は、変更内容が保存されてから約30秒後に開始されます。

重要データへの変更はバッファに保存されません。優先度同期は、データが変更された直後に開始されます。

eDirectoryで最も重要な同期です。変更が優先度同期によって同期されているかどうかにかかわらず実行されます。

通常同期を補完するものです。重要な属性は優先度同期によって同期され、通常同期によって再度同期されます。

eDirectory 8.8サーバ間または以前のバージョンのeDirectoryをホストするサーバ間で実行可能です。

同じパーティションを保持しているeDirectory 8.8サーバ間でのみ実行されます。

機能上、失敗することはありません。

詳細については、同期の特徴を参照してください。

優先度同期が失敗した場合、重要なデータへの変更は通常同期によって同期されます。

詳細については、優先度同期が失敗する場合を参照してください。


同期の特徴

eDirectoryでの同期には、次のような特徴があります。


遷移同期

eDirectoryでの同期は遷移同期です。つまり、eDirectoryでデータへの変更を同期する場合、eDirectoryエージェントがレプリカリング内の他のすべてのエージェントに直接接続して変更を同期する必要はありません。

図 24
遷移同期

たとえば、Server 1でデータに変更を加えた場合、その変更はServer 1からServer 2、およびServer 2からServer 3に同期されます。通信上の問題のためServer 1がServer 3に直接接続できなかった場合でも、Server 3はServer 2を介してデータへの最新の変更内容を受信します。Server 3は、変更内容を受信したことをServer 2に通知します。次にServer 2は、Server 3とServer 2が同期していることをServer 1に通知します。


オブジェクトトランザクションモデル

eDirectoryでの同期では、LDAPおよびX.500準拠ディレクトリの標準であるオブジェクトトランザクションモデルが維持されます。オブジェクトトランザクションモデルでは、新しいトランザクションを同期する前に、以前のトランザクションをすべて同期する必要があります。

たとえば、サーバ上でデータにD1、D2、およびD3という変更を加えたとします。ネットワーク障害のため、これらの変更は他のサーバ間で同期されません。サーバ上で別のD4という変更を行った場合、D1、D2、およびD3がレプリカリング内のすべてのサーバ間で同期された後でのみ、D4が同期されます。


遷移ベクトル

遷移ベクトルとは、レプリカのタイムスタンプのことです。レプリカ作成時刻を1970年1月1日からの経過秒数で表したものと、レプリカ番号、および現在のイベント番号を組にして表示されます。たとえば次のような形をしています。s3D35F377 r02 e002

詳細については、遷移ベクトルと復元後の検証処理を参照してください。


Local Received Up To

Local Received Up To (LRUT)は、ローカルレプリカが変更内容を受信するまでの時間です。

詳細については、ツリー内のオブジェクトの参照 を参照してください。


Remote Received Up To

Remote Received Up To (RRUT)は、リモートレプリカのLRUTです。

詳細については、ツリー内のオブジェクトの参照 を参照してください。


通常同期またはレプリカ同期

通常同期またはレプリカ同期は、eDirectoryにおける2つの同期プロセスの1つです。通常同期では、サーバ上のデータへの変更がすべて、レプリカリング内の他のサーバと同期されます。

通常同期は、同じパーティションを持つ任意のバージョンのeDirectoryが実行されているすべてのサーバ間で行われます。

詳細については、レプリカの管理を参照してください。

通常同期を有効または無効にするには、Novell iMonitorでアウトバウンド同期およびインバウンド同期を有効または無効にします。インバウンド同期およびアウトバウンド同期は両方とも、デフォルトでは有効になっています。通常同期を介して他のサーバ間でデータへの変更を同期するには、iMonitorで同期パラメータを設定する必要があります。詳細については、DSエージェントを制御および環境設定するを参照してください。

通常同期では、データに変更が加えた場合、変更内容はサーバ間で同期される前に、バッファに保存されます。サーバの同期ステータスは、iMonitorで表示できます。詳細については、ツリー内のオブジェクトの参照 を参照してください。

通常同期は遷移同期であり、オブジェクトトランザクションモデルが維持されます。詳細については、101ページの「遷移同期」および「オブジェクトトランザクションモデル」を参照してください。


通常同期を設定する

通常同期を設定するには、iMonitorの[エージェント同期]にある[エージェント環境設定]を使用します。

このセクションでは、次の情報について説明します。


通常同期を有効/無効にする

通常同期を有効または無効にするには、iMonitorでアウトバウンド同期およびインバウンド同期を有効または無効にします。詳細については、DSエージェントを制御および環境設定するを参照してください。

アウトバウンド同期は、デフォルトで有効になっています。このオプションをサーバで無効にしている場合、このサーバ上のデータへの変更は、他のサーバと同期されません。アウトバウンド同期を無効にする期間(単位は時間)を指定できます。デフォルト(最大時間)は24時間です。指定された期間が過ぎると、そのサーバでデータに加えられた変更が他のサーバと同期されるようになります。

インバウンド同期は、デフォルトで有効になっています。サーバに対してこのオプションを無効にすると、他のサーバでデータに加えられた変更がそのサーバと同期されなくなります。


インラインキャッシュを有効/無効にする

サーバのインラインキャッシュ変更を有効または無効にできます。インラインキャッシュ変更は、アウトバウンド同期が無効になっている場合のみ、無効にできます。アウトバウンド同期を有効にすると、インラインキャッシュ変更も有効になります。

インラインキャッシュ変更を無効にすると、このレプリカの変更キャッシュが無効としてマークされ、[エージェント環境設定]>[パーティション]に無効なフラグが付けられます。インラインキャッシュ変更を有効にすると、変更キャッシュの再構築時に、無効な変更キャッシュのフラグが削除されます。


同期スレッド

アウトバウンド同期を行うには、同期スレッドを設定する必要があります。iMonitorで、[エージェント同期]の下にある[エージェント環境設定]を使用して同期スレッド数を指定します。有効な値は1〜16です。

詳細については、DSエージェントを制御および環境設定するを参照してください。


同期メソッド

通常、eDirectoryでは、レプリカおよびレプリケーションパートナーの数に基づいてメソッドが自動的に選択されます。同期メソッドは、次のとおりです。

  • パーティションごと: データへの変更は、他のレプリカと同時に同期されます。変更の同期には複数のスレッドが使用されます。たとえば、レプリカR1のデータにD1、D2、およびD3という変更が加えられ、これらの変更をレプリカR2およびR3の間で同期させる必要がある場合、D1、D2、およびD3はR2およびR3と同時に同期されます。

  • サーバごと: データへの変更は順次に同期されます。変更の同期には1つのスレッドのみが使用されます。たとえば、レプリカR1のデータにD1、D2、およびD3という変更を加えたとします。これらの変更をレプリカR2およびR3の間で同期させる必要があります。まず、D1がR2およびR3と同期されます。次に、D2がR2およびR3と同期されます。

  • ダイナミック調整: 割り当てたシステムリソースに基づいて、eDirectoryによって同期メソッドが自動的に選択されます。

iMonitorで、[エージェント同期]にある[エージェント環境設定]を使用して同期メソッドを指定できます。詳細については、DSエージェントを制御および環境設定するを参照してください。


優先度同期

優先度同期は、eDirectoryにおける2つの同期プロセスの1つです。eDirectory 8.8以降では、重要なデータを直ちに同期させる必要がある場合に優先度同期を使用でき、通常同期を待つことはできません。

優先度同期は、eDirectoryでの通常同期プロセスを補完するものです。通常同期とは異なり、優先度同期では、変更内容はサーバ間で同期される前にバッファに保存されません。そのため、優先度同期は通常同期より高速になります。

優先度同期は、デフォルトで有効になっています。詳細については、インバウンド優先度同期およびアウトバウンド優先度同期を有効/無効にするを参照してください。

優先度同期を介して重要なデータへの変更を同期するには、次の手順を実行します。

  1. 優先度同期のスレッド数を指定します。

    詳細については、優先度同期スレッドを参照してください。

  2. 優先度同期キューサイズを指定します。

    詳細については、優先度同期キューサイズを参照してください。

  3. 優先度同期ポリシーを作成して定義するには、優先度同期を介して同期する重要な属性を指定します。

    詳細については、優先度同期ポリシーを作成および定義するを参照してください。

  4. 優先度同期ポリシーを1つ以上のパーティションに適用します。

    詳細については、優先度同期ポリシーを適用するを参照してください。

優先度同期プロセスでは、重要な属性への変更のみが同期されます。重要な属性を持つ新しいオブジェクトを作成した場合、作成されたオブジェクトは他のサーバと同期されません。

優先度同期では、オブジェクトトランザクションモデルが維持されます。したがって、重要ではないデータが変更され、まだ同期されていない場合、および重要なデータが同じエントリで変更された場合には、重要ではないデータが重要なデータとともに同期されます。

たとえば、ユーザがIncome、Employee No、Address、Cube Noという属性を持っているとします。その中のIncomeとAddressが重要な属性です。Employee NoおよびCube Noは変更されていますが、これらの変更はまだ同期されていません。IncomeおよびAddressへの変更が優先度同期を介して同期されると、Employee NoおよびCube Noも(重要データとして指定されていませんが)同期されます。

このセクションでは、次の情報について説明します。


インバウンド優先度同期およびアウトバウンド優先度同期を有効/無効にする

eDirectory 8.8以降でインバウンド優先度同期およびアウトバウンド優先度同期を有効または無効にするには、iMonitorを使用します。詳細については、DSエージェントを制御および環境設定するを参照してください。

インバウンド優先度同期は、デフォルトで有効になっています。インバウンド優先度同期をサーバで無効にしている場合、他のサーバ上の重要なデータへの変更は、優先度同期ではこのサーバと同期されません。ただし、変更は通常同期プロセスによって同期されます。

アウトバウンド優先度同期は、デフォルトで有効になっています。このオプションをサーバで無効にしている場合、このサーバ上の重要なデータへの変更は、優先度同期では他のサーバと同期されません。ただし、変更は通常同期プロセスによって同期されます。


優先度同期スレッド

アウトバウンド優先度同期に使用するスレッド数を設定する必要があります。iMonitorで、[エージェント同期]の下にある[エージェント環境設定]を使用して、優先度同期スレッド数を指定します。詳細については、DSエージェントを制御および環境設定するを参照してください。有効な値は1〜32であり、デフォルトは4です。


優先度同期キューサイズ

これは、同期の前にキューで保持可能な、変更された重要なエントリの最大数です。重要なエントリは、変更されるとすぐに優先度同期キューに入れられ、順次に同期されます。たとえば、server1でD1、D2、およびD3という重要なエントリが変更されており、これらのエントリを、優先度同期を介してserver2およびserver3間で同期させる必要がある場合には、まずD1がserver2およびserver3と同期されます。次にD2がserver2およびserver3と同期され、その後、D3がserver2およびserver3と同期されます。キュー内の以前のエントリがサーバのいずれかと正常に同期していない場合でも、その他のエントリの同期には影響しません。

図 25
優先度同期キュー

iMonitorで優先度同期キューサイズを指定するには、[エージェント同期]の下にある[エージェント環境設定]を使用します。詳細については、DSエージェントを制御および環境設定するを参照してください。

優先度同期プロセス中、多数の変更が短い間隔で行われ、キューが最大サイズに達した場合には、キューは期限切れになり、新しいキューが形成されます。まだ同期されていない古いキュー内の変更は、通常同期によって同期されます。

優先度同期のキューサイズとして有効な値の範囲は、0〜232 - 1です。デフォルト値は232 - 1です。優先度同期キューサイズが0に設定されている場合、変更は優先度同期では同期されません。これらの変更は通常同期によって同期されます。

-1を指定すると、キューサイズが無限大になります。-1は232 - 1です。-3などの負の値を指定した場合は、-3 = -1-2となり、232 - 1-2となります。


優先度同期ポリシーを管理する

優先度同期の管理は、iManagerまたはLDAPを使用して、ポリシーを作成および定義し、パーティションに適用することで行えます。優先度同期ポリシーを定義するには、重要な属性を指定します。

注:  プラグインは、Novell iManager 2.5以降でのみ利用できます。

図 26
優先度同期プロセス

たとえば、PasswordおよびAccount Numberという属性が重要である場合、これらの属性を含む優先度同期ポリシーPS1を作成できます。その後、ポリシーPS1をパーティションP1に適用できます。サーバ上のエントリのパスワードまたはアカウント番号を変更した場合、その変更は、パーティションP1を持つ他のサーバと直ちに同期されます。

優先度同期が実行されるようにするには、iMonitorでアウトバウンド優先度同期およびインバウンド優先度同期が有効になっていることを確認する必要があります。インバウンド優先度同期およびアウトバウンド優先度同期は、デフォルトで有効になっています。インバウンド優先度同期およびアウトバウンド優先度同期を無効にしている場合、データへの変更は通常同期によって同期されます。

詳細については、「DSエージェントを制御および環境設定する」を参照してください。

このセクションでは、次の情報について説明します。

チャイルドパーティションを作成した場合は、ペアレントに適用されている優先度同期ポリシーがチャイルドパーティションによって継承されます。パーティションをマージした場合は、ペアレントの優先度同期ポリシーが保持されます。


優先度同期ポリシーを作成および定義する

優先度同期ポリシーの定義は、属性を直接選択するか、オブジェクトクラスを介して選択することで行えます。オブジェクトクラスを介して属性を選択する場合は、オブジェクトクラスの下にあるすべての属性が優先度同期に選択されます。優先度同期には、必須属性またはオプション属性を選択できます。

優先度同期ポリシーは、iManagerまたはLDAPのいずれかを使用して、eDirectoryツリー内の任意の場所で作成できます。

iManagerを使用する場合

  1. [役割およびタスク]ボタン[役割およびタスク]ボタンをクリックします。

  2. [パーティションとレプリカ]>[優先度同期ポリシー]の順にクリックします。

  3. [優先度同期ポリシー管理ウィザード]で、[作成]を選択します。

  4. ウィザードの指示に従って、ポリシーを作成します。

    ウィザードの各段階で、[ヘルプ]が利用できます。

LDAPを使用する場合

空の優先度同期ポリシーを作成するには、次のように指定します。

dn:cn=policy1,o=policieschangetype:addobjectclass:prsyncpolicy

優先度同期ポリシーを定義するには、優先度同期の属性をマークします。

dn:cn=policy2,o=policieschangetype:addobjectclass:prsyncpolicyprsyncattributes:description

上の例では、Descriptionが優先度同期としてマークされた属性です。


優先度同期ポリシーを編集する

優先度同期ポリシーオブジェクトの編集は、iManagerまたはLDAPを使用して行えます。

iManagerを使用する場合

  1. [役割およびタスク]ボタン[役割およびタスク]ボタンをクリックします。

  2. [パーティションとレプリカ]>[優先度同期ポリシー]の順にクリックします。

  3. [優先度同期ポリシー管理ウィザード]で、[編集]を選択します。

  4. ウィザードの指示に従って、ポリシーを編集します。

    ウィザードの各段階で、[ヘルプ]が利用できます。

LDAPを使用する場合

次の例では、DescriptionではなくSurnameを優先度同期としてマークすることで、優先度同期ポリシーが変更されています。

dn:cn=policy2,o=policieschangetype:modifyadd:prsyncattributesprsyncattributes:surname

優先度同期としてマークされている属性を優先度同期ポリシーから削除するには、次のように指定します。

dn:cn=policy2,o=policieschangetype:modifyadd:prsyncattributesprsyncattributes:description

上の例では、属性Descriptionが優先度同期ポリシーから削除されています。


優先度同期ポリシーを適用する

1つの優先度同期ポリシーを多数のパーティションに適用できます。ただし、複数のポリシーを1つのパーティションに適用することはできません。

優先度同期ポリシーをパーティションに適用するには、iManagerまたはLDAPを使用して行えます。

iManagerを使用する場合

  1. [役割およびタスク]ボタン[役割およびタスク]ボタンをクリックします。

  2. [パーティションとレプリカ]>[優先度同期ポリシー]の順にクリックします。

  3. [優先度同期ポリシー管理ウィザード]で、[適用]を選択します。

  4. ウィザードの指示に従って、ポリシーを適用します。

    ウィザードの各段階で、[ヘルプ]が利用できます。

LDAPを使用する場合

優先度同期ポリシーをルートパーティションに適用するには、次のように指定します。

dn:changetype:modifyadd:prsyncpolicydnprsyncpolicydn:cn=policy2,o=policies

上の例では、policy2がルートパーティションに適用されています。

優先度同期ポリシーを非ルートパーティションに適用するには、次のように指定します。

dn:o=orgchangetype:modifyadd:prsyncpolicydnprsyncpolicydn:cn=policy2,o=policies

上の例では、policy2が非ルートパーティションに適用されています。

非ルートパーティションの優先度同期ポリシーを置き換えるには、次のように指定します。

dn:o=orgchangetype:modifyreplace:prsyncpolicydnprsyncpolicydn:cn=policy1,o=policies

上の例では、policy2がpolicy1に置き換えられています。

優先度同期ポリシーと非ルートパーティションとの関連付けを解除するには、次のように指定します。

dn:o=orgchangetype:modifydelete:prsyncpolicydn

上の例では、優先度同期ポリシーと非ルートパーティションO=Orgとの関連付けが解除されています。


優先度同期ポリシーを削除する

優先度同期ポリシーの削除は、iManagerまたはLDAPを使用して行えます。

iManagerを使用する場合

  1. [役割およびタスク]ボタン[役割およびタスク]ボタンをクリックします。

  2. [パーティションとレプリカ]>[優先度同期ポリシー]の順にクリックします。

  3. [優先度同期ポリシー管理ウィザード]で、[削除]を選択します。

  4. ウィザードの指示に従って、ポリシーを削除します。

    ウィザードの各段階で、[ヘルプ]が利用できます。

LDAPを使用する場合

dn:cn=policy1,o=policieschangetype:delete


優先度同期が失敗する場合

優先度同期は、次のような状況下で失敗する可能性があります。

  • ネットワーク障害。ネットワーク障害の発生時、変更内容をリモートサーバに送信できない場合、優先度同期では変更内容が保存されません。
  • 優先度同期キューサイズが最大値に達した場合。エントリ数が優先度同期キューサイズを超えた場合、優先度同期では、優先度同期キュー内の変更が無視されます。
  • スキーマ同期の失敗。スキーマが同期されていない場合、優先度同期プロセスは失敗します。
  • オブジェクトが他のサーバに存在していない。オブジェクトの作成が同期されていない場合、優先度同期は失敗します。
  • レプリカリング内でのサーバの混在。eDirectory 8.8およびeDirectory 8.8より前のサーバの両方を実行している場合、優先度同期は失敗します。

これらの理由のいずれかのために優先度同期が失敗した場合には、重要なデータへの変更は通常同期によって同期されます。