本地主机缓存
提示:
在 Studio 主页节点中,服务运行状况警报功能为您提供主动警报,以确保本地主机缓存和区域配置正确。因此,当发生中断时,本地主机缓存可以正常工作,您的用户不会受到影响。警报分为两个级别:显示在“主页”(旗帜图标)中的站点范围警报,以及每个区域的“故障排除”选项卡上显示的区域相关警报。有关详细信息,请参阅区域。
当 Cloud Connector 无法与 Citrix Cloud 通信时,本地主机缓存 (LHC) 允许 Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)部署中的连接代理操作继续。当网络连接断开 60 秒时,本地主机缓存将参与进来。
启用了本地主机缓存时,中断时已连接的用户可以继续工作而不中断。重新连接和新连接会遇到最短连接延迟。
重要:
如果使用本地 StoreFront 部署,则必须将所有已向其注册(或可能有)VDA 的 Cloud Connector 作为 Delivery Controller 添加到 StoreFront 中。未添加到 StoreFront 的 Cloud Connector 无法转换为中断模式,这可能会导致用户启动失败。
对于没有本地 StoreFront 的部署,请使用服务连续性 Citrix Workspace 平台功能,允许用户在中断期间连接到资源。有关详细信息,请参阅服务连续性。
数据内容
本地主机缓存包含以下信息(主数据库中的一部分信息):
- 为其分配了访问对从站点发布的资源的权限的用户和组的身份。
- 当前正在使用或最近使用了站点中已发布资源的用户的身份。
- 站点中配置的 VDA 计算机(包括 Remote PC Access 计算机)的标识。
- 主动使用 Citrix Workspace 应用程序计算机连接到已发布的资源的客户端的标识(名称和 IP 地址)。
此外,它还包含主数据库不可用时建立且当前处于活动状态的连接的信息:
- Citrix Workspace 应用程序执行的任何客户端计算机端点分析的结果。
- 站点涉及的基础结构计算机(例如 Citrix Gateway 和 StoreFront 服务器)的标识。
- 用户进行的最近活动的日期、时间和类型。
工作原理
查看本地主机缓存如何与 Citrix Cloud 交互。
正常操作过程中
- Cloud Connector 上的代理主体(又称为 Citrix Remote Broker Provider Service)接受来自 StoreFront 的连接请求。代理主体与 Citrix Cloud 进行通信,以将用户与已注册到 Cloud Connector 的 VDA 连接起来。
- Citrix 配置同步器服务 (CSS) 大约每 5 分钟向 Citrix Cloud 中的代理检查一次,以查看是否进行了任何配置更改。这些更改可能是管理员发起的更改(例如,更改交付组属性)或系统操作(例如,计算机分配)。
-
如果自上次检查后更改了配置,CSS 会将信息同步(复制)到 Cloud Connector 上的辅助 Broker。(如上图所示,辅助 Broker 也称为高可用性服务或高可用性 Broker。)
所有配置数据都会被复制,而不仅仅是自上次核对后更改的项目。CSS 将配置数据导入到 Cloud Connector 上的 Microsoft SQL Server Express LocalDB 数据库中。此数据库称为本地主机缓存数据库。CSS 确保本地主机缓存数据库中的信息与 Citrix Cloud 中的站点数据库中的信息一致。每次同步时,都会重新创建本地主机缓存数据库。
当您安装 Cloud Connector 时,Microsoft SQL Server Express LocalDB(由本地主机缓存数据库使用)会自动安装。本地主机缓存数据库不能跨 Cloud Connector 共享。您不需要备份本地主机缓存数据库。每次检测到配置更改时都会重新创建此数据库。
- 如果自上次核对后没有进行任何更改,则不复制配置数据。
中断过程中
当中断开始时:
- 辅助代理开始侦听并处理连接请求。
- 中断开始时,辅助代理没有当前的 VDA 注册数据,但当 VDA 与其通信时,就会立即触发注册过程。在该过程中,辅助 Broker 还获取有关该 VDA 的当前会话信息。
- 在辅助代理处理连接的同时,代理主体将继续监视与 Citrix Cloud 的连接。恢复连接时,代理主体将指示辅助代理停止侦听连接信息,并且代理主体将继续执行代理操作。下次 VDA 与代理主体通信时,将触发注册过程。辅助代理将删除上一次中断中剩余的任何 VDA 注册。了解 Citrix Cloud 中是否发生配置变更时,CSS 将继续同步信息。
在同步期间发生中断这种不太可能发生的事件中,会丢弃当前导入,并使用已知的最后一个配置。
事件日志指示何时发生同步和中断。
对中断模式下的操作没有时间限制。
您还可以有意触发中断。有关执行此操作的原因和方法的详细信息,请参阅强制中断。
具有多个 Cloud Connector 的资源位置
除其他任务外,CSS 还定期向辅助代理提供与资源位置中所有 Cloud Connector 有关的信息。获取该信息后,每个辅助代理都将知晓资源位置中的其他 Cloud Connector 上运行的所有对等辅助代理。
辅助 Broker 在单独的通道中相互通信。如果发生中断,这些 Broker 将使用正在其中运行的计算机的按字母顺序排列的 FQDN 名称列表来确定(选择)哪个辅助 Broker 将在区域中代理操作。在中断期间,所有 VDA 向选定的辅助 Broker 重新注册。区域中的非选定辅助 Broker 将主动拒绝传入连接和 VDA 注册请求。
重要:
资源位置内的连接器必须能够在以下位置相互连接:
http://<FQDN_OF_PEER_CONNECTOR>:80/Citrix/CdsController/ISecondaryBrokerElection
。如果连接器无法在此地址通信,则可能会选择多个代理,并且在本地主机缓存事件期间可能会出现间歇性启动失败。
如果在中断期间某个选定的辅助代理出现故障,则将选择另一个辅助代理来接管,并且 VDA 将在新选定的辅助代理中重新注册。
在中断期间,如果重新启动某个 Cloud Connector:
- 如果该 Cloud Connector 不是选定的代理,则重新启动没有任何影响。
- 如果该 Cloud Connector 是选定的代理,则将选择另一个 Cloud Connector,这会导致 VDA 进行注册。重新启动的 Cloud Connector 开启后,将自动接管代理,这会导致 VDA 重新注册。在这种情况下,在注册期间,性能会受影响。
事件日志提供有关选择的信息。
中断期间不可用的功能以及其他差异
对中断模式下的操作没有时间限制。但是,如果中断是由于其资源位置中的 Citrix Cloud 连接断开导致的,Citrix 建议尽快从资源位置恢复连接。
中断过程中:
- 在本地主机缓存事件期间,Studio 可能暂时无法访问。如果 Studio 可以访问,则在高可用性模式下运行的资源位置中的 VDA 在 Studio 中显示为未注册。这些 VDA 仍可通过本地主机缓存进行访问。
-
您对 Remote PowerShell SDK 具有优先的访问权限。
- 必须首先:
- 添加值为 1 的注册表项
EnableCssTestMode
:New-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC -Name EnableCssTestMode -PropertyType DWORD -Value 1
- 将 SDK 身份验证设置为
OnPrem
,以便 SDK 代理不会尝试重定向 cmdlet 调用:$XDSDKAuth="OnPrem"
- 使用端口 89:
Get-BrokerMachine -AdminAddress localhost:89 | Select MachineName, ContollerDNSName, DesktopGroupName, RegistrationState
- 添加值为 1 的注册表项
- 运行这些命令后,您可以访问:
- 所有
Get-Broker*
cmdlet。
- 所有
- 必须首先:
- 中断期间,监视数据将发生送到 Citrix Cloud。因此,Monitor 功能将不显示中断时间间隔内的活动。
- 无法从 Host Service 获取虚拟机管理程序凭据。所有计算机都处于未知电源状态,因此无法发出任何电源操作。但是,已打开电源的主机上的 VM 可以用于连接请求。
- 仅当在正常操作过程中发生了分配时,才可以使用分配的计算机。在中断期间不能执行新分配。
- 不能自动注册和配置 Remote PC Access 计算机。但是,正常操作过程中注册和配置的计算机可以使用。
- 如果资源在不同的区域中,服务器托管的应用程序和桌面用户使用的会话可能超过其配置的会话限制。
- 在 LHC 事件期间,每个区域都独立操作。断电期间不支持跨区域启动(从一个区域中的 Broker 到另一个区域中的 VDA)。在 LHC 事件期间,使用 StoreFront 高级运行状况检查功能将启动请求路由到相应区域。
- 如果对交付组中的 VDA 开始计划的重新启动之前发生站点数据库中断,则重新启动将在中断结束后开始。此方案会产生意想不到的结果。有关更多详细信息,请参阅计划的重新启动因数据库中断而延迟。
- 无法配置区域首选项。如果已配置,会话启动时将不考虑首选项。
- 会话启动不支持使用标记来指定资源位置的标记限制。配置了此类标记限制并启用了 StoreFront 应用商店的高级运行状况检查选项后,会话可能会间歇性无法启动。
StoreFront 要求
如果使用本地 StoreFront 部署,则必须将所有已向其注册(或可能有)VDA 的 Cloud Connector 作为 Delivery Controller 添加到 StoreFront 中。未添加到 StoreFront 的 Cloud Connector 无法转换为中断模式,这可能会导致用户启动失败。
资源可用性
可以通过以下两种方式确保资源(应用程序和桌面)在中断期间的可用性:
- 在您的部署中的每个资源位置发布资源。
- 如果您使用的是 StoreFront 1912 CU4 或更高版本,请将资源发布到至少一个资源位置,并在所有 StoreFront 服务器上启用高级运行状况检查。对于 StoreFront 2308 之前的版本,高级运行状况检查默认处于关闭状态,并且必须由管理员启用。对于 StoreFront 版本 2308 及更高版本,此功能默认处于启用状态。有关开启高级运行状况检查的更多信息和说明,请参阅 高级运行状况检查。
应用程序和桌面支持
LHC 支持以下类型的 VDA 和交付模式:
VDA 类型 | 交付模式 | LHC 期间的 VDA 可用性 |
---|---|---|
多会话操作系统 | 应用程序和桌面 | 始终可用。 |
单会话操作系统静态(已分配) | 桌面 | 始终可用。 |
电源管理的单会话操作系统随机(池)
|
桌面
|
默认情况下不可用。默认情况下,所有尝试启动池交付组中电源管理的 VDA 的会话都将失败。
您可以在 LHC 事件期间将其设置为可供新连接使用。有关详细信息,请参阅使用 Studio 启用和使用 PowerShell 启用。 重要: 启用对电源管理的单会话池计算机的访问权限可能会导致先前的用户会话中的数据和更改出现在后续的会话中。 |
注意:
在池交付组中启用对电源管理的桌面 VDA 的访问权限不会影响配置的
ShutdownDesktopsAfterUse
属性在正常操作期间的运行方式。在 LHC 期间启用对这些桌面的访问权限后,VDA 不会在 LHC 事件完成后自动重新启动。池交付组中进行电源管理的桌面 VDA 可以保留先前会话中的数据,直到 VDA 重新启动。当用户在非 LHC 操作期间注销 VDA 或者管理员重新启动 VDA 时,可能会发生 VDA 重新启动操作。
使用 Studio 为电源管理的单会话操作系统池 VDA 启用 LHC
使用 Studio,您可以在 LHC 期间以每个交付组为基础使这些计算机可用于新连接:
注意:
此设置在 Studio 中仅适用于提供电源管理的 VDA 的池化桌面交付组。
使用 PowerShell 为电源管理的单会话操作系统池 VDA 启用 LHC
要为特定交付组中的 VDA 启用 LHC,请执行以下步骤:
-
通过运行以下命令在站点级别启用此功能:
Set-BrokerSite -ReuseMachinesWithoutShutdownInOutageAllowed $true
-
使用指定的交付组名称运行以下命令,为交付组启用 LHC:
Set-BrokerDesktopGroup -Name "name" -ReuseMachinesWithoutShutdownInOutage $true
要使用电源管理 VDA 更改新创建的池化交付组的默认 LHC 可用性,请运行以下命令:
Set-BrokerSite -DefaultReuseMachinesWithoutShutdownInOutage $true
验证本地主机缓存是否正在运行
查看如何验证本地主机缓存是否正确配置。
要验证本地主机缓存是否已设置并正常运行,请执行以下操作:
- 如果使用 StoreFront,请验证本地 StoreFront 部署是否指向该资源位置中的所有 Cloud Connector。
- 确保同步导入成功完成。检查事件日志。
- 确保在每个 Cloud Connector 上创建本地主机缓存数据库。这确认了如果需要,高可用性服务可以接管。
- 在 Cloud Connector 服务器上,浏览至
c:\Windows\ServiceProfiles\NetworkService
。 - 验证
HaDatabaseName.mdf
和HaDatabaseName_log.ldf
是否已创建。
- 在 Cloud Connector 服务器上,浏览至
- 在资源位置中的所有 Cloud Connector 上强制中断。验证本地主机缓存是否正常运行后,请记住将所有 Cloud Connector 放回普通模式。这可能大约需要 15 分钟。
事件日志
事件日志记录何时发生同步和中断。在事件查看器日志中,中断模式称为高可用性模式。
Config Synchronizer Service
在正常操作期间,当 CSS 使用本地主机缓存代理将配置数据导入到本地主机缓存数据库时,可能会发生以下事件。
- 503:Citrix Config Sync Service 收到更新的配置。每次从 Citrix Cloud 接收更新的配置时都会发生此事件。它指示同步过程的开始。
- 504:Citrix Config Sync Service 导入了更新的配置。配置导入已成功完成。
- 505:Citrix Config Sync Service 导入失败。配置导入未成功完成。如果以前的成功配置可用,发生中断时将使用该配置。但是,它将在当前配置中过期。如果以前的配置都不可用,服务将无法在中断期间参与会话中转。在这种情况下,请参阅故障排除部分,并与 Citrix 支持部门联系。
- 507:Citrix Config Sync Service 放弃了导入,因为系统处于中断模式,并且正在使用本地主机缓存代理进行代理。服务收到了新的配置,但导入被放弃,因为发生中断。这是预期的行为。
- 510: No Configuration Service configuration data received from primary Configuration Service.(510: 未从主 Configuration Service 收到任何 Configuration Service 配置数据。)
- 517: There was a problem communicating with the primary Broker.(517: 与主 Broker 通信时出现问题。)
- 518: Config Sync 脚本已中止,因为次要 Broker (高可用性服务)未在运行。
High Availability Service
此服务又称为本地主机缓存代理。
- 3502: 发生中断,本地主机缓存代理正在执行代理操作。
- 3503:已解决中断并已恢复正常操作。
- 3504:指示选择哪个本地主机缓存代理,以及参与选择的其他本地主机缓存代理。
- 3507:每隔 2 分钟更新一次本地主机缓存的状态,指示本地主机缓存模式在选定代理上处于活动状态。包含中断摘要,包括中断持续时间、VDA 注册和会话信息。
- 3508:宣布本地主机缓存在选定代理上不再处于活动状态,并且已恢复正常操作。包含中断摘要,包括中断持续时间、在本地主机缓存事件期间注册的计算机数以及在 LHC 事件期间成功启动的次数。
- 3509:通知本地主机缓存在非选定代理上处于活动状态。包含每隔 2 分钟中断一次的持续时间,并指明选定代理。
- 3510:宣布本地主机缓存在非选定代理上不再处于活动状态。包含中断持续时间并指明选定代理。
Remote Broker Provider
该服务充当 Citrix Cloud 与您的 VDA 和 Cloud Connector 之间的代理。
- 3001:检查 Cloud Connector 是否必须进入 HA 模式。此事件发生在 Cloud Connector 的一次运行状况检查失败之后。如果额外的运行状况检查在 60 秒后失败,则 Cloud Connector 将过渡到 HA 模式。
- 3002:通知 Cloud Connector 无法进入 HA 模式。未进入 HA 模式的原因包含在事件信息中。
-
3003:通知 Cloud Connector 正在通过各种 HA 模式状态过渡。此图表描述了进入和退出 HA 模式的状态。该活动提供了以下方面的详细信息:
- Cloud Connector 正在过渡的状态。
- Cloud Connector 正在过渡到的状态。
- 先前状态的持续时间。
注意:
您可以经常在 Cloud Connector 上看到 3001 个事件。这些事件可能是由于网络故障造成的,并不令人担忧。
强制中断
您可能希望有意强制中断。
- 如果您的网络反复开启和关闭。在网络问题解决之前强制中断网络可以防止持续在正常模式与中断模式之间转换(并且会导致频繁出现 VDA 注册风暴)。
- 要测试灾难恢复计划。
- 帮助确保本地主机缓存正常运行。
尽管在强制停机期间可以更新 Cloud Connector,但可能会出现意外问题。建议您为 Cloud Connector 更新设置一个计划,以避免出现强制中断模式时间间隔。
要强制中断,请编辑每个 Cloud Connector 服务器的注册表。在 HKLM\Software\Citrix\DesktopServer\LHC
中,创建 OutageModeForced
作为 REG_DWORD
并将其设置为 1
。此设置指示本地主机缓存代理进入中断模式,而无论与 Citrix Cloud 的连接状态为何。将该值设置为 0
将使本地主机缓存代理退出中断模式。
要验证事件,请监视 C:\ProgramData\Citrix\workspaceCloud\Logs\Plugins\HighAvailabilityService
中的 Current_HighAvailabilityService
日志文件。
故障排除
向本地主机缓存数据库的同步导入失败并且发布了 505 事件时,可以使用多个故障排除工具。
CDF 跟踪:包含 ConfigSyncServer 和 BrokerLHC 模块的选项。这些选项与其他代理模块一起可以确定问题。
报告:如果同步导入失败,您可以生成报告。此报告在导致出错的对象所在的位置停止。此报告功能影响同步速度,因此,Citrix 建议在不使用时禁用它。
要启用并生成 CSS 跟踪报告,请输入以下命令:
New-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC
-Name EnableCssTraceMode -PropertyType DWORD -Value 1
HTML 报告发布以下位置:C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\CitrixBrokerConfigSyncReport.html
生成报告后,输入以下命令以禁用报告功能:
Set-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC
-Name EnableCssTraceMode -Value 0
本地主机缓存 PowerShell 命令
您可以使用 PowerShell 命令管理 Cloud Connector 上的本地主机缓存。
PowerShell 模块位于 Cloud Connector 上的以下位置:
C:\Program Files\Citrix\Broker\Service\ControlScripts
重要:
请仅在 Cloud Connector 上运行此模块。
导入 PowerShell 模块
要导入模块,请在 Cloud Connector 上运行以下命令:
cd C:\Program Files\Citrix\Broker\Service\ControlScripts
Import-Module .\HighAvailabilityServiceControl.psm1
用于管理 LHC 的 PowerShell 命令
以下 cmdlet 可帮助您在 Cloud Connector 上激活和管理 LHC 模式。
cmdlet | 功能 |
---|---|
Enable-LhcForcedOutageMode |
将代理置于 LHC 模式。适用于 Enable-LhcForcedOutageMode 的 ConfigSync 服务必须成功创建本地主机缓存数据库文件才能正常运行。这个 cmdlet 仅在运行它的 Cloud Connector 上强制使用 LHC。要使 LHC 处于活动状态,必须在资源位置内的所有 Cloud Connector 上运行此 cmdlet。 |
Disable-LhcForcedOutageMode |
使代理退出 LHC 模式。此 cmdlet 仅在运行它的 Cloud Connector 上禁用 LHC 模式。Disable-LhcForcedOutageMode 必须在资源位置内的所有 Cloud Connector 上运行。 |
Set-LhcConfigSyncIntervalOverride |
设置 Citrix Config Synchronizer Service (CSS) 检查 Citrix DaaS 站点内的配置更改的时间间隔。时间间隔可以从 60 秒(一分钟)到 3600 秒(一小时)不等。此设置仅适用于运行该设置的 Cloud Connector。为了确保 Cloud Connector 之间的一致性,请考虑在每个 Cloud Connector 上运行此 cmdlet。例如:Set-LhcConfigSyncIntervalOverride -Seconds 1200
|
Clear-LhcConfigSyncIntervalOverride |
将 Citrix 配置同步器服务 (CSS) 检查 Citrix DaaS 站点内的配置更改的时间间隔设置为默认值 300 秒(五分钟)。此设置仅适用于运行该设置的 Cloud Connector。为了确保 Cloud Connector 之间的一致性,请考虑在每个 Cloud Connector 上运行此 cmdlet。 |
Enable-LhcHighAvailabilitySDK |
允许访问其运行时所在的 Cloud Connector 中的所有 Get-Broker* cmdlet。 |
Disable-LhcHighAvailabilitySDK |
禁止访问运行的 Cloud Connector 中的 Broker PowerShell 命令。 |
注意:
- 在 Cloud Connector 上运行
Get-Broker*
cmdlet 时使用端口 89。例如:
Get-BrokerMachine -AdminAddress localhost:89
- 不处于 LHC 模式时,Cloud Connector 上的 LHC Broker 仅保存配置信息。
- 在 LHC 模式下,选定的 Cloud Connector 上的 LHC Broker 会保存以下信息:
- 资源状态
- 会话详细信息
- VDA 注册情况
- 配置信息
更多信息
请参阅本地主机缓存的规模和大小注意事项,以了解以下相关信息:
- 测试方法和结果
- RAM 大小注意事项
- CPU 核心和套接字配置注意事项
- 存储注意事项