【Active Directory入門 Part9】FSMO(操作マスター)とは?役割の確認・転送・強制移行まで解説
この記事の内容
- Active Directoryにおける「FSMO(操作マスター)」の5つの役割と2つのカテゴリーを解説します
- SIDとRIDマスターの関係を実際の属性値を交えて説明します
- 現在のFSMOロール保有者を
dcdiagコマンドで確認する方法を紹介します - GUIを使ったFSMOロールの転送手順を説明します
- DCが障害で消失した場合の
ntdsutilによる強制移行(seize)の考え方を紹介します
FSMOとは
Active Directoryには「FSMO(Flexible Single Master Operations)」と呼ばれる、操作マスターという非常に重要なロールがあります。通常、Active Directoryはマルチマスター構成であり、どのドメインコントローラーからでも変更を行えます。しかし一部の操作は、整合性を保つために1台のDCが専任で担当する必要があります。それがFSMOの役割です。
FSMOは5種類ありますが、大きく次の2つのカテゴリーに分けられます。
- フォレストで1台だけ存在する役割
- ドメインごとに1台存在する役割
フォレストで1台だけ存在するFSMOロール
スキーママスター(Schema Master)
スキーマとは、Active Directoryの属性やクラスを定義する場所です。スキーマの変更は整合性を保った状態で行う必要があるため、フォレスト全体で1台のDCがこの役割を担います。
ドメイン名前付けマスター(Domain Naming Master)
フォレストへのドメインの追加・削除を管理する役割です。複数のドメインが同時に参加・脱退しようとした場合の競合を防ぐため、フォレストで1台がコントロールします。
ドメインごとに1台存在するFSMOロール
RIDマスター(RID Master)
Active Directoryの各オブジェクトにはSID(セキュリティ識別子)が付与されています。SIDはドメイン共通の「ドメインSID」部分と、オブジェクトごとに一意な末尾の番号(RID)で構成されています。
実際に属性を確認すると、objectSidという属性があり、次のような構造になっています。
例えば、Administratorのアカウントは末尾が500、Guestは501というように、RIDは連番で重複なく割り当てられます。Active Directoryはマルチマスターのため、どのDCでもオブジェクトを作成できます。そのため、「次に使えるRIDの範囲はここからここまで」という管理を一元化する役割が必要です。それがRIDマスターです。
PDCエミュレーター(PDC Emulator)
アカウントのパスワードやロックアウト情報を管理するDCです。パスワード変更時などに1箇所で処理し、その情報を他のDCに伝えることで、整合性のある認証が行えます。
名前の由来は、Windows NT時代に存在していた「プライマリードメインコントローラー(PDC)」の動作をエミュレートしているためと考えられています。
インフラストラクチャーマスター(Infrastructure Master)
ドメイン内のユーザーやコンピューターと、グループのメンバー情報のマッピングを保持する役割です。
注意点として、マルチドメイン環境ではインフラストラクチャーマスターとグローバルカタログサーバーの役割を同一のDCに持たせると、レプリケーションに問題が発生する場合があります。マルチドメイン設計時には特に注意が必要なロールです。
現在のFSMOロール保有者を確認する
現在どのDCがFSMOロールを保有しているかは、dcdiagコマンドの詳細オプションで一括確認できます。
dcdiag /v
出力の中に「ロールホルダー」に関するテスト結果が含まれており、各ロールの現在のオーナーが確認できます。出力例は次のようなイメージです。
フォレストに最初に作成されたDCが、初期状態ではすべてのFSMOロールを保有します。サブドメインを追加した場合は、そのドメインに最初に作成されたDCがドメインスコープの3役割(RID、PDC、インフラストラクチャー)を保有し、フォレストスコープの2役割(スキーマ、ドメイン名前付け)はルートドメインのDCが保有し続けます。
GUIでFSMOロールを転送する
サーバーをリプレイスする際など、FSMOロールを別のDCに移す(転送する)操作が必要になります。正常に稼働しているDC間での転送はGUIから行えます。
スキーママスターの転送
- MMCコンソールを開き、「Active Directoryスキーマ」スナップインを追加します
- ツリーのルートを右クリックし、「スキーマ操作マスターに接続する」を選択します
- 転送先のDCに接続を変更します
- 「操作マスター」をクリックし、「変更」ボタンを押して転送します
転送後、dcdiag /vを再実行するとスキーママスターが新しいDCに切り替わっていることを確認できます。
ドメイン名前付けマスターの転送
- 「Active Directoryドメインと信頼関係」を開きます
- ルートを右クリックし、「操作マスター」を選択します
- 接続先のDCを変更し、「転送」ボタンを押します
RID・PDCエミュレーター・インフラストラクチャーマスターの転送
ドメインスコープの3役割は「Active Directoryユーザーとコンピューター」から操作します。
- 対象のドメインに接続した状態でツリーのルートを右クリックし、「操作マスター」を選択します
- 「RID」「PDC」「インフラストラクチャー」の3つのタブが表示されます
- 転送先のDCに接続を変更し、各タブで「変更」ボタンを押して転送します
DCが消失した場合の強制移行(Seize)
FSMOロールを保有するDCが故障・廃棄されてしまい、オンラインで転送できない場合はntdsutilコマンドを使った強制移行(seize)が必要です。
ntdsutil
ntdsutilを起動後、次の手順でFSMO管理モードに入ります。
ロール名の指定例は次のとおりです。
| ロール | seizeコマンド |
|---|---|
| RIDマスター | seize rid master |
| PDCエミュレーター | seize pdc |
| インフラストラクチャーマスター | seize infrastructure master |
| スキーママスター | seize schema master |
| ドメイン名前付けマスター | seize naming master |
注意:
seizeは転送元のDCが応答できない場合の強制上書き操作です。通常の転送ではtransferコマンドを使用します。seizeはなるべく使わずに済む運用を心がけてください。
Microsoftの公式ドキュメント「Active Directory Domain ServicesのFSMO役割を譲渡または強制移行する」も参照しながら作業することを推奨します。コマンドの詳細は英語版のドキュメントで確認するのが確実です。
まとめ
FSMOは、Active Directoryの整合性を保つために欠かせない5つの特別なロールです。フォレストスコープの「スキーママスター」「ドメイン名前付けマスター」と、ドメインスコープの「RIDマスター」「PDCエミュレーター」「インフラストラクチャーマスター」の役割と違いを理解しておくことが重要です。
サーバーのリプレイスや廃棄を行う際には、対象のDCがFSMOロールを保有していないかを事前にdcdiag /vで必ず確認し、適切に転送してから作業を行うようにしてください。FSMOロールを保有したまま誤ってDCを廃棄してしまうと、Active Directory環境が深刻な状態になる可能性があります。
ntdsutilによる強制移行は最後の手段として知っておくと安心ですが、そのような事態にならないよう、日頃からFSMOの保有状況を把握した運用を心がけましょう。