VDA 升级(预览版)
简介
以前,升级 VDA 需要完全手动干预。 版本 2503 通过引入 VDA Upgrade Agent 简化了 DaaS 部署的 VDA 升级。 从版本 2503 开始的升级稍后可以直接从共享文件路径或本地文件路径执行。
VDA Upgrade Agent ctxvua 负责与 VDA Upgrade Service 通信并执行以下功能:
- 计划检查:VDA Upgrade Agent 每隔 15 分钟查询一次 VDA Upgrade Service 以获取计划升级信息。
- 自动升级:收到升级指令后,VDA Upgrade Agent 会自动升级 VDA。
- 状态报告:VDA Upgrade Agent 将升级结果(成功或失败)报告给 VDA Upgrade Service。
要了解有关 VDA Upgrade Service 的详细信息,请参阅 Tech Brief: Citrix VDA Upgrade service(技术简介:Citrix VDA Upgrade 服务)。 在这里,您可以找到该服务的概述、有关其工作原理的详细信息以及其他有用的资源。
注意事项
-
Linux VDA 使用底层包管理命令(例如 rpm 或 apt)进行升级,镜像手动升级过程,配置文件在命令行升级期间自动处理。
-
与 Windows 不同,Linux VDA 中包含内置的 VDA Upgrade Agent。 由于代理已经存在,这简化了升级过程。 VDA Upgrade Agent 的版本与 VDA 版本关联。
-
默认情况下,VDA Upgrade Agent 处于禁用状态。 要启用此代理,请运行以下命令:
/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 Upgrade Agent 服务 (ctxvua) 处于禁用状态。 可以使用 systemctl 启用并启动此服务。
-
作为最佳实践,我们建议您在投入生产之前全面测试 VDA 升级。
-
与 Windows 不同,仅支持从文件路径进行 Linux VDA 升级。 这意味着您不能直接使用 Azure CDN URL 或其他联机存储库。 您必须自行管理 VDA 软件包。 这同时适用于主要版本和次要版本升级。
-
忽略 VDA Upgrade Service 中的“最新 VDA 版本”和“升级状态”。 只有“VDA 升级状态”与 Linux 相关。
-
VDA 软件包的文件路径可以是 VDA 计算机的本地路径,也可以是共享位置(例如,安装在 VDA 上的网络共享)。 系统并未设计为自动下载软件包。 您必须提供完整的软件包文件。
-
使用 Studio 或 Citrix DaaS Remote PowerShell SDK 时,以 Windows UNC 路径格式指定路径(以 \\ 开头)以通过路径验证。 例如,/mnt/pkg\/<package-name> 必须以 \\mnt\pkg\<package-name> 格式输入。
-
“服务器”与“工作站”VDA 之间的区别不适用于 Linux。 您可以在 Studio 或 PowerShell 中使用任一选项,不会影响升级。
-
不支持降级 VDA。
必备条件
- 控制平面:Citrix DaaS
-
VDA 版本:2503 或更高版本
注意:
我们建议使用最新的 CR VDA。
- VDA 必须安装了 VDA Upgrade Agent 并且该服务必须正在运行。
- 您有权升级 VDA。
- VDA 升级在 Studio 中配置了正确的 CR 或 LTSR 跟踪。
- VDA 未在使用中。 (用户必须从他们那里注销。)
- VDA 未处于维护模式。 (管理员可以将 VDA 置于维护模式。 如果 VDA 已超过允许的最大注册尝试次数,也可以自动将其置于维护模式。)
- VDA 必须属于交付组并在 DaaS 中注册。
- 目标 VDA 支持当前 VDA 的操作系统。
使用 Studio 升级 VDA
常规工作流程
使用 Studio 升级 VDA 的常规工作流程如下所示:
-
为目录启用 VDA 升级。
-
逐个目录升级 VDA. 目前无法执行每计算机 VDA 升级。 有关详细信息,请参阅为 VDA 配置自动升级。
注意:
为目录安排 VDA 升级时,目录中的所有计算机都包含在升级范围内。 因此,我们建议在启动升级之前备份这些计算机。
-
VDA 升级过程不支持升级其他组件或使用还原等功能。 请跳过这两个步骤。
-
配置计划选项,包括升级时间和升级失败阈值。 失败阈值可能决定了在停止该过程或触发警报之前可以容忍的失败升级次数。
-
选择“使用本地文件共享”作为 VDA 安装程序位置。 以 Windows UNC 格式提供路径(例如,\\server\share\path)。
-
“强制注销会话”选项控制在 VDA 升级过程中如何处理用户会话。 虽然 Studio 用户界面仅允许注销已断开连接的会话,但 PowerShell 可以注销所有会话(已连接和已断开连接的会话)。 注销不是立即完成的。 VDA Upgrade Agent 尝试查询升级计划并发现断开连接的会话后,VDA Upgrade Service 将启动注销。 然后代理等待 15 分钟再重新尝试查询。
使用 PowerShell 升级 VDA
可以使用 Windows 上的 Remote PowerShell SDK 配置 VDA 升级。 有关 Remote PowerShell SDK 的详细信息,请参阅 Citrix DaaS Remote PowerShell SDK。
下面是 PowerShell cmdlet:
-
Get-VusCatalog
使用此 cmdlet 可获取目录的详细信息,例如 Name、Uid、Uuid、UpgradeState(Available、UpToDate、Scheduled、Unknown)、Upgrade Schedule 和 StateId(Upgrade scheduled 状态)。
-
Get-VusMachine
使用此 cmdlet 可获取计算机的详细信息,例如 MachineName、Uid、Uuid、UpgradeState(Availability、UpToDate、Scheduled、Unknown)和 StateId(Upgrade Scheduled 状态)。
-
Get-VusComponentVersion
使用此 cmdlet 来检查 VDA 是否已报告组件版本。 使用 MachineId 过滤 VDA。 MachineId 是来自 Get-BrokerMachine 的 UUID。
-
New-VusMachineUpgrade
使用此 cmdlet 在计算机级别配置 VDA 升级。
-
New-VusCatalogSchedule
使用此 cmdlet 在计算机目录级别安排 VDA 升级。
Example:
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 Upgrade Agent 服务 (ctxvua) 展开。 它充当中介,与 VDA Upgrade Service 通信并执行 /opt/Citrix/VDA/sbin/update_helper.sh 脚本进行与操作系统相关的操作。 在升级过程中,有关该进程的信息存储在注册表中。
注册表
使用命令 **/opt/Citrix/VDA/bin/ctxreg dump | grep -i UpdateAgent** 检查与 VDA Upgrade Agent 相关的注册表设置。 这可以揭示配置问题或升级过程本身的问题。 |
- 检查配置: ctxvua 服务的配置文件位于 /etc/xdl/updateagent.conf。 查看此文件有助于识别错误配置。
日志
以下日志文件对于故障排除至关重要:
-
/var/log/xdl/vua.log:ctxvua 服务的日志文件。 这是用于检查与 Upgrade Agent 的操作相关的问题的主要日志。 ctxvua 服务的配置文件位于 /etc/xdl/updateagent.conf。 查看此文件有助于识别错误配置。
-
/var/log/xdl/update_helper.log:update_helper.sh 脚本的日志文件。 此日志对于诊断升级过程中与操作系统级任务相关的问题至关重要。
常见问题
本部分内容解决了 VDA 升级过程中遇到的常见问题,特别关注 Studio 中的已禁用选项和升级未知状态。
常见问题 1:已禁用升级选项
症状:对于给定目录,Studio 中的“设置升级类型”和“升级 VDA”选项处于禁用状态(灰显)。
解决方案:检查您使用的目录类型是否支持 VDA Upgrade Service。 如果不支持,您将无法使用这些自动升级功能,需要手动管理升级。
常见问题 2:“升级未知”状态
症状:为计算机目录启用 VDA Upgrade Service 后,“升级状态”保持为“未知”,而非按预期更改为“可用”或“最新”。 “升级未知”是一种暂时的状态。 此状态最终应更新为“可用”或“最新”。
“升级未知”的故障排除步骤:
-
验证 VDA Upgrade Agent 是否正在报告版本。
-
步骤 1a:获取计算机的 UUID:
Get-BrokerMachine -DNSName '<hostname>' <!--NeedCopy-->
-
步骤 1b:检查代理报告的组件版本:
Get-VusComponentVersion -MachineId "<UUID>" <!--NeedCopy-->
如果 Get-VusComponentVersion 命令返回空白,则表示 VDA Upgrade Agent 尚未报告其版本。 这可能表明 VDA 是“硬注册的”(检查计算机目录和交付组设置)。 这也表明 VDA Upgrade Agent 可能未在目标 VDA 上安装或运行。
-
-
验证 VDA Upgrade Service 同步。
步骤 2a:检查 VDA Upgrade Service 是否已从 Broker 数据库同步计算机:
``` Get-VusEntityUnit -EntityUUID "" <!--NeedCopy--> ```
如果已知,请将
""
替换为实际的 EntityUUID,或者在未全部获取的情况下运行。 如果您发现它是空白的,则表明该计算机尚未与 VDA Upgrade Service 服务器同步。步骤 2b:如果计算机尚未同步,请留出一些时间让 VDA Upgrade Service 同步。 然后,确认“升级类型”已设置。