段階的な移行
この移行はオプションです。計画プロセス中に段階的な移行戦略が選択された場合は、CA Directory と ODSEE 間のレプリケーションが設定される必要があります。レプリケーションは標準によって統制されていないので、CA Directory と ODSEE では 2 つの異なるアプローチが適用されます。双方向レプリケーションは以下のように設定される必要があります。
cad141jp
この移行はオプションです。計画プロセス中に段階的な移行戦略が選択された場合は、CA Directory と ODSEE 間のレプリケーションが設定される必要があります。レプリケーションは標準によって統制されていないので、CA Directory と ODSEE では 2 つの異なるアプローチが適用されます。双方向レプリケーションは以下のように設定される必要があります。
- CA Directory から ODSEE: DXlink 上の Multiwrite レプリケーションを使用します。レプリケーションは、再生ベースのキューを使用してリアルタイムで実行されます。
- CA Directory から ODSEE: ODSEE のレトロ変更ログ機能を使用してレプリケーションを有効にし、発生した変更をプルして(write-behind)レプリケーションを実行します。
ODSEE へのレプリケーション ユーザの追加
適切な読み取りおよび書き込みアクセス権を持つ CA Directory レプリケーション ユーザを ODSEE で作成することをお勧めします。CA Directory と ODSEE 間のすべての通信は、このユーザとして実行されます。
重要:
このユーザは、CA Directory または ODSEE で、レプリケーションのみに使用し、他のいかなる更新にも使用できません。例:
以下のユーザを追加します。
dn: uid=cadir,ou=People,dc=example,dc=comuserPassword: CADirReplUser
ディレクトリ管理者グループにユーザを追加します。
dn: cn=Directory Administrators,ou=Groups,dc=example,dc=comuniqueMember: uid=cadir,ou=People,dc=example,dc=com
レプリケーション ユーザが作成されました。DXlink 参照を CA Directory DSA インスタンスに追加する必要があります。
注:
これらの変更の後には、ODSEE と CA Directory の間でデータを再同期する必要が生じることがあります。高度な権限を持つ ODSEE ユーザのパスワードは非公開にする必要がありますので、設定でこの情報を難読化することをお勧めします。この手順では、CA Directory ユーザのアカウントまたはファイルにアクセスできるほかのユーザからこのユーザを保護します。この情報は、ODSEE ナレッジ参照を作成するときに使用されます。
$ dxpassword -P CADIR CADirReplUser{CADIR}6nEiBkkG/VHvaDa4sQ==
ODSEE にレプリケートする CA Directory の設定
CA Directory と ODSEE 間の通信を許可するには、管理対象外 DSA 参照を作成します。
以下の手順に従います。
- Directory Manager で、管理対象外 DSA を作成します。次に、その DSA のレプリケーションを設定できます。
注: Multiwrite 無視属性: この設定項目は、更新が ODSEE によって拒否される原因となる可能性がある CA Directory 固有の属性のレプリケーションを阻止するのに使用されます。レプリケーション エラーは、警告ログに記録されます。詳細については、このページで後述する「Multiwrite 無視属性」セクションを参照してください。 - 必要な設定変更後に、ODSEE DXlink 参照が追加されます。
注:CA Directory から ODSEE へのレプリケーションが正常に機能するには、CA Directory と DXlink ナレッジ設定でプレフィックスが同じである必要があります。CA Directory と DXlink ナレッジ設定の DSAFlags に Multiwrite を含める必要があります。 - ODSEE DXlink 参照が設定に追加されると、それをレプリケートするように既存のディレクトリ インスタンスを設定できるようになります。
- CA Directory DSA を選択して編集します。
- [DSA の更新]ダイアログ ボックスで[ナレッジ グループ]タブを選択します。DXlink 参照を追加します。
- [外部 ナレッジ]タブで、Multiwrite レプリケーションを有効にします。
- [設定]タブで、ODSEE の更新がキューに入れられている DSA の偶発的な停止を防止するために、[Multiwrite の待機]設定を有効にします。この設定により、処理中のデータの損失が防止されます。
- ODSEE にレプリケートするように CA Directory が設定されました。
Multiwrite 無視属性
Multiwrite 無視属性の目的は、レプリケーションがいずれかの方向で拒否されることがないようにすることです。
いくつかの考えられる拒否の原因には、以下のものがあります。
* プロプライエタリ属性: 製品に固有の目的でエントリとともに維持管理される属性
* 操作属性: ユーザではなくディレクトリによって維持管理され、多くの場合 no-user-modification としてマークされている属性
* スキーマ内で定義されていない属性: 存在はまれです。マイグレーションの際に他方ではサポートされていない属性がエントリとともに含まれていた場合などが該当します
レプリケーションの更新の失敗を引き起こす属性は、無視することができます。
注
: DXlink のプルまたはプッシュ レプリケーションを初めて設定するときは、更新がいずれかの側で拒否されることがないよう、レプリケーションをモニタリングする必要があります。警告ログは、このような問題を調査するのに適した開始点になります。以下など、他のベンダーのディレクトリ サーバにレプリケートする際に問題を引き起こすことが知られている候補属性は、無視の候補となります。
- dxPwdGraceLogins
- dxPwdGraceUseTime
- dxPwdMustChange
- dxPwdHistory
- dxPwdFailedAttempts
- dxPwdFailedTime
- dxPwdLoginTime
レプリケーションの検証
レプリケーションを設定した後に、そのレプリケーションが正常に動作することを検証します。本稼働データのスナップショットを作成して CA Directory にロードすることができます。この段階ではレプリケーションは一方向のみに動作するので、既存のアプリケーションに影響を及ぼさずに、LDAP ブラウザを使用して CA Directory でダミーのエントリを作成および更新することで、検証を実行できます。
CA Directory に対して実行された更新が ODSEE に反映されない場合は、レプリケーションが正しく機能していません。
- で を$DXHOME/config/logging/default.dxcset trace = error;et trace = ldap;に一時的に置換します。CA Directory が ODSEE への正常な接続を確立したかどうかを確認するには、DSA の再初期化も役立ちます。この手順では、レプリケートされた更新およびレスポンスを確認することもできます。
- ODSEE への接続が失敗した場合や、ODSEE によって拒否されたために更新のレプリケーションが失敗した場合には、それらの失敗が DSA の warn-log に記録されます。
- DXconsole への Telnet 接続、および‘get dsp;’の発行でも、レプリケーション ヘルスが確認されます。この Multiwrite キューの状態は OK である必要があります。FAILED 状態は、問題があることを示しています。$ telnet localhost 1390dsa> get dsp;get dsp;prefix = <dc "com"> <dc "example">local-dsa = cadirmulti-chaining = TRUEalways-chain-down = FALSEmulti-write-disp-recovery = FALSEwait-for-multiwrite = TRUEmulti-write-queue = 20000multi-write-group-credit = 0multi-write-outstanding-ops = 10ODSEE(): OK, total 0, waiting remote 0, confirmed local 0, DXlink注:ODSEE から CA Directory へのレプリケーションの設定に進む前に、レプリケーションが正しく動作していることを確認することが重要です。
CA Directory レプリケーションでは、メモリ再生ベースのキューを DXlink 上のレプリケーションに使用します。つまり ODSEE の更新がキューに入っている間に CA Directory が停止していると、これらの更新は失われてレプリケートされません。このシナリオでは、CA Directory と ODSEE の手動調整が必要になることがあります。この調整は LDIF を使用すると難しい可能性があるので、レプリケートされなかった変更を確認するには、update-log と update-log-show-values が役立つことがあります。
これが発生する可能性を減らすための措置を講じることができます。
- 「Multiwrite キュー」が ODSEE の長時間停止に対応するのに十分な大きさであることを確認します。アラーム ログは、これがいっぱいになっているときと、キューが超過およびパージされた場合を示します。
- 更新がキューに入れられている DSA の偶発的な停止を防止するために、[Multiwrite の待機]設定が有効になっていることを確認します。
- 計画的な停止の場合には、キューに入れられた更新がフラッシュできるように DSA を必ず停止します。
- ODSEE の Multiwrite キューのステータスが常に OK であるように、レプリケーションを監視します。
ODSEE から CA Directory へのレプリケーションの設定
CA Directory から ODSEE へのレプリケーションが正常に動作している場合は、DXlink 参照が正しく設定されています。 CA Directory は、レプリケーションに ODSEE のレトロ変更ログ機能を利用します。CA Directory がプル レプリケーション機能を使用して変更ログ更新をポーリングするように設定できます。
レトロ変更ログの有効化
レトロ変更ログの有効化手順については、ODSEE の製品ドキュメントを参照してください。 有効になると、CA Directory は発生した更新の ODSEE のクエリを開始します。したがって、段階的な移行を開始する準備ができたら、変更ログは有効化される必要があります。プル レプリケーションに不要になった変更ログのエントリを定期的にパージするように、ODSEE が設定される必要があります。エントリがレプリケートされる前にパージされないように注意する必要があります。
例: レトロ変更ログの有効化
$ dsconf set-server-prop -h cadir-odsee -P 1634 retro-cl-enabled:on$ dsadm stop var/dsInst$ dsadm startp var/dsInst
レトロ変更ログの最大有効期間の設定
ODSEE の変更ログ エントリについて retro-cl-max-age を設定している場合、最大有効期間の値を 2 日以上に設定することをお勧めします。
設定すると、retro-cl-max-age 機能によって、ODSEE は最新の変更ログ エントリを残し、変更ログの残りをクリーン アップすることができます。残されたエントリは、指定された最大有効期間より古い最高の番号のエントリとなります。最終的に、次の変更ログには次に高い番号が割り当てられます。このように、ODSEE によってクリーン アップされる前に、変更ログを取得するプル レプリケーションに十分な時間が許可されます。
レプリケーション ユーザによる変更ログへのアクセスの許可
DXlink ユーザは変更ログにアクセスする必要があります。アクセスできないと、プル レプリケーションはゼロ エントリを常に返します。
例: add.ldif の作成
dn: cn=changelogchangetype: modifyadd: aciaci: (target= "ldap:///cn=changelog")(targetattr= "*")(version 3.0; acl "External changelog access"; allow (all) userdn= "ldap:///uid=cadir,ou=People,dc=example,dc=com";)
以下の modify コマンドを実行して、アクセスを含めます。
$ dxmodify -h cadir-odsee -p 1384 -D "cn=Directory Manager" -w password -f add.ldif
参照インデックスの追加
タイムスタンプ チェックポイントを作成するために d
xdisp -c
コマンドが発行されると、CA Directory はタイムスタンプより前のすべての変更ログ エントリを処理対象外として扱います。チェックポイント タイムスタンプ以降の変更ログ エントリのみがプルされます。このタイプの検索は、dxdisp -c
コマンド発行後の初回プルで実行され、サーバ側の並べ替えが発生します。後続のプルは、変更番号に基づきます。ODSEE では、サーバ側の並べ替えが必要な検索操作のために参照インデックスが追加される必要があります。CA Directory のプル レプリケーションには、サフィックスでの
changeNumber
および changeTime
cn=changelog
のサーバ側の並べ替えが必要です。例: ODSEE で属性の参照インデックスを追加するコマンド
- Add_browsing_indexes.ldif を作成します。dn: cn=pullrepl index,cn=changelog,cn=ldbm database,cn=plugins,cn=configobjectClass: topobjectClass: vlvSearchcn: pullrepl_indexvlvBase: cn=changelogvlvScope: 2vlvFilter: (objectClass=changeLogEntry)dn: cn=sort by changeNumber,cn=pullrepl index,cn=changelog,cn=ldbm database,cn=plugins,cn=configobjectClass: topobjectClass: vlvIndexcn: sort by changeNumbervlvSort: changeNumberdn: cn=sort by changeTime,cn=pullrepl index,cn=changelog,cn=ldbm database,cn=plugins,cn=configobjectClass: topobjectClass: vlvIndexcn: sort by changeTimevlvSort: changeTime
- 以下のコマンドを使用して、参照インデックスのエントリを追加します。$ dxmodify -a -h cadir-odsee -p 1384 -D "cn=Directory Manager" -w password -f add_browsing_indexes.ldif
- 最後に、参照インデックスを生成します。$ dsadm reindex -l -t "sort by changeNumber" instance-path "cn=changelog"$ dsadm reindex -l -t "sort by changeTime" instance-path "cn=changelog"
プル レプリケーションの設定
Directory Manager で CA Directory インスタンスの設定を編集して、プル レプリケーションを設定します。
説明
- Source DSA: 設定で作成された DXlink DSA の名前
- Interval (secs): ODSEE からの更新のプルを試行する秒単位間隔
- Change-Log Location: ODSEE レトロ変更ログの親エントリの場所(通常では cn=changelog)
- Ignore Attributes: 無視する ODSEE の属性のリスト。これらは、通常では ODSEE の内部属性であり、更新が CA Directory によって拒否される可能性があります。これらの属性がオブジェクト クラス定義に存在しない可能性があるので、例はサポートされない操作属性になります。
- Window Size: プルが試行されるたびに取得される変更の数
- Retries: アラームを書き込む前にゼロ エントリを取得したプル試行の回数。このオプションは、問題の診断に役立ちます。たとえば、変更ログ内の CA Directory の位置がシーケンスから外れているかどうかを検出できます。
プル レプリケーションでの Multiwrite 無視属性
他のベンダーのレトロ変更ログから更新を取得するプル レプリケーションを設定するときは、CA Directory がサポートしていない属性を「無視属性」リストに含めることにより、それらを無視することができます。
プル レプリケーションの際に無視するべき属性の候補は、以下などです。
- aci
- pwdFailureTime
- pwdAccountLockedTime
- pwdHistory
- passwordHistory
- modifiersName
- modifyTimestamp
- createTimestamp
プル レプリケーション問題の診断
CA Directory によってプルされた後に更新を適用できない場合は、更新およびエラー メッセージがトレース ログにダンプされます。更新の失敗にはさまざまな理由があるので、トレース ログをチェックして、問題を解決します。変更の取得時および変更の適用時には、エラーが発生する可能性があります。
変更の取得
CA Directory がプル検索リクエストを実行できない場合は、以下のエラーが表示されます。
ERROR : Pull replication: search of updates from source failed
このエラーは、ソースにアクセスできなかったことを示します。あるいは、プル検索リクエストが別の理由で拒否されて、さらに調査を必要とします。
変更の適用
更新を適用できない場合は、以下の情報がトレース ログに追加されます。
ERROR : Pull Replication: update sequence '58' failed. Data integrity may be compromised.
このエラーの後には、失敗したリクエストおよび障害の理由のダンプが続きます。リクエストは、以下の理由で失敗する可能性があります。
- 不適切な設定
- サポートされていない値
- CA Directory と ODSEE の非同期
- 更新適用中
トレース ログからの情報は、このような問題を追跡するのに適した開始点になります。warn-log でこのようなエラーも監視する必要があります。
ODSEE でレプリケーション ユーザによって行われた変更がプル レプリケーション中に無視される
同じ変更が ODSEE にレプリケートされるのを回避するために、ODSEE でレプリケーション ユーザによって行われた変更がプル レプリケーション中に無視されます。ODSEE で変更を行うには、別のユーザを使用します。
例:
ODSEE 内でユーザとして「cadir」を作成し、そのユーザに変更ログへのアクセス権限を付与します。このアカウントを、CA Directory 設定でプル レプリケーションに使用できます。ただし、新規レコードを「cadir」として作成する場合、これらの変更はレプリケートされません。別のユーザを使用して、ODSEE でオブジェクトを作成する必要があります。
変更ログ チェックポイント
CA Directory は、チェックポイント ファイルを使用して更新を追跡します。このファイルを使用することで、変更ログ内の最終更新の追跡を失わずに、CA Directory を停止して開始することができます。
ODSEE 変更ログ エントリとチェックポイント ファイルの間に差異がある場合は、プル検索リクエストはエントリを長期間返さないことがあります。変更の検索試行回数が、設定された再試行パラメータを超えた場合は、結果を返していない変更シーケンス番号の範囲を示すアラームがログに記録されます。これらの試行が頻繁に発生し、問題がない場合は、ログに過剰なスパムが含まれないように再試行パラメータを調整できます。
DSA_E3700 Pull Replication: Failed to find any updates in '10' attempts for changeNumber range [61:71]
データの再同期
CA Directory が ODSEE と再同期する必要がある場合は、変更ログがチェックポイントを超えた可能性があります。
dxdisp
コマンドと -c
オプションを使用して、チェックポイント ファイルを現在の時刻をリセットすることができます。例
dxserver stop cadirdxdisp -c dxlinkMigrate data from ODSEEdxserver start cadir
DSA が開始されると、初回プル レプリケーション検索は、
dxdisp -c
コマンド発行時刻以降の変更ログ エントリを取得します。取得されたチェックポイントと ODSEE からエクスポートされたデータが、わずかに重なる可能性があります。変更ログ ウィンドウがダンプ取得時点に追いつくまで、重複する更新によってエラーがログに記録される可能性があります。これらのエラーは無視できます。最近移行されたデータに悪影響が及ぶことはありません。注:
を使用してチェックポイントをリセットした後に、CA Directory を再起動する必要があります。dxdisp
段階的な移行中のパスワード ポリシー
段階的な移行中に両方のシステムでパスワード ポリシーを有効にすることができます。CA Directory と ODSEE は、さまざまな操作属性を使用およびレプリケートして、パスワード ポリシーを制御します。プル レプリケーションおよび DXlink レプリケーションからのこれらの属性を無視することをお勧めします。パスワード ポリシーは、各システムで個別に制御されます。
例:
ユーザは ODSEE で実行されているアプリケーションでの再試行回数を超えるまで、CA ディレクトリからロックされません。アカウントをロックする必要がある場合は、ODSEE と CA Directory の両方でのロックが必要です。
段階的な移行が特定期間内に実施されて、不便な期間が短くて済むのが理想的です。