Skip to content

Master Pool

Master pool is a pool of pools to ensure higher scalability and distributed management. A master pool feature has been integrated into HyWorks for larger deployments.

When to use the Master Pool

Though the feature offers improved management efficiency and scalability, the following deployment scenarios are best suited for utilizing Master Pools:

  • Primarily intended for floating (on-login) type single-session desktop delivery.

  • Environments where there is no significant mix of personal, floating (on-connect), or shared hosted desktop deployments.

Understanding Enhancements with the Master Pool for Scaling

Pre-calculated DVMs

Compared to the previous mechanism, where the HyWorks Controller checked the VM's status (power status, IP address, agent status), which was not scalable, a new pre-calculation mechanism using the master pool is introduced.

The pre-calculated DVMs table maintains real-time VM information:

  • Status: Reflects readiness based on SysPrep, Disk Encryption, Snapshot, and deployment status.

    • Status calculation: Status = 1: If SysPrepStatus, DiskEncryptionStatus, and SnapshotStatus are completed or not required, and the VM is deployed. Status = 0: Otherwise.
  • Priority: Indicates VM suitability for assignment.

    • Priority 1(FullyFunctional): Powered on + IP assigned + Responding agent.

    • Priority 2(PartiallyReady): Powered on + IP assigned.

    • Priority 3(PoweredOnly): Only powered on.

    • Priority4(NotReady): Not Powered ON

    • Priority 100: Maintenance mode (default).

  • Assignment Status: Reflects whether the VM is currently assigned.

    • 1 if the VM is assigned; 0 otherwise.

How the Pre-Calculated DVMs Table is Updated

  • On every addition or deletion of DVMs from a desktop pool.

  • For every change of DVMs Sysprep status, Disk Encryption status, Snapshot status, VM status, Connection status, and Agent status.

  • On every assignment of a DVM from the desktop pool.

Benefits

  • Scalability: Pre-calculated DVMs enhance assignment efficiency. An example could be:

    • 1000 VMs per Pool

    • 20 Pools per master Pool

    • Total 20,000 VMs Deployment per site

  • Flexibility: Unified management of pools across providers.

  • Optimized VM Assignment: Advanced algorithms ensure efficient resource utilization.

Support & Compatibility

HyWorks Controller Version

  • Supported Versions: v3.6 or later.

Supported Features/ Deployments

  • Deployment Type: Active-active multi-node with SQL managed database high-availability (Recommended)

Note

The Pre-calculated DVMs table does not sync with the HyWorks Controller's high-availability database. For optimal performance, use an active-active multi-node setup with SQL-managed high availability.

  • Desktop Pool Type:
  • Floating On-Login Desktops (Only)

    • Non-provisioned or Provisioned Desktop Pools.
  • Desktop pools from different providers.

Note

  • HyWorks only supports Floating On and login desktops. Other desktop pools, such as On-connect, shared-hosted, and virtual applications, are not supported.

  • Existing desktop pools cannot be linked to the Master Pool. Master Pool association is only available during desktop pool creation.

Master Pool Management and Deployment

A master pool-based deployment can be done using the following two high-level steps (these steps will be described in detail in a later section of the document):

  1. Correct VM Selection Strategy

  2. Create a master pool.

  3. Create a desktop pool and associate it with the master pool.

VM Selection Strategy

To deliver DVMs from HyWorks using Master Pool, the VM Selection Strategy must be configured globally in HyWorks Controller Advanced Settings.

  1. Go to HyWorks Controller Management Console > Settings > General > Advanced Settings

  2. Locate the setting VM Selection Strategy.

    1. Set it to 1 to use the optimized, pre-calculated DVMs strategy to assign DVMs to users on logon.

Create Master Pool

Follow the steps below to create a master pool:

  1. Go to HyWorks Controller Management Console > VDI > Master Pool.

  2. Click Add.

  3. In the Add Master Pool wizard:

    1. General: The Following configurations are to be done:
    2. Name: Name of the master pool. Character Limit: 256 characters. Supported special characters: _ SPACE () {} # @ : -.

    3. Description: Description for the master pool.

    4. Display Name: The default is the same as the master pool name. It can be changed to have a different value. Character Limit: 256 characters. Supported special characters: _ SPACE () {} # @ : -.

    5. Desktop Display Name: This determines the desktop name displayed to the end user. Available options: Master Pool Display Name, Master Pool Name, Virtual Desktop Name, Desktop Pool Display Name, Desktop Pool Name.

    6. Desktop Pool Type: Single session. Multi-session is not supported.

    7. Assignment Type: Floating (On Login). No other assignment mechanisms are supported.

    8. Load Balance Type: Least Used Pool: Assigns VMs from the pool with the least number of assigned VMs. No other load-balancing mechanisms are supported.

    9. Active: Default enabled. Determines if the master pool under creation is active or not. Desktops are not delivered to entitled users from the inactive master pool.

    10. Pool: Displays the list of the associated desktop pools.

    11. Admin cannot add desktop pools from this screen; only view.

    12. During master pool creation, no entries will be shown, and you can move to the next tab.

    13. Users: Click the add button to open the Available Clients window.

    14. Search and add users, groups, or organization units (OUs) to provide access to desktops from the master pool.
  4. Click on the Create Master Pool button to save the master pool.

  5. The newly created master pool should now be listed and will also appear when creating a new desktop pool.

Create Desktop Pool Associated with Master Pool

Creating a desktop pool associated with a master pool will remain the same as mentioned in these reference documents, with the following configurations:

  1. Desktop Pool Type: Persistent Virtual Desktop, Non-persistent Virtual Desktop, Physical Desktop.

  2. Management Mode as Master Pool Managed.

    Note

    When Management Mode is set to Master Pool Managed, the Assignment Life Span option is hidden because Master Pool only supports Floating On-login assignments.

  3. Provisioning: Dynamic (To deploy new desktops using gold master) or None (for pre-created desktops from configured connector)

  4. Complete desktop pool creation, including any required options.

  5. The newly created desktop pool should now appear in the master pool desktop (Edit wizard) pools list.

  6. Users on logon will be able to connect to desktops from the member desktop pools of the master pool.

Important

Management mode can only be configured during pool creation.

Updating a Master Pool

To update a master pool:

  1. Select a master pool from the list, then click Edit.

  2. In the Edit Master Pool wizard, the following configurations can be changed:

    1. General: Name, Display Name, Description, Desktop Display Name of the Master Pool.

    2. Pools: No changes can be made in associated pools. It’s a view-only list.

    3. Users: Add new users/ groups/ OUs or remove already added users/ groups/ OUs from this section.

  3. Click on Save to save the changes.

  4. Users will be able to retrieve the updated configurations at the next logon.

Deleting a Master Pool

To delete a master pool:

  1. Select a master pool from the list, then click Delete.

  2. On the Confirm Action prompt, type the master pool name and click on Delete to confirm the delete operation.

  3. The master pool will be deleted, and the administrator will be redirected to the Master Pool page.

Important

If a master pool is associated with any desktop pool, the delete operation will fail. The administrator must first delete the managed pools before deleting the master pool.

Switching a Master Pool

An administrator can move an already master pool managed desktop pool to another master pool by following the steps:

  1. Select a Master pool managed desktop pool from the list.

  2. Click Edit.

  3. Select the new master pool to move to.

  4. Go to the Summary section and click on Finish to save changes.

  5. The new master pool will now manage this desktop pool.

Advance Settings

For Highly Scalable Only Master Pool-Based Delivery

If HyWorks is deployed to deliver single-session desktops using master pools only, the following advanced configurations can be used to have optimized performance:

  • Configuration: Management Console > Settings > General > Advanced Settings> Application Feature Flag

  • Only Master Pool Delivery:

    • Value: {"IsLicenseCheckEnabled":"true","IsApplyAuthenticationDisabledPoliciesInLoginEnabled":"true","IsThirdPartyDesktopFetchInLoginEnabled":"true","IsUpdateLastClientLoginDetails":"true","IsUpdateUserAttributesOnLogin":"true","IsClassificationRulesFeatureEnabled":"true","IsReservationDVMAssignmentFetchEnabled":"false","IsSharedDesktopEntitlementFetchEnabled":"false","IsDVMAssignmentFetchEnabled":"false","SkipReadUncommitedTransactionForLogin":"true","SkipReadUncommitedTransactionForLogout":"true","SkipReadUncommitedTransactionForConnectDesktop":"true","SkipReadUncommitedTransactionForKeepAlive":"true","SkipReadUncommitedTransactionForGetDesktopStatus":"true","SkipReadUncommitedTransactionForHypervisorPoll":"true","SkipReadUncommitedTransactionForRefreshDVMsAgent":"true","IsUpdateRDPConnectionStatusOnConnect":"true","IsSessionUpdateOldBehaviour":"true","IsApplicationAssignmentEnabled":"false","BatchCountToUpdateDvm":0,"IsMasterPoolAssignmentEnabled":"true","IsUpdateLastSeenInKeepAlive":"true","IsAppAttachSupportToPersonalDesktop":"true","IsDynamicScalingForPersonalDesktopCapacityPlanEnabled":"false"}
  • For Master and Independent Pools (mixed):

    • Value: {"IsLicenseCheckEnabled":"true","IsApplyAuthenticationDisabledPoliciesInLoginEnabled":"true","IsThirdPartyDesktopFetchInLoginEnabled":"true","IsUpdateLastClientLoginDetails":"true","IsUpdateUserAttributesOnLogin":"true","IsClassificationRulesFeatureEnabled":"true","IsReservationDVMAssignmentFetchEnabled":"false","IsSharedDesktopEntitlementFetchEnabled":"false","IsDVMAssignmentFetchEnabled":"true","SkipReadUncommitedTransactionForLogin":"true","SkipReadUncommitedTransactionForLogout":"true","SkipReadUncommitedTransactionForConnectDesktop":"true","SkipReadUncommitedTransactionForKeepAlive":"true","SkipReadUncommitedTransactionForGetDesktopStatus":"true","SkipReadUncommitedTransactionForHypervisorPoll":"true","SkipReadUncommitedTransactionForRefreshDVMsAgent":"true","IsUpdateRDPConnectionStatusOnConnect":"true","IsSessionUpdateOldBehaviour":"true","IsApplicationAssignmentEnabled":"false","BatchCountToUpdateDvm":0,"IsMasterPoolAssignmentEnabled":"true","IsUpdateLastSeenInKeepAlive":"true","IsAppAttachSupportToPersonalDesktop":"true","IsDynamicScalingForPersonalDesktopCapacityPlanEnabled":"false"}
  • For Master Pools and all types of deliveries:

    • Value: {"IsLicenseCheckEnabled":"true","IsApplyAuthenticationDisabledPoliciesInLoginEnabled":"true","IsThirdPartyDesktopFetchInLoginEnabled":"true","IsUpdateLastClientLoginDetails":"true","IsUpdateUserAttributesOnLogin":"true","IsClassificationRulesFeatureEnabled":"true","IsReservationDVMAssignmentFetchEnabled":"true","IsSharedDesktopEntitlementFetchEnabled":"true","IsDVMAssignmentFetchEnabled":"true","SkipReadUncommitedTransactionForLogin":"true","SkipReadUncommitedTransactionForLogout":"true","SkipReadUncommitedTransactionForConnectDesktop":"true","SkipReadUncommitedTransactionForKeepAlive":"true","SkipReadUncommitedTransactionForGetDesktopStatus":"true","SkipReadUncommitedTransactionForHypervisorPoll":"true","SkipReadUncommitedTransactionForRefreshDVMsAgent":"true","IsUpdateRDPConnectionStatusOnConnect":"true","IsSessionUpdateOldBehaviour":"true","IsApplicationAssignmentEnabled":"true","BatchCountToUpdateDvm":0,"IsMasterPoolAssignmentEnabled":"true","IsUpdateLastSeenInKeepAlive":"true","IsAppAttachSupportToPersonalDesktop":"true","IsDynamicScalingForPersonalDesktopCapacityPlanEnabled":"true"}

Important

With the above configurations, other delivery aspects are impacted; therefore, this should not be used in an environment with mixed delivery aspects.