Directory design 2... 複製トラフィックから見たドメイン設計
低速WAN回線を経由する場合のサイト分割
管理上の都合で,アメリカ本社と日本支社をシングルドメイン構成で運用したいものとする。このような場合に,同一ドメイン内で生じる完全複製のネットワークトラフィックがLAN環境とWAN環境で同じように伝送されるのは好ましくない。このように,帯域幅の大きく異なる回線でネットワークが接続されているときは,サイトによる分割を検討すべきである。
Active Directoryにおけるサイトとは,ネットワークの物理的な構造を表す概念であり,高速通信を実現可能な1つ以上のIPサブネットを指す。このように説明すると,多くの管理者は,「ここで高速通信といっているのは,どの程度の帯域幅なのか」と疑問に思うことだろう。しかし,高速通信の定義は相対的なものであり,個々のネットワーク環境に応じて管理者が個別に判断してゆくべきものである。そのため,残念ながら決まった閾値を提示することはできない。強いていうなら,最低限でも「常時接続されたネットワークである」と考えていただきたい。
ところで,サイトを分割するか否かという構成の違いによって,複製のデータ量と頻度には差が生じる。「サイト内は高速通信可能で,サイト間は低速通信される」という基本原則があるため,サイト内はそのままのデータサイズで複製を実行するが,サイト間では一定のデータサイズに達したところで,元データを10〜15%程度圧縮してやり取りする。たとえば,1000人のユーザーを登録した場合,サイト内の複製では3,818,256バイトのデータが伝送されるのに対して,サイト間ではわずか291,041バイトしか伝送されない。
Table 6 サイト間とサイト内の複製(単位:バイト)
複製形態 | オブジェクトの数 | ユーザー | グローバルグループ | ユニバーサルグループ |
サイト間 | 10 | 45,563 | 25,683 | 26,741 |
サイト内 | 10 | 47,037 | 26,902 | 26,823 |
サイト間 | 100 | 39,583 | 28,743 | 29,675 |
サイト内 | 100 | 386,148 | 187,754 | 185,606 |
サイト間 | 500 | 173,105 | 102,404 | 119,180 |
サイト内 | 500 | 1,914,087 | 905,015 | 906,079 |
サイト間 | 1,000 | 291,041 | 194,926 | 199,054 |
サイト内 | 1,000 | 3,818,256 | 1,815,170 | 1,803,090 |
圧縮前後のデータサイズは,パフォーマンスモニタで次のオブジェクトを監視することで測定できる。
NTDSオブジェクト:
DRA Inbound Bytes Compressed(Between Sites, Before Compression/sec)
DRA Inbound Bytes Compressed(Between Sites, After Compression/sec)
サイト内の複製とサイト間の複製は,ともにスケジュールに基づいて実行される。デフォルトでは,サイト間の複製は3時間ごとに,サイト内の複製は1時間ごとに,それぞれ実施される。ただし,サイト内ではデータベースが変更されたあと,ほぼリアルタイム(5分後)に変更が通知され,複製が発生する(常時接続されているサイトに限られる)。したがって、前述した1時間に1回の複製というのは,ディレクトリに何も変更がなかった場合に,取りこぼしがないことを確認するためのものである。なお,パスワードの変更やアカウントのロックアウトなど,変更を早急に各ドメインコントローラに通知する必要がある場合には,例外的にリアルタイムで複製を試みる(前者を「パスワード複製」,後者を「緊急複製」と呼ぶ)。
Table 7 設定可能な複製のスケジュール
サイト内 | サイト間 | |
スケジュールの間隔 | 1時間あたり,1回(60分に1回)から4回(15分に1回)の範囲内で複製のトリガを起こす頻度を設定できる。ただし,変更があれば,5分後に変更通知が発生して複製される | 何時間ごとに複製するか,あるいは何時に複製するかを設定できる |
では,ここで複製処理について見ておこう。Active Directoryの更新は,ある特定のドメインコントローラからのみ受信するのではなく,障害に備えて複数のドメインコントローラから受信するようになっている。その結果,同じ更新を異なるドメインコントローラから何度も受け取ってしまうことも考えられる。そのような無駄な複製が発生しないように,ドメインコントローラはUSN(更新シーケンス番号)を利用して,複製が必要かどうかを判断し,必要な場合にのみ複製している。USNとは,各ドメインコントローラが管理している値であり,オブジェクトや属性が更新されるたびに増加してゆく。各ドメインコントローラは,自分のUSNのほかに,直接複製されるパートナーのUSN最大値(この値をHigh Watermarkベクトルと呼ぶ)を保持しており,複製パートナーのUSNと,自分が保持しているHigh Watermarkベクトル内にある複製パートナーの情報を比較する。両者が同じ値であれば,何も起こらない。しかし,もし複製パートナーのUSNがHigh Watermarkベクトル内の値よりも大きいならば,複製すべきかどうかを確認するために,お互いのUp-to-dateベクトルの情報を比較する。Up-to-dateベクトルとは,実際に情報を変更したドメインコントローラのGUIDと,その時点におけるUSN値のリストである。もうこれ以上複製する必要がない場合は,双方のUp-to-dateベクトルが同じになる。この場合,複製は生じない。一方,Up-to-dateベクトルの値が異なる場合は,まだ複製が完了していないと判断され,複製される(Up-to-dateベクトルの値が小さいドメインコントローラが,大きな値を有するドメインコントローラから変更内容を受け取る)。
サイト内における複製の場合,ディレクトリに変更を加えたドメインコントローラ自身が複製パートナーに変更を通知し,USNの更新を伝達する。この場合,これがトリガとなって,複製処理が発生する。しかし,複製処理中にネットワークやシステムに障害が発生し,正しく複製できないドメインコントローラがあると困る。そこで,ディレクトリが変更されていなくても,スケジュールに従って1時間に1回は複製のトリガを発生させ,USNを使って複製の取りこぼしがないことを確認しているのである。取りこぼしがなければ,実際の複製処理は発生しない。
サイト内における複製で変更を通知する5分というタイミングは,レジストリの次の箇所にあるReplicator notify pause after modify(sec)という値で設定されている。
HKEY_LOCAL_MACHINE\ System\CurrentControlSet\ Services\NTDS¥Parameters
また,サイト内の複製は1時間に1回,サイト間の複製は3時間に1回というスケジュールは,[Active Directoryサイトとサービス]管理ツールで変更することができる。
このような複製制御は,Exchange Serverにも実装されている。Exchange Serverでは,このような処理を「バックフィル処理」と呼んでいる。
Directory design 13/18 |