SQL サーバーと CVAD データベース
Microsoft SQL Serverは、あらゆるCitrix Virtual Apps and Desktops(CVAD)導入における重要なコンポーネントです。Citrix SQLのやりとりを計画して理解することは、健全でパフォーマンスの高いCitrix環境を維持する上で、あなたとあなたの組織にとって非常に有益です。SQL Serverの高可用性と十分なコンピューティングリソースがないと、Citrixインフラストラクチャのユーザーエクスペリエンスと稼働時間に悪影響を及ぼします。
データベース概要
Citrix Virtual Apps and Desktops の導入時に必要/作成されるデータベースは3つあります。
サイト: (サイト構成とも呼ばれます)には、実行中のサイト構成に加えて、現在のセッション状態、接続、負荷、Virtual Delivery Agent(VDA)のステータス情報など、仲介に関連する動的データが保存されます。
構成ログ:(別名:ログ)サイト構成の変更や管理タスクに関する情報を格納します。このデータベースは、構成ログ機能が有効化(デフォルトは有効)されているときに使用されます。
モニター: セッションや接続情報などのデータを格納するために、Directorにより使用されます。
Citrix Virtual Apps and Desktops をインストールすると、管理者はサイトの初期構成時に(Studio経由またはSQL Server上でスクリプトを実行して)データベースを作成し、それらは3つの別々のデータベースに分割されます。
大規模な監視データベースがある環境では、監視データベースをサイト構成および構成ログデータベースとは別のサーバーでホストするのが理想的な構成です。これは、より多くのデータを記録し、変更がより頻繁に発生し、データは他のデータベースほど重要であるとはみなされません。詳細については、「 監視および構成ログデータベースのデータベース場所を変更する方法」を参照してください。
長期サービスリリース(LTSR)バージョンを実行する場合は、環境を最新の累積更新(CU)に定期的にアップグレードするプロセスがあることを確認してください。CU には SQL 関連の修正が含まれていることがよくあります。さらに、SQL サーバーとデータベースを適切に監視して、障害イベントやリソースの使用率の高さ、ディスクの空き容量などの問題を検出するようにしてください。
Citrix と SQL の相互作用
Citrix Virtual Apps and Desktops Brokers(Delivery Controller)は、このデータベースをブローカー通信のメッセージバスとして使用し、構成、監視、監査データを保存します。データベースは常に使用されており、SQL サーバー上のコンピューティングリソースを大量に消費する可能性があります。
たとえば、リソース列挙(リソースを識別してユーザーに提供する)、リソースの起動、およびセッション開始の各段階では、Citrix Delivery ControllerがSQLサーバーと対話する必要があります。
列挙: NetScalerとStoreFront による認証が成功すると、Delivery ControllerはCitrixサイトデータベースにアクセスし、ADの資格情報に基づいてユーザーがどのアプリケーションを利用できるかを確認します。リソースが特定されると、追加情報 (アプリ、デスクトップ、アイコンの名前など) がデータベースから取得されます。
起動:ユーザーが起動するアプリケーションまたはデスクトップを選択すると 、StoreFront はDelivery Controllerへの起動リクエストを開始します。次に、Delivery ControllerはSQLサーバー上のサイトデータベースにアクセスして、ユーザーを転送する適切なVDAを選択します。
セッションの初期化: セッションの開始後、VDAはDelivery Controllerと通信して、セッション情報をサイトデータベースに書き込みます。
データベースに関する推奨事項
SQLサーバーの停止によるCitrix Virtual Apps and Desktops インフラストラクチャへの影響を最小限に抑えるため、 お客様はCitrix がサポートする以下の高可用性データベースオプションから選択できます 。
- SQL Server AlwaysOnフェールオーバークラスターインスタンス
- SQL ServerのAlwaysOn可用性グループ(基本的な可用性グループを含む)
- SQL Serverデータベースミラーリング
Citrix(および医療環境の場合は Epic)では、3 つのデータベースすべてに同じ高可用性アプローチを使用することを推奨しています。ただし、エンドユーザーセッションの確立には構成ログとデータベースの可用性の監視は必要ありません。たとえば、SQL AlwaysOn 可用性グループを HA 戦略として使用する予定の場合は、これを 3 つのデータベースオブジェクトすべてに使用してください。
また、Citrix データベース自体、特にサイトデータベースを毎日完全にバックアップすることをお勧めします。保存期間は組織の要件によって異なりますが、通常、7 日間の完全バックアップと少なくとも 1 か月分の週次バックアップを維持するのが一般的です。トランザクションログのバックアップスケジュールは、組織の基準と、割り当てる必要のある使用可能なストレージの量に対するトランザクションログの増加率を組み合わせて決定する必要があります。SQL サーバーで使用可能なストレージを必ず監視してください。
Citrix データベースのリカバリモデルを、現在採用している高可用性アプローチの要件に合わせてください。
マイクロソフトの推奨によると、お客様はデータベースインデックスを管理するために、夜間および毎週実行するメンテナンスプランを設定する必要があります。メンテナンス計画としては、単純に平日の夜間にインデックスを再編成し、週末にインデックスを再構築するというだけの場合もあります。
この推奨事項により、特に大規模な監視データベースの場合、日常業務中に大きなインデックスを再構築することによるパフォーマンスへの影響を回避できます。Microsoftでは、断片化が 30% を超える場合はインデックスを再構築し、30% 未満の場合は再編成することをお勧めしています。
ローカルホストキャッシュ
データベースが使用できなくなるシナリオに対応するため、Citrix では、Citrix Virtual Apps and Desktops にローカルホストキャッシュ(LHC)機能を提供しています。このオプションを有効にすると、Delivery ControllerとCitrixサイト構成データベース間の通信が中断された場合でも、公開アプリケーションおよびデスクトップのユーザーが接続できます。SQL が AlwaysOn やミラーリングなどの高可用性アーキテクチャで構成されている場合、この機能により SQL が完全に停止したり、ネットワーク接続が中断されたりした場合に、耐障害性がさらに高まります。
SQL が停止している間はサイト管理機能を使用できず、フェイルオーバー処理は瞬時に行われないため、これは SQL の高可用性の代替手段とは考えないでください。SQLが停止した場合、LHCに移行してVDAが再登録されるまで、仲介機能は失われます。このシナリオは、SQL の接続性/可用性が回復したときに、通常の操作モードに戻ったときにも発生します。
ローカルホストキャッシュは、静的サイトデータのコピーをすべてのDelivery ControllerのローカルSQL Express LocalDBデータベースに保持し、データベースが停止している間もこのデータを利用してVDA登録とセッション仲介リクエストを継続的にサポートします。
複数のゾーンがあるCVADサイトの場合、ゾーンごとに個別のLHCが存在します。ゾーン内のDelivery Controllerは、そのゾーン固有の動的データをローカルのSQL Expressデータベースに保持します。
ローカルホストキャッシュの設計上の考慮事項
企業の導入環境にはさまざまな要素があるため、Citrix と緊密に連携して、LHCの利用に必要な追加リソースを決定することをお勧めします。
- スケーラビリティに関する注意事項
- CVAD 2203 LTSRの時点で文書化されているLHCの最大制限は、シングルゾーン展開では10,000VDA、マルチゾーン展開では40,000VDAです。CVAD 環境では、LHC とゾーンのスケーラビリティはログオン率とユーザー数に依存します。そのため、ご使用の環境で確認される実際のスケーラビリティは、公開されている最大値よりも低い可能性があります。このアーキテクチャでは、予想されるセッション数が 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オーバーヘッドが発生するのは、データベースとの接続が失われ、High Availability Serviceがアクティブである停止状態の間だけです。
LocalDB は複数のコア (最大 4 つ) を使用できますが、1 つのソケットのみに制限されます。たとえば、4 つのソケットにそれぞれ 1 つのコアを持つ 4 つのソケットを追加しても、パフォーマンスは向上しません。それよりも複数のコアを持つ複数のソケットの使用をCitrixではお勧めします。Citrixのテストでは、2x3(2つのソケット、3つのコア)の構成が、4x1および6x1の構成より良好なパフォーマンスを示しました。
- ストレージ:LHC モードでは、1 秒あたり平均 10 回のログオンを想定すると、ストレージ使用量が 2 ~ 3 分ごとに約 1 MB 増加します。ストレージ消費量は、ログオン率に比例して増加します。
詳細については、「 ローカルホストキャッシュ 」の記事を参照してください。
データベース停止の影響
データベースが完全に停止すると、Delivery Controllerの重要な機能のほぼすべてが影響を受けるため、推奨されるSQL HA戦略の1つを設計して実装することの重要性が浮き彫りになります。次の表は、これらの効果を示しています。
Component | データベース停止の影響 |
---|---|
サイト構成データベース | ユーザーは (LHC なしで) 仮想アプリまたはデスクトップに接続または再接続することはできません。 |
監視データベース | Directorには履歴データが表示されないため、Studioを起動できません。受信したユーザーリクエストと既存のユーザーセッションの仲介には影響しません。 |
構成ログデータベース | Citrix Virtual Apps and Desktops のロギング環境設定で[ データベースが切断されたときに変更を許可 ]が有効になっている場合、構成ログデータベースが停止しても影響はありません(構成の変更が記録されないこと以外)。そうしないと、管理者は CVAD 環境に変更を加えることができません。 |
注: このトピックの詳細については 、「停止中に利用できない機能」およびその他の相違点を参照してください 。
SQL サイズに関する推奨事項
SQL サーバーは、環境のパフォーマンスと安定性を確保するために適切なサイズにする必要があります。Citrix 製品ごとにSQL Serverの使用方法が異なり、お客様によって使用パターンも異なるため、すべてを網羅した一般的なサイズ推奨は提供できません。代わりに、製品ごとの SQL Server のサイズ設定の推奨事項を以下に示します。展開中はパフォーマンスを注意深く監視して、サイズ設定の前提を検証する必要があります。
Citrix 関連のデータベースのみをホストするSQL環境では、SQLサーバーには最大10,000人のユーザー用に最低4つのvCPUと8GBのRAMをプロビジョニングする必要があります。大規模な導入環境やログオン率の高い導入環境では、最低でも 8 個の vCPU と 16 GB の RAM を推奨します。Citrix Virtual Apps and Desktops 環境におけるSQLデータベースのサイズ設定の概念について詳しくは、「 Citrix XenDesktop 7.xのデータベースサイジング」を参照してください。この資料には、予想されるトランザクションログの増加率など、ワークロードの特性に関する情報も含まれています。
監視データベースのサイズは、データ保持設定によって異なることに注意してください。さらに、新しい製品バージョンにはより多くのオプションとデータポイントがあり、より多くのスペースを消費します(LTSR 2203とLTSR 1912など)。これらの設定の詳細については、「 監視ポリシー設定 」を参照し、これをデータベースのサイズ計算に考慮してください。
CU の更新と修正
Citrix は年に数回、Citrix Virtual Apps and DesktopsのLTSR向けの累積アップデート(CU)をリリースしています。これらの CU にはセキュリティアップデートとバグ修正のみが含まれており、新機能は導入されていません。Citrix では、製品内で特定された問題を修正するため、最新のCUを実行することをおすすめします。これらの修正の一部は SQL 関連です。Citrix またはお客様によって社内で特定された問題(ロック、デッドロック、ストアドプロシージャなど)に対処します。CVAD環境に包括的な更新を適用するには時間と適切な計画が必要であることを認識しています(特にミッションクリティカルな24時間365日の状況では)。しかし、Citrix では、全体的な健全性とパフォーマンスを最適化するために、CUをできる限り最新の状態に保つことを強く推奨します。
最新ドキュメント
このドキュメントでは、HA 戦略やさまざまな考慮事項を含め、CVAD 環境における SQL の重要性について説明しています。Citrix と SQL の推奨事項を網羅した文献ではありません。 詳細および最新情報については、次のドキュメントを参照してください。