Auto Scaling and Power Management of Single-Session Desktops
Capacity-based power management and automatic scaling were supported for multi-session shared-hosted desktop pools. This feature extends the existing power management functionality in HyWorks to both floating and personal single-session desktop pools.
Administrators can now manage VM power state and pool capacity based on the usage patterns and capacity planning, improving cloud resource utilization and cost efficiency. The document will provide detail information on capacity planning and management of single-session personal desktops.
Support and Compatibility
Supported Versions of HyWorks Modules
| Module | Minimum Supported Version |
|---|---|
| HyWorks Controller | v3.6.0.22199 |
| HyWorks Scheduler | v3.6.0.216 |
| HyWorks Action Processor | v3.6.0.171 |
| Accops VM Scale Booster | v3.6.0.153 |
| HyWorks DVM Tools | v3.6.0.1357 |
| RabbitMQ and Erlang OTP | Check compatible RabbitMQ and Erlang/OTP versions |
Supported Virtualization Platforms/ Connectors
Automatic power management and dynamic provisioning of the server team are supported with the following virtualization platforms:
-
Microsoft Azure
-
Nutanix AHV
-
VMware vCenter Server
-
Proxmox
-
AWS
Supporting Services: Scheduler/Action Processor Installation and Configuration
To enable dynamic on-demand provisioning of the server team and automatic power management, the following supporting services must be installed on the HyWorks Controller management servers (Primary and secondary controllers):
-
Scheduler*: Mandatory to have. Refer to the Scheduler Installation and Configurations in the Installation Section
-
Action Processor*: Mandatory to have. Refer to the Action Processor Installation and Configurations in Installation Section
-
VM Scale Booster: Optional but recommended. Refer to the VM Scale Booster Installation and Configurations in Installation Section
Note
- Currently, the Scheduler and the Action Processor must be installed on the same server as the HyWorks Controller Management Nodes. This is to manage these services through the HyWorks Controller.
HyWorks Controller Configurations
Enable the Controller to manage the Scheduler service
To manage the Scheduler service by the HyWorks Controller, refer to this section
Capacity Plan Management
Capacity Plan Attributes
The Capacity plan in the HyWorks Controller defines the overall capacity required at any given point in time on a specific day. While defining a Capacity plan, the following screens appear before the Administrator:
| Configuration Section | Configuration | Description | Possible/Default Value |
|---|---|---|---|
| Primary Details | Name | Name of the capacity plan | Mac length: 100 characters, allowed special characters: _ SPACE () {} # @ : - |
| Description | Description for the capacity plan | Max length: 500 characters | |
| Assignment type of target pools | Assignment lifespan (Personal or Floating) of target pools. | Only pools of selected life spans will be displayed. | |
| Pool | List of pools to be displayed of selected assignment life span type. | Select a pool from the list. | |
| Power Action on Over-Capacity | Select the power action applied to desktops exceeding the scheduled capacity. Suspend and Shutdown are supported for persistent desktop pools, but only Shutdown is supported for non-persistent desktop pools. | Shutdown/ Suspend Default: Shutdown |
|
| Uptime Before Refreshing Unused VMs (Hours) info | The Unused Powered-on VM will be refreshed once it has been powered on for more than the configured timer. The refresh operation is performed based on the desktop pool type. 0 means HyWorks will not refresh VMs. | Number in hours between 0 and 10000. Default: 0 (Do not refresh). |
|
| Active | Should this capacity plan be enabled or disabled. | Default: Enabled | |
| Advance Settings - Plan Execution Interval (minutes) | Select the interval in minutes for plan execution. | Time in minutes (10, 15, 20, 30, 60) Default: 15 |
|
| Schedules | + Add | To add a new schedule for the capacity plan. | |
| Added Scheduled Table | Display the list of schedules added in this capacity plan. | Columns: Schedule Name, Days of execution, Week of the month, Objective: Number of objectives | |
| Add Schedule | Schedule Name | Name for the schedule to be added to the capacity plan. | Mac length: 100 characters, allowed special characters: _ SPACE () {} # @ : - |
| Day Occurrence Type | Every Week: The schedule applies every week. Specified Week: Select specific week(s) of the month. | Default: Every week. Selecting specific occurrences options to choose weeks (1,2,3,4,5) come. | |
| Days | Days of the week to which this schedule will be applied. | Default: None selected. Options: Mon, Tue, Wed, Thu, Fri, Sat, Sun. |
Creating a Capacity Plan for Single-session Desktop Pool
To create a capacity plan for a single-session desktop pool, the following steps can be followed:
Prerequisite:
-
All services and the HyWorks controller are configured.
-
A desktop pool is created using Desktop Creation and Provision on demand, per the capacity plan. An example of the desktop pool creation is provided here.
Steps:
-
Go to Management Console > VDI > Capacity Plans > Personal.
-
Click + Add.
-
Add Capacity Plan wizard: Configuration Details are given above.
-
Primary Details:
-
All configurations: Name, Description, Power-on Action, Uptime before Refresh, etc., as required.
-
Assignment type and Pool: Select as per the pool prepared for management under the plan.
-
Advance Settings: By default, the plan execution is set to 15 minutes.
-
-
Schedules:
- Based on usage patterns and requirements, schedules can be added. An example is provided in the section Capacity Plan Use Case Example: Capacity Plan Example.
-
Click Save to save the changes and dismiss the dialog.
-
The created capacity plan will include the attributes configured in the plan.
-
Capacity Plan List View
All capacity plans for personal desktops will be listed in Management Console > VDI > Capacity Plans > Personal.
The following information will be displayed:
-
Plan Name
-
Pool Name
-
Capacity Plan Type: Reflecting the pool type configured.
-
Active Schedule: Currently scheduled on the desktop pool. Clicking the link to the current objective details will display the objective details, including the minimum provisioned desktops and the count of free desktops (powered on).
-
Provisioned VMs
-
Stopped VMs
-
Free VMs
-
Pool Capacity
-
Active: If the plan is active or not.
Edit Capacity Plan
-
Go to Management Console > VDI > Capacity Plans > Personal.
-
Select a capacity plan > click Edit.
-
Modify editable configurations:
Configuration Editable Impact Name Yes No impact. Description Yes No impact Assignment type of target pools No - Pool (Associated with this plan) Yes Very high impact.
Disassociated pool: Will become unmanaged and will not process any schedule-based automated power management or scaling.
On already available VMs: User assignment and power operations will continue to work.
Newly associated pool: It will begin managing the new pool, and automated provisioning and power management will start according to the active schedule.Power Action on Over-Capacity Yes Under the new plan, the modified power action will be executed. Uptime Before Refreshing Unused VMs (Hours) Yes VM refresh will start happening as per updated configurations. Advance Settings - Plan Execution Interval (minutes) Yes The plan execution interval will change from the next cycle. Schedules - Configurations/ Objectives Yes From the next execution cycle, applicable objectives will be applied, and power management and capacity scaling will be performed accordingly. -
Click Save to save the capacity plan.
-
Result: The updated plan will begin functioning as described above.
Copy Plan
An existing capacity plan can be copied to create another plan with the same configurations, but without associating the desktop pool from the source capacity plan. To copy a capacity plan:
-
The Go to Management Console > VDI > Capacity Plans > Personal.
-
Select a capacity plan > click Copy.
-
Add Capacity Plan wizard will be opened with the following pre-existing configurations:
-
Name: In the following format,
Copy of <Source Capacity Plan> (<YYYY-MM-DD>T<HH:MM:SS). Editable. -
Description: Copied from the source capacity plan.
-
Assignment type of target pools: Same as the source capacity plan. (Non-editable).
-
Pool: None (not copied from source capacity plan).
-
Power Action on Over-Capacity: Same as source capacity plan.
-
Uptime Before Refreshing Unused VMs (Hours): Same as source capacity plan.
-
Active: Same as source capacity plan.
-
Advance Settings: Same as source capacity plan.
-
Schedules: Same as source capacity plan.
-
-
Click Save to save the new plan
Delete Capacity Plan
-
Go to Management Console > VDI > Capacity Plans > Personal.
-
Select a capacity plan > click Delete.
-
Type the capacity plan name in the Confirm Action dialog, then click Delete.
-
The capacity plan will be deleted.
-
Impact: The desktop pool will no longer be managed by any capacity plan.
-
It will not process any schedule-based automated power management or scaling.
-
On already-deployed (available) VMs: User assignment and power operations will continue to work.
-
-
Delete Desktop Pool Associated with Capacity Plan
The delete operation is not possible for any single-session desktop pool associated with a capacity plan. Any attempt to delete such a pool will fail with the message:
This pool cannot be deleted because it is associated with a capacity plan.
To delete a single-session desktop pool associated with a capacity plan:
- First, delete the associated capacity plan, and then delete the desktop pool.
Capacity Plan Use Case Example
In this section of the document, step-by-step configuration steps will be provided, based on a high-level use case.
Use Case:
-
Assignment Life-span: Floating
-
Maximum Concurrent Connections: 100
Day-type Time Window Expected Users Weekdays 8:00 AM to 9:00 AM 20% (20 VMs) 9:00 AM to 6:00 PM 60% 6:00 PM to 7:00 PM 20% 7:00 PM to 8:00 AM 5% Weekends Throughout the day. 5%
Let us now proceed to understand the process for creating a desktop pool and to plan capacity for the use case above.
Preparing Capacity Plan Managed Desktop Pool
Important
The configurations here are for example purposes only and should be done as per the deployment use case.
-
Go to Management Console > VDI > Pools.
-
Click Add New Pool. In the Desktop Pool wizard:
-
General Settings: Configure the following settings as per requirement:
-
Name, Display Name, Description, as per the desktop pool usage.
-
Entitlement Type: User-based
-
Desktop Pool Type: Persistent Virtual Desktop, Management Mode: Self Managed, Provisioning: Dynamic. (Desktop pool type selected as persistent is, for example, this can be non-persistent or, as per production usage.)
-
Select Session Provider: Configured connector supporting capacity plan.
-
Assignment Life Span: Floating, Assign Desktop: On Login (This can be non-persistent or as per production usage. Kept as floating on-login as per example here.)
-
Connection Profiles, Remote Desktop Connection Port: As per requirements.
-
Active: Keep as checked, Maintenance: Keep disabled.
-
-
Deployment Settings:
-
Source VM, Source VM OS, Clone from Snapshot/Image, Desktop Name Prefix, Clone-type: As per requirement.
-
Desktop Creation: Important for a capacity plan-enabled desktop pool. Set as Provision on demand as per capacity plan.
-
Capacity: The maximum capacity of this desktop pool. As per the deployment use case. The capacity plan will provision or manage VMs up to this count. In this example, capacity can be kept as 100.
-
Power on Desktops post provisioning: Keep it checked.
-
Enable DVM Reset, Preserve Network on Recompose, and other deployment settings as required.
-
-
Customization: Hyprep/Sysprep as per requirement.
-
Users: Desktop pool users as required.
-
Classification Rules, Advanced/ Client Settings: As per requirement.
-
Review the summary, then click Finish to save the pool.
-
Result: A pool will be created, but it will not be provisioned until a capacity plan is created for this desktop pool.
Capacity Plan Example
To achieve the above use case with a desktop pool (capacity 100), a capacity plan with the following details can be added:
-
Create a capacity plan using the steps mentioned in this section, with the following schedules and objectives:
-
Schedules:
-
Name: Weekday
-
Days: Mon, Tue, Wed, Thu, Fri
-
Objectives:
Time Min Free Desktops Powered on Min Provisioned Desktops Explanation 7:15 AM
(30 mins for plan execution and provisioning)20 25 (keeping 5 in buffer) On Monday morning at 7:15, it will start the plan execution & deployment of 25 VMs will start, and will keep 20 powered-on 8:15 AM 60 65 8:15 AM, the plan execution and deployment of 65 VMs will be done, keeping 60 powered on 6:00 PM 20 20 Reduce the capacity and powered-on VMs to 20 if not in use. 7:00 PM 5 5 Reduce the capacity and powered-on VMs to 5 if not in use. 2. Name: Weekend -
Days: Sat, Sun
-
Objectives:
Time Min Free Desktops Powered on Min Provisioned Desktops Explanation 00:00 AM 5 5 Keep the capacity and powered-on VMs to 5 if not in use. Until Monday morning, the objective triggers are at 8:15 AM.
-
-
Recommended Configurations
VM Scale Booster
These configurations are required to enable faster updates to VM power, SHD Agent, DVM Agent, and Monitoring Statuses. These configurations are highly recommended for large-scale deployments, as polling too many servers can delay updating the status of the Session Host Servers.
Network Ports for VM Scale Booster
- Between Virtual Machines & RabbitMQ Servers: As per RabbitMQ Configurations. SSL: 5671, Non-SSL: 5672 (default).
Please refer to this document for detailed steps to configure the VM Scale Booster.