ローカルホストキャッシュ
Citrix Virtual Apps and Desktopsサイトデータベースが常に利用可能であることを保証するため、CitrixはMicrosoftの高可用性ベストプラクティスに従って、フォールトトレラントなSQL Server展開から始めることを推奨します。(サポートされているSQL Serverの高可用性機能については、データベースを参照してください。) しかし、ネットワークの問題や中断により、ユーザーがアプリケーションやデスクトップに接続できなくなる可能性があります。
ローカルホストキャッシュ機能により、障害発生時でもサイト内の接続仲介操作を続行できます。障害は、オンプレミスのCitrix®環境でDelivery Controller™とサイトデータベース間の接続が失敗したときに発生します。サイトデータベースに90秒間アクセスできない場合、ローカルホストキャッシュが有効になります。
XenAppおよびXenDesktop 7.16以降、接続リース機能(以前のリリースにおける前身の高可用性機能)は製品から削除され、利用できなくなりました。
データコンテンツ
ローカルホストキャッシュには、メインデータベースの情報の一部である以下の情報が含まれます。
- サイトから公開されたリソースへの権限が割り当てられているユーザーおよびグループのID。
- サイトから公開されたリソースを現在使用している、または最近使用したユーザーのID。
- サイトで構成されているVDAマシン(リモートPCアクセスを含む)のID。
- 公開されたリソースへの接続に積極的に使用されているクライアントCitrix Receiver™マシンのID(名前とIPアドレス)。
また、メインデータベースが利用できなかったときに確立された、現在アクティブな接続に関する情報も含まれています。
- Citrix Receiverによって実行されたクライアントマシンのエンドポイント分析の結果。
- サイトに関与しているインフラストラクチャマシン(NetScaler GatewayやStoreFront™サーバーなど)のID。
- ユーザーによる最近の活動の日付、時刻、種類。
仕組み
以下の図は、通常の操作におけるローカルホストキャッシュのコンポーネントと通信パスを示しています。
ローカルホストキャッシュの通常の操作中の通信パスの図(/ja-jp/citrix-virtual-apps-desktops/2511/media/lhc-normal1.png)
通常の操作中
- Controller 上の プリンシパルブローカー (Citrix Broker Service) は、StoreFront からの接続要求を受け入れます。ブローカーはサイトデータベースと通信し、Controller に登録されている VDA とユーザーを接続します。
- Citrix Config Synchronizer Service (CSS) は、約5分ごとにブローカーに問い合わせて、変更が行われたかどうかを確認します。これらの変更は、管理者によって開始されたもの(デリバリーグループのプロパティの変更など)またはシステムアクション(マシン割り当てなど)である可能性があります。
-
前回のチェック以降に構成変更があった場合、CSS は情報を Controller 上のセカンダリブローカーに同期(コピー)します。(セカンダリブローカーは High Availability Service とも呼ばれます。)
前回のチェック以降に変更された項目だけでなく、すべての構成データがコピーされます。CSS は構成データを Controller 上の Microsoft SQL Server Express LocalDB データベースにインポートします。このデータベースはローカルホストキャッシュデータベースと呼ばれます。CSS は、ローカルホストキャッシュデータベースの情報がサイトデータベースの情報と一致することを確認します。ローカルホストキャッシュデータベースは、同期が行われるたびに再作成されます。
Microsoft SQL Server Express LocalDB(ローカルホストキャッシュデータベースで使用)は、Controller をインストールすると自動的にインストールされます。(コマンドラインから Controller をインストールする際に、このインストールを禁止できます。)ローカルホストキャッシュデータベースは、複数の Controller 間で共有することはできません。ローカルホストキャッシュデータベースをバックアップする必要はありません。構成変更が検出されるたびに再作成されます。
- 前回のチェック以降に変更がない場合、データはコピーされません。
以下の図は、プリンシパルブローカーがサイトデータベースとの接続を失った場合(停止が開始された場合)の通信パスの変化を示します。
ローカルホストキャッシュの停止中の通信パスの図(/ja-jp/citrix-virtual-apps-desktops/2511/media/lhc-outage1.png)
障害発生時
停止が開始されると:
- セカンダリブローカーは接続要求のリッスンと処理を開始します。
- 停止が開始された時点では、セカンダリブローカーは最新の VDA 登録データを持っていませんが、VDA がセカンダリブローカーと通信すると、登録プロセスがトリガーされます。そのプロセス中に、セカンダリブローカーはその VDA に関する現在のセッション情報も取得します。
- セカンダリブローカーが接続を処理している間、ブローカリングプリンシパルは接続の監視を続行します。接続が復元されると、ブローカリングプリンシパルはセカンダリブローカーに接続情報のリスニングを停止するよう指示し、ブローカリングプリンシパルはブローカリング操作を再開します。VDAが次にブローカリングプリンシパルと通信するときに、登録プロセスがトリガーされます。セカンダリブローカーは、以前の停止から残っているVDA登録をすべて削除します。CSSは、展開で構成変更が発生したことを認識すると、情報の同期を再開します。
同期中に停止が発生するという万が一の事態では、現在のインポートは破棄され、最後に認識された構成が使用されます。
イベントログには、同期と停止に関する情報が記載されています。
停止モードでの動作に時間制限はありません。
通常モードと停止モード間の移行は、既存のセッションには影響しません。新しいセッションの起動にのみ影響します。
意図的に停止をトリガーすることもできます。その理由と方法の詳細については、「停止の強制」を参照してください。
複数のControllerがあるサイト
CSSは、他のタスクの中でも、ゾーン内のすべてのControllerに関する情報をセカンダリブローカーに定期的に提供します。(展開に複数のゾーンが含まれていない場合、このアクションはサイト内のすべてのControllerに影響します。)この情報を持つことで、各セカンダリブローカーは、ゾーン内の他のControllerで実行されているすべてのピアセカンダリブローカーについて認識します。
セカンダリブローカーは、別のチャネルで相互に通信します。これらのブローカーは、実行されているマシンのFQDN名のアルファベット順リストを使用して、停止が発生した場合にゾーンでブローカー操作を行うセカンダリブローカーを決定(選出)します。停止中、すべてのVDAは選出されたセカンダリブローカーに登録します。ゾーン内の選出されていないセカンダリブローカーは、受信接続およびVDA登録要求を積極的に拒否します。
停止中に選出されたセカンダリブローカーが失敗した場合、別のセカンダリブローカーが選出されて引き継ぎ、VDAは新しく選出されたセカンダリブローカーに登録します。
停止中にControllerが再起動された場合:
- そのControllerが選出されたブローカーでない場合、再起動による影響はありません。
- そのControllerが選出されたブローカーである場合、別のControllerが選出され、VDAが登録されます。再起動されたControllerの電源がオンになると、自動的にブローカリングを引き継ぎ、VDAが再度登録されます。このシナリオでは、登録中にパフォーマンスが影響を受ける可能性があります。
通常操作中にControllerの電源をオフにし、停止中に電源をオンにした場合、そのControllerがブローカーとして選出されても、そのControllerではローカルホストキャッシュを使用できません。
イベントログには、選出に関する情報が記載されています。
停止中に利用できないもの、およびその他の相違点
停止モードでの運用に時間制限はありません。ただし、Citrixは可能な限り迅速に接続を復元することを推奨します。
障害発生時:
- Studioを使用できません。
-
PowerShell SDKへのアクセスが制限されます。
- まず、次の操作を行う必要があります。
- レジストリキー
EnableCssTestModeに値1を追加します:New-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC -Name EnableCssTestMode -PropertyType DWORD -Value 1 - ポート89を使用します:
Get-BrokerMachine -AdminAddress localhost:89 | Select MachineName, ControllerDNSName, DesktopGroupName, RegistrationState
- レジストリキー
- これらのコマンドを実行すると、以下にアクセスできます。
- すべての
Get-Broker*コマンドレット。
- すべての
- まず、次の操作を行う必要があります。
- ハイパーバイザーの資格情報はホストサービスから取得できません。すべてのマシンは不明な電源状態になり、電源操作を発行できません。ただし、ホスト上で電源がオンになっているVMは、接続要求に使用できます。
- 割り当てられたマシンは、通常の操作中に割り当てが行われた場合にのみ使用できます。停止中に新しい割り当てを行うことはできません。
- Remote PC Accessマシンの自動登録と構成はできません。ただし、通常の操作中に登録および構成されたマシンは使用可能です。
- サーバーでホストされているアプリケーションおよびデスクトップのユーザーは、リソースが異なるゾーンにある場合、構成されたセッション制限よりも多くのセッションを使用する可能性があります。
- ユーザーは、現在アクティブ/選出されているセカンダリブローカーを含むゾーン内の登録済みVDAからのみアプリケーションとデスクトップを起動できます。停止中は、ゾーンをまたいだ起動(あるゾーンのセカンダリブローカーから別のゾーンのVDAへの起動)はサポートされません。
- 配信グループ内のVDAのスケジュールされた再起動が開始される前にサイトデータベースの停止が発生した場合、停止が終了したときに再起動が開始されます。これは意図しない結果を招く可能性があります。詳細については、(/ja-jp/citrix-virtual-apps-desktops/2511/install-configure/delivery-groups-manage.html#scheduled-restarts-delayed-due-to-database-outage)を参照してください。
- (/ja-jp/citrix-virtual-apps-desktops/2511/manage-deployment/zones.html#zone-preference)は構成できません。構成されている場合、セッション起動時に設定は考慮されません。
- タグがゾーンの指定に使用される(/ja-jp/citrix-virtual-apps-desktops/2511/manage-deployment/tags.html#tag-restrictions-for-a-desktop-or-an-application-group)は、セッション起動ではサポートされていません。このようなタグ制限が構成され、StoreFrontストアの(/ja-jp/storefront/1912-ltsr/configure-manage-stores/advanced-store-settings.html#background-health-check-polling-period)オプションが有効になっている場合、セッションの起動が断続的に失敗する可能性があります。
アプリケーションとデスクトップのサポート
LHCは、次の種類のVDAと配信モデルをサポートしています。
| VDAの種類 | 配信モデル | LHCイベント中のVDAの可用性 |
|---|---|---|
| マルチセッションOS | アプリケーションとデスクトップ | 常に利用可能。 |
| シングルセッションOS静的(割り当て済み) | デスクトップ | 常に利用可能。 |
| 電源管理シングルセッションOSランダム(プール済み)
|
デスクトップ
|
デフォルトでは利用できません。プールされた配信グループ内の電源管理VDAへのすべてのセッション起動試行は、デフォルトで失敗します。
LHCイベント中に新しい接続で利用できるようにすることができます。詳細については、(#enable-lhc-for-power-managed-single-session-os-pooled-vdas-using-web-studio)および(#enable-lhc-for-power-managed-single-session-os-pooled-vdas-using-powershell)を参照してください。 重要: 電源管理されたシングルセッションのプールされたマシンへのアクセスを有効にすると、以前のユーザーセッションからのデータと変更が後続のセッションに存在する可能性があります。 |
注:
プールされた配信グループ内の電源管理デスクトップVDAへのアクセスを有効にしても、通常の操作中に構成された
ShutdownDesktopsAfterUseプロパティがどのように機能するかには影響しません。LHC中にこれらのデスクトップへのアクセスが有効になっている場合、LHCイベントが完了してもVDAは自動的に再起動しません。プールされた配信グループ内の電源管理デスクトップVDAは、VDAが再起動するまで以前のセッションからのデータを保持できます。VDAの再起動は、非LHC操作中にユーザーがVDAからログオフしたとき、または管理者がVDAを再起動したときに発生する可能性があります。
Web Studioを使用して、電源管理シングルセッションOSプール済みVDAのLHCを有効にする
Web Studioを使用して、LHCイベント中にそれらのマシンを配信グループごとに新しい接続で利用できるようにすることができます。
- 配信グループの作成中にこの機能を有効にするには、(/ja-jp/citrix-virtual-apps-desktops/2511/install-configure/delivery-groups-create#step-10-local-host-cache-setting)を参照してください。
- 既存の配信グループでこの機能を有効にするには、(/ja-jp/citrix-virtual-apps-desktops/2511/install-configure/delivery-groups-manage#machines)を参照してください。
注:
この設定は、電源管理VDAを配信するプールされたデスクトップ配信グループに対してのみWeb Studioで利用できます。
PowerShellを使用して、電源管理シングルセッションOSプール済みVDAのLHCを有効にする
特定のデリバリーグループ内のVDAでLHCを有効にするには、次の手順に従います。
-
このコマンドを実行して、サイトレベルでこの機能を有効にします。
Set-BrokerSite -ReuseMachinesWithoutShutdownInOutageAllowed $true -
デリバリーグループ名を指定してこのコマンドを実行し、デリバリーグループでLHCを有効にします。
Set-BrokerDesktopGroup -Name "name" -ReuseMachinesWithoutShutdownInOutage $true
電源管理されたVDAを持つ新しく作成されたプールされたデリバリーグループのデフォルトのLHC可用性を変更するには、次のコマンドを実行します。
Set-BrokerSite -DefaultReuseMachinesWithoutShutdownInOutage $true
RAMサイズの考慮事項
LocalDBサービスは、約1.2 GBのRAMを使用できます(データベースキャッシュに最大1 GB、SQL Server Express LocalDBの実行に200 MB)。障害が長期間続き、多数のログオンが発生した場合(たとえば、10,000ユーザーで12時間)、セカンダリブローカーは最大1 GBのRAMを使用できます。これらのメモリ要件は、コントローラーの通常のRAM要件に追加されるため、RAM容量の合計を増やす必要がある場合があります。
サイトデータベースにSQL Server Expressインストールを使用する場合、サーバーには2つのsqlserver.exeプロセスが存在します。
CPUコアとソケット構成の考慮事項
コントローラーのCPU構成、特にSQL Server Express LocalDBで利用可能なコア数は、メモリ割り当てよりもさらに、ローカルホストキャッシュのパフォーマンスに直接影響します。このCPUオーバーヘッドは、データベースにアクセスできず、セカンダリブローカーがアクティブになっている障害期間中にのみ発生します。
LocalDBは複数のコア(最大4つ)を使用できますが、単一のソケットに制限されています。ソケットを追加してもパフォーマンスは向上しません(たとえば、1コアずつ4つのソケットがある場合)。代わりに、Citrixは複数のソケットと複数のコアを使用することを推奨しています。Citrixのテストでは、2x3(2ソケット、3コア)構成が4x1および6x1構成よりも優れたパフォーマンスを提供しました。
ストレージの考慮事項
障害中にユーザーがリソースにアクセスすると、LocalDBは増大します。たとえば、毎秒10ログオンで実行されるログオン/ログオフテスト中に、データベースは2〜3分ごとに1 MB増加しました。通常操作が再開されると、ローカルデータベースは再作成され、スペースは解放されます。ただし、障害中のデータベースの増大に対応できるよう、LocalDBがインストールされているドライブには十分な空き容量が必要です。ローカルホストキャッシュは、障害中にさらに多くのI/Oを発生させます。具体的には、毎秒約3 MBの書き込みと、数十万回の読み取りが発生します。
パフォーマンスに関する考慮事項
障害発生時には、1つのセカンダリブローカーがすべての接続を処理するため、通常の運用中に複数のコントローラー間で負荷分散を行うサイト(またはゾーン)では、選出されたセカンダリブローカーが障害発生時に通常よりもはるかに多くの要求を処理する必要がある場合があります。したがって、CPUの要求は高くなります。障害発生時に選出されるセカンダリブローカーは変更される可能性があるため、サイト(ゾーン)内のすべてのセカンダリブローカーは、ローカルホストキャッシュデータベースと影響を受けるすべてのVDAによって課される追加の負荷を処理できる必要があります。
VDIの制限:
- シングルゾーンVDI展開では、障害発生時に最大10,000台のVDAを効果的に処理できます。
- マルチゾーンVDI展開では、障害発生時に各ゾーンで最大10,000台のVDAを効果的に処理でき、サイト全体で最大40,000台のVDAを処理できます。たとえば、以下の各サイトは障害発生時に効果的に処理できます。
- 4つのゾーンがあり、それぞれに10,000台のVDAが含まれるサイト。
- 7つのゾーンがあり、1つのゾーンに10,000台のVDA、残りの6つのゾーンにそれぞれ5,000台のVDAが含まれるサイト。
障害発生時には、サイト内の負荷管理が影響を受ける可能性があります。負荷評価器(特にセッション数ルール)が超過する可能性があります。
すべてのVDAがセカンダリブローカーに登録するのにかかる時間の間、そのサービスは現在のセッションに関する完全な情報を持っていない可能性があります。そのため、その期間中のユーザー接続要求は、既存のセッションへの再接続が可能であったとしても、新しいセッションが起動される結果となる可能性があります。この期間(「新しい」セカンダリブローカーが再登録中にすべてのVDAからセッション情報を取得する間)は避けられません。障害発生時に接続されていたセッションは移行期間中に影響を受けませんが、新しいセッションやセッションの再接続は影響を受ける可能性があります。
この期間は、VDAが登録する必要があるたびに発生します。
- 障害の開始: プリンシパルブローカーからセカンダリブローカーへの移行時。
- 障害発生中のセカンダリブローカーの障害: 障害が発生したセカンダリブローカーから新しく選出されたセカンダリブローカーへの移行時。
- 障害からの回復: 通常の運用が再開され、プリンシパルブローカーが制御を再開したとき。
Citrix Broker ProtocolのHeartbeatPeriodMsレジストリ値(デフォルト = 600000 ms、つまり10分)を低くすることで、間隔を短縮できます。このハートビート値はVDAがpingに使用する間隔の2倍であるため、デフォルト値では5分ごとにpingが実行されます。
たとえば、次のコマンドはハートビートを5分(300000ミリ秒)に変更し、2.5分ごとにpingが実行されるようにします。
New-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer -Name HeartbeatPeriodMs -PropertyType DWORD –Value 300000
ハートビート値を変更する際は注意してください。頻度を上げると、通常モードと停止モードの両方でControllerへの負荷が増大します。
VDAがどれだけ迅速に登録されても、間隔を完全に排除することはできません。
セカンダリブローカー間の同期にかかる時間は、オブジェクト(VDA、アプリケーション、グループなど)の数が増えるにつれて長くなります。たとえば、5000個のVDAを同期するには、完了までに10分以上かかる場合があります。
XenApp 6.xリリースとの違い
このローカルホストキャッシュの実装は、XenApp 6.xおよびそれ以前のXenAppリリースにおけるローカルホストキャッシュ機能と同じ名前を共有していますが、大幅な改善が施されています。この実装はより堅牢で、破損の影響を受けません。定期的なdsmaintコマンドの必要性を排除するなど、メンテナンス要件が最小限に抑えられています。このローカルホストキャッシュは、技術的にはまったく異なる実装です。
ローカルホストキャッシュの管理
ローカルホストキャッシュが正しく機能するには、各ControllerのPowerShell実行ポリシーをRemoteSigned、Unrestricted、またはBypassに設定する必要があります。
SQLサーバー エクスプレス LocalDB
ローカルホストキャッシュが使用するMicrosoft SQL Server Express LocalDBソフトウェアは、Controllerをインストールするか、バージョン7.9より前のControllerをアップグレードする際に自動的にインストールされます。セカンダリブローカーのみがこのデータベースと通信します。PowerShellコマンドレットを使用してこのデータベースに関する何も変更することはできません。LocalDBはController間で共有できません。
SQL Server Express LocalDBデータベースソフトウェアは、ローカルホストキャッシュが有効になっているかどうかにかかわらずインストールされます。
そのインストールを防ぐには、XenDesktopServerSetup.exeコマンドを使用してControllerをインストールまたはアップグレードし、/exclude "Local Host Cache Storage (LocalDB)"オプションを含めます。ただし、データベースなしではローカルホストキャッシュ機能は動作せず、セカンダリブローカーで別のデータベースを使用することはできないことに注意してください。
このLocalDBデータベースのインストールは、サイトデータベースとして使用するためにSQL Server Expressをインストールするかどうかには影響しません。
以前のSQL Server Express LocalDBバージョンを新しいバージョンに置き換える方法については、「Replace SQL Server Express LocalDB」を参照してください。
製品のインストールとアップグレード後のデフォルト設定
Citrix Virtual Apps and Desktops (最小バージョン 7.16) の新規インストール中に、ローカルホストキャッシュが有効になります。
アップグレード後 (バージョン 7.16 以降)、展開全体で 10,000 未満の VDA がある場合、ローカルホストキャッシュが有効になります。
ローカルホストキャッシュの有効化と無効化
-
ローカルホストキャッシュを有効にするには、次のように入力します。
Set-BrokerSite -LocalHostCacheEnabled $trueローカルホストキャッシュが有効になっているかどうかを確認するには、
Get-BrokerSiteと入力します。LocalHostCacheEnabledプロパティがTrueであることを確認します。 -
ローカルホストキャッシュを無効にするには、次のように入力します。
Set-BrokerSite -LocalHostCacheEnabled $false
注意: XenApp and XenDesktop 7.16 以降、接続リース (バージョン 7.6 以降のローカルホストキャッシュに先行する機能) は製品から削除され、利用できなくなりました。
ローカルホストキャッシュが機能していることを確認する
ローカルホストキャッシュが正しく設定され、機能していることを確認するには:
- 同期インポートが正常に完了していることを確認します。イベントログ を確認してください。
- 各デリバリーコントローラーに SQL Server Express LocalDB データベースが作成されていることを確認します。これにより、必要に応じてセカンダリブローカーが引き継ぐことができることが確認されます。
- デリバリーコントローラーサーバーで、
C:\Windows\ServiceProfiles\NetworkServiceに移動します。 -
HaDatabaseName.mdfとHaDatabaseName_log.ldfが作成されていることを確認します。
- デリバリーコントローラーサーバーで、
- Delivery Controllerで(#force-an-outage)を実行します。ローカルホストキャッシュが機能することを確認したら、すべてのコントローラーを通常モードに戻すことを忘れないでください。これには約15分かかる場合があります。
イベントログ
イベントログは、同期と停止が発生した時期を示します。イベントビューアーログでは、停止モードはHAモードと呼ばれます。
設定同期サービス:
通常の操作中、CSSがローカルホストキャッシュブローカーを使用して構成データをローカルホストキャッシュデータベースにインポートすると、次のイベントが発生する可能性があります。
- 503: Citrix Config Sync Serviceが更新された構成を受信しました。このイベントは、同期プロセスの開始を示します。
- 504: Citrix Config Sync Serviceが更新された構成をインポートしました。構成のインポートは正常に完了しました。
- 505: Citrix Config Sync Serviceがインポートに失敗しました。構成のインポートは正常に完了しませんでした。以前に正常に完了した構成が利用可能な場合、停止が発生したときにそれが使用されます。ただし、それは現在の構成から古くなります。以前の構成が利用できない場合、サービスは停止中にセッションブローカーに参加できません。この場合、(#troubleshoot)セクションを参照し、Citrixサポートにお問い合わせください。
- 507: システムが停止モードであり、ローカルホストキャッシュブローカーがブローカー処理に使用されているため、Citrix Config Sync Serviceはインポートを中止しました。サービスは新しい構成を受信しましたが、停止が発生したためインポートは中止されました。これは予期される動作です。
- 510: プライマリ構成サービスから構成サービス構成データが受信されませんでした。
- 517: プライマリブローカーとの通信に問題がありました。
- 518: セカンダリブローカー(高可用性サービス)が実行されていないため、Config Syncスクリプトが中止されました。
高可用性サービス:
このサービスは、ローカルホストキャッシュブローカーとも呼ばれます。
- 3502: 停止が発生し、ローカルホストキャッシュブローカーがブローカー処理を実行しています。
- 3503: 停止が解決され、通常の操作が再開されました。
- 3504: どのローカルホストキャッシュブローカーが選出されたか、および選出に関与した他のローカルホストキャッシュブローカーを示します。
- 3507: 2分ごとにローカルホストキャッシュのステータス更新を提供し、選出されたブローカーでローカルホストキャッシュモードがアクティブであることを示します。停止期間、VDA登録、セッション情報を含む停止の概要が含まれます。
- 3508: 選出されたブローカーでローカルホストキャッシュがアクティブでなくなり、通常の操作が復元されたことを通知します。停止期間、ローカルホストキャッシュイベント中に登録されたマシンの数、LHCイベント中の起動成功数を含む停止の概要が含まれます。
- 3509: 非選出ブローカーでローカルホストキャッシュがアクティブであることを通知します。2分ごとの停止期間と、選出されたブローカーを示します。
- 3510: 非選出ブローカーでローカルホストキャッシュがアクティブでなくなったことを通知します。停止期間と、選出されたブローカーを示します。
停止を強制する
意図的に停止を強制したい場合があります。
- ネットワークが繰り返し停止したり再開したりする場合。ネットワークの問題が解決されるまで停止を強制することで、通常モードと停止モード間の継続的な移行(およびそれに伴う頻繁なVDA登録ストーム)を防ぎます。
- ディザスタリカバリ計画をテストするため。
- ローカルホストキャッシュが正しく機能していることを確認するため。
- サイトデータベースサーバーの交換または保守中。
停止を強制するには、Delivery Controllerを含む各サーバーのレジストリを編集します。HKLM\Software\Citrix\DesktopServer\LHCで、OutageModeForcedをREG_DWORDとして1に作成および設定します。この設定により、データベースの状態に関係なく、ローカルホストキャッシュブローカーは停止モードに入ります。値を0に設定すると、ローカルホストキャッシュブローカーは停止モードを終了します。
イベントを確認するには、C:\ProgramData\Citrix\WorkspaceCloud\Logs\Plugins\HighAvailabilityServiceにあるCurrent_HighAvailabilityServiceログファイルを監視します。
トラブルシューティング
同期インポートがローカルホストキャッシュデータベースに失敗し、505イベントが投稿された場合、いくつかのトラブルシューティングツールが利用可能です。
CDFトレース: ConfigSyncServerおよびBrokerLHCモジュールのオプションが含まれています。これらのオプションは、他のブローカーモジュールとともに、問題を特定するのに役立つでしょう。
レポート: 同期インポートが失敗した場合、レポートを生成できます。このレポートは、エラーの原因となっているオブジェクトで停止します。このレポート機能は同期速度に影響を与えるため、Citrixは使用しないときは無効にすることを推奨しています。
CSSトレースレポートを有効にして生成するには、次のコマンドを入力します。
New-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC -Name EnableCssTraceMode -PropertyType DWORD -Value 1
HTMLレポートはC:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\CitrixBrokerConfigSyncReport.htmlに投稿されます。
レポートが生成されたら、レポート機能を無効にするには次のコマンドを入力します。
Set-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC -Name EnableCssTraceMode -Value 0
ブローカー構成のエクスポート: デバッグ目的で正確な構成を提供します。
Export-BrokerConfiguration | Out-File <file-pathname>
例: Export-BrokerConfiguration | Out-File C:\\BrokerConfig.xml。
ローカルホストキャッシュのPowerShellコマンド
PowerShellコマンドを使用して、Delivery Controllerでローカルホストキャッシュ(LHC)を管理できます。
PowerShellモジュールは、デリバリーコントローラーの次の場所にあります。
C:\Program Files\Citrix\Broker\Service\ControlScripts
重要:
このモジュールは、Delivery Controllerでのみ実行してください。
PowerShellモジュールのインポート
モジュールをインポートするには、Delivery Controllerで以下を実行します。
cd C:\Program Files\Citrix\Broker\Service\ControlScripts
Import-Module .\HighAvailabilityServiceControl.psm1
LHCを管理するためのPowerShellコマンド
次のコマンドは、Delivery ControllerでLHCモードをアクティブ化および管理するのに役立ちます。
| コマンドレット | 機能 |
|---|---|
Enable-LhcForcedOutageMode |
ブローカーをLHCモードにします。Enable-LhcForcedOutageModeが適切に機能するには、ConfigSync ServiceによってLHCデータベースファイルが正常に作成されている必要があります。このコマンドレットは、実行されたDelivery ControllerでのみLHCを強制します。LHCをアクティブにするには、このコマンドをゾーン内のすべてのDelivery Controllerで実行する必要があります。 |
Disable-LhcForcedOutageMode |
ブローカーをLHCモードから外します。このコマンドレットは、実行されたDelivery ControllerでのみLHCモードを無効にします。Disable-LhcForcedOutageModeは、ゾーン内のすべてのDelivery Controllerで実行する必要があります。 |
Set-LhcConfigSyncIntervalOverride |
Citrix Config Synchronizer Service (CSS) がサイト内の構成変更をチェックする間隔を設定します。時間間隔は60秒(1分)から3600秒(1時間)まで設定できます。この設定は、実行されたDelivery Controllerにのみ適用されます。Delivery Controller間の一貫性を保つため、このコマンドレットを各Delivery Controllerで実行することを検討してください。例: Set-LhcConfigSyncIntervalOverride -Seconds 1200
|
Clear-LhcConfigSyncIntervalOverride |
Citrix Config Synchronizer Service (CSS) がサイト内の構成変更をチェックする間隔を、デフォルト値の300秒(5分)に設定します。この設定は、実行されたDelivery Controllerにのみ適用されます。Delivery Controller間の一貫性を保つため、このコマンドレットを各Delivery Controllerで実行することを検討してください。 |
Enable-LhcHighAvailabilitySDK |
実行されたDelivery Controller内のすべてのGet-Broker*コマンドレットへのアクセスを有効にします。 |
Disable-LhcHighAvailabilitySDK |
実行されたDelivery Controller内のBrokerコマンドレットへのアクセスを無効にします。 |
注:
- Delivery Controllerで
Get-Broker*コマンドレットを実行する際は、ポート89を使用してください。例:
Get-BrokerMachine -AdminAddress localhost:89- LHCモードでない場合、Delivery Controller上のLHC Brokerは構成情報のみを保持します。
- LHCモード中、選出されたDelivery Controller上のLHC Brokerは以下の情報を保持します。
- リソースの状態
- セッションの詳細
- VDA登録
- 構成に関する情報