【重要】2021/12/18現在、VMware製品の複数製品において、Log4jの脆弱性がアナウンスされております。
Connection Serverも影響を受ける可能性があるため、以下の記事を暫定対応として実施しております。
【VMware】Horizon Connection ServerのLog4j対応をした(2021/12/19版)
また、VMware製品のLog4j対応状況については、以下のサイトより最新情報を確認してください。
VMSA-2021-0028
今回は、VMwareのHorizon Connection Serverが壊れた際の再構築手順を記載します。
Connection Serverが壊れた際は、Connection Serverのアンインストール→インストールを実施することで再構築が可能です。
前提条件
Connection Serverを構築している環境は以下の通りです。
- Server 1
- CPU : 2vCPU
- MEM : 4GB
- DISK : 60GB
- Hostname : dev-vcsv01
- IP : 192.168.100.175
- Server 2
- CPU : 2vCPU
- MEM : 4GB
- DISK : 4GB
- DISK : 60GB
- Hostname : dev-vcsv02
- IP : 192.168.100.176
今回は、2台構成で1台のConnection Serverが壊れた場合を想定して検証します。
Horizonのバージョンは8.2.0ですが、7.x台であれば同様の手順でConnection Serverの再構築は可能です。より、実践的な環境にするため、Cloud-Podアーキテクチャを導入しております。再構築でこの設定もしっかりと復元できるのかを確認していきます。

Horizon Administratorへアクセスし、[設定]-[サーバ]-[Connection Server]を確認します。
構築した際は、dev-vcsv01をマスターに設定し、dev-vcsv02はレプリカとしてインストールしています。

サイト構成については、[Default First Site]で構築しています。

CPA構成もデフォルトですが、初期化しています。
Connection Server アンインストール
Connection Serverのdev-vcsv02側が壊れた想定で、Connection Serverの機能をアンインストールを実施していきます。

これは構成によっては不要かもしれませんが、壊れたConnection Serverにセッションが割り振られないように念のため無効化しておきます。
Horizon Administratorより、[設定]-[サーバ]-[Connection Server]を選択し、無効化するConnection Serverを選択します。
選択後、[無効にする]を押下し、[状態]が[無効]となったことを確認します。

ここからは、壊れたConnection Server側で実施します。
本環境では、[dev-vcsv02]となります。
[スタートメニュ]より、[コントロールパネル]-[プログラムのアンインストール]を選択します。

Connection Serverをインストールすると主な機能として、以下のソフトウェアがインストールされています。
- AD LDS インスタンス VMware VDMDS : Connection Serverのサイト内レプリケーションを実行する機能
- AD LDS インスタンス VMware VDMSDG : CPA構成で他のポットとレプリケーションを実行する機能
- VMware Horizon Connection Server : Connection Server本体
- VMware Horizon HTML Access : HTML Accessを提供する機能
Windowsの機能として、Active Directory ライトウェイトディレクトリサービスがインストールされています。これ以外はVisual C++のランタイムが自動インストールされます。
Connection Serverが壊れたことを想定して、これらの機能をアンインストールしていきます。

[VMware Horizon Connection Server]を右クリックし、[アンインストール]を選択します。

[VMware Horizon Connection Serverをアンインストールしますか?]のメッセージが表示されるため、[はい]を選択します。
[VMware Horizon Connection Server]のアンインストールが完了したら、[プログラムと機能]より、該当のプログラムが一覧から消えたことを確認します。

[VMware Horizon HTML Access]を右クリックし、[アンインストール]を選択します。
HTML Accesについては、インストール要件により、インストールされていない場合があります。

[VMware Horizon HTML Accessをアンインストールしますか?]のメッセージが表示されるため、[はい]を選択します。
[VMware Horizon HTML Access]のアンインストールが完了したら、[プログラムと機能]より、該当のプログラムが一覧から消えたことを確認します。

[AD LDS インスタンス VMwareVDMDS]を右クリックし、[アンインストール]を選択します。

[続行すると、AD LDSインスタンス VMWareVDMDSはこのコンピュータから完全に削除されます。続行しますか?]と表示されるため、[はい]を選択します。

[AD DLSが正しく削除されました。]と表示されたら、[OK]を押下します。
[AD LDS インスタンス VMwareVDMDS]のアンインストールが完了したら、[プログラムと機能]より、該当のプログラムが一覧から消えたことを確認します。

[AD LDSインスタンス VMwareVDMDSG]を右クリックし、[アンインストール]を選択します。

[続行すると、AD LDS インスタンス VMWareVDMDSGはこのコンピュータから完全に削除されます。続行しますか?]が表示されるため、[はい]を選択します。

[AD LDSが正しく削除されました。]が表示されたら、[OK]を選択します。

これで、Connection Serverのアンインストールが完了しました。
Visual C++のランタイムが残っていますが、今回は無視します。
また、Connection Serverのアンインストール後はサーバ自体の再起動を行うことをお勧めします。
Connection Serverの削除
壊れたConnection Serverを用意したらConnection Serverの削除を実行していきます。
このConnection Serverの削除を実行すると、Connection ServerのAD LDSインスタンス上から該当サーバのエントリを削除することができます。
この作業は、正常なConnection Serverから実行してください。

正常なConnection Serverから、PowerShellまたはコマンドプロンプトを管理者権限で起動し、以下のコマンドを実行します。
> vdmadmin -S -r -s [削除するサーバのホスト名]
The specified Server has been scheduled for removal from this configuration.
Connection Serverの削除には、[vdmadmin]コマンドを使用します。
このコマンドのオプションに気を付けてください。大文字の[S]と小文字の[s]が区別されます。
コマンドが正常に実行されると、「該当のサーバが設定から削除されるようにスケジュールされています。」的なメッセージが表示されます。
この状態では、レプリケーションが完全にできておらず、他の正常系サーバに伝搬ができていない可能性があるため、しばらく待ちます。

正常なサーバのHorizon Administratorを開き、[設定]-[サーバ]-[Connection Server]を選択し、該当のサーバが削除され、一覧に表示されていないことを確認します。
他の正常なサーバでも同様の箇所を確認し、どの正常なサーバからも削除されていることを確認しておきます。
以上で、壊れたConnection Serverの除外が完了しました。
この作業が終わったので、あとは通常通りConnection Serverをインストールしていきます。
Connection Serverインストール
この記事では、Connection Serverの詳細なインストール手順は割愛します。
詳しくはこちらの記事で解説しています。

インストールするConnection Serverは、2台目以降のConnection Serverとなります。
インストール実行時のインストールオプションで[Horizon レプリカサーバ]となっていることを確認してインストールを続行してください。[Horizon スタンダードサーバ]としてインストールすると、別の世界線へ飛んでしまうため、留意します。

ソースサーバの部分では、正常なConnection Serverから同期を受けます。
また、環境規模にもよりますが、大規模な環境だとConnection Serverのインストールと同期に時間を要することがあります。決してインストーラが停止しているわけではないので温かい目で見守りましょう。
以上の点に注意をしてConnection Serverのインストールを実行してください。
インストール後の確認
無事にConnection Serverのインストールが完了したら、正常性を確認していきます。
再インストールしたHorizon Administratorを開きます。

[設定]-[サーバ]-[Connection Server]を選択し、正常なConnection Serverと画面を比較し、同一であることを確認します。

[設定]-[サイト]を選択し、サイト構成が正常なConnection Serverと同一であることを確認します。

[設定]-[クラウドポッドアーキテクチャ]を選択し、CPAの構成が正常なConnection Serverと同一であることを確認します。
以上で、Connection Serverの再構成手順は完了です。
まとめ
今回は、Connection Serverの一台が故障し、稼働を停止した際の復旧手順を記載しました。
流れとしては、壊れたConnection Serverをvdmadminコマンドでエントリを削除し、再インストールすることで、復旧は可能です。
注意点としては、本手順はLDAPのデータベースが正常に稼働している前提の復旧手順となります。
LDAPのデータベースが壊れているや、正常なサーバが1台も存在しない場合は、本手順では復旧できない可能性があるだけでなく、状況を悪化させる可能性があります。
より確実な方法で復旧を行う必要がある場合は、VMwareのサービスリクエストを通して指示を仰いでください。
また、当記事の記載内容によって被った損害・損失については一切の責任を負いかねます。ご了承ください。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画を鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
コメント