[Active Directory] イメージリストアが駄目なわけ

技術のお話し

今回のネタは自信がありませーん(涙)記載内容には責任は持てませんので予めご了承ください。

実は携帯の充電が終わるまでActive Directoryの勉強でもしようかと思って試しに始めてみたら、気づけば23時になってしまったというオチでして・・自分なりに理解したポイントをちょこちょこ書いていこうかなと。では第一弾。

昨今、イメージバックアップソフトウェアが流行りまくっているわけですが、例えばNorton Ghostのような旧世代のイメージバックアップソフト単独ではActive Directoryのシステムリストアは行えないという言い伝えがありました。その原因について記載してみます。

まず、そもそもActive Directoryのレプリケーションってどう行われるのかについて考えてみました。

restore_ad_001

上記のように、変更通知は変更するたびに発行されます。replmonを実行してみればわかりますが、変更通知を展開して得られた結果は記録されます。これ見ると、

データを変更したドメインコントローラが変更通知を送った分、レプリケーションは行われる

ということになります。

イメージリストアを行った場合、大抵はある特定時点の状態に復旧しますが、その際、OSとしては「何事もなかったかのように」起動を始めます。つまり、以下の例の場合、6月30日にスイッチを落としてそのままであるという認識の下サーバが起動します。これに対して、相手方のドメインコントローラは8/23の障害発生寸前までデータは送り続けたと認識しています。相手方にしてみれば正常に送り続けられたのであれば、またもやデータを送る必要はありません・・・ということになります。

restore_ad_002

結果、復旧したドメインコントローラはバックアップを取得した時点から障害が発生するまでの間のデータ更新は行われないということになってしまいます。つまり、他のドメインコントローラとデータの中身が異なる、所謂不整合が発生します。単純なイメージバックアップソフトがドメインコントローラに適用できないのはこれが原因と言えると考えられます。認識があってれば。

じゃぁ、どうしたらええんだと言う話になるのですが、その場合はイメージバックアップソフト単体で対応するのではなく、イメージバックアップソフトで復旧したのち、「ディレクトリサービス復旧モード」でActive Directoryデータを復旧すれば良いということになります。その際の復旧方法としては、基本的に非Authoritative Restoreを実行します。

restore_ad_003

非Authoritative Restoreでは、復旧したドメインコントローラは「障害から復旧した状態」と認識して起動します。その為、自身のデータが古いことを認識しており、他のドメインコントローラに対して「俺は復旧したばっかでデータが古いから、いっそのことみんな新しくしてくれー」と呼びかけます。そして現在のデータと自分のデータをすべてコンペアしてUSNの新しいデータをどんどんダウンロードします。こうして、最新データが全てレプリケートされ、復旧ドメインコントローラは最新の状態となり、整合性が保たれた構成となります。

なお、ここで言うイメージバックアップはストレージミラーリングを行ってバックアップ補完する場合であっても同じです。要は、ディスクそのものを引っこ抜いておくと言う、OSが意識できないレイヤでのアプローチを行っていることに問題があり、それをしている限りは当該問題からは逃れられません。もしそういうシステムバックアップ構成をしている場合は、

  • システムリストアの直後に非Authoritative Restoreを行おう。
  • その為に必要となるバックアップ(C:\WINDOWS\SYSVOL, System State)は別途取得しましょう。

なお、最近ではVSS連携でディスク/OSのはざまでイメージバックアップを取得するソフトウェアが増えてきました。少なくとも非Authoritative Restoreが行えるイメージバックアップ製品をピックアップしておきます。

Acronis True Image

非Authoritative Restoreに相当するリストアが行えます。但し、Authoritative RestoreやPrimary Restoreなどを実施する場合は別途Active Directoryデータの論理バックアップ(C:\WINDOWS\SYSVOL, System State)が必要です。

Backup Exec System Recovery

こちらも同様に非Authoritative Restoreに相当するリストアが行えます。但し、Authoritative RestoreやPrimary Restoreは行えないっぽいです。

あくまでActive Directoryが持つものはデータであり、それを復旧するにはデータプロテクションソフトウェア(ARCServeやBackupExec、NetVaultとか)が必要だと言うことですね。

2009/10/19 追記

mixiのActive Directoryがらみのコミュニティで、こんなことを教えていただきました。拓馬さんに感謝。

マイクロソフトにて正規にサポートされた API を利用して、リストアを実施した DC の AD データベースに関する “起動 ID” および USN 値の初期化が実施されますので、これによって復旧が実施されたことが複製パートナーに認知され、対象の DC は、リストア後の初回起動時の初期複製において常に入力方向の複製となります。
また、イメージデータにて保持されている RID Pool を全て廃棄し、新たな RID を RID マスタの役割を保持している DC から取得する形になるため、SID 重複を避けることになります。

と言うわけで、復旧した直後として認識し、既存データを破棄して初期化が行われるようですね。非Authoritative Restoreが行われると。RID Poolの破棄が発生する・・・ということは、もしかしてFSMOがない状態での非Authoritative Restoreは危険なんじゃ・・・ないだろうか(苦笑)

Tags:

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

PAGE TOP