4.1 同期

同期とは、ディレクトリ情報をレプリカ間で転送し、各パーティション内の情報が互いに整合性を保つようにすることです。eDirectoryにより、レプリカリング内のサーバは自動的に同期されます。

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

図 4-1 アウトバウンド同期とインバウンド同期

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

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

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

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

優先度同期

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

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

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

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

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

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

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

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

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

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

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

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

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

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

メモ:優先度同期情報は、ndstrace、dstrace、またはiMonitorトレース画面内のSYDLまたは同期詳細タグにあります。

4.1.1 同期の特徴

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

遷移同期

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

図 4-2 遷移同期

たとえば、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です。

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

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

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

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

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

通常同期を有効または無効にするには、NetIQ 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エージェントを制御および環境設定するを参照してください。

メモ:eDirectory9.0以降では、Skulkerはデータトランザクションが正常に完了するとただちに、遅延なく同期を開始します。これは、eDirectoryの操作のパフォーマンスに影響する場合があります。eDirectoryの操作のパフォーマンスを向上させたい場合、NDSD_CC_SKULK_DELAY環境変数をエクスポートすることによって、同期に遅延を導入することができます。この変数の値は、次の例のように秒単位でのみ入力できます。

NDSD_CC_SKULK_DELAY=<SECONDS>
NDSD_CC_SKULK_DELAY=5

上の例では、eDirectoryサーバ間のデータの同期の遅延は5秒間です。同期がすでに進行中の場合は、即時スカルキングがスケジュールに影響することはありません。

4.1.3 優先度同期

優先度同期は、eDirectoryにおける2つの同期プロセスの1つです。優先度同期を使用すると、通常同期を待たずに重要なデータを同期することができます。

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

通常の同期を待てない場合は、優先度同期によって重要なデータを同期できます。優先度同期プロセスは通常の同期プロセスより高速です。優先度同期は、同じパーティションをホストしている2台以上のeDirectory 8.8以降のサーバ間でのみサポートされます。

次の表に、優先度同期機能をサポートするプラットフォームを示します。

機能リスト

Linux

Windows

優先度同期

このセクションでは、次の情報を紹介します。

優先度同期の必要性

通常の同期では時間がかかる場合がありますが、その間、変更されたデータは他のサーバで使用できません。たとえば、ディレクトリと通信している異なるアプリケーションがあるとします。サーバ1でパスワードを変更します。通常の同期では、この変更がサーバ2と同期されるまでしばらく時間がかかります。このため、ユーザはまだ古いパスワードを使用して、サーバ2と通信するアプリケーションを通してディレクトリへの認証を行うことができます。

図 4-3 優先度同期の必要性

大規模な展開においては、オブジェクトの重要なデータが変更されたときに、変更が直ちに同期される必要があります。優先度同期プロセスはこの問題を解決します。

優先度同期の使用

優先度同期を使用して日付の変更を同期するには、次の操作を行う必要があります。

  1. 優先度同期を有効にして、スレッド数を設定します。次に、 iMonitorから優先度同期キューサイズを設定します。

  2. iManagerを使用して重要な属性を指定し、優先度同期ポリシーを定義します。

  3. iManagerを使用して、優先度同期ポリシーをパーティションに適用します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

優先度同期スレッド

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

優先度同期キューサイズ

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

図 4-4 優先度同期キュー

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

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

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

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

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

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

メモ:プラグインは、NetIQ iManager 2.6以降でのみ利用できます。

図 4-5 優先度同期プロセス

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

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

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

この節では、次のトピックについて説明します。

子パーティションを作成した場合、親に適用されている優先度同期ポリシーが子パーティションに継承されます。パーティションをマージした場合、親の優先度同期ポリシーが保持されます。

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

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

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

iManagerの使用:

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

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

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

  4. 次へをクリックします。

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

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

LDAPを使用する場合:

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

dn:cn=policy1,o=policies
changetype:add
objectclass:prsyncpolicy

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

dn:cn=policy2,o=policies
changetype:add
objectclass:prsyncpolicy
prsyncattributes:description

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

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

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

iManagerの使用

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

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

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

  4. 次へをクリックします。

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

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

LDAPを使用する場合

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

dn:cn=policy2,o=policies
changetype:modify
add:prsyncattributes
prsyncattributes:surname

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

dn:cn=policy2,o=policies
changetype:modify
add:prsyncattributes
prsyncattributes:description

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

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

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

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

iManagerの使用:

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

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

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

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

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

LDAPを使用する場合:

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

dn:
changetype:modify
add:prsyncpolicydn
prsyncpolicydn:cn=policy2,o=policies

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

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

dn:o=org
changetype:modify
add:prsyncpolicydn
prsyncpolicydn:cn=policy2,o=policies

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

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

dn:o=org
changetype:modify
replace:prsyncpolicydn
prsyncpolicydn:cn=policy1,o=policies

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

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

dn:o=org
changetype:modify
delete:prsyncpolicydn

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

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

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

iManagerの使用:

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

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

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

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

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

LDAPを使用する場合:

dn:cn=policy1,o=policies
changetype:delete

メモ:優先度同期ポリシーの作成と管理の詳細については、LinuxでのLDAPツールの使用およびNetIQインポート/エクスポート変換ユーティリティを参照してください。

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

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

  • ネットワーク障害: ネットワークに障害が発生し、変更内容をリモートサーバに送信できない場合、優先度同期では変更内容が保存されません。

  • 優先度同期キュー最大サイズに到達: エントリ数が優先度同期キューサイズを超える場合、優先度同期では、優先度同期キュー内の変更が無視されます。

  • スキーマ同期の失敗: スキーマが同期されない場合、優先度同期プロセスが失敗します。

  • オブジェクトが他のサーバ上に存在しない: オブジェクトの作成そのものが同期されない場合、優先度同期は失敗します。

  • レプリカリング内のサーバの混在: eDirectory 8.8とeDirectory 8.8より前の両方のサーバがある場合、優先度同期が失敗します。

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

4.1.4 ポリシーベースのレプリケーション

eDirectoryのレプリケーションは、デフォルトでメッシュトポロジに従います。つまり、レプリカリング内のすべてのレプリカが、相互にアウトバウンドおよびインバウンドになることができます。メッシュモデルはすべての環境に適しているとは限りません。ポリシーベースのレプリケーションを使用すると、管理者はレプリケーショントポロジを設定し、レプリケーショントラフィックを最適化することができます。

レプリケーショントポロジを設定するには、ポリシーファイルを作成し、1つのファイルですべてのパーティションに対するポリシーを指定して、必要なサーバにそれをコピーします。

Linuxの場合

XML形式のポリシーファイルを作成し、それにselectivesync.xmlという名前を付けて、nds.confファイルと一緒に配置します。

ポリシーのXML定義のサンプルを次に示します。

<?xml version="1.0" encoding="utf-8" ?>
<SelectiveSync   xmlns="http://www.novell.com/nds"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.novell.com/nds  
  file:/opt/novell/eDirectory/lib64/nds-schema/xsd/selectivesync.xsd" config-version="0.1">
    <Partition DN=".novell.TREE.">
         <SourceServer DN=".server1.novell.TREE.">
                <SyncronizeTo>.server2.novell.TREE.</SyncronizeTo>
         </SourceServer>
         <SourceServer DN=".server2.novell.TREE.">
                <SyncronizeTo>.server3.novell.TREE.</SyncronizeTo>
         </SourceServer>
         <SourceServer DN=".server3.novell.TREE.">
                <SyncronizeTo>.server1.novell.TREE.</SyncronizeTo>
         </SourceServer>
    </Partition>
</SelectiveSync>

Windowsの場合

XML形式のポリシーファイルを作成し、それにselectivesync.xmlという名前を付けて、インストール場所(たとえばC:\Novell\NDS)に配置します。

ポリシーのXML定義のサンプルを次に示します。

<?xml version="1.0" encoding="utf-8" ?>
<SelectiveSync   xmlns="http://www.novell.com/nds"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.novell.com/nds    
C:\Novell\NDS\selectivesync.xsd" config-version="0.1">
    <Partition DN=".novell.TREE.">
         <SourceServer DN=".server1.novell.TREE.">
                <SyncronizeTo>.server2.novell.TREE.</SyncronizeTo>
         </SourceServer>
         <SourceServer DN=".server2.novell.TREE.">
                <SyncronizeTo>.server3.novell.TREE.</SyncronizeTo>
         </SourceServer>
         <SourceServer DN=".server3.novell.TREE.">
                <SyncronizeTo>.server1.novell.TREE.</SyncronizeTo>
         </SourceServer>
    </Partition>
</SelectiveSync>

Windowsでは、xsdパスを指定するときにファイルがないことに注意してください。

4.1.5 同期スレッドの手動設定

作成されるスレッドの最大数を設定することで、より多くのサーバに同時に複製されるよう、作成されるスレッド数を手動で増やすことができます。この設定は、サーバ上のすべてのパーティションに適用できます。

作成されるスレッドの最大数を設定するには、次の手順を実行します。

  1. iMonitorにログインします。

  2. [エージェント環境設定]>[エージェント同期]に移動します。

  3. オプションで、[同期メソッド]セクションの[サーバごと]を選択します。

  4. [システム計測同期スレッド]セクションで[無効]を選択します。

  5. [最大手動設定同期スレッド]セクションで、所要のスレッド数を設定します。

システム計測同期

システム計測同期では、次の2つの式によってSkulkerスレッドの数が計算されます。

  • パーティションモードの場合: Skulkerスレッドの数=そのサーバ上のパーティションの数

  • サーバモードの場合: Skulkerスレッドの数=(サーバに認識されているサーバの数+1)/2

ただし[最大システム計測同期スレッド]が無効になっている場合は、上記の2つの式は使用されません。代わりに[最大手動設定同期スレッド]が使用されます。

たとえば、5つのサーバと3つのパーティションを使って環境がセットアップされているとします。ここで[最大システム計測同期スレッド]を有効にした場合、パーティションモードでは、最大で3つのSkulkerスレッドがサーバによって作成される可能性があり、サーバモードでも、最大で3つのSkulkerスレッドが作成される可能性があります。しかし、最大数の3つのSkulkerスレッドが存在しても、1つのサーバがすべてのパーティション上の他の4つのサーバに並列的に更新を送ることはできません。この場合は、[最大システム計測同期スレッド]を無効にして、[最大手動設定同期スレッド]でSkulkerスレッドの数を増やします。

Skulkerスレッドの最大数

[最大手動設定同期スレッド]を12に設定すれば、1つのサーバはすべてのパーティションのすべてのサーバに更新を並行して送ることができます。ただし、このセットアップでは、サーバモードで12個を超えるSkulkerスレッド、パーティションモードで3個を超えるSkulkerスレッドを作成できません。たとえ[最大手動設定同期スレッド]を12より高い値に設定したとしてもです。

4.1.6 非同期アウトバウンド同期の設定

旧リリースのeDirectoryでは、1つのサーバから別のサーバへのアウトバウンド同期が単一のスレッドで順次的に実行されたため、変更の複製に長時間かかりました。

eDirectoryに備わっている1つのスレッドは、変更キャッシュを分析し、他のサーバに送るパケットを準備した後、パケットのキューを満たします。別のスレッドがパケットを取得し、それらを他のサーバに1つずつ送ります。これにより同期が最適化され、時間が短縮されます。

1つのサーバから別のサーバへのアウトバウンド同期を設定するには、次の手順を実行します。

  1. iMonitorにログインします。

  2. [エージェント環境設定]>[バックグラウンドプロセスの設定]の順に選択します。

  3. [非同期アウトバウンド同期設定]セクションで、[有効]を選択します。

メモ:非同期アウトバウンド同期を有効にすると、受信側サーバでCPUとI/Oの使用率が増加する可能性があります。これを回避するには、[非同期ディスパッチャスレッド遅延]で遅延時間を指定することにより、パケットを送信するときの遅延を設定できます。この遅延時間として0~999ミリ秒の値を設定できます。デフォルト値は0ミリ秒です。