今回は、Horizon8 2111で障害時にFSMOの確認ができれば障害調査の手がかりになるのではないかと思い、記事にしておきます。
VMware HorizonはWindows ServerのActive Directoryの機能を使用して、各Conection Serverと同期を取っているため、片系のConnection Serverとデータが不一致になっている場合などに役立つと思います。
前提条件
本手順で使用する環境は以下の通りです。
Connection Server 1号機
- CPU : 2vCPU
- MEM : 4GB
- DISK : 60GB
- Host : dev-vcs01
Connection Server 2号機
- CPU : 2vCPU
- MEM : 4GB
- DISK : 60GB
- Host : dev-vcs02
なお、今回はCloudPodArchitectureは使用していません。
FSMOの確認をするためにシンプルに2台構成のConnection Server構成としています。
FSMO確認手順
Connection Serverにリモートデスクトップを行い、コマンドプロンプトを管理者権限で起動します。
コマンドプロンプトより、以下のコマンドを実行し、dsmgmtを起動します。
> dsmgmt
dsmgmtが起動すると、プロンプトがdsmgmtとなるため、以下のコマンドを実行し、ロールを設定します。
dsmgmt: roles
ロールを設定すると、プロンプトがfsmo maintenanceとなります。
fsmo maintenanceモードに移行したら以下のコマンドを実行し、サーバに接続します。
今回は、自分自身に接続して、FSMOの状態を確認します。
fsmo maintenance: connections
server connections: connect to server <接続するサーバのFQDN>:389
<接続するサーバのFQDN>:389に接続しています...
ローカルでログオンしているユーザの資格情報を使って<接続するサーバのFQDN>:389に接続しました。
server connections: quit
connectionsコマンドでサーバに接続します。
モードがserver connectionsモードになったら、connect to server <接続するサーバのFQDN>:389
コマンドを実行することで、自分自身や他のConnection Serverに接続することができます。
接続成功の文言が表示されたら、一度quit
コマンドを実行してserver connectionsモードから抜けます。
サーバに接続後、fsmo maintenanceモードに移行したら、以下のコマンドを実行してfsmoを表示します。
fsmo maintenance: select operation target
select operation target: list role for connected server
サーバ "<接続するサーバのFQDN>:389 "は2個の役割を認識しています
スキーマ - CN=NTDS Settings,CN=DEV-VCS02$VMwareVDMS,~
名前付けマスター - CN=NTDS Settings,CN=DEV-VCS01$VMwareVDMS,~
list role for connected serverコマンドを実行すると、FSMOの状態が表示されます。
今回の状態だと、スキーママスタはConnection Server 2号機が持っています。
また、名前付けマスタはConnection Server 1号機が持っています。
Active Directoryはマルチマスタ構成のため、スキーマ毎に別のサーバで役割を持っています。
そのため、障害などが発生して1台のConnection Serverがいなくなる状態になったらFSMOを片系に寄せてから作業を行う必要がありそうです。
Connection Server 2号機からFSMOの確認
Connection Server 1号機でFSMOの確認をしましたが、正常な状態であれば、Connection Server 2号機でも同様な結果が得られるはずです。
Connection Server 1号機で実行したコマンドと同様のコマンドを実行し、スキーママスタと名前付けマスタが同じであることを確認します。
もし、Connection Server 1号機とFSMOの状態が異なったらどちらかのFSMOが壊れている可能性があるため、どちらかをブリッジヘッドにしてあげる感じでマスタを再設定してから、Connection Serverを修復する必要があると思われます。
異なるConnection Serverへ接続し、FSMOの確認
fsmo maintenanceモードでは、接続するサーバを指定することで、別のConnection Serverに接続し、接続した先のConnection Server上のFSMOを取得することができます。
コマンド自体に大きな変更はありません。
接続先のFQDNを接続したいConnection Serverに設定することで接続が可能になります。
片系をシャットダウンした場合の挙動
最後に、片系のConnection Serverをシャットダウンした場合の挙動を確認してみたいと思います。
今回は、Connection Server 2号機をシャットダウンして、Connection Server 1号機からFSMOコマンドを実行しました。
結果的には、正常な状態と変わらず、Connection Server 2号機がスキーママスタを持っており、Connection Server 1号機が名前付けマスタを持っている状態です。
この状態で復旧できれば問題ないですが、復旧できない場合は、スキーママスタのConnection Serverを1号機(正常側)に持ってきてから復旧させたほうが安全に復旧できるのではないかと考えます。
まとめ
今回は、Connection ServerのFSMOの状態を確認するコマンドを手順にして、色々と検証してみました。
Connection ServerにおけるFSMOの状態というのは、同期の心臓部であり、障害が発生すると各サーバでプールの展開状態に差異ができたり、プールの操作ができなくなったりする可能性があるため、障害の発生時には優先的に確認しておきたいと思いました。
ネットワーク障害などで、一時的に接続性が失われ、すぐ復旧するなどのパターンでは大きな問題にはならないと思われますが、障害が発生したのに気づかず、同期ができていない状態で放置。なども考えられるので、もし障害に気がついて、Connection Serverの状態がサーバ毎に全然異なるという状況のときには確認してもらうと良いと思います。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
willserverのnoteも開設したのでフォローお願いします。
コメント