VDA 升级 (预览版)

内容简介

以前,升级 VDA 需要完全手动干预。版本 2503 通过引入 VDA 升级代理简化了 DaaS 部署的 VDA 升级。从版本 2503 开始,后续升级可以直接从共享或本地文件路径执行。

VDA 升级代理 ctxvua 负责与 VDA 升级服务通信并执行以下功能:

  • 计划检查:VDA 升级代理每 15 分钟向 VDA 升级服务查询计划升级信息。
  • 自动升级:收到升级指令后,VDA 升级代理会自动升级 VDA。
  • 状态报告:VDA 升级代理将升级结果(成功或失败)报告回 VDA 升级服务。

要了解有关 VDA 升级服务的更多信息,请参阅 技术简报:Citrix VDA 升级服务。在那里,您可以找到该服务的概述、其工作原理的详细信息以及其他有用的资源。

注意事项

  • Linux VDA 使用底层包管理命令(如 rpm 或 apt)进行升级,这与手动升级过程类似,配置文件在命令行升级期间会自动处理。

  • 与 Windows 不同,Linux VDA 包含内置的 VDA 升级代理。这简化了升级过程,因为代理已存在。VDA 升级代理的版本与 VDA 版本绑定。

  • 默认情况下,VDA 升级代理处于禁用状态。要启用代理,请运行以下命令:

    /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\Software\Citrix\UpdateServices\UpdateAgent" -t "REG_DWORD" -v "fEnabled" -d "0x00000001" --force
    
    systemctl start ctxvua.service
    <!--NeedCopy-->
    
  • VDA 升级代理服务 (ctxvua) 默认处于禁用状态。您可以使用 systemctl 启用并启动此服务。

  • 作为最佳实践,我们建议您在投入生产之前彻底测试 VDA 升级。

  • 与 Windows 不同,Linux VDA 升级仅支持从文件路径进行。这意味着您不能直接使用 Azure CDN URL 或其他在线存储库。您必须自行管理 VDA 包。这适用于主要版本和次要版本升级。

  • 忽略 VDA 升级服务中的“最新 VDA 版本”和“升级状态”。对于 Linux,只有“VDA 升级状态”是相关的。

  • VDA 软件包的文件路径可以是 VDA 计算机的本地路径,也可以是共享位置(例如,安装在 VDA 上的网络共享)。系统并非设计为自动下载软件包。您必须提供完整的软件包文件。

  • Specify the path in the Windows UNC path format (starting with \\) to pass the path validation when using Studio or Citrix DaaS Remote PowerShell SDK. For example, /mnt/pkg\/<package-name> must be entered as \\mnt\pkg\<package-name>.

  • “服务器”和“工作站”VDA 之间的区别不适用于 Linux。您可以在 Studio 或 PowerShell 中使用任一选项,而不会影响升级。

  • 不支持降级 VDA。

先决条件

  • Control plane: Citrix DaaS™
  • VDA 版本:2503 或更高版本

    注意:

    我们建议使用最新的 CR VDA。

  • VDA 必须安装 VDA 升级代理,并且该服务必须正在运行。
  • 您拥有升级 VDA 的权限。
  • VDA 升级已在 Studio 中配置了正确的 CR 或 LTSR 轨道。
  • VDA 未在使用中。(用户必须从 VDA 注销。)
  • VDA 未处于维护模式。(管理员可以将 VDA 置于维护模式。如果 VDA 超出了最大允许注册尝试次数,也可以自动进入维护模式。)
  • VDA 必须属于一个交付组并注册到 DaaS。
  • 目标 VDA 支持当前 VDA 的操作系统。

Upgrade VDAs using Studio

一般工作流程

使用 Studio 升级 VDA 的一般工作流程如下:

  1. 为目录启用 VDA 升级。

  2. 按目录升级 VDA。目前不支持按计算机升级 VDA。有关详细信息,请参阅配置 VDA 自动升级

    注意:

    为目录安排 VDA 升级时,目录中的所有计算机都将包含在升级范围内。因此,我们建议在启动升级之前备份这些计算机。

  3. VDA 升级过程不支持升级附加组件或使用还原等功能。请跳过这两个步骤。

  4. 配置计划选项,其中包括升级时间以及升级失败的阈值。这个失败阈值很可能决定了在整个升级过程被停止或者警报被触发之前,可以容忍多少次升级失败的情况。

  5. 为 VDA 安装程序位置选择“使用本地文件共享”。以 Windows UNC 格式提供路径(例如,\\server\share\path)。

  6. “强制注销会话”选项控制 VDA 升级期间用户会话的处理方式。虽然 Studio UI 只允许注销断开连接的会话,但 PowerShell 可以注销所有会话(已连接和断开连接)。注销不是即时的。VDA 升级代理尝试查询升级计划并找到断开连接的会话后,VDA 升级服务会启动注销。然后,代理会等待 15 分钟,再重试查询。

Upgrade VDAs using PowerShell

You can configure VDA upgrades using the Remote PowerShell SDK on Windows. For more information about the Remote PowerShell SDK, see Citrix DaaS Remote PowerShell SDK.

以下是 PowerShell 命令行程序:

  • Get-VusCatalog

    Use this cmdlet to get details of a catalog such as Name, Uid, Uuid, UpgradeState (Available, UpToDate, Scheduled, Unknown), Upgrade scheduled, and StateId (status of Upgrade scheduled).

  • 获取 Vus 机器

    使用此 cmdlet 获取计算机的详细信息,例如 MachineNameUidUuidUpgradeState可用最新已计划未知)和 StateId升级已计划 的状态)。

  • 获取 Vus 组件版本

    Use this cmdlet to check if VDAs have reported the component versions. Use the MachineId to filter the VDAs. MachineId is the UUID from Get-BrokerMachine.

  • 新建-Vus机器升级

    使用此 cmdlet 在计算机级别配置 VDA 升级。

  • 新建-Vus目录计划

    使用此 cmdlet 在计算机目录级别计划 VDA 升级。

示例:

Get-BrokerMachine -DNSName 'u22-test*'

New-VusCatalogSchedule -CatalogName "test-catalog" -UpgradeNow -DurationInHours 2 -LogoffOption ActiveAndDisconnectedSessions -VdaServerPackageUri "\\root\xendesktopvda_24.11.0.1-1.ubuntu22.04_amd64.deb"

Get-VusComponent -CatalogName 'test-catalog'

Get-VusCatalog -Name 'test-catalog'
<!--NeedCopy-->

故障排除

升级过程的核心围绕 VDA 升级代理服务 (ctxvua) 展开。它充当中间人,与 VDA 升级服务通信并执行 /opt/Citrix/VDA/sbin/update_helper.sh 脚本以进行与操作系统相关的操作。在升级期间,有关该过程的信息存储在注册表中。

注册表

使用命令 **/opt/Citrix/VDA/bin/ctxreg dump grep -i UpdateAgent** 检查与 VDA 升级代理相关的注册表设置。这可以揭示配置问题或升级过程本身的问题。
  1. 检查配置: ctxvua 服务的配置文件位于 /etc/xdl/updateagent.conf。查看此文件有助于识别配置错误。

日志

以下日志文件对于故障排除至关重要:

  • /var/log/xdl/vua.logctxvua 服务的日志文件。这是检查与升级代理操作相关问题的主要日志。ctxvua 服务的配置文件位于 /etc/xdl/updateagent.conf。查看此文件有助于识别配置错误。

  • /var/log/xdl/update_helper.logupdate_helper.sh 脚本的日志文件。此日志对于诊断升级期间与操作系统级别任务相关的问题至关重要。

常见问题

本节介绍 VDA 升级期间遇到的常见问题,特别是 Studio 中禁用的选项和“升级未知”状态。

常见问题 1:升级选项已禁用

症状:在 Studio 中,给定目录的“设置升级类型”和“升级 VDA”选项已禁用(灰显)。

解决方案:检查您正在使用的目录类型是否支持 VDA 升级服务。如果不支持,则无法使用这些自动化升级功能,需要手动管理升级。

常见问题 2:“升级未知”状态

症状:为计算机目录启用 VDA 升级服务后,“升级状态”仍为“未知”,而不是按预期更改为“可用”或“最新”。“升级未知”是一种瞬态。它最终应更新为“可用”或“最新”。

“升级未知”的故障排除步骤

  1. 验证 VDA 升级代理是否正在报告版本。

    • 步骤 1a: 获取计算机的 UUID:

         Get-BrokerMachine -DNSName '<hostname>'
       <!--NeedCopy-->
      
    • 步骤 1b: 检查代理报告的组件版本:

       Get-VusComponentVersion -MachineId "<UUID>"
       <!--NeedCopy-->
      

      如果 Get-VusComponentVersion 命令返回空白,则表示 VDA 升级代理尚未报告其版本。这可能表明 VDA 是“硬注册”的(请检查计算机目录和交付组设置)。这还表明 VDA 升级代理可能未安装或未在目标 VDA 上运行。

  2. 验证 VDA 升级服务同步。

    步骤 2a: 检查 VDA 升级服务是否已从 Broker 数据库同步计算机:

    ```
    Get-VusEntityUnit -EntityUUID ""
    <!--NeedCopy--> ```
    

    如果已知,请将 "" 替换为实际的 EntityUUID,或者不带参数运行以获取所有。如果您发现此项为空白,则可能表示计算机尚未与 VDA 升级服务服务器同步。

    步骤 2b: 如果计算机尚未同步,请留出一些时间让 VDA 升级服务进行同步。然后,确认已设置“升级类型”。

参考资料

VDA 升级 (预览版)