Windows Server 2016 Active Directory データーベースの概要

どうも、Miyaです。

今回は、AD環境のコアでもあるデーターベースについて触れてみたいと思います。
ADのデーターベースには、サービスを提供するための必要情報がすべて含まれているため、データーベースの適切な保守が必要になります。
データーベースの保守のためにも、ADデーターベースの構造をしっかり理解しておくことが重要です。

スポンサーリンク:

ADデーターベースのアーキテクチャー

AD情報は、ディレクトリデーターベース内に格納されます。
また、各データのレプリケートスコープと目的によってパーティションが区切られています。

ADには次の4つのパーティションをホストしています。

  • ドメインパーティション
  • 構成パーティション
  • スキーマパーティション
  • アプリケーションパーティション

尚、これらのパーティションをADシステムでは名前付きコンテキストと呼びます。
それでは、各パーティションを簡単に説明していきましょう。

ドメインパーティションとは?

ドメインパーティションとは、そのドメインが保持しているオブジェクトを保持するデーターベースです。
つまり、ユーザーやグループ、コンピュータ、グループポリシーコンテナなどのすべてのオブジェクトが格納されています。

ADにホストしているパーティションは、ADSIエディターと呼ばれるツールから覗くことが出来ます。
ADの役割をインストールした際に、オプションでツールもインストールされているはずなので、[管理ツール]⇒[ADSIエディター]で開いてみましょう。

[規定の名前付きコンテキスト]がデフォルトで展開されており、これがドメインパーティションにあたります。

画像の通り、[ユーザーとコンピュータ]ツールと似たような画面が確認できますね。

勿論、オブジェクトを選択して、属性エディターから各プロパティを変更したりもできます。
ADデータベース

構成パーティションとは?

構成パーティションとは、ドメインに関する構成情報や、フォレストの論理構造、サイト、サブネットからトポロジ情報までもが格納されています。
また、ADと連携したアプリケーション(Exchangeなど)の構成情報なんかも、このパーティションに含まれます。

こちらも、同じようにADSIエディターで見てみましょう。

[ADSIエディター]を右クリック⇒[接続]をクリックします。
ADデータベース

[既知の名前付きコンテキストを選択する]から[構成]を選択して、OKボタンをクリックします。
名前付きコンテキスト

構成パーティションに接続したら、展開しましょう。
例えば、規定で作成されるサイトの[Default-Web-Site]がオブジェクトとして格納されているのがご確認いただけたかと思います。
ADデータベース

また、ドメインパーティションと同じく、オブジェクトに対する設定を属性エディターから行えます。
画像では、サイト間リンクのレプリケーション間隔である、replIntervalの値を確認できますね。
ADデータベース

スキーマパーティションとは?

スキーマパーティションとは、ディレクトリ全体のオブジェクトクラスとその属性の定義が含まれています。
ADでは、オブジェクト指向で設計されているので、当然クラス定義が存在しており、それを元に各オブジェクトを生成していますよね。

このクラス定義がスキーマにあたります。
スキーマは管理者から拡張することもできます。
例えば、Exchange製品をドメイン内にインストールすると、スキーマを拡張する必要があります。
これは、Exchangeに関連する設定を追加するためにも、オブジェクトに新しい属性を追加しなければならないためです。

ADSIエディターからスキーマパーティションを覗くことも可能なんですが、より詳細な設計情報をスナップインから覗けるので、こちらの手法を実践します。

まず、設計情報が見えるというのは好ましくないので、規定では覗けません。
[ファイル名を指定して実行]から”regsvr32 schmmgmt.dll”を実行して、dllを登録してあげましょう。

mmcスナップインを起動して、[ファイル]⇒[スナップインの追加と削除]をクリックしましょう。
ADデータベース

次に、[Active Directory スキーマ]を追加し、[OK]をクリックします。
Schemaスナップイン

展開してみてみると、各クラスのプロパティ情報が覗けちゃいます。ふえぇ。
Schemaスナップイン

アプリケーションパーティションとは?

アプリケーションパーティションはオプションです。
アプリケーション固有のデータを格納するみたいなんですが、何に使われているのかは正直わかりません笑

よく耳にするのは、AD統合ゾーンのDNSサーバーがアプリケーションパーティションにゾーン情報を格納するみたいですね。

AD DSデータベース ファイル

ADのデータベースは、NTDS.ditという名前のファイルとして、規定で[%systemroot%\NTDS]に格納されています。

データベース格納先は、DCへの昇格時にウィザードで指定しましたよね。
この時に、特に変更していないのであれば、規定フォルダとして[%systemroot%\NTDS]にデータベースファイルが格納されているはずです。
Schemaスナップイン

ADでは、これらのファイルを基にディレクトリサービスに不整合が生じないよう動作します。

NTDS.dit メインデータベースであり、すべてのオブジェクトを含む
EDB*.log トランザクション ログ
EDB.chk トランザクション ログのチェックポイント
Edbres*.jrs トランザクション ログの予約領域用

ADでは、トランザクションの上書きが発生した時に、トランザクションログもラップアラウンドします。
また、短時間で大量のトランザクションログが発生した場合、EDB*.logを複数生成し、Busy状態から抜け出すと、不要なトランザクションログを削除します。

edbresファイルについて

ADは認証と認可を司る、非常に重要な役割です。
そのため、ADをホストするサーバーでディスク不足によるトランザクション処理の抜けを防ぐためにも用意されているのがedbresファイルです。

edbresファイルは10MBの空ファイルであり、ディスク不足によるトランザクションログ生成不能時に使われる予約領域になります。
Schemaスナップイン

トランザクションログのディスク容量が不足すると、保留しているトランザクション キューをedbresファイルに退避させます。
その後、ADはサービスをシャットダウンし、データベースのマウント解除を行います。

つまり、ディスク不足が起因でトランザクションの抜けを防ぐための応急処置です。
こんなこと起こるとは思いませんが、発生したら管理者が直ちにディスク拡張を施しましょう。

おわりに

いかがでしたか?ADのデータベースって結構単純な作りだなぁと思いましたか?笑
これらのデータベースの構成を理解した上で、保守をする必要があります。
ADデータベースの保守には、NTDSUtilツールが用意されており、そのツールから最適化の実行や、スナップショット、データベースの移動ができます。
ADデータベースの保守については、またの機会にご紹介したいと思います。

それでは、よいWindows Serverライフをっ♪

スポンサーリンク