使用本地主机缓存进行无中断数据库升级

本地主机缓存 (LHC) 功能允许在发生中断时继续执行 Citrix Virtual Apps and Desktops 站点中的连接代理操作。
以下过程演示了在没有辅助区域的情况下如何使用 LHC 执行站点的无中断升级。

在继续操作之前,建议先查看本地主机缓存功能、其要求和限制: https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/manage-deployment/local-host-cache.html

还有关于本地主机缓存大小和扩展的 Tech Zone 指南,可在此处找到: https://docs.citrix.com/en-us/tech-zone/design/design-decisions/local-host-cache-sizing-scaling.html

免责声明: 在实际生产环境中实施这些步骤之前,请先在测试环境中执行这些步骤,以确保您熟悉该过程并为出现的任何环境特定问题或问题做好准备。还建议使用最新的 LTSR 累积更新 (CU),因为有一些与 LHC 相关的修复程序可以使您的环境受益。

概述

  1. 为此过程配置环境。
  2. 确定主要代理。
  3. 强制中断以触发本地主机缓存功能。
  4. 允许 VDA 向选定的二级代理重新注册。
  5. 在未选择的二级 Broker 上执行产品升级。
  6. 执行强制性站点升级,包括数据库升级。
  7. 对任何剩余的未选定二级 Broker 进行产品升级。
  8. 退出中断和本地主机缓存模式。
  9. 允许 VDA 在新升级的交付控制器中重新注册。
  10. 在最后剩余的 Delivery Controller(之前选定的二级代理商)上执行产品升级。
  11. 将环境恢复为默认配置。

过程

  1. 检查以确定是否使用以下 PowerShell cmdlet 启用了本地主机缓存。

    Get-BrokerSite

    查找 LocalHostCacheEnabled : True

    获取 BrokerSite 命令

    如果为 false,则启用本地主机缓存。

    Set-BrokerSite -LocalHostCacheEnabled $true -ConnectionLeasingEnabled $false

    此 cmdlet 还禁用连接租用功能。请勿启用本地主机缓存和连接租用。

  2. 默认情况下,发生中断时,启用了“ShutdownDesktopsAfterUse”属性的池交付组中进行电源管理的桌面 VDA 被置于维护模式。要覆盖默认行为,必须在站点范围内并针对受影响的每个交付组启用它。运行以下 PowerShell cmdlet。

    Set-BrokerSite -ReuseMachinesWithoutShutdownInOutageAllowed $true

    Set-BrokerDesktopGroup -Name "<Delivery Group Name>"- ReuseMachinesWithoutShutdownInOutage $true

  3. 如果 Broker Service 已配置为使用自定义 VDA、StoreFront 或 StoreFront TLS 端口,请执行以下步骤以确保高可用性 (HA) 服务也配置了正确的自定义端口。
    • 通过发出以下命令验证每个代理的当前代理服务端口设置: %programfiles%\Citrix\Broker\Service\BrokerService.exe -show 代理服务映像

    • 通过发出以下命令验证每个 Broker 上的当前 HA 服务端口设置: %programfiles%\Citrix\Broker\Service\HighAvailabilityService.exe -show HA 服务映像

    • 如果为 HA 服务列出的 VDA、StoreFront 或 StoreFront TLS 端口与代理服务不匹配,请使用列出的相应命令行开关将 HA 服务端口设置设置为相应匹配:

    %programfiles%\Citrix\Broker\Service\HighAvailabilityService.exe -VdaPort <port>
    %programfiles%\Citrix\Broker\Service\HighAvailabilityService.exe -StoreFrontPort <port>
    %programfiles%\Citrix\Broker\Service\HighAvailabilityService.exe -StoreFrontTlsPort <port>
    <!--NeedCopy-->
    

    HA 服务 VDA 端口

    注意:

    预计代理服务和 HA 服务的 SDK 端口是不同的。

    更改代理服务的 StoreFront 端口时,HA 服务的 StoreFront 端口将更新为自动匹配。但是,接收自动更新的服务仍需要手动重启才能开始使用新端口。

  4. 在中断期间,选定的二级代理处理所有连接。中断开始时,辅助代理没有当前的 VDA 注册数据,但是当 VDA 与其通信时,会触发重新注册过程。在该过程中,辅助 Broker 还获取有关该 VDA 的当前会话信息。要将 VDA 的重新注册从默认 5 分钟间隔加快到 1 分钟间隔,此设置必须应用于站点中的所有控制器。

    New-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer -Name HeartbeatPeriodMs -PropertyType DWORD -Value 60000

  5. 要监视 VDA 的重新注册,请启动 Citrix Studio,然后单击 配置 > 控制器 节点,然后查看向主代理注册的 VDA 数量。让 Citrix Studio 保持打开状态,以便在 VDA 在中断期间向选定的辅助代理重新注册时,计数降至零。请注意,您不能使用 Citrix Studio 查看向二级代理注册的 VDA 数量。

  6. 要强制中断并进入 LHC 模式,请编辑每个Delivery Controller 器的注册表。

    New-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC -Name OutageModeForced -PropertyType DWORD -Value 1

  7. 要确定是否已触发中断以及每个主代理是否已进入 LHC 模式,请转到每个 Controller 上事件日志的“应用程序”节点,然后从 Citrix 高可用性服务中查找以下事件。

    3502:Citrix 高可用性服务已激活,它将代理用户的会话请求,直到发现的正常代理活动问题得到解决。

    事件 3502 图片

  8. 通过刷新 Citrix Studio 中的控制器节点,确认所有 VDA 已向选定的辅助代理重新注册。当主要代理显示已注册的 VDA 为零时,所有 VDA 都可能已重新注册。

  9. 二级 Broker 使用其运行计算机的按字母顺序排列的FQDN列表来确定(选择)如果发生中断,哪个二级 Broker 将负责该区域的 Broker 业务。要确认选择了哪个辅助代理,请在 Windows 事件应用程序日志中查找 Citrix 高可用性服务中的以下事件。

    3504:Citrix 高可用性服务“选定控制器的 FQDN”已成为其对等控制器中的选定实例(对等控制器 FQDN 列表)。

    事件 3504 图片

  10. 选择一个未选择的对等控制器,然后在未选择的控制器上执行产品升级。

  11. 从新升级的控制器启动 Citrix Studio 并执行强制性站点升级,包括数据库升级。

    站点升级映像

  12. 在其余未选择的对等控制器上执行产品升级。确保不要中断仍在管理环境中所有新连接和活动连接的选定控制器。

  13. 升级所有未选定的 Controller 后,是时候让站点摆脱停机状态并过渡到 LHC 模式了。要删除强制中断触发器,请编辑每个 Controller 的注册表。如果愿意,也可以删除该密钥。

    Set-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer\LHC -Name OutageModeForced -Value 0

  14. 要确认站点是否退出中断模式,请在每个控制器上,在应用程序事件日志中查找来自 Citrix Broker 服务的以下事件。

    3004:Citrix Broker 服务成功连接到 XenDesktop 数据库。

    活动 3004 图片

    3500:Citrix Broker 服务已检测到与数据库的通信问题已得到解决,并将使用主站点数据库中的配置恢复正常的代理活动。

    事件 3500 图片

  15. 从 Citrix Studio 刷新控制器节点,观看 VDA 在升级后的控制器中重新注册。确认所有 VDA 都已成功重新注册。

  16. 在最后剩下的 Controller 上执行产品升级,该控制器在中断期间充当选的辅助代理。

  17. (此步骤是可选的。)通过修改每个 Controller 上的注册表,将 VDA 注册间隔设置回默认值 5 分钟(如果愿意,也可以删除该项)。

    Set-ItemProperty -Path HKLM:\SOFTWARE\Citrix\DesktopServer -Name HeartbeatPeriodMs -PropertyType DWORD -Value 300000

  18. (此步骤是可选的。)如果要更改回电源管理的交付组的默认行为,请使用以下 cmdlet。

    Set-BrokerSite  -ReuseMachinesWithoutShutdownInOutageAllowed $false
    Set-BrokerDesktopGroup -Name "<Delievery Group Name>" -ReuseMachinesWithoutShutdownInOutage $false
    <!--NeedCopy-->
    

使用本地主机缓存的无中断升级现在应该已经完成。

使用本地主机缓存进行无中断数据库升级