XenApp and XenDesktop

接続リース

重要:

ローカルホストキャッシュ(LHC)は、接続リースよりも望ましいXenAppおよびXenDesktop高可用性ソリューションです。詳しくは、「ローカルホストキャッシュ」を参照してください。

  • このリリースでは、XenAppとXenDesktopの新規インストールの間に、接続リース機能はデフォルトで無効になります。
  • XenAppとXenDesktop 7.15 Long Term Service Releaseに続く最新のリリースでは、接続リース機能は提供されなくなる予定です。

サイトデータベースを常に使用可能状態にするために、Microsoft社の高可用性ベストプラクティスに従って耐障害性の高いSQL Server展開から開始することをお勧めします。ただし、ネットワークの問題および中断によってDelivery Controllerがデータベースにアクセスできなくなり、その結果、ユーザーがアプリケーションやデスクトップに接続できなくなる場合があります。

SQL Server高可用性ベストプラクティスを補完する接続リース機能を使用すると、サイトデータベースが使用不可の場合でも、ユーザーが直近で使用したアプリケーションやデスクトップに接続および再接続できるようになります。

通常、多くの公開リソースを使用できるユーザーでも、定期的に使用するのはその一部のみです。接続リース機能を有効にすると、通常時(データベースが使用可能なとき)に、最近使用されたアプリケーションやデスクトップのユーザー接続が各Controllerでキャッシュされます。

各Controller上でリースが生成され、それがサイトデータベースにアップロードされてほかのControllerと定期的に同期されます。各Controllerのキャッシュには、リースのほかにアプリケーション、デスクトップ、アイコン、ワーカーなどの情報が格納されます。リースとその関連情報は、各Controllerのローカルディスクに保存されます。データベースを使用できなくなると、Controllerはリース接続モードになります。この場合、ユーザーがStoreFrontから最近使用したアプリケーションやデスクトップへの接続を試みると、キャッシュされている操作が「再生」されます。

接続は、2週間の「リース期間」をキャッシュされます。そのため、ユーザーが直前の2週間に起動したデスクトップとアプリケーションは、データベースが使用不可になった場合でも引き続きStoreFront経由でアクセスできます。ただし、直前の2週間に起動しなかったデスクトップとアプリケーションは、データベースが使用不可になった場合にはアクセスできなくなります。たとえば、あるアプリケーションを最後に起動したのが3週間前である場合、そのアプリケーションのリース期限が切れているため、現時点でデータベースが使用不可になると起動できなくなります。長時間実行されているアプリケーションまたはデスクトップのアクティブセッションまたは切断セッションのリースは、期限切れと見なされないように延長されます。

デフォルトでは、接続リースはサイト全体に影響します。ただし、特定のユーザーのすべてのリースを取り消すことができます。これにより、Controllerがリース接続モードのときに、そのユーザーはすべてのアプリケーションやデスクトップにアクセスできなくなります。そのほかのいくつかのレジストリ設定はController単位で適用されます。

考慮事項と制限事項

接続リースを使用すると接続の回復性やユーザーの生産性を向上させることができますが、そのほかの機能のパフォーマンス、可用性、および操作に関連する注意事項があります。

接続リースは、サーバーでホストされるアプリケーションおよびデスクトップと静的な(割り当て済み)デスクトップでサポートされます。プール型のVDIデスクトップや、データベースが利用できなくなった時点でデスクトップが割り当てられていないユーザーはサポートされません。

リース接続モードのControllerでは、以下の制限事項があります:

  • 管理者はStudio、Director、またはPowerShellコンソールを使用できません。

  • ワークスペースコントロールは使用できません。ユーザーがCitrix Receiverにログオンしたときにセッションには自動的に再接続されません。ユーザーはアプリケーションを再度起動する必要があります。

  • すべてのController間でリース情報が同期されるまでは、データベースが利用できなくなったときにユーザーがそのリソースの起動に失敗する場合があります。

  • サーバーでホストされるアプリケーションとデスクトップのユーザーは、構成されている最大セッション数よりも多くのセッションを使用できる場合があります。例:

    • Controllerがリース接続モードになっていないときにユーザーがデバイス(NetScaler Gateway経由で外部から接続しているデバイス)からセッションを起動し、Controllerがリース接続モードになった後でLAN上の別のデバイスから接続した場合、セッションがローミングされずに新しいセッションが作成されることがあります。
    • データベースが使用できなくなる直前にアプリケーションが起動した場合、セッションの再接続に失敗することがあります。この場合、新しいセッションとアプリケーションインスタンスが起動します。
  • 静的な(割り当て済み)デスクトップでは、電源管理が行われません。Controllerがリース接続モードになるときに電源がオフになったVDAは、管理者が手動で電源をオンにしない限り、データベース接続が回復するまで使用できません。

  • セッションの事前起動とセッション残留が有効になっている場合、新しい事前起動セッションは開始されません。データベースが利用可能になるまでは、構成されたしきい値に従って事前起動セッションや残留セッションが自動終了することはありません。

  • サイト内の負荷管理が影響を受ける可能性があります。サーバーベースの接続は直近に使用されたVDAに割り当てられます。負荷評価基準(特にセッション数規則)を超過する可能性があります。

  • SQL Server Management Studioと使ってデータベースをオフラインにすると、Controllerがリース接続モードになりません。以下のTransact-SQL文を使用してください:

    • ALTER DATABASE <database-name> SET OFFLINE WITH ROLLBACK IMMEDIATE
    • ALTER DATABASE <database-name> SET OFFLINE WITH ROLLBACK AFTER <seconds>

    これらのSQL文によりすべての保留中のトランザクションがキャンセルされ、Controllerとデータベースとの接続が失われます。これにより、Controllerがリース接続モードになります。

接続リースが有効になっている場合、ユーザーが接続または再接続できない短い間隔が2回あります。1回はデータベースが利用できなくなってからControllerがリース接続モードになるまでの間、もう1回はControllerがリース接続モードを終了してからデータベースが完全に回復し、VDAの再登録が終わるまでの間です。

非デフォルトのセッションローミング値を構成する場合、Controllerがリース接続モードに入ると、セッションの再接続によりデフォルト値に戻ります。詳細は、「接続リース機能とセッションローミング」を参照してください。

接続リースデータの保存場所については、「ゾーン」の記事を参照してください。

構成と展開

接続リース機能を使用するには、環境を以下のように構成する必要があります:

  • VDAはVersion 7.6以降である必要があります。また、これらのマシンを使用するマシンカタログとデリバリーグループもVersion 7.6以降である必要があります。
  • サイトデータベースのサイズ要件が大きくなります。
  • 各Controllerには、キャッシュされるリースファイル用の追加のディスクスペースが必要です。

接続リース機能の有効/無効は、PowerShell SDK、またはWindowsのレジストリで切り替えることができます。PowerShell SDKを使用する場合は、現在のリースを削除することもできます。接続リース機能を制御するPowerShellコマンドレットは以下のとおりです。詳しくは、コマンドレットのヘルプを参照してください。

  • Set-BrokerSite -ConnectionLeasingEnabled $true|$false - 接続リース機能のオン/オフを切り替えます。デフォルト値:$true
  • Get-BrokerServiceAddedCapability - ローカルのControllerに「ConnectionLeasing」を出力します。
  • Get-BrokerLease - 現在のリースを取得します。フィルターで指定したリースのみを取得することもできます。
  • Remove-BrokerLease - 指定したリースを削除用にマーク付けします。フィルターで指定したリースのみをマーク付けすることもできます。
  • Update-BrokerLocalLeaseCache - ローカルのController上の接続リースのキャッシュを更新します。データは次の同期時に再同期されます。
接続リース