ActiveDirectory が壊れた時にどうするか | ライタス株式会社
つい先日、Hyper-V上に構築しているActiveDirectoryが壊れました。
「Hyper-V上に構築したActiveDirectoryは、動作保証しないよ」とマイクロソフト様がおっしゃるのに、それを無視したバチが当たったのでしょうか・・・
テスト用の環境だったので、まだ平静でいられますが、本番環境だったら目も当てられません。
その時の記録をつけようと思います。
1. 何が起きたのか
今回の環境について整理しておきます。
Hyper-V上に構築しているActiveDirectoryが2台、Exchange Server 2007が1台(以下Exchange機という)という構成です。
ActiveDirectoryのサーバーは、1台がServer-Core 2008 Server(以下1番機という)で、もう1台が2008 R2(以下2番機という) でした。
最初の現象は、Exchange の Infomation Server サービスが起動しなくなりました。
何らかの理由でサービスが停止したものと思われるのですが、最初は、なんなのかサッパリ分かりませんでした。
2つ目の現象として、ActiveDirectoryにエラーが発生し始めました。 NetlogonとかTerminalServiceとか、たくさんです。
3つ目の現象として、DNSサービスが起動しなくなりました。 正確には起動しているのですが、ActiveDirectoryが認識できないのか、ゾーンを読み込めないというものです。
2. 何をやったのか
異常動作に陥る前に、なにかやったのかと言われると、何もやっていないと思います。Exchangeの方では、上記記載通り、Infomation Serverが飛んだので、再起動したぐらいでしょうか。
3. 復旧するためになにをやったのか
まずは、状況調査から。各ドメインサーバーで、以下コマンドを実行します。
repadmin /showreplこのコマンドは、ActiveDirectory間の同期状況を確認してくれるコマンドです。
実行したら、いくつか同期に失敗しているようでした。
また、1番機へのPingが通っていないことに気が付きました。
4. セカンダリのプライマリ強制昇格
この時点で、1番機に何か問題がありそうだと推測。とりあえず1番機は停止させました。残った2番機を強制的にプライマリに昇格させることを思いつきます。
強制的に昇格させる方法は、以下のHPが詳しいです。
Active DirectoryのFSMO役割をほかのDCへ強制的に割り当てる
http://www.atmarkit.co.jp/fwin2k/win2ktips/1174fsmoseize/fsmoseize.html
上記記事で気になったのは、
fsmo maintenance: seize domain naming masterはうまく行きません。
どうもWindows Server 2008では、
fsmo maintenance: seize naming masterとするのが正しいようです。
transferは当然失敗するので、FSMOの強制転送を行います。
強制転送された後、再起動を1回行い様子を見ます。
再起動には時間がかかるので、気長に待ちます。
ログインしたら、イベントビューアを確認して、問題が起きていないことを確認します。
5. DNSサーバーの様子がおかしい
ActiveDirectory的には、FSMOが転送されれば、ほぼ作業としては終わりのはずですが、
DNSがうまく動いてくれていません。
DNSサーバーがActiveDirectoryをうまく見つけられていないようです。
DNSサーバーは再インストールしても問題ないはずなので、これを実施。
しかしながら、再インストールだけではうまく行きませんでした。
調べてみたところ、再インストール前に、旧情報を削除しておく必要があるという話を見つけたので、
これを実施してみました。
- HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\DNS Server\Zones以下のゾーン情報の削除
- C:\Windows\System32\dns フォルダの削除(実際にはリネームしました)
その後、DNSサーバーを再インストールしたら、うまく稼働してくれました。
6. まだ終わらないExchange連携
ActiveDirectoryは、何とか復旧したようなのですが、Exchange側が思うように動いてくれません。原因としては、ActiveDirectoryをうまく認識してくれていないようです。
Exchange ADAccessというサービスがActiveDirectoryを参照しているようなのですが、ActiveDirectory側が拒否しているようです。
しょうがないので、Exchangeを一度ADからおろして、再度参加させたところ、あっさり動いてくれました。
7. まとめ
今回はたまたまうまく行ったのと、時間がとれたということもあり、何とか復旧までたどり着きました。
ActiveDirectoryの障害は、非常に知識と経験が必要な作業ですので、その場に応じた対応をしないと、最悪全インストールという恐ろしい事態になりかねないことを実感しました。
特に、Exchangeが絡んでいる場合は、業務影響が深刻になりやすいので、対応については、しっかりと理解しておくことが重要です。
本記事は、弊社代表のブログ記事なんでもIT屋の宿命からの記事を加筆修正したものです。
コメント
コメントを投稿