Citrix Virtual Apps and Desktops

データベース

注:

バージョン 2511 以降、Citrix Web Studio (Webベース) は、Citrix Virtual Apps and Desktops™ の唯一の管理コンソールです。Citrix Studio (MMCベース) はインストーラーから削除されました。この記事はWeb Studioにのみ適用されます。Citrix Studioに関する情報については、Citrix Virtual Apps and Desktops 7 2212以前の同等の記事を参照してください。

  • Citrix Virtual AppsまたはCitrix Virtual Desktops™サイトでは、次の3つのSQL Serverデータベースを使用します。

  • サイト: (サイト構成とも呼ばれます) 実行中のサイト構成、現在のセッション状態、および接続情報を保存
  • ログ: (構成ログとも呼ばれます) サイト構成の変更と管理アクティビティに関する情報を保存します。このデータベースは、構成ログ機能が有効になっている場合 (デフォルト = 有効) に使用
  • 監視: Directorによって使用されるデータ (セッションや接続情報など) を保存

各Delivery Controllerはサイトデータベースと通信します。Controllerとデータベースの間にはWindows認証が必要です。Controllerは、サイト内の他のControllerに影響を与えることなく、プラグを抜いたり電源を切ったりできます。ただし、これはサイトデータベースが単一障害点を形成することを意味します。データベースサーバーが故障した場合、ユーザーがログオフまたは切断するまで、既存の接続は機能し続けます。サイトデータベースが利用できなくなった場合の接続動作については、「ローカルホストキャッシュ」を参照してください。

Citrixは、データベースに関して以下を推奨します。

  • 定期的なバックアップ。 データベースサーバーが故障した場合にバックアップから復元できるように、データベースを定期的にバックアップします。各データベースのバックアップ戦略は異なる場合があります。詳細については、「CTX135207」を参照してください。ただし、これはCitrixXenDesktopDBを参照していますが、これは現在サポートされておらず、お客様は利用できません
  • サイト、監視、ログのSQL Serverデータベースを定期的にバックアップおよび復元。 SQL Serverデータベースに関する具体的な情報については、「Creating Full and Differential Backups of a SQL Server Database」を参照してください。

サイトに複数のゾーンが含まれている場合は、プライマリゾーンに常にサイトデータベースが含まれていることを確認してください。すべてのゾーンのControllerがそのデータベースと通信します。

高可用性

自動フェールオーバーを確実にするために考慮すべき高可用性ソリューションがいくつかあります。

  • AlwaysOn 可用性グループ (Basic 可用性グループを含む): SQL Server 2012で導入されたこのエンタープライズレベルの高可用性および災害復旧ソリューションは、1つ以上のデータベースの可用性を最大化できます。AlwaysOn 可用性グループでは、SQL ServerインスタンスがWindows Server Failover Clustering (WSFC) ノードに存在する必要があります。詳細については、「Windows Server Failover Clustering with SQL Server」を参照してください。
  • SQL Server データベースミラーリング: データベースのミラーリングにより、アクティブなデータベースサーバーが失われた場合でも、自動フェールオーバープロセスが数秒で発生し、ユーザーは通常影響を受けません。この方法は、各データベースサーバーに完全なSQL Serverライセンスが必要なため、他のソリューションよりも高価です。ミラーリング環境ではSQL Server Express Editionを使用できません。
  • SQLクラスタリング: Microsoft SQLクラスタリングテクノロジーを使用すると、あるサーバーが故障した別のサーバーのタスクと責任を自動的に引き継ぐことができます。ただし、このソリューションのセットアップはより複雑であり、自動フェールオーバープロセスは通常、SQLミラーリングなどの代替手段よりも遅くなります。
    • ハイパーバイザーの高可用性機能の使用: この方法では、データベースを仮想マシンとして展開し、ハイパーバイザーの高可用性機能を使用します。このソリューションは、既存のハイパーバイザーソフトウェアを使用し、SQL Server Express Editionも使用できるため、ミラーリングよりも安価です。ただし、自動フェールオーバープロセスは遅く、データベース用に新しいマシンが起動するのに時間がかかる場合があり、ユーザーへのサービスが中断される可能性があります。

ローカルホストキャッシュ機能は、SQL Serverの高可用性のベストプラクティスを補完します。ローカルホストキャッシュにより、サイトデータベースが利用できない場合でも、ユーザーはアプリケーションやデスクトップに接続および再接続できます。詳細については、「ローカルホストキャッシュ」を参照してください。

サイト内のすべてのControllerが故障した場合、VDAを高可用性モードで動作するように構成でき、これによりユーザーはデスクトップやアプリケーションへのアクセスを継続できます。高可用性モードでは、VDAはControllerによって仲介される接続ではなく、ユーザーからの直接ICA接続を受け入れます。この機能は、すべてのControllerとの通信が失敗するまれな場合にのみ使用してください。この機能は、他の高可用性ソリューションの代替ではありません。詳細については、「CTX 127564」を参照してください。

SQLクラスタリングまたはSQLミラーリングのインストールで、ノードにControllerをインストールすることはサポートされていません。

データベースソフトウェアのインストール

注:

バージョン 2411 以降、データベースにAzure SQL Managed Instanceを使用できます。

デフォルトでは、最初のDelivery Controller™をインストールするときに、そのサーバーで別のSQL Serverインスタンスが検出されない場合、SQL Server Express Editionがインストールされます。このデフォルトの動作は、概念実証またはパイロット展開には通常十分です。ただし、SQL Server ExpressはMicrosoftの高可用性機能をサポートしていません。

デフォルトのインストールでは、デフォルトのWindowsサービスアカウントと権限が使用されます。これらのデフォルトの詳細については、Microsoftのドキュメントを参照してください。これには、Windowsサービスアカウントをsysadminロールに追加することも含まれます。この構成では、Controllerはネットワークサービスアカウントを使用します。Controllerは、追加のSQL Serverロールや権限を必要としません。

必要に応じて、データベースインスタンスのインスタンスの非表示を選択できます。Web Studioでデータベースのアドレスを構成するときは、インスタンスの名前ではなく、静的ポート番号を入力してください。SQL Serverデータベースエンジンのインスタンスを非表示にする方法の詳細については、Microsoftのドキュメントを参照してください。

-  ほとんどの運用展開、およびMicrosoftの高可用性機能を使用する展開では、サポートされている非Express EditionのSQL Serverのみを使用することをお勧めします。最初のControllerがインストールされているサーバー以外のマシンにSQL Serverをインストールしてください。[システム要件](/ja-jp/citrix-virtual-apps-desktops/system-requirements.html#databases)には、サポートされているSQL Serverのバージョンが記載されています。データベースは1台以上のマシンに配置できます。

-  サイトを作成する前に、SQL Serverソフトウェアがインストールされていることを確認してください。データベースを作成する必要はありませんが、作成する場合は空である必要があります。Microsoftの高可用性テクノロジーの構成も推奨されます。

Windows Update を使用して SQL Server を最新の状態に保ちます。

サイト作成ウィザードからのデータベース設定

-  サイト作成ウィザードの **[データベース]** ページで、データベース名とアドレス (場所) を指定します。(「[データベースアドレス形式](#database-address-formats)」を参照してください。) Director が Monitor Service を照会する際に発生する可能性のあるエラーを回避するため、監視データベースの名前に空白を使用しないでください。

-  **[データベース]** ページには、データベースを設定するための 2 つのオプションがあります。自動設定とスクリプトの使用です。通常、必要なデータベース権限がある場合 (Web Studio ユーザーおよび Citrix 管理者である場合) は、自動オプションを使用できます。(「[データベース設定に必要な権限](#permissions-required-to-set-up-databases)」を参照してください。)

構成ログデータベースと監視データベースの場所は、サイト作成後に変更できます。「データベースの場所の変更」を参照してください。

ミラーデータベースを使用するようにサイトを構成するには、以下を完了してから、自動またはスクリプトによるセットアップ手順に進みます。

  1. 2 台のサーバー (A と B) に SQL Server ソフトウェアをインストールします
      1. サーバー A で、プライマリとして使用するデータベースを作成します。サーバー A のデータベースをバックアップし、サーバー B にコピーします
    1. サーバー B で、バックアップファイルを復元します
    1. サーバー A でミラーリングを開始します

サイト作成後にミラーリングを確認するには、PowerShell コマンドレット get-configdbconnection を実行して、接続文字列にミラーへのフェールオーバーパートナーが設定されていることを確認します。

  • ミラーデータベース環境で後から Delivery Controller を追加、移動、または削除する場合は、「Delivery Controller」を参照してください。

自動設定

必要なデータベース権限がある場合は、以下の手順を実行してデータベースを設定します。

-  1.  サイト作成ウィザードの **[データベース]** ページで、**[Studio からデータベースを作成および設定]** を選択します

-  1.  プライマリデータベースの名前とアドレスを指定します
  1. データベース接続設定のセキュリティと柔軟性を向上させるために、以下の SQL Server 接続オプションを構成します

    • 暗号化: 接続の暗号化レベルを指定します
    • サーバー証明書を信頼する: サーバー証明書の検証をバイパスするには、これを選択します
    • 証明書のホスト名: サーバーの証明書が一致する必要があるホスト名を入力します。この設定により、より厳密な証明書検証が保証されます

    詳細については、こちらの Microsoft の記事を参照してください。

指定したアドレスにデータベースが存在する場合、そのデータベースは空である必要があります。指定したアドレスにデータベースが存在しない場合、データベースが見つからないことが通知され、データベースを作成するかどうかを尋ねられます。この操作を確定すると、Web Studio はデータベースを自動的に作成し、プライマリデータベースとレプリカデータベースの初期化スクリプトを適用します。

スクリプトによる設定

必要なデータベース権限がない場合は、データベース管理者など、権限を持つ人に支援を依頼してください。手順は次のとおりです。

  1. サイト作成ウィザードの [データベース] ページで、[手動設定用のスクリプトを生成] を選択します。この操作により、サイト、監視、ログの各データベースという、以下のプライマリデータベースとレプリカデータベースごとに、次の 3 種類のスクリプトが生成されます

    • 名前に “SysAdmin” を含むスクリプト。データベースとDelivery Controllerのログインを作成するスクリプトです。これらのタスクにはsecurityadmin権限が必要です。
    • 名前に “DbOwner” を含むスクリプト。データベースにユーザーロールを作成し、ログインを追加し、データベーススキーマを作成するスクリプトです。これらのタスクにはdb_owner権限が必要です。
    • 名前に “Mixed” を含むスクリプト。必要な権限に関わらず、すべてのタスクを1つのスクリプトにまとめたものです。
  • スクリプトの保存場所を指定できます。

    注記:

  • エンタープライズ環境では、データベースのセットアップには、異なる役割(権限)を持つ異なるチーム(securityadminまたはdb_owner)によって処理される可能性のあるスクリプトが含まれます。該当する場合、まずsecurityadminロールを持つ管理者によって「SysAdmin」スクリプトが実行され、次にdb_owner権限を持つ管理者によって「DbOwner」スクリプトが実行されます。これらのスクリプトを生成するには、PowerShellを使用することもできます。詳細については、「推奨されるデータベース権限スクリプト」を参照してください。

    1. これらのスクリプトをデータベース管理者に渡します。サイト作成ウィザードは、この時点で自動的に停止します。後でサイト作成を続行するために戻ったときに、プロンプトが表示されます。

データベース管理者は、その後データベースを作成します。各データベースは、以下の特性を持つ必要があります。

  • _CI_AS_KSで終わる照合順序を使用します。_100_CI_AS_KSで終わる照合順序を使用することをお勧めします。
  • 最適なパフォーマンスを得るには、SQL ServerのRead-Committed Snapshotを有効にします。詳細については、「CTX 137161」を参照してください。
  • 該当する場合、高可用性機能が構成されていること。
  • ミラーリングを構成するには、まずデータベースを完全復旧モデルを使用するように設定します(シンプルモデルがデフォルトです)。プライマリデータベースをファイルにバックアップし、ミラーサーバーにコピーします。次に、ミラーサーバーでバックアップファイルを復元します。最後に、プライマリサーバーでミラーリングを開始します。

データベース管理者は、SQLCMDコマンドラインユーティリティまたはSQLCMDモードのSQL Server Management Studioを使用して、以下の操作を行います。

  • 高可用性SQL Serverデータベースインスタンス上でxxx_Replica.sqlスクリプトをそれぞれ実行します(高可用性が構成されている場合)。
  • プライマリSQL Serverデータベースインスタンス上でxxx\_Principal.sqlスクリプトをそれぞれ実行します。

SQLCMDの詳細については、Microsoftのドキュメントを参照してください。

すべてのスクリプトが正常に完了すると、データベース管理者はCitrix管理者に3つのプライマリデータベースアドレスを渡します。

  • Web Studioは、サイト作成を続行するように促します。データベースページに戻り、以下の手順を完了します。
  1. アドレスを入力します。

  2. データベース接続設定のセキュリティと柔軟性を向上させるために、以下のSQL Server接続オプションを構成します。

    • 暗号化: 接続の暗号化レベルを指定します。

    • サーバー証明書を信頼する: サーバー証明書の検証をバイパスするには、これを選択します。

    • 証明書内のホスト名: サーバーの証明書と一致する必要があるホスト名を入力します。この設定により、より厳格な証明書検証が保証されます。

    詳細については、このMicrosoftの記事を参照してください。

データベースをホストしているサーバーのいずれかに接続できない場合、エラーメッセージが表示されます。

データベース設定に必要な権限

データベースを作成および初期化する(またはデータベースの場所を変更する)には、ローカル管理者であり、ドメインユーザーである必要があります。また、特定のSQL Server権限も必要です。以下の権限は、明示的に構成することも、Active Directoryグループメンバーシップによって取得することもできます。Web Studioのユーザー資格情報にこれらの権限が含まれていない場合、SQL Serverのユーザー資格情報の入力を求められます。

操作 目的 サーバーロール データベースロール
データベースの作成 適切な空のデータベースを作成する dbcreator  
スキーマの作成 すべてのサービス固有のスキーマを作成し、最初のControllerをサイトに追加する securityadmin* db_owner
Controllerの追加 サイトにController(最初のController以外)を追加する securityadmin* db_owner
Controllerの追加(ミラーサーバー) ミラーデータベースのミラーロールにあるデータベースサーバーにControllerログインを追加する securityadmin*  
Controllerの削除 サイトからControllerを削除する ** db_owner
スキーマの更新 スキーマの更新またはホットフィックスを適用する   db_owner

* 技術的にはより制限的ですが、実際にはsecurityadminサーバーロールはsysadminサーバーロールと同等として扱うことができます。

コントローラーをサイトから削除しても、データベースサーバーへのコントローラーログオンは削除されません。これは、同じマシン上のCitrix製品以外のサービスで使用されているログオンが誤って削除されるのを防ぐためです。ログオンが不要になった場合は、手動で削除する必要があります。この操作には、securityadminサーバーロールのメンバーシップが必要です。

Web Studioを使用してこれらの操作を実行する場合、Web Studioユーザーは、適切なサーバーロールのメンバーであるデータベースサーバーアカウントを明示的に持つか、またはそのアカウントの資格情報を提供できる必要があります。

推奨されるデータベース権限スクリプト

エンタープライズ環境では、データベースのセットアップには、securityadminまたはdb_ownerといった異なるロール(権限)を持つ異なるチームが処理する必要があるスクリプトが含まれます。

PowerShellを使用すると、推奨されるデータベース権限を指定できます。デフォルト以外の値を指定すると、個別のスクリプトが作成されます。1つのスクリプトにはsecurityadminロールを必要とするタスクが含まれます。もう1つのスクリプトはdb_owner権限のみを必要とし、データベース管理者に連絡することなく、Citrix管理者が実行できます。

get-*DBSchemaコマンドレットでは、-DatabaseRightsオプションに次の有効な値があります。

  • SA: データベースとDelivery Controllerのログインを作成するスクリプトを生成します。これらのタスクにはsecurityadmin権限が必要です
  • DBO: データベースにユーザーロールを作成し、ログインを追加し、その後データベーススキーマを作成するスクリプトを生成します。これらのタスクにはdb_owner権限が必要です
  • Mixed: (デフォルト) 必要な権限に関係なく、すべてのタスクを1つのスクリプトにまとめます

詳細については、コマンドレットのヘルプを参照してください。

データベースアドレスの形式

データベースアドレスは、次のいずれかの形式で指定できます。

  • ServerName
  • ServerName\InstanceName
  • ServerName,PortNumber

AlwaysOn可用性グループの場合は、場所フィールドにグループのリスナーを指定します。

データベースの場所の変更

サイトを作成した後、構成ログデータベースと監視データベースの場所を変更できます。ただし、サイトデータベースの場所は変更できません。データベースの場所を変更する際は、次の点に注意してください。

  • 以前のデータベースのデータは新しいデータベースにインポートされません
  • ログを取得する際に、両方のデータベースからログを集約することはできません
  • 新しいデータベースの最初のログエントリは、データベースの変更が発生したことを示しますが、以前のデータベースを特定するものではありません
  • 強制ログが有効になっている場合、構成ログデータベースの場所を変更することはできません
  • SQL ServerとAzure SQLの間でデータベースの場所を変更することはサポートされていません

データベースの場所を変更するには:

  1. Microsoft SQL Serverを使用している場合は、データベースを配置するサーバーにサポートされているバージョンがインストールされていることを確認します。必要に応じて、高可用性機能をセットアップします
  2. Web Studioにサインインし、左ペインで [設定] を選択します
  3. [データベース] タイルを見つけて [編集] を選択します
  4. [データベースの管理] ページで、新しい場所を指定するデータベースを選択し、アクションバーで [データベースの変更] を選択します
  5. 新しい場所とデータベース名を指定します。データベースがAzure SQLでホストされている場合は、データベースを管理する権限を持つサービスプリンシパルの資格情報を入力します
  6. Web Studioにデータベースを作成させたい場合で、適切な権限がある場合は、[完了] をクリックします。プロンプトが表示されたら [完了] をクリックすると、Web Studioが自動的にデータベースを作成します。Web Studioは、ユーザーの資格情報を使用してデータベースへのアクセスを試行します。失敗した場合は、データベースユーザーの資格情報の入力を求められます。その後、Web Studioはデータベーススキーマをデータベースにアップロードします。資格情報は、データベース作成期間中のみ保持されます
  7. Web Studioにデータベースを作成させたくない場合、または十分な権限がない場合は、[データベーススクリプトの生成] をクリックします。生成されたスクリプトには、必要に応じてデータベースとミラーデータベースを手動で作成するための手順が含まれています。スキーマをアップロードする前に、データベースが空であり、少なくとも1人のユーザーがデータベースにアクセスして変更する権限を持っていることを確認してください

詳細情報

データベース