Citrix DaaS

本地主机缓存

本文提供了本地主机缓存 (LHC) 功能的完整概述,重点介绍了它保持业务连续性的能力。 它解释了 LHC 在正常工作操作期间和 LHC 模式激活时的功能。 此外,本文还提供了有关配置检查、故障排除、用于 LHC 管理的 PowerShell 命令以及 LHC 运行状况的事件日志监控的指导。

概述

当 Cloud Connector 由于网络中断或 Citrix Cloud 问题而失去与 Citrix Cloud 的连接时,LHC 将保持最终用户对应用程序和桌面的访问。 当 LHC 模式激活并且新会话通过 Cloud Connector 上运行的 LHC 代理代理时,活动会话不会受到影响。

LHC 默认处于启用状态,但请务必确保为 LHC 正确配置环境。 虽然错误配置可能不会中断正常的代理,但它们可能会阻碍 LHC 性能,从而在 LHC 模式处于活动状态时对最终用户造成干扰。 为确保 LHC 的最佳功能,请检查您的 node 来查找 Citrix 检测到的与区域相关的错误和警告。 此外,请查看 检查弹性配置 guide 和 避免可能对 DaaS 弹性产生负面影响的常见错误配置 文章,了解全面的 LHC 配置清单。

-priority

仅当 Cloud Connector 从 StoreFront 接收流量或启用了服务连续性时,LHC 才会启用。 有关 Service Continuity 如何在服务中断期间使用本地主机缓存来维护用户对应用程序和桌面的访问的更多信息,请参阅 服务连续性.

运作方式

在正常操作期间,Cloud Connector 上的远程代理提供商服务将与 Citrix Cloud 通信以进行所有代理操作。 Citrix Config Synchronizer Service (CSS) 会定期检查 Citrix Cloud 中的配置更改,并将此数据同步到 Cloud Connector 上的 LHC 代理。 如果 Cloud Connector 失去与 Citrix Cloud 的连接或 Citrix Cloud 遇到问题,则 LHC 模式将激活并确保继续访问应用程序和桌面。

在正常代理操作期间

在正常代理操作期间

  • Cloud Connector 上的 Citrix Remote Broker Provider Service 接受来自 StoreFront 的连接请求。 远程代理提供商服务与 Citrix Cloud 通信,以将用户与在 Citrix Cloud 中注册的 VDA 连接起来。
  • CSS 大约每 5 分钟与 Citrix Cloud 中的云代理检查一次,以查看是否进行了任何配置更改。 这些更改可以是管理员启动的(例如更改交付组属性)或系统操作(例如计算机分配)。
  • 如果自上次检查后发生配置更改,CSS 会将信息同步到 Cloud Connector 上的 LHC 代理。 (LHC 代理也称为 High Availability Service 或 HA 代理)。

    将复制所有配置数据,而不仅仅是自上次检查以来更改的项目。 CSS 将配置数据导入到 Cloud Connector 上的 Microsoft SQL Server Express LocalDB 数据库中。 此数据库称为 Local Host Cache 数据库。 CSS 可确保本地主机缓存数据库中的信息与 Citrix Cloud 中站点数据库中的信息匹配。

    安装 Cloud Connector 时,会自动安装 Microsoft SQL Server Express LocalDB(由 LHC 数据库使用)。 LHC 数据库不能在 Cloud Connector 之间共享。 您不需要备份 LHC 数据库。 每次检测到配置更改时,都会重新创建它。

  • 如果自上次检查以来未发生任何更改,则不会复制配置数据。

当 LHC 模式变为活动状态时

当 LHC 模式变为活动状态时

  • LHC 代理开始侦听连接信息并处理连接请求。
  • 当 Cloud Connector 首次失去与 Citrix Cloud 的连接时,LHC 代理没有当前的 VDA 注册数据,但当 VDA 与其通信时,将触发注册过程。 在此过程中,LHC 代理还会获取该 VDA 的当前会话信息。
  • 当 LHC 代理处理连接时,远程代理提供商服务会继续监控与 Citrix Cloud 的连接。 恢复连接后,Remote Broker Provider Service 会指示 LHC 代理停止侦听连接信息,Citrix Cloud 将恢复代理操作。 下次 VDA 通过 Remote Broker Provider Service 与 Citrix Cloud 通信时,将触发注册过程。 LHC 代理将在 LHC 模式处于活动状态时删除任何剩余的 VDA 注册。 当 CSS 得知 Citrix Cloud 中发生了配置更改时,它会恢复同步信息。

万一 LHC 在同步期间开始,则当前导入将被丢弃,并使用最后已知的配置。

事件日志指示同步发生和 LHC 模式激活的时间。

在 LHC 模式下运行没有时间限制。

您也可以手动触发 LHC 模式。 看 强制 LHC 模式 ,详细了解原因和方法。

具有多个 Cloud Connector 的区域

除其他任务外,CSS 还会定期向 LHC 代理提供有关区域中所有 Cloud Connector 的信息。 有了这些信息,每个 LHC 代理都知道在区域中其他 Cloud Connector 上运行的所有对等 LHC 代理。

LHC 代理在单独的通道上相互通信。 这些代理使用按字母顺序排列的运行它们的计算机的 FQDN 名称列表来确定(选择)如果区域进入 LHC 模式,哪个 LHC 代理将代理区域中的操作。 在 LHC 模式下,所有 VDA 都会向选定的 LHC 代理重新注册。 区域中未选择的 LHC 代理主动拒绝传入的连接和 VDA 注册请求。

-priority

区域内的连接器必须能够在 http://<FQDN_OF_PEER_CONNECTOR>:80/Citrix/CdsController/ISecondaryBrokerElection. 如果 Connector 无法在此地址通信,则可能会选择多个代理,并且在 LHC 模式下发生启动失败。

在 LHC 模式下,如果 Cloud Connector 重新启动或 LHC 代理失败:

  • 如果该 Cloud Connector 不是选定的 LHC 代理,则重新启动不会产生任何影响。
  • 如果该 Cloud Connector 是选定的 LHC 代理,则会选择下一个 Cloud Connector 上的 LHC 代理,从而导致 VDA 注册。 选举顺序基于 Cloud Connector 的 FQDN 的字母顺序。 一旦 LHC 代理再次变为活动状态,LHC 操作将按字母顺序在第一个连接器上继续进行,这可能会导致 VDA 再次注册。 在这种情况下,注册期间的性能可能会受到影响。

事件日志 了解有关 LHC 经纪人选举事件的更多信息。

本地主机缓存数据内容

LHC 数据库包括以下数据,它是主数据库中数据的子集:

  • 被分配了对从站点发布的资源的权限的用户和组的身份。
  • 当前正在使用或最近使用过站点中已发布资源的用户的身份。
  • 在站点中配置的 VDA 计算机(包括 Remote PC Access 计算机)的身份。
  • 主动用于连接到已发布资源的客户端 Citrix Workspace 应用程序计算机的身份(名称和 IP 地址)。

它还包含在 LHC 模式下建立的当前活动连接的以下信息:

  • Citrix Workspace 应用程序执行的任何客户端计算机端点分析的结果。
  • 与站点相关的基础架构计算机(例如 Citrix Gateway 和 StoreFront 服务器)的身份。
  • 用户最近活动的日期、时间和类型

本地主机缓存状态

在进入和退出 LHC 模式的整个周期中,有几种状态。 下图描述了进入和退出 LHC 模式的状态。

LHC 状态

  • 正常工作 状态,则所有组件都运行正常,并且所有代理事务都由 Cloud 代理处理。 - - CSS 正在主动将配置从 Cloud 代理复制到 Cloud Connector。 如果任何运行状况检查失败,Cloud Connector 将转换为 待处理 HA 州。 当处于此状态时,将启动全面的运行状况检查以确定下一步操作。 连接器与区域中的其他连接器交互,以确定其运行状况。
  • 决定从 待处理 HA初始 HA 基于给定区域中所有连接器的运行状况。 如果运行状况检查成功,连接器/控制器将转换回 正常工作 州。 或者,如果运行状况检查继续失败,连接器/控制器将转换为 初始 HA 州。
  • 初始 HA state,所选连接器上的 LHC 代理将接管代理责任。 当前区域中之前注册的所有 VDA 现在都将在 Cloud Connector 上的 LHC 代理中注册。 所有 VDA 最多可能需要 5 分钟才能重新注册到 HA 服务。 在 初始 HA,将启动运行状况检查。 如果所有运行状况检查都成功,则状态将转换为 待恢复,否则状态将转换为 扩展 HA.
  • 运行状况检查在 扩展 HA 时期。 当运行状况检查成功时,在 扩展 HA,则状态将转换为 待恢复. 连接器在 扩展 HA 州。
  • 待恢复 用作缓冲期,以确保服务在从 LHC 模式转换之前完全正常运行。 如果 待恢复,状态会转换回 扩展 HA.
  • 如果在整个 10 分钟内所有运行状况检查都成功 待恢复 period,则状态会转换为 正常工作. 通过此转换,LHC 模式将结束,区域中向 LHC 代理注册的所有 VDA 现在都将重新注册到云代理。 重新注册最多可能需要 5 分钟。

LHC 模式期间的重要注意事项

在 LHC 模式下,请考虑以下影响:

方面 LHC 模式期间的冲击
工作室访问 可能无法访问,具体取决于中断的性质。 在 LHC 模式下运行的区域中的 VDA 在 Studio 中显示为未注册,因为它们已在 LHC 代理中注册。
远程 PowerShell SDK 访问


访问权限受限。 需要开启 CSS 测试模式并设置 SDK 鉴权。 启用 CSS 测试模式:添加注册表项。 “EnableCssTestMode”,其 DWORD 值为“1” HKLM:\SOFTWARE\Citrix\DesktopServer\LHC.
设置 SDK 鉴权:设置 $XDSDKAuth 变量设置为 “OnPrem” 以防止 SDK 代理重定向 cmdlet 调用。 进行这些更改后,您可以使用所有 Get-Broker (获取代理) cmdlet 中。
注意:包括 -AdminAddress 本地主机:89 参数。
例: Get-BrokerMachine -AdminAddress localhost:89
监控数据 Monitor 函数不显示 LHC 模式处于活动状态时的活动。 监控数据的子集在 Local Host Cache (本地主机缓存) 控制面板中可用。 趋势 页面。
虚拟机管理程序凭证 无法从 Host Service 获取。 计算机处于未知电源状态,无法进行电源操作。 已打开电源的 VM 可用于连接。
已分配的计算机 仅在正常操作期间分配时可用。 在 LHC 模式下不可能进行新分配。
Remote PC Access 计算机 不支持自动注册和配置。 在正常操作期间注册和配置的计算机可用。
服务器托管的应用程序和桌面会话限制 如果资源位于不同的区域中,则用户使用的会话数可能会超过其配置的会话限制。
区域行为 每个区域独立运行。 如果 StoreFront 高级运行状况检查 功能,StoreFront 能够在 LHC 模式下将启动请求路由到适当的区域,并避免会话启动失败。
计划的 VDA 重新启动 如果 LHC 模式在交付组中的 VDA 的计划重新启动开始之前进入,则重新启动将在 LHC 模式退出且正常代理操作恢复时开始,这可能会导致区域离开 LHC 模式时意外重新启动。 有关可以改变此行为的更多信息和配置,请参阅 由于数据库中断而延迟的计划重启.
区域首选项 区域首选项 会话启动时不考虑配置。
标签限制 对于在多个区域中具有 VDA 的交付组, 标签限制 如果标记的 VDA 并非在所有区域中都存在,则可能会导致启动失败。

应用程序和桌面支持

LHC 支持以下类型的 VDA 和交付模式:

VDA 类型 交付模式 LHC 模式下的 VDA 可用性
多会话操作系统 应用程序和桌面 始终可用。
单会话操作系统静态(已分配) 桌面 始终可用。
电源管理的单会话操作系统随机(池)

桌面

默认情况下不可用。 默认情况下,所有对池交付组中的 VDA 进行电源管理的会话启动尝试都将失败。
您可以在 LHC 期间将它们用于新连接。 有关更多信息,请参阅 使用 Studio 启用使用 PowerShell 启用.
重要: 启用对电源管理的单会话池计算机的访问可能会导致先前用户会话中的数据和更改出现在后续会话中。

注意:

在池交付组中启用对电源管理的桌面 VDA 的访问不会影响配置的 ShutdownDesktopsAfterUse 属性在正常操作期间有效。 在 LHC 期间启用对这些桌面的访问后,VDA 在恢复正常代理操作后不会自动重新启动。 池交付组中的电源管理桌面 VDA 可以保留以前会话中的数据,直到 VDA 重新启动。 当用户在非 LHC 操作期间注销 VDA 或管理员重新启动 VDA 时,可能会重新启动 VDA。

使用 Studio 为电源管理的单会话操作系统池 VDA 启用 LHC

使用 Studio,您可以在 LHC 模式下按交付组使这些计算机可用于新连接:

注意:

此设置在 Studio 中仅适用于交付电源托管 VDA 的池桌面交付组。

使用 PowerShell 为电源管理的单会话操作系统池 VDA 启用 LHC

要为特定交付组中的 VDA 启用 LHC,请执行以下步骤:

  1. 通过运行以下命令,在站点级别启用此功能:

      Set-BrokerSite -ReuseMachinesWithoutShutdownInOutageAllowed $true
    <!--NeedCopy-->
    
  2. 通过在指定的交付组名称上运行以下命令,为交付组启用 LHC:

      Set-BrokerDesktopGroup -Name "name" -ReuseMachinesWithoutShutdownInOutage $true
    <!--NeedCopy-->
    

要更改使用电源托管 VDA 新创建的池交付组的默认 LHC 可用性,请运行以下命令:

  Set-BrokerSite -DefaultReuseMachinesWithoutShutdownInOutage $true
<!--NeedCopy-->

注意:

更改默认值不会更改现有交付组的设置,而只会影响使用 PowerShell 创建的交付组。

StoreFront 配置

如果使用本地 StoreFront 部署,请查看以下内容:

  • 如果使用负载平衡虚拟服务器,请将虚拟服务器配置为根据代理功能监控连接器(例如,使用 NetScaler 上的内置 CITRIX-XD-DDC 监视器进行连接器负载平衡)。
  • 将单个 Cloud Tenant 中的所有 Cloud Connector 作为单个 Cloud Tenant 资源源 在 StoreFront 中。
  • 视图 NetScaler Gateway 配置 ,并确保所有连接器都列为 STA 服务器。 检查 NetScaler 设备,并确保 StoreFront 中列出的所有 STA 在 NetScaler Gateway 虚拟服务器中采用相同的格式。 还可以在网关虚拟服务器中监控 STA 服务运行状况。
  • 将所有连接器添加到 StoreFront 中的资源馈送,StoreFront 可以通过资源馈送中指定的端口与所有 Cloud Connector 通信。

注意:

对于拥有许多连接器的客户,为每个区域配置负载平衡虚拟服务器以减少管理开销并简化故障排除可能会有所帮助。 看 Citrix TIP:将 Citrix Virtual Apps and Desktops 服务和 StoreFront 集成 了解更多信息。

验证本地主机缓存是否正常工作

要验证 LHC 是否已设置并正常工作:

  • 确保同步导入成功完成。 检查 事件日志 ,了解有关如何监控 LHC 同步的更多信息。
  • 确保在每个 Cloud Connector 上创建了本地主机缓存数据库。 这确认了 High Availability Service 可以在需要时接管。
    • 在 Cloud Connector 服务器上,浏览到 c:\Windows\ServiceProfiles\Network服务.
    • 验证 HaDatabaseName.mdfHaDatabaseName_log.ldf 创建。
  • 强制 LHC 模式 在区域中的所有 Cloud Connector 上:验证本地主机缓存正常工作后,请记住将所有 Cloud Connector 恢复为正常模式。 看 本地主机缓存状态 有关离开 LHC 模式所需时间的更多信息。

监控本地主机缓存

事件日志

事件日志提供有关 LHC 运行状况和性能的关键信息。

配置同步器服务

在正常操作期间,当 CSS 使用 LHC 代理将配置数据导入 LHC 数据库时,可能会发生以下事件。

事件 ID 说明
503 指示 CSS 收到了更新的配置。 每次从 Citrix Cloud 收到更新的配置时,都会发生此事件。 这表示同步过程的开始。
504 指示 CSS 导入了更新的配置。 配置导入已成功完成。
505 指示 CSS 导入失败。 配置导入未成功完成。 如果之前有成功的配置可用,则在进入 LHC 模式时使用它。 但是,它与当前配置相比将过时。 如果没有以前的可用配置,则服务无法在 LHC 模式下参与会话代理。 在这种情况下,请参阅 解决 部分,然后联系 Citrix 技术支持。
507 指示 CSS 放弃了导入,因为系统处于 LHC 模式,并且 LHC 代理用于代理。 该服务收到了新的配置,但由于进入了 LHC 模式,因此放弃了导入。 这是预期行为。
510 指示未从主 Configuration Service 收到 CSS 配置数据。
517 指示与 Remote Broker Provider Service 通信时出现问题。
518 指示 CSS 脚本因 LHC 代理 (High Availability Service) 未运行而中止。

高可用性服务

这项服务也称为 LHC 代理。

事件 ID 说明
3502 指示发生了中断,并且 LHC 代理正在执行代理操作。
3503 表示中断已解决,正常操作已恢复。
3504 指示当选的 LHC 代理和参与选举的其他 LHC 代理。
3507 表示 LHC 模式在选定的 LHC 代理上处于活动状态。 包含中断摘要,包括中断持续时间、VDA 注册和会话信息。
3508 表示 LHC 在选定的 LHC 代理上不再处于活动状态,并且已恢复正常操作。 包含中断摘要,包括中断持续时间、在 LHC 事件期间注册的计算机数量以及 LHC 模式下成功启动的计算机数量。
3509 表示 LHC 在未选择的 LHC 代理上处于活动状态。 包含每 2 分钟一次的中断持续时间,并指示选定的 LHC 代理。
3510 表示 LHC 在未选择的 LHC 代理上不再处于活动状态。 包含中断持续时间,并指示选定的 LHC 代理。

远程代理提供商

此服务充当 Citrix Cloud 与 VDA 和 Cloud Connector 之间的代理。

事件 ID 说明
3001 检查 Cloud Connector 是否必须进入 LHC 模式。 在 Cloud Connector 的一次运行状况检查失败后发生。 如果 60 秒后另一次检查失败,Cloud Connector 将转换为 LHC 模式。
3002 指示 Cloud Connector 无法进入 LHC 模式。 原因包含在事件信息中。
3003


指示 Cloud Connector 正在通过 LHC 模式状态进行转换。 该事件提供了有关以下内容的详细信息
  • Cloud Connector 正在转换的状态
  • 它正在转换到的状态
  • 前一状态的持续时间
  • 注意:

    3001 Cloud Connector 上全天定期发生的事件通常无需担心。 但是,如果它们每小时发生多次,则表示存在网络问题,可能需要进一步调查。

    Citrix 监视器

    Citrix Monitor 包含有关环境中不同区域的 LHC 模式条目和性能的集中信息。

    DaaS Monitor LHC

    监控整个网站的历史趋势 了解更多信息。

    强制本地主机缓存模式

    在以下情况下,您可能希望特意强制使用本地主机缓存模式:

    • 如果您的网络反复启动和关闭:强制 LHC 直到网络问题得到解决会阻止在正常模式和 LHC 模式之间持续转换(以及由此产生的频繁的 VDA 注册风暴)。
    • 测试灾难恢复计划。
    • 帮助确保 Local Host Cache 正常工作。

    要强制 LHC 模式:

    1. 在 中编辑每个 Cloud Connector 服务器的注册表 HKLM\Software\Citrix\DesktopServer\LHC:创建和设置 OutageMode强制 作为 REG_DWORD 1.

      • 将值设置为 1 指示 LHC 代理进入 LHC 模式,而不管与 Citrix Cloud 的连接状态如何。
      • 将值设置为 0 指示 LHC 代理退出 LHC 模式并恢复正常操作。

    要验证事件:

    1. 监控 Current_HighAvailabilityService 日志文件 C:\ProgramData\Citrix\workspaceCloud\Logs\Plugins\HighAvailabilityService.

    排查同步导入失败问题

    当同步到 LHC 数据库失败并记录 505 事件时,您可以使用以下故障排除工具:

    • CDF 追踪:
      • ConfigSyncServer 服务器经纪人LHC 模块。
      • 与其他代理模块一起使用以识别问题。
    • CSS 跟踪报告:
      • 生成一份详细报告,以查明导致同步失败的对象。

        注意:

        启用此报告可能会影响同步速度。 如果不主动进行故障排除,请禁用它。

      要启用并生成 CSS 跟踪报告,请执行以下操作:

      1. 启用报告:运行以下命令:

          New-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC -Name EnableCssTraceMode -PropertyType DWORD -Value 1
        <!--NeedCopy-->
        
      2. 找到报告:HTML 报告在 C:\Windows\ServiceProfiles\NetworkService\AppData\Local\TEMP\CitrixBrokerConfigSyncReport.html.

      3. 关闭报表:生成报表后,执行以下命令关闭报表功能。

          Set-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC -Name EnableCssTraceMode -Value 0
        <!--NeedCopy-->
        

    本地主机缓存 PowerShell 命令

    您可以使用 PowerShell 命令管理 Cloud Connector 上的本地主机缓存。

    PowerShell 模块位于 Cloud Connector 上的以下位置:

    C:\Program Files\Citrix\Broker\Service\ControlScripts

    -priority

    仅在 Cloud Connector 上运行此模块。

    导入 PowerShell 模块

    要导入模块,请在 Cloud Connector 上运行以下命令:

      Import-Module "C:\Program Files\Citrix\Broker\Service\ControlScripts\HighAvailabilityServiceControl.psm1
    <!--NeedCopy-->
    

    用于管理 LHC 的 PowerShell 命令

    以下 cmdlet 可帮助您在 Cloud Connector 上激活和管理 LHC 模式。

    Cmdlet 功能
    Enable-LhcForcedOutageMode 将 Broker 置于 LHC 模式。 本地主机缓存数据库文件必须已由 CSS 成功创建 启用 LhcForcedOutageMode 才能正常运行。 此 cmdlet 仅在运行它的 Cloud Connector 上强制使用 LHC。 要使 LHC 变为活动状态,必须在区域内的所有 Cloud Connector 上运行此 cmdlet。
    Disable-LhcForcedOutageMode 使 Broker 退出 LHC 模式。 此 cmdlet 仅在运行它的 Cloud Connector 上禁用 LHC 模式。 禁用 LhcForcedOutageMode 必须在区域内的所有 Cloud Connector 上运行。
    Set-LhcConfigSyncIntervalOverride 设置 CSS 检查 Citrix DaaS 站点内配置更改的间隔。 时间间隔范围为 60 秒(1 分钟)到 3600 秒(1 小时)。 此设置仅适用于运行它的 Cloud Connector。 为了在 Cloud Connector 之间保持一致性,请考虑在每个 Cloud Connector 上运行此 cmdlet。 例如: Set-LhcConfigSyncIntervalOverride -秒数 1200
    Clear-LhcConfigSyncIntervalOverride 将 CSS 检查 Citrix DaaS 站点内配置更改的间隔设置为默认值 300 秒(5 分钟)。 此设置仅适用于运行它的 Cloud Connector。 为了在 Cloud Connector 之间保持一致性,请考虑在每个 Cloud Connector 上运行此 cmdlet。
    Enable-LhcHighAvailabilitySDK 启用对所有 获取代理* cmdlet 中。
    Disable-LhcHighAvailabilitySDK 禁止访问运行 Broker PowerShell 命令的 Cloud Connector 中的 Broker PowerShell 命令。

    注意:

    • 在运行 获取代理* cmdlet 的 Cmdlet 中。 例如:
      • Get-BrokerMachine -AdminAddress localhost:89
    • 当未处于 LHC 模式时,Cloud Connector 上的 LHC 代理仅保存配置信息。
    • 在 LHC 模式下,LHC Broker 保存以下信息:
      • 资源状态
      • 会话详细信息
      • VDA 注册
      • 配置信息

    更多信息