見出し画像

[IT] Citrix のXenDesktopについて

久しぶりにCitrixのサイトにログオンしたら
最新のISOがダウンロード出来なくなっていた。
どうやらもう個人で利用できる品物ではないようだ。

と落ち込んだが久しぶりに復習として機能について書き綴ろうと思う。

XenDesktopを検証で試すのならば
①ADサーバ
②XenDesktopサーバ(インストール時にDelivery Controller、SQLサーバ、StoreFront、ライセンスサーバの機能追加)
③VDA(Virtual Desktop Agent)をインストールした配信用マシン(VDI)を準備して管理側の構成が整うのが最小3台。
④Citrix workstationをインストールした接続元のクライアントがマシン1台
があればよいので、管理側で3台 + クライアント側で1台の最小4台で環境構築が出来る。

試用期間が30日あるためその間だったらライセンスの適用も必要なしで利用できる。たしかNetScalerは60日試用期間があったと記憶している。

上記に検証環境の構成について簡単に記載したが
本番環境では機能毎にサーバを分けて冗長化するのが当たり前である。


1. Delivery Controller

Delivery Controllerはユーザーアクセスの管理や接続の仲介と最適化を行うためのサーバー側のコンポーネント。
↑の記載みるとなにするんだ?と思うが
ようはCitrix Studioという管理コンソールを起動してマシンカタログやデリバリーグループの設定をしてユーザーに配信するWindowsデスクトップ、サーバ、アプリケーションの設定/管理をするコンポーネント。

▼Delivery Controllerのデフォルトのポート情報について

$$
\begin{array}{|l|l|l|l|l} \hline
コンポーネント & 用途 & プロトコル & デフォルトの受信ポート  \\ \hline
Delivery Controller & VDA,Studio & TCP & 80  \\ \hline
Delivery Controller & Studio(TLS経由) & TCP & 443 \\ \hline
Delivery Controller & Delivery Controller,VDA& TCP & 89  \\ \hline
\end{array}
$$

※TCP/9095のオーケストレーションサービスというのがあるらしいが現在最新のXenDesktopではインストール時にサービスが新しく追加されているのだろうか? 情報が無いのでわかったら追記する。

2. Director

Citrix Directorという管理コンソールを起動して、ユーザーセッションの状態やマシンの状態などを確認できる。
またユーザーセッションの切断/ログオフやシャドウといってWindowsのリモートアシスタンスのようなことも実施できる。
ライセンスにより保持できるログの日数が異なる。保持しているログをレポート出力することが可能。

Directorの履歴データ保存期間は利用する製品ライセンスエディションによって異なる。VDIエディションは1週間。Platinumエディションは1年間。

Delivery Controllerに接続して上記の情報を取得する。

▼Directorのポート番号

$$
\begin{array}{|l|l|l|l|l} \hline
コンポーネント & 用途 & プロトコル & デフォルトの受信ポート & \\ \hline
Director & Delivery Controller & TCP & 80,443 & \\ \hline
\end{array}
$$


3. StoreFront


ユーザーに配信するWindowsデスクトップ、サーバ、アプリケーションを利用するためのポータル画面。
初期設定時にStoreFrontの管理コンソール画面でユーザーが接続するURLの情報を設定する。

ユーザーはWebブラウザからStoreFrontのURLに接続してログオン認証を行うと、ユーザーに配信されたWindowsデスクトップ、サーバ、アプリケーションのアイコンが画面上に表示されるためアイコンをクリックするとユーザーに配信される。

$$
\begin{array}{|l|l|l|l|l} \hline
コンポーネント & 用途 & プロトコル & デフォルトの受信ポート & \\ \hline
StoreFront & StoreFront & TCP & 80,443 & \\ \hline
\end{array}
$$

4. ライセンスサーバ

ユーザーが利用するライセンスを管理するモジュール。
ライセンス管理コンソールを起動して、
ライセンスの適用/更新、ライセンスの状態確認ができる。

ライセンスの状態確認というのは
・現在利用しているライセンスの確認
・現在利用しているライセンス数の確認
・ライセンスの有効期限の確認
のこと

2024年3月にライセンスの名称がCitrix Virtual Apps and DesktopsからCitrix for Private Cloudに変更されて、使用デバイス数/使用ユーザ数ライセンスは廃止され、同時接続数ライセンスのみとなる。という情報をネットでみたのだがCitrixのサイトを見ると1月末時点のリリースノートまでしか見つからなかった。

それを見ると
XenDesktopのライセンスのプロダクトはCitrix Virtual Desktops
エディションはPremium, Advanced, Standardの3種で
ライセンスモデルはUser(ユーザー)/Device and Concurrent(デバイスと同時接続数)
と記載されていた。以下参照したURL

ライセンスサーバが停止してしまい、ライセンス情報を確認できない場合、猶予措置として720時間(30日)は正常に読み込めていた時点のライセンス情報に基づいて継続利用が可能。
そのためライセンスサーバ自体は冗長化する必要ない。

▼ライセンスサーバのポート情報

$$
\begin{array}{|l|l|l|l|l} \hline
コンポーネント & 用途 & プロトコル & デフォルトの受信ポート & \\ \hline
ライセンスサーバー & ライセンスサーバー & TCP & 27000 & \\ \hline
ライセンスサーバー & Citrixのライセンスサーバー (ベンダーデーモン)& TCP & 7279 & \\ \hline
ライセンスサーバー & ライセンス管理コンソール & TCP & 8082 & \\ \hline
ライセンスサーバー & Web Services for Licensing & TCP & 8083 & \\ \hline
\end{array}
$$

上記のStudio(TCP/80 or 443)、Directory(TCP/80 or 443)、StoreFront(TCP/80 or 443)、ライセンス管理コンソール(TCP/8082)は各コンポーネントをインストールすると、IISサイトに管理コンソールが作成される。

アプリケーションのショートカットを指定して各管理コンソールを起動しているが、実態はIISサイトにあるためブラウザからURLを入力して各管理コンソールに接続することも可能

VDAやPVSなども記載したかったが後日更新します。



■バージョンアップの順番について

Citrix 環境の各コンポーネントをバージョンアップする際には、特定の順序を守ることが重要です。これにより、依存関係や互換性の問題を最小限に抑えることができる。
順番としては以下の順序とのこと

  1. ライセンスサーバ (License Server)

    • すべての Citrix コンポーネントがライセンスサーバに依存しているため、最初にアップグレードする必要があります。これにより、新しいバージョンのライセンスが適用され、他のコンポーネントが問題なく動作することが保証されます。

  2. データベース (Database)

    • データベースのスキーマや構造が新しいバージョンに対応していることを確認するために、次にデータベースをアップグレードします。これにより、Delivery Controller が正しく動作するための基盤が整います。

  3. Delivery Controller (DC)

    • データベースが最新の状態になった後、Delivery Controller をアップグレードします。これにより、最新の機能と改善が適用され、仮想デスクトップやアプリケーションの管理が向上します。

  4. StoreFront

    • Delivery Controller のアップグレードが完了したら、StoreFront をアップグレードします。これにより、ユーザーが最新の StoreFront 機能とインターフェースを利用できるようになります。

  5. FAS (Federated Authentication Service)

    • StoreFront が最新のバージョンになった後、FAS をアップグレードします。これにより、最新の認証機能とセキュリティが提供されます。

  6. Provisioning Services (PVS)

    • 次に、PVS をアップグレードします。これにより、仮想マシンの配信と管理が最新の機能と互換性を持つようになります。

  7. Virtual Delivery Agent (VDA)

    • 最後に、VDA をアップグレードします。これにより、エンドユーザーが最新の仮想デスクトップおよびアプリケーションの機能を利用できるようになります。VDA はエージェントソフトウェアであり、最もエンドポイントに近いため、最後にアップグレードします。

バージョンアップの順序

  1. ライセンスサーバ (License Server)

  2. データベース (Database)

  3. Delivery Controller (DC)

  4. StoreFront

  5. FAS (Federated Authentication Service)

  6. Provisioning Services (PVS)

  7. Virtual Delivery Agent (VDA)

この順序を守ることで、Citrix 環境のバージョンアップがスムーズに進み、互換性や依存関係の問題を最小限に抑えることができるとのこと。

↑で気になったのがデータベースのアップデートはDDCとPVSのどちらでも発生する認識。
以前自分がいた現場では以下の順番で実施していて、DDCとPVSのバージョンアップ時にそれぞれのデータベースのバージョンアップをしていた。

自分が去年対応した順番だと下記の流れで実施したのだが
ライセンスサーバは定期的にEOLが来ていてサービス側だバージョンアップしているので、実質的にはStoreFrontからバージョンアップ実施。

(0)ライセンスサーバ
(1)StoreFront(1台目実施後に2台目実施)
(2)DDC(1台目実施時にDBの更新が入る。それが終わったら2台目以降実施)
※DDCのバージョンアップ時にローカルホストキャッシュが無くなる場合がある。
対応としては
1.事象発生しているDDCのC:\Program Files\Citrix\ConfigSync\ConfigSync.ps1のファイルブロックをプロパティから削除
2.事象発生しているDDCの「Citrix Hign Availability」と「Citrix Config Sync」を再起動
3.ローカルホストキャッシュが生成されたか確認
上記対応後に時間経過でローカルホストキャッシュが作成されたこと確認

(3)Director
(4)PVS(1台目実施時にDBの更新が入る。それが終わったら2台目以降実施)
(5)FAS
(6)VDA
※DDCとVDAのバージョンが異なる場合は通常は合わせるのが推奨だがあっていなくて互換性がある。
(例えばDDCがCVAD2203LTSRでVDAがCVAD1912LTSRでもCitrix Studio上からは仮想マシンは登録済みになり、利用できる)

バージョンアップ後の注意点としてはクライアント側のレシーバーのCWA(Citrix Workstation アプリ)が管理サーバ側のバージョンに互換性があるかは事前検証が必要。

例えばCVAD2402の環境ではクライアント側でCWA1912を利用して仮想デスクトップに接続を試みても、接続エラーとなる事象が発生するなどあり。

CWAのバージョンをクライアント側のシンクライアント端末に定期的にアップデートできる環境であればCWAのバージョンを最新のものアップデートするなどで対応できるが、そういう環境にない場合はアップデートするCVADのバージョンには注意が必要。

CVAD2402は.Net4.8が必須なので、古くからシンクライアント端末で利用している環境ではこのアップデートが出来ず、現最新のCVAD2402を断念する環境もあるとのこと。

他、よくあるのがバージョンアップ後の画面が変わるなどがあり、
運用だとCitrix Directorを利用するが、画面やUIが変わったり、バージョンアップ(1912LTSR→2203LTSR)することでアラートポリシーの機能が動くようになったりなど想定外のことが起きる。

■VMware基盤でのCitrix環境の留意事項

VMWareのvCSAをハイパーバイザーとして利用している場合の動作の注意点について

▼証明書関連


①vCSAのマシンSSL証明書とSTS署名証明書は2年周期で切れる。
この2つのライセンスが切れることによる影響
(1)vSphere clientにログインできなくなる。
(2)VAMIにログインできなくなる。
(3)PVS配信の場合、Citrix Virtual Desktopウィザードでマシン作成が出来なくなる。(ウィザードにてPVS→vCSAの接続が出来ないため)
(4)vCSAのマシンSSL証明書とSTS署名証明書の更新作業時にDDC側にてvCSAの証明書の拇印情報を設定する必要がある。DDC側の設定はDBで持っているため冗長構成の場合であっても1台で設定してあげればよい。
※証明書更新の流れとしては以下
(1)vCSAを停止
(2)vCSAのバックアップ取得(スナップショット)
(3)vCSAを起動
(4)STS証明書の更新
(5)マシンSSL証明書の更新
(6)vCSAのサービス再起動
(7)DDCにてブラウザからvCSAのアドレスに接続し、証明書の拇印情報を確認する。
(8)上記の(7)で確認した情報をDDC側にて更新した証明書の拇印情報に設定変更する。
※マシンSSL証明書とSTS署名証明書の期限が両方切れた状態で本作業をする場合、(8)まで実施しないとCitrix Studio上から確認できる仮想デスクトップの電源状態は不明のままである。(マシンSSL証明書とSTS署名証明書の期限が両方切れた状態で(1)のvCSAの停止後からCitrix Studio上から仮想デスクトップの電源状態は全台不明の状態となる)

※以下は(4)(5)の参考手順

※(8)の手順については時間があれば調べて書きたい
(4)STS証明書の更新
1. fixsts.shを取得して、vCSA上に配置
2.fixsts.shに実行権限をつけて、実行する。
※エラーが出ないこと確認する。
※作業ディレクトリに  vmware-fixsts/fix_sts_cert.log が作成されるため実行ログ結果の確認可能

(5)マシンSSL証明書の更新
1. vCSAのCLIコンソールからPNIDの取得
/usr/bin/vmware-vmafd/bin/vmafd-cli get-pnid --server-name localhost
※コマンド実行結果を控える
2.vCSAのCLIコンソールからcertificate-managerを起動する
/usr/bin/vmware-vmafd/bin/certificate-manager
3.↑の参考URLと異なるが、4を選択する。
(4. Regenerate a new VMCA Root Certificate and replace all certificates)
4.以降は基本Enter押下で進み、必要に応じてadministrator@vsphere.localのパスワードを入力する。
※注意点として下記は上記の1で確認したPNIDを入力する
Enter Proper value for 'Hostname'
Enter Proper value for VMCA 'Name'
5.あとはウィザードが終わるまで待ち
※これ以降の対応はvsphere Client接続時に「no healthy upstream」と表示されたり、VAMIのログイン情報入力時にログイン出来ない場合に以下の6,7を実施する。
6.vCSAのサービス状態を確認
service-control-status
7.サービス再起動
service-control -restart applmgmt

(8)証明書の拇印情報に設定変更する。
1. Citrix Studioを起動して、PowerShellボタンからPowerShellを起動する
2. Powershellにて以下コマンドを実行して『SslThumbprints』の値を確認する
dir "XDHyp:\connections"
3.ブラウザからvCSAのアドレスに接続して、アドレスバーの[証明書のエラー]-[証明書の表示]を選択して、証明書ウィンドウを開く
4.証明書ウィンドウの[詳細]タブを選択して、[拇印]の値を確認する。
5.PowerShellで下記のコマンドを実行して、vCSAの認証情報を記録する
$cred = Get-Credential
6.ユーザー名、パスワードを入力(administrator@vsphere.local)
7. Powershellにて以下コマンドを実行して『SslThumbprints』の値を更新する。
Set-Item-LiteralPath "XDHyp:\connections\<接続名(my connection)>" -username $cred.username -securepassword $cred.password -sslthumbprint "<拇印の値>" -hypervisorAddress https://<vCSAのIPアドレス>
※接続名はおそらくdir "XDHyp:\connections"で確認できると思われる
※拇印の値は上記4で確認した拇印の値を空白を削除し、小文字は大文字にしたものをコマンドに指定する。
8. Powershellにて以下コマンドを実行して『SslThumbprints』の値を確認して、値が更新されていることを確認する。
dir "XDHyp:\connections"

9.Citrix Studioよりマシンの電源状態が不明ではなくなり、登録状態が登録済みであることを確認する。

以降はVAMIにて事後バックアップ(OVF)を取るなり、作業前のスナップショットを削除するなり。vCSAの事後バックアップについては起動状態でも停止状態でもOVFバックアップは取れる為、内部の運用ルールに合わせて実施。

■動作関連


①vCSAを定期運用/バージョンアップなどで停止する場合
▼DDC観点
Citrix Studio上から見ると、マシンの電源状態が不明となる。
不明となった場合、Citrix Studio上からの電源関連の命令はvCSAに送信できなくなる。
そのためCitrix Studioの電源管理の設定で仮想デスクトップが起動するように設定していても自動起動してこない事象が発生する。
これによりユーザーが仮想デスクトップをログオフしたときに、マシンが停止状態のままとなり、この間ログオフしたマシンは停止状態のため利用出来ない状態となる。

▼PVS観点
PVSにおいてはvCSAが停止していても、その前の段階でマシンが配信されており、Citrix Studio上にて登録済みの状態であれば利用に影響はないとのこと

▼DB観点
ミラーリング構成など冗長構成の場合、フェイルオーバー/フェイルバック時に仮想デスクトップに接続できない可能性あり。
※ローカルホストキャッシュが環境にある構成の場合、仮想デスクトップに接続出来ない事象は発生しないのが想定の動作。



■VMotion時の注意事項

①PVSのvMotion時に配信している仮想デスクトップにて一時的にフリーズが発生する可能性があり。セッションが途切れた場合も再接続で接続可能



いいなと思ったら応援しよう!