使用 Azure 自动化和 Azure 逻辑应用为 Azure 虚拟桌面扩展会话主机

可以通过改变虚拟机 (VM) 规模来降低 Azure 虚拟桌面总部署成本。 这是指在非高峰使用时段关闭和取消分配会话主机 VM,并在高峰时段重新启用和重新分配。

本文介绍使用 Azure 自动化帐户和 Azure 逻辑应用构建的缩放工具,该工具可在 Azure 虚拟桌面环境中自动缩放会话主机 VM。 若要了解如何使用缩放工具,请参阅使用 Azure 自动化和 Azure 逻辑应用来设置会话主机的缩放

缩放工具的工作原理

缩放工具为想要优化其会话主机 VM 成本的客户提供了低成本的自动化选项。

可以使用缩放工具执行以下操作:

  • 根据高峰和非高峰营业时间,安排 VM 的启动和停止时间。
  • 基于每个 CPU 核心的会话数量横向扩展 VM。
  • 在非高峰时段横向缩减 VM 规模,仅让最小数量的会话主机 VM 保持运行。

缩放工具结合使用 Azure 自动化帐户、PowerShell runbook、Webhook 和逻辑应用来正常运行。 当该工具运行时,逻辑应用会调用 Webhook 来启动 runbook。 然后,runbook 会创建一个作业。

高峰时段和非高峰时段定义为:

  • 峰值:预期达到最大用户会话并发的时间。
  • 非高峰:预期达到最小用户会话并发的时间。

在高峰使用时段,该作业会检查每个主机池当前正在运行的会话主机的当前会话数和 VM 容量。 它使用此信息,并基于为 CreateOrUpdateAzLogicApp.ps1 文件定义的 SessionThresholdPerCPU 参数,来计算正在运行的会话主机 VM 是否能够支持现有会话。 如果会话主机 VM 无法支持现有会话,该作业会在主机池中启动其他会话主机 VM。

注意

SessionThresholdPerCPU 不会限制虚拟机上的会话数。 此参数仅确定需要在何时启动新 VM,以便对连接数实施负载平衡。 若要限制会话数,需要遵循说明,相应配置 MaxSessionLimit 参数

在非高峰使用时段,作业将根据 MinimumNumberOfRDSH 参数确定要关闭多少会话主机 VM。 如果将 LimitSecondsToForceLogOffUser 参数设置为非零正值,作业会将会话主机 VM 设置为排出模式,以防止新会话连接到主机。 然后,该作业会通知当前所有已登录的用户保存其工作,等待配置的那段时间过后再强制用户注销。当会话主机 VM 上的所有用户会话均已注销后,该作业会关闭 VM。 VM 关闭后,作业将重置其会话主机排出模式。

注意

如果手动将会话主机 VM 设置为排出模式,则作业将不会管理会话主机 VM。 如果会话主机 VM 正在运行并且设置为排出模式,则将被视为不可用,这将使作业启动其他 VM 来处理负载。 建议在将任何 Azure VM 手动设置为排出模式之前,对其进行标记。 之后在创建 Azure 逻辑应用计划程序时,可以使用 MaintenanceTagName 参数来命名此标记。 标记将帮助区分这些 VM 和缩放工具管理的 VM。 设置维护标记还会防止缩放工具更改 VM,直到删除该标记。

如果将 LimitSecondsToForceLogOffUser 参数设置为零,作业将允许指定的组策略中的会话配置设置处理用户会话的注销。 若要查看这些组策略,请转到“计算机配置”>“策略”>“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“会话时间限制”。 如果某个会话主机 VM 上存在任何活动会话,该作业会使该会话主机 VM 保持运行。 如果没有活动会话,该作业将关闭会话主机 VM。

在任何时候,作业还会考虑主机池的 MaxSessionLimit,以确定当前会话数是否超过最大容量的 90%。 如果超过,该作业将启动其他会话主机 VM。

作业基于所设置的重复周期间隔定期运行。 可以根据 Azure 虚拟桌面环境的大小来更改此间隔,但请记住,启动和关闭 VM 可能需要一些时间,所以应将延迟考虑在内。 建议将重复周期间隔设置为每 15 分钟一次。

然而,该工具还存在以下限制:

  • 此解决方案仅适用于共用的多会话会话主机 VM。
  • 此解决方案可管理任何区域中的 VM,但只能在 Azure 自动化帐户和 Azure 逻辑应用所在的同一订阅中使用。
  • Runbook 中的作业的最大运行时间为 3 小时。 如果启动或停止主机池中的 VM 所用的时间超过此时间,则作业将失败。 有关详细信息,请参阅 Azure 资源
  • 至少需要打开一个 VM 或会话主机,缩放算法才能正常工作。
  • 缩放工具不支持基于 CPU 或内存进行缩放。
  • 缩放仅适用于主机池中的现有主机。 缩放工具不支持缩放新的会话主机。

注意

缩放工具控制其当前正在缩放的主机池的负载均衡模式。 该工具在高峰和非高峰时段均使用广度优先负载均衡模式。

后续步骤