はじめに
WindowsServer2012以降のOSで構築されたドメインコントローラは仮想環境に対応していると色々な文書に記載されています。ただし、仮想環境上でドメインコントローラを構築する場合構成によってはActiveDirectryじたいが正常に動作しなくなるケースがあります。今回はその点について記載したいと思います。
そもそも仮想環境に対応したとはどういうことか?
ActiveDirectryは、複数のドメインコントローラ間で双方向にデータベースを複製しながら動作しています。WindowsServer2012以前のドメインコントローラを仮想環境上で仮想環境で構築している場合、その仮想マシンをスナップショットを利用して復元した場合、「USNロールバック」というデータベースの不整合が発生してしまう仕様でした。WindowsServer2012以降では、スナップショット復元時の不整合問題が発生しないよう実装が変更されました。これがドメインコントローラが仮想環境に対応したと言われている内容となります。
USNロールバックが発生しない仕組み
仮想マシン上で構築されたドメインコントローラは、仮想マシンの属性「VM-GenerationID」の後をを常に参照しています「VM-GenerationID」はスナップショットで復元された場合に値が変更されるため、ドメインコントローラはスナップショットで復元されたものと判断し「権限のないリストア (non-authoritative restore)」のリカバリーが自動実行され、他のドメインコントローラからの複製待ち状態となり、他のドメインコントローラから複製が完了する事で整合性がとれた状態で復旧されるという仕組みとなります。
逆に言うと、他のドメインコントローラから複製がされるまでは、正常に機能しない事を意味します。
市販のバックアップソフトでバックアップを取得した場合
仮想環境のバックアップには、ARCServeUDPやAcronisなどのイメージバックアップソフトが主流です。
ただし、どのバックアップソフトでも各ハイパーバイザーのスナップショット機能を使用してバックアップイメージを作成するため、バックアップソフトを用いてリストアしたした場合も上記の仕様にてリカバリーが実行されます。
※各バックアップソフトの仕様についてメーカーの仕様をご確認ください。
仮想環境上で構築する場合の注意点
ようやく本題となりますが、上記で説明したように仮想環境上でのスナップショットの復元は、複製パートナーのドメインコントローラが存在する事が大前提となります。そのため全てのドメインコントローラを仮想環境上に構築する場合は注意が必要です。
上記はシンプルな例として、1台の仮想ホスト上に2台のドメインコントローラの仮想マシンを構築した場合の図です。仮にこの仮想ホストに障害が発生し、仮想マシンのリストアが必要となった場合2台ともリストアされた事によりお互いのドメインコントローラが複製待ちとなり永久に復元されない状態となります。
通常仮想ホストは冗長化されますがそのためには共有ストレージを用います。共有ストレージは冗長性が高いため可能性は低いですが、上記と同じような状態となる可能性はゼロではありません。
そのため、安全面を優先するのであれば物理サーバと仮想環境のそれぞれにドメインコントローラを構築したり、BCPとして遠隔地にドメインコントローラを設置する事が推奨となります。
同一仮想環境上で構築する場合の対処方法
コストや環境面の理由で、同一仮想環境上にドメインコントローラを構築しなければならない場合、WindowsServer標準のバックアップツールである**「WindowsServerBackup」**の機能である「システム状態」のバックアップを用いる事で対処が可能となります。「システム状態」を用いると「権限のあるリストア (Authoritative Restore)」でのリストアが可能となり手順は複雑になりますが、バックアップ取得時点のデータベースを正としてActiveDirectry環境を復旧する事ができます。