本地主机缓存
本文全面概述了本地主机缓存 (LHC) 功能,重点介绍了其维护业务连续性的能力。它解释了 LHC 在正常工作操作期间和 LHC 模式激活时的功能。此外,本文还提供了有关配置检查、故障排除、用于 LHC 管理的 PowerShell 命令以及用于 LHC 运行状况的事件日志监视的指导。
概述
当 Cloud Connector 因网络中断或 Citrix Cloud™ 出现问题而失去与 Citrix Cloud 的连接时,LHC 可维护最终用户对应用程序和桌面的访问。当 LHC 模式激活时,活动会话不受影响,并且新会话通过在 Cloud Connector 上运行的 LHC 代理进行代理。
LHC 默认启用,但确保您的环境已为 LHC 正确配置非常重要。虽然配置错误可能不会中断正常的代理,但它们可能会阻碍 LHC 性能,从而在 LHC 模式处于活动状态时对最终用户造成中断。为确保最佳 LHC 功能,请检查 Studio 中的区域节点,了解 Citrix 检测到的与区域相关的错误和警告。此外,请查看检查弹性配置指南和避免可能对 DaaS 弹性产生负面影响的常见配置错误文章,以获取全面的 LHC 配置清单。
重要:
仅当 Cloud Connector 接收来自 StoreFront 的流量或启用服务连续性时,LHC 才会启用。有关服务连续性如何使用本地主机缓存来在服务中断期间维护用户对应用程序和桌面的访问的更多信息,请参阅服务连续性。
工作原理
在正常操作期间,Cloud Connector 上的 Remote Broker Provider Service 与 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 的连接请求。Remote Broker Provider Service 与 Citrix Cloud 通信,将用户与已向 Citrix Cloud 注册的 VDA 连接起来。
- CSS 大约每 5 分钟检查一次 Citrix Cloud 中的 Cloud 代理,以查看是否进行了任何配置更改。这些更改可以是管理员发起的(例如更改交付组属性)或系统操作(例如计算机分配)。
-
如果自上次检查以来发生了配置更改,CSS 会将信息同步到 Cloud Connector 上的 LHC 代理。(LHC 代理也称为高可用性服务或 HA 代理)。
所有配置数据都会被复制,而不仅仅是自上次检查以来发生更改的项目。CSS 将配置数据导入到 Cloud Connector 上的 Microsoft SQL Server Express LocalDB 数据库中。此数据库称为本地主机缓存数据库。CSS 确保本地主机缓存数据库中的信息与 Citrix Cloud 中站点数据库中的信息匹配。
Microsoft SQL Server Express LocalDB(由 LHC 数据库使用)在您安装 Cloud Connector 时自动安装。LHC 数据库不能在 Cloud Connector 之间共享。您无需备份 LHC 数据库。每次检测到配置更改时,它都会重新创建。
- 如果自上次检查以来未发生任何更改,则不会复制配置数据。
LHC 模式激活时
- LHC 代理开始侦听连接信息并处理连接请求。
- 当 Cloud Connector 首次失去与 Citrix Cloud 的连接时,LHC 代理没有当前的 VDA 注册数据,但当 VDA 与其通信时,会触发注册过程。在此过程中,LHC 代理还会获取该 VDA 的当前会话信息。
- 当 LHC 代理处理连接时,Remote Broker Provider Service 继续监视与 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 注册请求。
重要:
区域内的连接器必须能够通过
http://<FQDN_OF_PEER_CONNECTOR>:80/Citrix/CdsController/ISecondaryBrokerElection
相互访问。如果连接器无法通过此地址通信,则可能会选举多个代理,并在 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 模式的状态。
- 在正常工作状态下,所有组件都正常运行,所有代理事务都由 Cloud 代理处理。CSS 正在积极地将配置从 Cloud 代理复制到 Cloud Connector。 如果任何运行状况检查失败,Cloud Connector 将转换为待定 HA 状态。在此状态下,将启动全面的运行状况检查以确定下一步操作。连接器与区域中的其他连接器交互以确定其运行状况。
- 从待定 HA 转换为初始 HA 的决定基于给定区域中所有连接器的运行状况。如果运行状况检查成功,连接器/控制器将转换回正常工作状态。或者,如果运行状况检查继续失败,连接器/控制器将转换为初始 HA 状态。
- 在初始 HA 状态下,选定连接器上的 LHC 代理接管代理职责。当前区域中所有以前注册的 VDA 现在将向 Cloud Connector 上的 LHC 代理注册。所有 VDA 重新注册到 HA 服务可能需要长达 5 分钟。在初始 HA 结束时,将启动运行状况检查。如果所有运行状况检查都成功,则状态转换为待定恢复,否则状态转换为扩展 HA。
- 在扩展 HA 期间,运行状况检查会持续进行。当运行状况检查在扩展 HA 期间成功时,状态转换为待定恢复。连接器在扩展 HA 状态下停留没有最长时间限制。
- 待定恢复作为缓冲期,以确保服务在退出 LHC 模式之前完全正常运行。如果任何运行状况检查在待定恢复期间失败,则状态转换回扩展 HA。
- 如果所有运行状况检查在整个 10 分钟的待定恢复期间都成功,则状态转换为正常工作。通过此转换,LHC 模式结束,并且区域中所有已向 LHC 代理注册的 VDA 现在重新注册到 Cloud 代理。此重新注册可能再次需要长达 5 分钟。
LHC 模式下的重要注意事项
在 LHC 模式下,请考虑以下影响:
方面 | LHC 模式下的影响 |
---|---|
Studio 访问 | 可能无法访问,具体取决于中断的性质。在 LHC 模式下运行的区域中的 VDA 在 Studio 中显示为未注册,因为它们已向 LHC 代理注册。 |
远程 PowerShell SDK 访问
|
访问受限。需要启用 CSS 测试模式并设置 SDK 身份验证。启用 CSS 测试模式:在 HKLM:\SOFTWARE\Citrix\DesktopServer\LHC 下添加注册表项 EnableCssTestMode ,其 DWORD 值为 1 。
设置 SDK 身份验证:运行 Get-XDAuthentication -ProfileName WindowsCurrentUser 以防止 SDK 代理重定向 cmdlet 调用。进行这些更改后,您可以使用所有 Get-Broker cmdlet。
注意:在初始 cmdlet 调用中包含 -AdminAddress localhost:89 参数。
示例: Get-BrokerMachine -AdminAddress localhost:89
|
监视数据 | 监视功能不显示 LHC 模式处于活动状态时的活动。监视数据的子集可在 Monitor 的趋势页面的本地主机缓存仪表板中找到。 |
虚拟机管理程序凭据 | 无法从主机服务获取。计算机处于未知电源状态,无法进行电源操作。已开机的 VM 可用于连接。 |
已分配的计算机 | 仅在正常操作期间分配的计算机可用。在 LHC 模式下无法进行新分配。 |
Remote PC Access 计算机 | 不支持自动注册和配置。在正常操作期间注册和配置的计算机可用。 |
服务器托管的应用程序和桌面会话限制 | 如果资源位于不同区域,用户使用的会话可能超过其配置的会话限制。 |
区域行为 | 每个区域独立运行。如果 StoreFront 高级运行状况检查功能已启用,StoreFront 能够在 LHC 模式期间将启动请求路由到适当的区域,并避免会话启动失败。 |
计划的 VDA 重启 | 如果 LHC 模式在交付组中 VDA 的计划重启开始之前进入,则重启将在 LHC 模式退出且正常代理操作恢复时开始,这可能会在区域离开 LHC 模式时导致意外重启。有关更多信息以及可以更改此行为的配置,请参阅由于数据库中断而延迟的计划重启。 |
区域首选项 | 区域首选项配置不考虑会话启动。 |
标记限制 | 对于具有多个区域中 VDA 的交付组,如果标记的 VDA 不存在于所有区域中,标记限制可能会导致启动失败。 |
注意:
从 2025 年 6 月开始,用于 SDK 身份验证的
$XDSDKAuth
已弃用。有关详细信息,请参阅弃用。
应用程序和桌面支持
LHC 支持以下类型的 VDA 和交付模型:
VDA 类型 | 交付模型 | LHC 模式下的 VDA 可用性 |
---|---|---|
多会话操作系统 | 应用程序和桌面 | 始终可用。 |
单会话操作系统静态(已分配) | 桌面 | 始终可用。 |
电源管理的单会话操作系统随机(池化)
|
桌面
|
默认不可用。默认情况下,所有对池化交付组中电源管理 VDA 的会话启动尝试都将失败。
您可以在 LHC 期间使它们可用于新连接。有关详细信息,请参阅使用 Studio 启用和使用 PowerShell 启用。 重要: 启用对电源管理的单会话池化计算机的访问可能会导致先前用户会话中的数据和更改出现在后续会话中。 |
注意:
启用对池化交付组中电源管理的桌面 VDA 的访问不会影响配置的
ShutdownDesktopsAfterUse
属性在正常操作期间的工作方式。当在 LHC 期间启用对这些桌面的访问时,VDA 在恢复正常代理操作后不会自动重新启动。池化交付组中电源管理的桌面 VDA 可以保留来自先前会话的数据,直到 VDA 重新启动。VDA 重新启动可能发生在用户在非 LHC 操作期间注销 VDA 时,或者管理员重新启动 VDA 时。
使用 Studio 启用电源管理的单会话操作系统池化 VDA 的 LHC
使用 Studio,您可以按交付组使这些计算机在 LHC 模式下可用于新连接:
注意:
此设置仅在 Studio 中适用于提供电源管理的 VDA 的池化桌面交付组。
使用 PowerShell 启用电源管理的单会话操作系统池化 VDA 的 LHC
要为特定交付组中的 VDA 启用 LHC,请按照以下步骤操作:
-
通过运行以下命令在站点级别启用此功能:
Set-BrokerSite -ReuseMachinesWithoutShutdownInOutageAllowed $true <!--NeedCopy-->
-
通过运行以下命令并指定交付组名称来为交付组启用 LHC:
Set-BrokerDesktopGroup -Name "name" -ReuseMachinesWithoutShutdownInOutage $true <!--NeedCopy-->
要更改新创建的具有电源管理 VDA 的池化交付组的默认 LHC 可用性,请运行以下命令:
Set-BrokerSite -DefaultReuseMachinesWithoutShutdownInOutage $true
<!--NeedCopy-->
注意:
更改默认设置不会更改现有交付组的设置,并且仅影响使用 PowerShell 创建的交付组。
StoreFront 配置
如果使用本地 StoreFront 部署,请查看以下内容:
- 如果使用负载平衡虚拟服务器,请配置虚拟服务器以根据代理功能监视连接器(例如,在 NetScaler® 上使用内置的 CITRIX-XD-DDC 监视器进行连接器负载平衡)。
- 将单个 Cloud 租户中的所有 Cloud Connector 作为单个资源源包含在 StoreFront 中。
- 查看 StoreFront 中的NetScaler Gateway 配置,并确保所有连接器都列为 STA 服务器。检查 NetScaler 设备并确保 StoreFront 中列出的所有 STA 在 NetScaler Gateway 虚拟服务器中格式相同。STA 服务运行状况也可以在 Gateway 虚拟服务器中进行监视。
- 将所有连接器添加到 StoreFront 中的资源源,并确保 StoreFront 可以通过资源源中指定的端口与所有 Cloud Connector 通信。
注意:
对于拥有许多连接器的客户,为每个区域配置负载平衡虚拟服务器可能有助于减少管理开销并简化故障排除。有关详细信息,请参阅 Citrix TIPs: Integrating Citrix Virtual Apps and Desktops service and StoreFront。
验证本地主机缓存是否正常工作
要验证 LHC 是否已设置并正常工作:
- 确保同步导入成功完成。有关如何监视 LHC 同步的更多信息,请查看事件日志。
- 确保在每个 Cloud Connector 上创建了本地主机缓存数据库。这确认高可用性服务可以在需要时接管。
- 在 Cloud Connector 服务器上,浏览到
c:\Windows\ServiceProfiles\NetworkService
。 - 验证是否已创建
HaDatabaseName.mdf
和HaDatabaseName_log.ldf
。
- 在 Cloud Connector 服务器上,浏览到
- 在区域中的所有 Cloud Connector 上强制 LHC 模式:验证本地主机缓存正常工作后,请记住将所有 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 | 指示未从主配置服务接收到 CSS 配置数据。 |
517 | 指示与主代理服务通信时出现问题。 |
518 | 指示 CSS 脚本中止,因为 LHC 代理(高可用性服务)未运行。 |
高可用性服务
此服务也称为 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 的单次运行状况检查失败后发生。如果 90 秒后另一次检查失败,Cloud Connector 将转换为 LHC 模式。 |
3002 | 指示 Cloud Connector 无法进入 LHC 模式。原因包含在事件信息中。 |
3003
|
指示 Cloud Connector 正在通过 LHC 模式状态转换。事件提供有关以下内容的详细信息:
|
注意:
Cloud Connector 上全天定期出现的 3001 事件通常无需担心。但是,如果它们每小时发生多次,则表示存在网络问题,可能需要进一步调查。
Citrix Monitor
Citrix Monitor 包含有关环境中不同区域的 LHC 模式进入和性能的集中信息。
有关详细信息,请参阅监视站点中的历史趋势。
强制本地主机缓存模式
在以下情况下,您可能希望有意强制本地主机缓存模式:
- 如果您的网络反复出现故障:强制 LHC 直到网络问题解决,可以防止在正常模式和 LHC 模式之间持续转换(以及由此导致的频繁 VDA 注册风暴)。
- 测试灾难恢复计划。
- 帮助确保本地主机缓存正常工作。
要强制 LHC 模式:
-
编辑
HKLM\Software\Citrix\DesktopServer\LHC
中每个 Cloud Connector 服务器的注册表:创建并将OutageModeForced
设置为 REG_DWORD1
。- 将值设置为
1
指示 LHC 代理进入 LHC 模式,无论与 Citrix Cloud 的连接状态如何。 - 将值设置为
0
指示 LHC 代理退出 LHC 模式并恢复正常操作。
- 将值设置为
要验证事件:
- 监视
C:\ProgramData\Citrix\workspaceCloud\Logs\Plugins\HighAvailabilityService
中的Current_HighAvailabilityService
日志文件。
故障排除同步导入失败
当同步导入到 LHC 数据库失败并记录 505 事件时,您可以使用以下故障排除工具:
- CDF 跟踪:
- 为
ConfigSyncServer
和BrokerLHC
模块启用跟踪。 - 与其他代理模块一起使用以识别问题。
- 为
- CSS 跟踪报告:
-
生成详细报告,精确定位导致同步失败的对象。
注意:
启用此报告可能会影响同步速度。在不主动进行故障排除时禁用它。
要启用和生成 CSS 跟踪报告:
-
启用报告:运行以下命令:
New-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC -Name EnableCssTraceMode -PropertyType DWORD -Value 1 <!--NeedCopy-->
-
找到报告:HTML 报告在
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\CitrixBrokerConfigSyncReport.html
生成。 -
禁用报告:生成报告后,运行以下命令禁用报告功能:
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
重要:
仅在 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 |
将代理置于 LHC 模式。LHC 数据库文件必须已由 CSS 成功创建,Enable-LhcForcedOutageMode 才能正常运行。此 cmdlet 仅强制在其运行的 Cloud Connector 上启用 LHC。要使 LHC 激活,必须在区域中的所有 Cloud Connector 上运行此 cmdlet。 |
Disable-LhcForcedOutageMode |
使代理退出 LHC 模式。此 cmdlet 仅禁用在其运行的 Cloud Connector 上的 LHC 模式。必须在区域中的所有 Cloud Connector 上运行 Disable-LhcForcedOutageMode 。 |
Set-LhcConfigSyncIntervalOverride |
设置 CSS 检查 Citrix DaaS™ 站点内配置更改的时间间隔。时间间隔范围为 60 秒(一分钟)到 3600 秒(一小时)。此设置仅适用于在其运行的 Cloud Connector。为了在 Cloud Connector 之间保持一致性,请考虑在每个 Cloud Connector 上运行此 cmdlet。例如:Set-LhcConfigSyncIntervalOverride -Seconds 1200
|
Clear-LhcConfigSyncIntervalOverride |
将 CSS 检查 Citrix DaaS 站点内配置更改的时间间隔设置为默认值 300 秒(五分钟)。此设置仅适用于在其运行的 Cloud Connector。为了在 Cloud Connector 之间保持一致性,请考虑在每个 Cloud Connector 上运行此 cmdlet。 |
Enable-LhcHighAvailabilitySDK |
启用对其运行的 Cloud Connector 内所有 Get-Broker* cmdlet 的访问。 |
Disable-LhcHighAvailabilitySDK |
禁用对其运行的 Cloud Connector 内代理 PowerShell 命令的访问。 |
注意:
- 在 Cloud Connector 上运行
Get-Broker*
cmdlet 时,请使用端口 89。例如:
Get-BrokerMachine -AdminAddress localhost:89
- 在非 LHC 模式下,Cloud Connector 上的 LHC 代理仅保存配置信息。
- 在 LHC 模式期间,LHC 代理保存以下信息:
- 资源状态
- 会话详细信息
- VDA 注册
- 配置信息
更多信息
-
有关以下信息,请参阅本地主机缓存的规模和大小注意事项:
- 测试方法和结果
- RAM 大小注意事项
- CPU 核心和套接字配置注意事项
- 存储注意事项