【問題】
 あなたはWindows Server 2008ベースのActive Directory管理者である。大量のユーザーを削除したので,オフライン・デフラグを行いたいと考えている。どのような手順が必要か。サーバーの停止時間が最も短いものを選びなさい。

A. Active Directory Domain Servicesを停止,オフライン・デフラグ実行後,サービスを起動
B. シャットダウン後,Windows Server 2008のインストール・メディアから起動,オフライン・デフラグ後,再起動
C. シャットダウン後,セーフ・モードで起動,オフライン・デフラグ後,再起動
D. シャットダウン後,ディレクトリ・サービス復元モードで起動,オフライン・デフラグ後,再起動

正解:A

【解説】
 Active Directoryのデータベースは可変長であり,オブジェクトを追加するとデータベース・サイズが増大する。ただし,削除した場合は空き領域としてマークされるだけで,ファイル・サイズは縮小されない。断片的な空き領域は定期的に回収され,連続領域にまとめられる。これを「オンライン・デフラグ」と呼ぶ(図1)。Active Directoryのオブジェクトは,インスタンスごとにサイズが異なるため,新しいオブジェクトを追加するときは,空き領域が連続していた方が効率がよい。

図1●オンライン・デフラグ
図1●オンライン・デフラグ

 ファイルの拡張と縮小を繰り返すのは性能上の問題が発生しやすい。しかし,必要以上に大きなデータベース・ファイルを確保するのは無駄である。そこで,オンライン状態では拡張だけを行う。拡張とオンライン・デフラグが,基本的なデータベース保守作業である。

 しかし,何らかの事情で大量のオブジェクトを削除し,その後オブジェクトの追加の予定がない場合は,データベース領域が無駄になる。そこで,Active Directoryでは「オフライン・デフラグ」を実行できる。オフライン・デフラグでは,Active Directoryを完全に停止した状態で空き領域の圧縮を行い,別のファイルにコピーする。この時,空き領域を切り詰めることで,データベース・ファイルのサイズを縮小する。

 使用中のデータベース・ファイルを切り詰めるわけではないことに注意して欲しい。Active Directory動作中は,データベース・ファイルは常に使用中であり,開放できない。仮に,Active Directory動作中にオフライン・デフラグを実行できたとしても,デフラグ済みのデータベース・ファイルに切り替えることができないという問題が残る。そのため,Windows Server 2003以前は「ディレクトリ・サービス復元モード」と呼ばれる特殊なモードでドメイン・コントローラを起動したときにのみオフライン・デフラグを実行できた。

 ところが,ディレクトリサービス復元モードには以下のような問題がある。

●ログオン・アカウント情報の管理

 ディレクトリ・サービス復元モードで起動した場合,Active Directoryは起動しない。そこで,認証にはドメイン・コントローラ自身のSAM(セキュリティ・アカウント・マネージャ)データベースを使用する。通常,SAMにはローカル・ユーザーが登録されるが,ドメイン・コントローラのSAMはドメイン・コントローラ昇格時に初期化される。この時,唯一のユーザーとして,Administratorが,ドメイン・コントローラ昇格中に指定したパスワードで登録される。ローカルSAMのAdministratorアカウントは普段使っていないため,パスワードを忘れやすい。そこで,紙に書いて安全な場所に保管しておく必要がある。Windows Server 2003ではNTDSUTILコマンドでローカルSAMのAdministratorパスワードを変更できるが,ドメイン・コントローラの台数分だけ管理するのは面倒だ。

●全サービスの停止

 ディレクトリ・サービス復元モードはセーフ・モードの一種であり,システムの再起動を伴う。また,ディレクトリ・サービス復元モード中は,一切のサービスが停止する。ドメイン・コントローラにアプリケーション・サービスを組み込むことは推奨されていないが,現実にはしばしば行われる。一般に,ディレクトリ・サービス復元モードでの作業は時間のかかるものが多いため,サービスの停止時間が延びるのは望ましくない。

 Windows Server 2008では,ディレクトリ・サービス復元モードで起動しなくても,Active Directory Domain Servicesを停止することで,Active Directory サービスを完全に停止できるようになった。この機能は,ドメインやフォレストの機能レベルにかかわらず利用できる。Active Directory Domain Servicesの停止中は,オフライン・デフラグやAuthoritative Restoreも可能である。

 Active Directory Domain Servicesを停止してもActive Directory以外のサービスは正常に実行される。同じドメインの別のドメイン・コントローラが存在する場合は,メンバ・サーバーとして動作するため,認証が必要なサービスでも利用できる。ただし,他にドメイン・コントローラがいない場合は,スタンドアロン・サーバーとして動作する。Active Directoryの情報は一切利用できないため,サービスによっては正常に動作しない。一般には,ドメイン・コントローラは組織に2台以上あるはずなので,通常は問題ないだろうが,運用には注意して欲しい。

 本来,Active Directoryは単一のサービスではなく,複数の機能の集合体である。しかも,認証という重大な役割を行うため,停止することはできなかった。しかしWindows Server 2008では,擬似的な管理サービスを用意することで,この問題を解決した。

 Active Directory Domain Servicesの停止は,NET STOPコマンドでも,管理ツール[サービス]でも構わない。また,Active Directory Domain Servicesを停止すると,依存関係にある他のサービスも自動的に停止する。もちろんActive Directory Domain Servicesを起動すると,必要なサービスは全て自動的に起動する。

 以上のことをふまえて,選択肢を確認してみよう。まず,Bは間違いである。インストール・メディアから起動した場合,システムの復元などは可能だが,Active Directoryデータベースのデフラグはできない。

 Cの「セーフ・モードで起動」も間違いである。一般のセーフ・モードではActive Directoryは停止しない。

 DはWindows Server 2003およびWindows 2000 Serverでは正解だが,Windows Server 2008では停止時間を最小にする方法ではない。従って正解はAである。