Citrix Virtual Apps and Desktops

Autoscale™ 插件

  • Autoscale 插件是一种插件模型,您可以通过它直接对 VM 的电源管理采取操作。您可以偏离与 VM 电源管理相关的标准 Autoscale 设置,而是为不同的场景设置不同的配置。目前,您可以使用的插件包括:

  • Autoscale 假期插件
  • 智能 Autoscale 计划插件

Autoscale 假期插件

您可以使用 Autoscale 假期插件来处理假期的不同设置。例如,在工作日,您希望大多数 VM 处于开机状态。但是,默认情况下(没有插件),工作日计划在公共假期仍然适用。为了处理这种情况,该插件允许在指定的假期日期关闭 VM。

使用 Studio 创建自定义假期计划

使用 Studio 创建自定义计划,以便在特定日期(例如假期)关闭交付组中未使用的 VM,从而减少不必要的资源消耗。

注意:

  • 自定义计划在创建后一天生效。
    • 对于已标记的计算机,此功能仅适用于交付组中已标记的计算机。

要创建自定义计划:

  1. 在 Studio 中,转到 交付组。右键单击交付组,然后选择 管理 Autoscale。
      1. 在 常规 页面上,选择 启用 Autoscale。
      1. 在 计划 页面上,单击 创建计划。
      1. 输入计划的名称。
      1. 选择一个或多个日期,您希望在这些日期关闭交付组中的 VM。

    如果您想将此计划另存为模板以供其他交付组使用,请单击 另存为模板。

  2. 单击 完成 以创建自定义计划。

    您现在应该在 计划 页面上的 自定义 下看到已创建的自定义计划。

要编辑自定义计划:

  1. 单击要编辑的计划的 操作 下的铅笔图标。您可以进行以下编辑:

    • 禁用自定义计划:关闭 启用 切换按钮。
    • 更改或应用模板。
    • 更改计划的名称。
    • 更改计划的日期。
  2. 单击 完成 以应用更改。

您还可以删除自定义计划。

注意:

删除交付组也会删除其自定义计划。已保存的模板不会被删除。

使用 PowerShell 配置假期日期

将 Autoscale 假期插件与交付组关联,并配置假期日期,以便插件可以在配置的日期关闭 VM。为此,请运行以下命令:

  1. 运行 Get-BrokerAutoscalePlugin 以获取假期插件的 UID。

    (Get-BrokerAutoscalePlugin -Name Citrix.AutoscalePlugin.HolidaySchedule).Uid
    <!--NeedCopy-->
    
  • 记下 HolidaySchedule 插件的 UID 值。假设 HolidaySchedule 插件的 UID 为 1。

    1. 获取要与插件关联的交付组的 UID。例如:
     $dgUid = (Get-BrokerDesktopGroup 'My Group Name').Uid
     <!--NeedCopy-->
    
  1. 将 HolidaySchedule 插件与交付组 (-AutoscalePluginUid “<HolidaySchedule plugin UID>”) 关联,并指定所需的假期日期。例如:

    ```

  • New-BrokerAutoscaleGroupPlugin -Name “Company Holidays” -DesktopGroupUid $dgUid -AutoscalePluginUid 1 -Configuration ‘{“Holidays”:[“2024-11-28”,”2024-11-29”,”2024-12-25”]}’

    ```

    记下创建的 AutoscaleGroupPlugin 的 UID(插件与交付组之间的关联)。

  • 注意:

  • 给定交付组的关联名称必须是唯一的。例如,一个交付组只能有一个名为“公司假期”的关联,但一个或多个其他交付组也可能有名为“公司假期”的关联。

更改假期日期

您可以使用 Set-BrokerAutoscaleGroupPlugin PowerShell 命令并指定 AutoscaleGroupPlugin 的 UID 来更改指定的假期日期。例如,假设 AutoscaleGroupPlugin 的 UID 为 2。

-  Set-BrokerAutoscaleGroupPlugin 2 -Configuration '{"Holidays":["2024-11-28","2024-11-29"]}'
<!--NeedCopy-->

重要注意事项

使用 Autoscale 假期插件时,请考虑以下事项:

  • 当 Autoscale 假期插件处于活动状态时,所有 VDA 都将关闭,系统不会以降低的容量运行。任何新的启动请求都会被处理,但用户可能会因为 VDA 正在准备启动而遇到延迟。
  • 交付组必须指定时区。
  • 日期格式必须为“yyyy-mm-dd”。
  • 计划覆盖(覆盖标准 Autoscale 设置)会在前一天 22:00 提前一天生成。22:00 之后,无法添加、删除或更改第二天的任何计划覆盖。
  • 同一个 Autoscale 插件可以与多个交付组关联。为每个交付组运行 New-BrokerAutoscaleGroupPlugin,然后配置该组所需的假期。
  • 最新的 Set-BrokerAutoscalePlugin -Configuration 命令会用指定的新假期覆盖所有现有假期。

智能 Autoscale 计划插件

智能 Autoscale 是一种数据驱动的 Autoscale 功能,具有最少的管理设置,可让您配置交付组的性能目标。性能目标值范围为 1 到 99,该值指定了用户体验和成本之间的目标平衡:

  • 低值优先考虑成本节约。
    • 高值优先考虑用户体验。

性能目标与历史使用数据相结合,计算出一天中每个 30 分钟块的最佳缓冲区容量(要开机的 VM 数量)。因此,每天开始时会计算 48 个最佳缓冲区容量。

最佳缓冲区容量取代了高峰/非高峰缓冲区容量和池大小来管理可用计算机。

-  用于计算最佳缓冲区容量的历史使用数据包括:
  • 客户每分钟的登录速率(用户数)
    • 平均 VM 开机时间(分钟)
  • 平均 VM 密度(每 VM 用户数)。

先决条件

启用智能 Autoscale 的要求如下:

  • 交付组必须是共享交付组。
  • 交付组必须启用 Autoscale。
  • 在为桌面组配置智能 Autoscale 之前,交付组必须至少有 90 天的历史数据。您可以使用以下命令将 ConnectionLogLifetimeHours 从 48 小时增加到 90 天:

     Set-BrokerServiceConfigurationData Logging.ConnectionLogLifetimeHours -SettingValue 2160.
     <!--NeedCopy-->
    

重要注意事项

  • 交付组必须指定时区。
  • 计划覆盖会在前一天 22:00 提前一天生成。22:00 之后,无法添加、删除或更改第二天的任何计划覆盖。
  • 同一个 Autoscale 插件可以与多个交付组关联。为每个交付组运行 New-BrokerAutoscaleGroupPlugin,然后配置该组所需的性能目标。
  • 最新的 Set-BrokerAutoscalePlugin -Configuration 命令会用指定的新假期覆盖所有现有假期。

配置性能目标

将 IntelligentAutoscaleSchedules 插件与交付组关联并配置性能目标,以便性能目标与历史使用数据相结合,可以计算出一天中每个 30 分钟块的最佳缓冲区容量。为此,请运行以下命令:

  1. 运行 Get-BrokerAutoscalePlugin 以获取智能 Autoscale 插件的 UID。记下 IntelligentAutoscaleSchedules 插件的 UID 值。

    (Get-BrokerAutoscalePlugin -Name Citrix.AutoscalePlugin.IntelligentAutoscaleSchedules).Uid
    <!--NeedCopy-->
    

    假设 IntelligentAutoscaleSchedules 插件的 UID 为 2。

  2. 获取要与插件关联的交付组的 UID。例如:

    $dgUid = (Get-BrokerDesktopGroup 'My Group Name').Uid
    <!--NeedCopy-->
    
  3. 将 IntelligentAutoscaleSchedules 插件与交付组 (-AutoscalePluginUid “<IntelligentAutoscaleSchedules value>”) 关联,并指定性能目标值。

    New-BrokerAutoscaleGroupPlugin -DesktopGroupUid $dgUid -AutoscalePluginUid 2 -Configuration '{"PerformanceTarget":70}'
    <!--NeedCopy-->
    
  4. 记下所创建的 AutoscaleGroupPlugin 的 UID(即插件与交付组之间的关联)。

更新性能目标值

您可以使用 Set-BrokerAutoscaleGroupPlugin PowerShell 命令并指定 AutoscaleGroupPlugin 的 UID 来更新指定的性能目标值。例如,假设 AutoscaleGroupPlugin 的 UID 为 2。

Set-BrokerAutoscaleGroupPlugin 2 -Configuration '{"PerformanceTarget":70}'
<!--NeedCopy-->

配置 Autoscale 组插件自动批准

要允许计划覆盖(覆盖标准 Autoscale 设置),请在 BrokerAutoscaleGroupPlugin 中配置以下两个属性:

  • AutoApprove

    • 如果为 True:表示插件生成的任何计划覆盖将自动接受。
    • 如果为 False:仅当目标日期在 ApprovedUntil 属性中指定的日期或之前时,才接受该计划。

    如果 AutoApprove 为 False 并且 ApprovedUntil 日期未设置或已过时,则生成的任何计划覆盖都将被丢弃而不会被使用。

  • ApprovedUntil:

    • 如果 AutoApprove 为 False,并且您指定了 ApprovedUntil 日期,则插件生成的计划覆盖将自动接受为目标日期的计划。

例如,假设 AutoscaleGroupPlugin 的 UID 为 2。

  • 要为该桌面组启用自动批准:

     Set-BrokerAutoscaleGroupPlugin 2 -AutoApprove $true
     <!--NeedCopy-->
    
  • 要启用自动批准直到将来的某个日期:

     Set-BrokerAutoscaleGroupPlugin 2 -ApprovedUntil "2025-01-01"
     <!--NeedCopy-->
    
Autoscale™ 插件