自动缩放™ 插件
Autoscale 插件是一种插件模型,您可以在其中直接操作虚拟机的电源管理。您可以偏离与虚拟机电源管理相关的标准 Autoscale 设置,而是针对不同场景拥有不同的设置。当前可用的插件有:
自动缩放节假日插件
您可以使用 Autoscale 节假日插件来处理节假日的不同设置。例如,在工作日,您希望大多数虚拟机处于开机状态。但是,默认情况下(没有插件),工作日计划仍应用于公共节假日。为了处理这种情况,该插件允许在指定的节假日日期关闭虚拟机。
使用 Studio 创建自定义节假日计划
使用 Studio 创建自定义计划,以便在特定日期(例如节假日)关闭交付组中未使用的虚拟机,从而减少不必要的资源消耗。
注意:
- 自定义计划在创建后一天生效。
- 对于已标记的计算机,此功能仅适用于交付组中已标记的计算机。
要创建自定义计划:
- 在 Studio 中,转到交付组。右键单击交付组并选择管理 Autoscale。
- 在常规页面上,选择启用 Autoscale。
- 在计划页面上,单击创建计划。
- 输入计划的名称。
-
选择一个或多个日期,您希望在此日期关闭交付组中的虚拟机。
如果要将此计划另存为模板以供其他交付组使用,请单击“另存为模板”。
-
单击“完成”以创建自定义计划。
您现在应该在“计划”页面上的“自定义”下看到已创建的自定义计划。
要编辑自定义计划:
-
单击要编辑的计划的“操作”下的铅笔图标。您可以进行以下编辑:
- 禁用自定义计划:关闭“启用”切换按钮。
- 更改或应用模板。
- 更改计划的名称。
- 修改计划中的日期。
-
单击“完成”以应用更改。
您还可以删除自定义计划。
注意:
删除交付组也会删除其自定义计划。已保存的模板不会被删除。
使用 PowerShell 配置节假日日期
将 Autoscale 节假日插件与交付组关联,并配置节假日日期,以便插件可以在配置的日期允许虚拟机关机。为此,请运行以下命令:
-
运行
Get-BrokerAutoscalePlugin以获取节假日插件的 UID。(Get-BrokerAutoscalePlugin -Name Citrix.AutoscalePlugin.HolidaySchedule).Uid <!--NeedCopy-->记下
HolidaySchedule插件的 UID 值。假设HolidaySchedule插件的 UID 为 1。 -
获取您要将插件与之关联的交付组的 UID。例如:
$dgUid = (Get-BrokerDesktopGroup 'My Group Name').Uid <!--NeedCopy--> -
将
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"]}' <!--NeedCopy-->记下创建的
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 用户数)。
先决条件
以下是启用智能自动缩放所需满足的要求:
- 该交付组必须是一个共享交付组。
- 交付组必须启用自动缩放。
-
在为桌面组配置智能自动缩放之前,交付组必须至少有 90 天的历史数据。您可以使用以下命令将
ConnectionLogLifetimeHours从 48 小时增加到 90 天:Set-BrokerServiceConfigurationData Logging.ConnectionLogLifetimeHours -SettingValue 2160. <!--NeedCopy-->
重要注意事项
- 该交付组必须指定一个时区。
- 计划覆盖项会在前一天 22:00 提前一天生成。22:00 之后,无法添加、删除或更改下一天的任何计划覆盖项。
- 同一个自动缩放插件可以与多个交付组关联。为每个交付组运行
New-BrokerAutoscaleGroupPlugin,然后配置该组所需的性能目标。 - 最新的
Set-BrokerAutoscalePlugin -Configuration命令将使用指定的新假期覆盖所有现有假期。
配置性能目标设置
将 IntelligentAutoscaleSchedules 插件与交付组关联并配置性能目标,以便性能目标与历史使用数据相结合,可以计算一天中每个 30 分钟块的最佳缓冲区容量。为此,请运行以下命令:
-
运行
Get-BrokerAutoscalePlugin 以获取智能自动缩放插件的 UID。记下IntelligentAutoscaleSchedules插件的 UID 值。(Get-BrokerAutoscalePlugin -Name Citrix.AutoscalePlugin.IntelligentAutoscaleSchedules).Uid <!--NeedCopy-->假设
IntelligentAutoscaleSchedules插件的 UID 为 2。 -
获取您希望与插件关联的交付组的 UID。例如:
$dgUid = (Get-BrokerDesktopGroup 'My Group Name').Uid <!--NeedCopy--> -
将
IntelligentAutoscaleSchedules插件与交付组 (-AutoscalePluginUid “<IntelligentAutoscaleSchedules value>”) 关联并指定性能目标值。New-BrokerAutoscaleGroupPlugin -DesktopGroupUid $dgUid -AutoscalePluginUid 2 -Configuration '{"PerformanceTarget":70}' <!--NeedCopy--> -
记下所创建的
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-->