你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查 Azure 虚拟桌面中的会话主机配置和会话主机更新问题

重要

Azure 虚拟桌面的会话主机更新目前以预览版提供。 有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款

使用 Azure 虚拟桌面中的会话主机更新,可以使用会话主机配置轻松更新主机池中的会话主机虚拟机 (VM)。 本文有助于排查你可能遇到的一些问题。

创建主机池时无法创建会话主机配置

创建会话主机配置时,在扩展验证期间会检查为配置提供的参数。 如果服务得出结论,认为无法使用提供的参数成功创建会话主机,则验证可能会失败。 由于 Azure 资源存储在订阅中,因此其他进程可以修改这些资源;即使完成此验证检查,仍可能无法使用会话主机配置创建会话主机。

下面是一些示例故障:

  • VM 可用性:VM SKU 名称、地区、可用性区域和订阅的组合不可用。 可能导致的一些错误包括 VmSkuNotAvailableInRegionVmSkuNotAvailableInRegionDueToRestrictionAvailabilityZoneNotAvailable。 需要查看所选区域和订阅配额的 VM 大小和可用性区域的可用性,并提供支持的组合。 使用 PowerShell cmdlet Get-AzComputeResourceSku 标识对给定 VM SKU 和区域组合的限制。

  • 参数兼容性:VM SKU、磁盘、映像和虚拟网络的组合不兼容。 可能导致的一些错误包括 ComputeSkuIncompatibleWithImageHyperVGenerationImageDiskTypeIncompatibleVnetLocationIncompatible。 查看 Azure 虚拟桌面的先决条件,以确保提供的参数满足创建会话主机的要求。

如果在创建主机池时无法创建会话主机配置,则无法使用 Azure 门户为此主机池创建会话主机配置。 可使用 PowerShell 通过 New-AzWvdSessionHostConfiguration cmdlet 创建会话主机配置。 或者,可以删除主机池并重新创建它。

错误:SessionHostConfiguration 不存在

如果使用 PowerShell cmdlet Get-AzWvdSessionHostConfiguration 时收到错误“错误:SessionHostConfiguration 不存在”,请使用 New-AzWvdSessionHostConfiguration cmdlet 创建会话主机配置。

将会话主机添加到主机池时出错

我们仅支持通过 Azure 门户将会话主机添加到采用会话主机配置的主机池。 使用会话主机配置的主机池与标准主机池之间的主要区别在于域加入扩展不与会话主机配置一起使用。 实际上,由 Azure 虚拟桌面代理完成域加入过程。 此方法意味着:

  • 即使域加入失败,ARM 模板部署也会成功,从而导致会话主机运行不正常。
  • 可以通过查看会话主机运行状况的 JSON,在 Azure 门户的会话主机详细信息中查看域加入失败诊断。

对于将会话主机添加到主机池时出现的域加入失败和其他问题,可以按照会话主机故障排除指南操作。

失败的更新

使用会话主机更新来更新会话主机时,单个会话主机可能会无法更新。 在这种情况下,会话主机更新会尝试回滚该会话主机上的更新。 回滚的目的是维持整个主机池的容量,即使此会话主机回滚到会话主机配置的先前版本,而不是强制会话主机不可用并减少主机池的容量。 不会回滚主机池中已成功更新的其他会话主机。 不会更新未开始更新的会话主机。

会话主机更新失败后,会话主机更新会完成更新当前一批会话主机,然后将更新标记为失败。 在这种情况下,唯一的选择是重试更新或取消更新。 如果重试更新,则会话主机更新会再次尝试更新失败的会话主机,以及以前未尝试的剩余会话主机。 使用现有的批次大小。

如果会话主机无法成功回滚,则主机会话不可用,并且容量减少。 会话主机与主机池中的其他会话主机不同,并且与会话主机配置匹配。 应该调查会话主机更新失败的原因,并在安排新更新之前解决该问题。 计划新的更新之后,会话主机更新会尝试更新失败的会话主机,以便它们全部匹配,以及先前更新尝试中未启动的任何会话主机。

更新可能会失败并出现以下状态:

状态 说明
更新未能启动 更新流不正确。 例如,与虚拟机 SKU 不兼容的映像。 无法重试更新;需要取消它并安排新更新。
更新失败 更新正在进行中,但失败了。 如果重试更新,它会继续操作之前停止的会话主机。
会话主机回滚失败 如果某会话主机更新失败,则会话主机更新会尝试回滚该会话主机上的更新。 如果回滚失败并重试更新,它会继续使用之前停止的会话主机。

可以按照步骤监视更新的进度来获取更新的任何错误。 使用 Azure PowerShell 时,变量 $updateProgress 包含以下属性中的错误详细信息:

  • $updateProgress.PropertiesUpdateStatus
  • $updateProgress.UpdateProgressError
  • $updateProgress.UpdateProgressError.FaultText

确定问题后,可以重试更新,或取消更新,然后计划新的更新

无法启动更新

启动会话主机更新后,服务会验证它是否能够成功完成更新。 会话主机在启动前更新失败时,更新将结束,并且可以对会话主机配置进行更改。 由于 Azure 资源存储在订阅中,因此其他进程可以修改这些资源;即使完成此验证检查,仍会无法使用会话主机配置创建会话主机。

下面是阻止更新启动的一些示例故障:

  • 没有要更新的会话主机:在会话主机更新过程中没有要更新的会话主机时,将返回错误 HostpoolHasNoSessionHosts。 如果在启动更新之前未更改会话主机配置,则会返回此错误。

  • 容量问题:验证会检查虚拟网络子网和 VM 核心配额中的容量是否足够。 此检查不能保证更新期间的容量;在会话主机更新之外创建其他资源可能会导致在进行与容量限制关联的更新期间出错。 将批大小设置为在订阅的剩余配额范围内。

  • 与当前会话主机的参数一致性:会话主机更新不支持更改会话主机的区域、订阅、资源组或域加入类型。 如果会话主机配置在这些字段中包含与主机池中会话主机不同的属性,则更新将无法启动。 应移除与配置不一致的会话主机。

更新期间失败

会话主机更新从初始批大小 1 开始,以验证提供的会话主机配置是否会产生正常的会话主机。 首次验证批期间发生的故障大多是因会话主机配置中的参数所致,通常无法通过重试更新来解决。 验证批之后发生的故障通常是间歇性的,可以通过重试更新来解决。

下面是更新期间可能发生的一些故障示例:

  • VM 创建失败:VM 创建可能会由于并非特定于 Azure 虚拟桌面的各种原因而失败,例如订阅容量耗尽或提供的映像存在问题。 应查看提供的错误消息以确定相应修正。 如果需要进一步的帮助,请向 Azure 支持开立支持案例。

  • 代理安装、域加入和会话主机运行状况错误或超时:可以通过查看有关解决 Azure 虚拟桌面部署和域加入失败的指导并确保映像未安装 PowerShell DSC 扩展来解决代理、域加入和其他会话主机运行状况错误。 如果映像中安装了扩展,请从映像中删除文件夹 C:\packages\plugin。 如果故障是间歇性的,且某些会话主机更新成功,而其他主机遇到错误(如 AgentRegistrationFailureGeneric),则重试更新通常可以解决问题。

  • 资源修改和访问错误:修改在更新中受影响的资源可能会导致更新期间出错。 一些可能导致的错误包括删除资源和资源组、更改权限、更改电源状态和排出模式更改。 此外,如果 Azure 资源被锁定和/或 Azure 策略限制了 Azure 虚拟桌面服务修改会话主机,则更新也会失败。 如果遇到相关错误,请查看 Azure 活动日志。 如果需要进一步的帮助,请向 Azure 支持开立支持案例。

传递给 New-AzWvdSessionHostConfiguration 的参数不兼容

可以将不兼容的参数传递给 New-AzWvdSessionHostConfiguration PowerShell cmdlet。 例如,如果将参数 DomainInfoJoinType 指定为 AzureActiveDirectory,但还指定了具有 Active Directory 域名的参数 ActiveDirectoryInfoDomainName,则会忽略域名而不返回错误。

后续步骤