SQL Server および Citrix Virtual Apps and Desktops データベース

Microsoft SQL Serverは、あらゆるCitrix Virtual Apps and Desktops(CVAD)導入における重要なコンポーネントです。
Citrix SQLのやりとりを計画して理解することは、健全でパフォーマンスの高いCitrix環境を維持する上で、あなたとあなたの組織にとって非常に有益です。
SQL Serverの高可用性と十分なコンピューティングリソースが不足していると、Citrixインフラストラクチャのユーザーエクスペリエンスとアップタイムに悪影響を及ぼします。

データベース概要

Citrix Virtual Apps and Desktops の導入時に必要/作成されるデータベースは3つあります:

サイト:(サイト構成とも呼ばれます)実行中のサイト構成に加えて、現在のセッション状態、接続、負荷、Virtually Delivery Agent(VDA)のステータス情報など、仲介に関連する動的データを格納します。

構成ログ:(ログとも呼ばれます) サイト構成の変更と管理アクティビティに関する情報を格納します。このデータベースは、構成ログ機能が有効化(デフォルトは有効)されているときに使用されます。

監視:セッションや接続情報など、Directorが使用するデータを格納します。

Citrix Virtual Apps and Desktopsの初期構成時に、Studioを使用するか、SQL Serverでスクリプトを実行することにより、3つの個別のデータベースが作成されます。

大規模な監視データベースがある環境では、監視データベースをサイト構成および構成ログデータベースとは別のサーバーでホストするのが理想的な構成です。
これは、より多くのデータを記録し、変更がより頻繁に発生し、データは他のデータベースほど重要であるとはみなされません。
詳細については、「 監視および構成ログデータベースのデータベース場所を変更する方法」を参照してください。

障害イベントや問題をキャッチするために、SQL Serverとデータベースの適切な監視が行われていることを確認してください。

Citrix と SQL の相互作用

Delivery Controllerは、データベースをブローカー通信のメッセージバスとして使用し、構成、監視、および監査データを保存します。
データベースは常に使用されており、SQL サーバー上のコンピューティングリソースを大量に消費する可能性があります。

リソースの列挙(リソースを識別してユーザーに提示する)、リソースの起動、およびセッションの起動段階では、Citrix Delivery ControllerがSQLサーバーと通信する必要があります。

列挙:
NetScalerとStoreFrontによる認証が成功すると、Delivery ControllerはCitrixサイトデータベースにアクセスし、AD資格情報に基づいてユーザーがどのアプリケーションを使用できるかを確認します。リソースが特定されると、追加情報 (アプリ、デスクトップ、アイコンの名前など) がデータベースから取得されます。

起動:
起動するアプリケーションまたはデスクトップをユーザーが選択すると、StoreFront は起動要求をDelivery Controllerに送信します。Delivery Controllerは、SQL Server上のサイトデータベースにアクセスして、ユーザーの送信先となる適切なVDAを選択します。

セッションの初期化:
セッションの開始後、VDAはDelivery Controllerと通信して、セッション情報をサイトデータベースに書き込みます。

データベースに関する推奨事項

SQL Serverの停止によるCitrix Virtual Apps and Desktopsインフラストラクチャへの影響を最小限に抑えるため、 お客様は次の高可用性データベースオプションから選択できます:

  • SQL Server AlwaysOnフェールオーバークラスターインスタンス
  • SQL ServerのAlwaysOn可用性グループ(基本的な可用性グループを含む)
  • SQL Serverデータベースミラーリング

Citrix では、3つのデータベースすべてに同じ高可用性アプローチを使用することを推奨しています。
たとえば、SQL AlwaysOn 可用性グループを HA 戦略として使用する予定の場合は、これを 3 つのデータベースオブジェクトすべてに使用してください。

また、Citrix データベース自体、特にサイトデータベースを毎日完全にバックアップすることをお勧めします。

保存期間は組織の要件によって異なりますが、通常は 7 日間の完全バックアップと 1 か月以上の週次バックアップを維持します。
トランザクションログのバックアップスケジュールは、組織の基準とトランザクションログの増加率を組み合わせて作成する必要があります。
SQL サーバーで使用可能なストレージを必ず監視してください。

Citrix データベースの復旧モデルを、現在採用している高可用性アプローチの要件に合わせてください。

Microsoft の推奨に従い、お客様はデータベースインデックスを維持するために夜間または毎週実行するメンテナンスプランを設定します。メンテナンスプランでは、平日の夜間にインデックスを再編成し、週末にインデックスを再構築するだけで済みます。

これにより、特に大規模な監視データベースの場合、日常の運用中に大きなインデックスを再構築することによるパフォーマンスへの影響が回避されます。
Microsoftでは、断片化が 30% を超える場合はインデックスを再構築し、30% 未満の場合は再編成することをお勧めしています。

ローカルホストキャッシュ

データベースが使用できなくなるシナリオに対応するため、Citrix では、Citrix Virtual Apps and Desktops にローカルホストキャッシュ(LHC)機能を提供しています。

このオプションにより、Delivery ControllerとCitrixサイト構成データベース間の通信が中断された場合でも、公開アプリケーションとデスクトップのユーザーが接続できるようになります。
SQLがAlwaysOnやMirroringなどの可用性の高いアーキテクチャで構成されている場合、この機能により、SQLが完全に停止したり、ネットワーク接続が中断されたりしたときの耐障害性が向上します。

SQL が停止している間はサイト管理機能を使用できず、フェイルオーバー処理は瞬時に行われないため、これは SQL の高可用性の代替手段とは考えないでください

SQLが停止した場合、LHCに移行してVDAが再登録されるまで、仲介機能は失われます。
このシナリオは、SQL 接続/可用性が回復したときに通常の操作モードに戻るときにも発生します。

ローカルホストキャッシュは、すべてのDelivery ControllerのローカルSQL Express LocalDBデータベースに静的サイトデータのコピーを保持します。データベースが停止している間もこのデータを利用して、VDA登録とセッション仲介要求を継続的にサポートします。

複数のゾーンがあるCitrix Virtual Apps and Desktops サイトの場合、ゾーンごとに個別のLHCが存在します。
ゾーン内のDelivery Controllerは、ゾーン固有の動的データをローカルSQL Expressデータベースに保持します。

ローカルホストキャッシュの設計上の考慮事項

企業環境にはさまざまな要素があるため、Citrix と緊密に連携して、LHCを使用するために必要な追加リソースを決定することをお勧めします。
Citrix Virtual Apps and Desktops 環境では、LHCとゾーンのスケーラビリティはログオン率とユーザー数に依存します。

  • スケーラビリティに関する注意事項
    • Citrix Virtual Apps and Desktops 2203 LTSRのLHCの最大制限は、単一ゾーン展開では10,000個のVDA、マルチゾーン展開では40,000個のVDAです。
    • 実際のスケーラビリティは、公開されている最大値よりも低くなる可能性があります。予想されるセッション数が 10,000 を超える場合や、ログオン頻度が 1 秒あたり 10 ユーザーを超える場合は、ゾーンを追加することを検討することをお勧めします。
  • Delivery Controller サイズ
    • LHCが有効な場合、ゾーンごとに選択されたプライマリDelivery Controller(DC)がすべてのVDA登録、列挙、起動、および更新を処理します。
    • RAM: 停止期間とユーザー起動回数によっては、LHC サービスが 2 GB 以上の RAM を消費する可能性があります。
    • CPU: 選択した DC に CPU 負荷がかかるため、それを補うためにコアを追加することを検討してください。

    コントローラの CPU 構成、特に SQL Server Express LocalDB で使用可能なコアの数は、ローカルホストキャッシュのパフォーマンスに直接影響します。
    CPU オーバーヘッドは、データベースにアクセスできず、高可用性サービスがアクティブな停止期間中にのみ発生します。

    LocalDB は複数のコア (最大 4 つ) を使用できますが、1 つのソケットのみに制限されます。
    ソケットを追加してもパフォーマンスは向上しません。それよりも複数のコアを持つ複数のソケットの使用をCitrixではお勧めします。
    Citrix のテストでは、2x3(2ソケット、3コア)構成のほうが、4x1および6x1構成よりもパフォーマンスが向上しました。

  • ストレージ:LHC モードでは、1 秒あたり平均 10 回のログオンを想定すると、ストレージ使用量が 2 ~ 3 分ごとに約 1 MB 増加します。

詳細については、「 ローカルホストキャッシュ 」の記事を参照してください。

データベース停止の影響

データベースが完全に停止した場合、Delivery Controllerの重要な機能のほぼすべてが影響を受けるため、推奨されるSQL HA戦略の1つを実装する必要性が浮き彫りになります。
次の表は、これらの効果を示しています:

コンポーネント データベース停止の影響
サイト構成データベース ユーザーは仮想アプリまたはデスクトップに接続または再接続できません。
監視データベース Directorには履歴データが表示されないため、Studioを起動できません。受信したユーザーリクエストと既存のユーザーセッションの仲介には影響しません。
構成ログデータベース Citrix Virtual Apps and Desktops のロギング環境設定で[ データベースが切断されたときに変更を許可 ]が有効になっている場合、構成ログデータベースが停止しても影響はありません(構成の変更が記録されないこと以外)。そうしないと、管理者はCitrix Virtual Apps and Desktops環境を変更できなくなります。

注: このトピックの詳細については 、「停止中に利用できない機能」およびその他の相違点を参照してください

SQL サイズに関する推奨事項

SQL サーバーは、環境のパフォーマンスと安定性を確保するために適切なサイズにする必要があります。Citrix 製品ごとにSQL Serverの使用方法が異なり、お客様によって使用パターンも異なるため、一般的な推奨サイジングは提供できません。
代わりに、製品ごとの SQL Server の推奨サイズについては後ほど説明し、導入時にパフォーマンスを注意深く監視してサイジングの前提を検証する必要があります。

Citrix 関連のデータベースのみをホストするSQL環境では、SQLサーバーには最大10,000人のユーザー用に最低4つのvCPUと8GBのRAMをプロビジョニングする必要があります。
大規模な導入環境やログオン率の高い導入環境では、最低でも 8 個の vCPU と 16 GB の RAM を推奨します。

SQLデータベースのサイジングの概念について詳しくは、 Citrix XenDesktop 7.xのデータベースサイジングを参照してください。この資料には、予想されるトランザクションログの増加率など、ワークロードの特性に関する情報も含まれています。

監視データベースのサイズは、データ保持設定によって異なることに注意してください。
また、新しい製品バージョンには、より多くのオプションとデータポイントがあり、より多くのスペースを消費します(たとえば、LTSR 2203とLTSR 1912の比較)。
これらの設定の詳細については、「 監視ポリシー設定」を参照してください。

CU の更新と修正

Citrix は年に数回、Citrix Virtual Apps and DesktopsのLTSR向けの累積アップデート(CU)をリリースしています。これらの CU にはセキュリティアップデートとバグ修正のみが含まれており、新機能は導入されていません。

Citrix では、製品内で特定された問題を修正するため、最新のCUを実行することをおすすめします。これらの修正の一部は SQL 関連です。Citrix またはお客様が特定した問題(ロック、デッドロック、ストアドプロシージャなど)に対処します。

Citrix Virtual Apps and Desktops環境に包括的なアップデートを適用するには、時間と適切な計画(特にミッションクリティカルな24時間365日の状況)が必要であることを認識していますが、全体的な状態とパフォーマンスを最適化するために、CUについては可能な限り最新の状態に保つことを強くお勧めします。

最新ドキュメント

このドキュメントでは、高可用性戦略やさまざまな考慮事項を含め、Citrix Virtual Apps and Desktops 環境におけるSQLの重要性について説明しています。Citrix と SQL の推奨事項を網羅した文献ではありません。 詳細と最新情報については、次のドキュメントを参照してください:

Citrix Virtual Apps and Desktops データベース

Citrix ローカルホストキャッシュ

Citrix XenDesktop 7.x データベースのサイジング

SQL Server および Citrix Virtual Apps and Desktops データベース