Introduction
Desktop pools are at the core of your Workspot deployment. A Workspot desktop is usually a virtual Windows desktop, typically hosted in the Cloud (Microsoft Azure, Google GCP, Amazon AWS, or Amazon Workspaces Core), but sometimes in a customer’s on-premises datacenter.
A pool of desktops is a group of virtual desktops built from the same template, with identical memory, disk, and CPU resources, and managed as a unit. Some organizations use a variety of desktop types, from small Windows virtual desktops to large Windows virtual workstations with powerful Nvidia or AMD GPUs.
Upon self-registration for Workspot access, your users are automatically assigned a desktop from an appropriate pool, typically determined by their Active Directory group membership. Different groups may receive GPU workstations, second powerful desktops, or minimal desktops. This is covered in the Assigning Pools to Users and Groups section.
The Administrator creates pools (see Creating a Desktop Pool, below) and can also delete pools, create the group policies that determine pool membership, assign desktops to individual users, reassign a desktop to another user, reboot desktops, and so on. See Managing Individual Desktops in a Pool, below.
Persistent, Non-Persistent, GPU, and Global Pools
There are two basic types of desktop pools: persistent and non-persistent. This refers to the license type used and the desktop’s behavior at the end of a login session. There are also GPU Pools and Global Desktop Pools. All these are described below.
Persistent Desktop Pools
A persistent desktop is equivalent to a dedicated personal computer. A persistent desktop pool consists of desktops using persistent desktop licenses (also called named licenses). When a user acquires a desktop in a persistent pool, the desktop and license are assigned to that user permanently (or, more precisely, unless the assignment is revoked or the user’s login account is deleted or suspended).
The user signs into the same desktop day after day, other users can’t sign into it, any windows left open when they left are still open when they return even days later (unless the desktop is shut down or restarted, or if they are signed out of their login session). Any customization they make to their desktop is retained.
Maintaining Persistent Desktops
Ongoing updates can be performed normally, using Microsoft Update, GPOs, and so on, as if the desktop were a physical desktop.
If you assign a new image (Workspot template) to a persistent desktop pool, new desktops will be imaged from it but existing desktops are unaffected by default, since reimaging is destructive. (You can choose to reimage existing desktops anyway.)
Deleting and recreating desktops is another way to ensure (destructively) that selected desktops use the latest template. This is harmless when done to desktops that aren’t assigned to a user. Deletion and recreation can be done in bulk on the “Manage Cloud Desktop Pool” page. Setting the “Auto Create on Delete Desktop” option beforehand on the “Edit Pool” page ensures new desktops will replace the deleted ones.
See Control: Applying Updated Templates to Cloud Desktop and Application Server Pools for more information.
Non-Persistent Desktop Pools
A non-persistent desktop pool consists of desktops using non-persistent licenses (also called concurrent licenses). The desktop and license are assigned to the user only for the duration of the current login session. When the user is signed out, their ownership of the desktop ceases and someone else can use it.
This temporary assignment means that user customization is lost between sessions.
Maintaining Non-Persistent Desktops
Non-persistent desktops are reimaged periodically, ranging between “after every user session” and “never,” with values in between. This is controlled on the Add/Edit Pool page, described later in this article.
Frequent reimaging means that any updates applied to running desktops are soon discarded. Windows Update is not recommended and the Workspot Agent does not attempt to auto-update when running on a non-persistent desktop.
Note: Because frequent reimaging makes automatic updates ineffective, you must update your non-persistent desktop images periodically, especially for critical OS and security updates and also to keep the Workspot Agent reasonably up to date.
GPU Desktop (GPU Workstation) Pools
A GPU desktop (also called a GPU workstation) is adesktop VM with a GPU. GPU workstation pools can be either persistent or non-persistent.
The presence or absence of a GPU is decided at template creation time. Otherwise, management is the same as with non-GPU desktops and pools.
GPU pools do not have an identical feature set to desktop pools, however, because Cloud/hypervisor vendors rarely offer identical features. For example, some power-management modes are often not supported. Otherwise, everything in this article applies to GPU pools.
Global Desktop Pools
A Global Desktop Pool is a pool of pools; that is, it consists of multiple pools at multiple sites that appear to the user to be a single pool.
Persistent Global Desktop Pools provide multiple synchronized desktops for each user. If the datacenter they are connected to goes offline, they user reconnects to a different copy of the same desktop that is up to date within the limits of the synchronization package, such as a few seconds, and continues as if nothing has happened.
Non-Persistent Global Desktop Pools do not fail over to a synchronized clone desktop, but to a fresh desktop in an alternate datacenter. They allow robust multi-datacenter scaling and simple management without the need for at least twice as many running desktops as users.
Non-global pools are managed as described in this article. See Workspot Global Desktops Overview and Non-Persistent Global Desktop Pools for more information about Global Desktop Pools.
Pool Naming and Numbering
You assign multiple names to a pool:
Hostname
This is called “Desktop Name” in the “Add/Edit Pool” page. This is the base hostname of the VM, which usually doubles as a component of the DNS name. This is followed by a sequence number, since a pool of ten desktops needs ten unique VM names. The name is limited to a total of fifteen characters, including the sequence number, and a restricted character set (alphanumeric characters plus a hyphen). GCP does not allow upper-case characters.
Sequence Number
Pools are currently limited to a maximum of 999 desktop VMs. Numbering starts with one, so valid sequence numbers are 1-999. The sequence number field can be four digits long if you choose. If so, the first digit is always zero. You can also specify a one- or two-digit sequence number if your pool is small enough.
When a new desktop VM is created, Control prefers to use the largest number in use plus one if it is available, wrapping around to one as required.
However, if you set the “Auto create on delete desktop option,” when you delete desktops, Control will create replacements with the same sequence numbers.
You can optionally specify a hyphen as a separator between the hostname and sequence number.
Desktop Pool Name
This is what the Pool as a whole is called in the Control UI. It is more free form than the hostname.
Pool Display Name
This name is displayed on the Workspot Client dashboard and in Client popup messages. It is more free form than the hostname.
Creating a Desktop Pool
Desktop pools can be created by Control users with full Administrator access.
Note: The “Create Your Desktop Pool” form changes significantly as you make your selections, especially the selections near the top for Cloud and Pool type. Because of the dynamic nature of the form, your pool may not match the examples below completely.
To Create a Desktop Pool
Step 1. Log into Workspot Control.
Step 2. Click “Resources > VDI Pools > Add Pool.” The “Create Your Virtual Desktops” page appears. Fill in the form as described below.
Note: Fields marked with an asterisk (*) are required.
Step 3. *Select Datacenter/Cloud. Specifies the location (datacenter or cloud) of the pool. Azure and GCP deployments usually specify a cloud declared on “Setup > Cloud,” while on-premises deployments specify a datacenter from “Setup > Datacenter.”
Step 4. *Select a Config. Not shown if a Cloud is specified above. Select the config as advised by Workspot.
Step 5. *Desktop Pool Type. Selects a pool of either persistent or non-persistent desktops. Persistent desktops are allocated permanently to a single user. Non-persistent desktops are reallocated between user sessions.
Step 6. *Select Template. Selects the desktop image template to use for the desktops.
Ignoring the search field, click the “Search” button to display the “Select a Template” popup.
In the “Select a Template” popup, click the “Search” button to display all templates, or type a string in the search box to search for a template with a name matching the search string.
Click the “Select” button for the desired template.
Step 7. *Select Region. Selects the region and network (virtual address space) used by the pool.
Click the “Browse” button to show all the defined network spaces. The spaces that are consistent with your template and datacenter have active “Select” buttons; others are grayed out.
Click the “Select” button of the desired region.
Step 8. *VM Instance Selection or VM Class (depending on Cloud). Virtual machines are available in discrete sizes in terms of virtual CPUs, memory, and disk size. VMs that use resources compatible with your template are shown here.
Note: Not all resources are considered when creating this list. For example, on Azure, you will be shown VM Instances that only have a C: drive even if your template requires a D: drive.
Click the “Browse” button to show the “Select VM Instance” popup. The parameters of your selected template are given first, then a list of compatible VMs.
Click the “Select” button for one of the VMs.
Note: If the name of one or more selections includes an OS, such as “Ubuntu 18.04 LTS,” choose one of these if it matches your template’s OS and avoid them otherwise.
Step 9. Tenancy. Some Clouds and plans require that you aggregate your virtual machines into dedicated physical servers. These go by different names and parameters in different Clouds.
Sole-Tenant Nodes (GCP). If your Cloud and plan require Sole-Tenant Nodes (STN) and you have a choice of more than one STN type or size, you will see a “Sole Tenant Node Type” pull-down menu. Select one of the options. See Google’s Sole Tenancy Overview.
Dedicated Instances/Dedicated Hosts (AWS EC2). If your Cloud and plan require that you select between AWS Dedicated Instance and Dedicated Hosts, do this here. Dedicated Hosts are more fully compatible with Microsoft BYOL licensing. See Amazon EC2 Dedicated Hosts.
Tenancy pull-down menu.
Step 10. *Desktop Pool Name. The name displayed by Control for this pool.
Only alphanumeric characters are allowed.
This name must be unique across your entire Workspot deployment.
Step 11. *Pool Display Name. This name will be displayed by the Workspot Client. This name can contain spaces and punctuation.
Step 12. Description. An optional text field for information about the pool.
Step 13. *Number of Desktops. A numeric field specifying how many desktops to create initially.
The number of desktops can be increased or decreased later.
If you specify more desktops than you have entitlements for, you will see an error when you click the “Create” button.
Step 14. *Desktop Name. The hostname of the desktops in the pool. Each desktop will have a hostname consisting of this string, a hyphen, and a 1–4-digit number. For example, mydesktop-123.
Use alphanumeric characters for this field.
GCP does not allow upper-case characters here.
The total length of the string must be 15 characters or less, including the hyphen and the number, or you will see an error message when you click the “Create” button.
The number field is specified in the pull-down “digits” menu as 1-4 digits.
Note that while a four-digit number field is allowed, it is never necessary, since the maximum number of desktops currently allowed is 999. (Thus, if you specify a four-digit number, it will always have a leading zero.)
If you specify a too-small number of digits for the number of desktops, you will see an error message when you click “Create.”
Step 16. Action When User is No Longer Part of the Pool. Shown only for persistent desktop pools. When a user is no longer entitled to a desktop in this pool, the desktop is either returned to the pool or suspended. (Default is “Suspend desktop.”)
In both cases, the former user can no longer sign into the desktop.
A suspended desktop is no longer allocated to anyone until reallocated by the Control Administrator. This makes it available for inspection by the Administrator before it is returned to the pool.
Step 17. Allow User to Reboot VM from Client. Shown only for persistent desktop pools. If selected, end-users can reboot their desktop from the Workspot Client. (Default is “no.”)
Step 18. Pause on First Failure. The provisioning process will halt if an error is detected. This prevents all desktops from failing with the same error if there is a problem. (Default is “yes.”)
Multiple desktops are provisioned in parallel, and the process does not truly pause until all these complete.
Once paused, the Administrator is given an option to resume the provisioning.
Step 19. Refresh Periodically (Non-persistent Pools only). On some Clouds and licenses, non-persistent pools will show the “Refresh Periodically” option, which controls how often desktops are deleted and reimaged. Options vary from “On Log Off,” which means that desktops are imaged after every user session, to “Never,” which means they are never reimaged, with intermediate options as well. Reimaging prevents desktops from accumulating malware or drifting into nonstandard configurations.
Step 20. Route Through Gateway. In this context, a “Gateway” is either a VPN or an RD Gateway known to Control. The options are “Always,” “External Only,” or “Never.” (Default is “Always.”)
“Always” means that either a VPN or an RD Gateway is used for all Workspot Client connections to the desktops in the pool. This option is recommended when the pool is in the Cloud.
“External Only” means that the VPN or RD Gateway are used only when the Client believes it is not connected to the organization’s network, as determined by the Location Detector mechanism. This option is typically used for on-premises deployments.
“Never” means that the Client will always attempt a direct connection to the desktop. This option is typically used for on-premises deployments.
Step 21. Gateway Type. This is one of “Cluster” (a Managed Gateway Cluster), “Standalone” (a legacy RD gateway), or “VPN.” New installations will typically use gateway clusters.
Step 22. Gateway. VPN option is not shown unless a VPN is declared in “Setup > VPN.” Selects whether a VPN or one or more RD Gateways are used to connect to the pool.
“VPN” is the default if a VPN is declared in “Settings > VPN.”
Managed Gateways are recommended for Azure and GCP pools.
Physical Managed Gateways are an option for on-premises deployments.
To use Managed Gateway or legacy Gateway, select at least one Gateway from the “Select Gateways” pull-down menu.
Selecting more than one gives greater scalability and redundancy. If more than one RD Gateway is selected, the Workspot Client will choose one from the list at random when connecting or reconnecting.
Choose the gateways in the same region as the pool. Distant gateways add unnecessary latency.
Step 23. *Pool Icon. Selects which icon to display on the Workspot Client for this pool. Choices are “Use default icon,” “Upload an icon,” and “Choose from list.”
Uploaded icons should be in .PNG format.
“Choose from list” displays a list of over 40 standard icons.
Step 24. *Login Type. This determines how users sign into desktops and apps (not how they sign into the Client). Choose between:
“Single Sign On using username and password.” The form will show a default domain that will be used as part of the user’s credentials.
“Single Sign On using domain\username and password.” The user provides the domain name in addition to the username and password.
“Single Sign On with prefilled (uneditable) domain\username.” The user is prevented from providing their domain and username; they can only sign into their own desktops/apps, not other people’s. This is currently available only for Active Directory desktop/app sign-ins.
Step 25. Login Domain. Not shown if you select “Single Sign On using do- main\username and password.” Specifies the default domain name for user sign-in.
Step 26. Policies. If desired, select the Protocol Policy, Backup Policy, and Time Limits Policy associated with this pool. (Note: The "Select" menu entry means "None"). Only the Time Limits Policy is mandatory.
Note: Unlike other policies, changes to Time Limits Policies do not take effect until the next time the Workspot Agent restarts on the desktop or server, which happens once every 24 hours and when the virtual machine is rebooted.
Step 27. Idle Shutdown. If available, allows you to shut down persistent desktop VMs instead of pausing or hibernating them. This is a less desirable way of achieving power savings. Disabled (“-- Select --”) by default.
Note: Changes to Idle Shutdown do not take effect until the next time the Workspot Agent restarts on the desktop or server, which happens once every 24 hours and when the virtual machine is rebooted.
Step 28. Enable Workspot Media Extension. Allows Clients to use the Workspot Media Extension.
Step 29. Allowed Clients. Only the Workspot Clients enabled here can connect to this pool.
Step 30. Create. Click the “Create” button to provision the pool.
If the “Create Your Virtual Desktops” fields are filled in acceptably, the “Manage Virtual Desktops” page will be displayed with a banner that says, “Pool Created Successfully.” Otherwise, an error message is displayed, and you will remain on the “Create Your Virtual Desktops” page.
Provisioning takes some time. Click the “Check Progress” link to monitor provisioning progress on an auto-updated page.
Step 31. When the desktops go from “Online” to “Ready,” they are available to users.
Note: If you are using a Cloud and a Workspot plan that involves the use of sole-tenant nodes, you will see a banner at the top of the page reminding you of this. You may also be asked to select a type/size of sole tenant node.
Desktop Provisioning Failure and Timeout
Sometimes the Cloud provider fails to provision one or more desktops. Control will return a “Failed” or “Error” status with the provider’s error message if there is one. Control will time out and consider the desktop provisioning to have failed if it hasn’t been created within thirty minutes.
Editing Pools
Editing an existing pool uses the “Edit Virtual Desktops” page, which is almost identical to the page used to create the pool. The difference is that a few fields cannot be edited:
Select Datacenter/Cloud,
Desktop Pool Type,
Select Template,
Desktop Pool Name,
Desktop Name.
Otherwise, you can alter the pool’s parameters as desired. For example, the number of desktops can be increased, and the Gateway selection can be changed.
To edit an existing pool
Step 1. Go to “Resources > VDI Pools > poolname > Action > Edit.” This will open the “Edit Virtual Desktops” page.
Step 2. Change the parameters as desired, then click the “Save” button.
Step 3. If you have added desktops, you can monitor the provisioning process using the “Check Progress” link.
Increasing and Decreasing the Number of Desktops
Increasing the number of desktops in a pool is done by editing the pool (above) and entering a larger number of desktops than before.
Decreasing the number of desktops is done differently because you must specify the desktops to delete. Go to “Resources > VDI Pools > poolname”, select the desktops to delete, and click the “Delete Desktops” button.
Viewing Pool Parameters
To see the parameters in use by a pool, use the same procedure as editing the pool, but click the “Cancel” button instead of “Save.”
Managing Individual Desktops in a Pool
Desktop Status
Clicking on the pool’s name will list all the desktops in the pool:
Click “Resources > VDI Pools > poolname” to show the “Manage Virtual Desktops Summary” tab, which lists all the desktops in the pool.
Each desktop will show its status. See Control: Desktop Status for the full list of status values. Interesting status values include:
Ready. The desktop has no user but is ready for one.
Disconnected. The desktop has an active user session but the user’s Workspot Client is currently disconnected.
Connected. The desktop has an active, connected user.
Error, Failed: The desktop cannot be run. At a minimum, it needs to be rebooted by the user or the Control Administrator.
Listing the Desktops
Clicking on the pool’s name will list all the desktops in the pool:
Click “Resources > VDI Pools > poolname” to show the “Manage Virtual Desktops Summary” tab, which lists all the desktops in the pool.
Click the “Detailed” tab for additional information.
Desktop Actions (Active Desktops)
The “Actions” menu is the same on both tabs. It offers the following options:
Reboot VM: Reboots the desktop.
Log Off: Ends the user’s desktop session. (Grayed out if no user is signed into the desktop.)
Send Message: Sends a message to the user. (Grayed out if no one is signed into the desktop.)
Remote Assist: Starts a Remote Assistance session on the desktop. (Grayed out if no user is signed into the desktop.)
Redeploy VM: Moves the desktop to a different network node. Used to resolve possible hardware or other Cloud-provider issues.
Desktop Actions (Suspended Desktops)
Suspended desktops display a status of “Suspended” on the pool’s “Summary” tab. Two actions are unique to suspended desktops: “Assign VM” and “Return to Pool.”
• “Assign VM” allows you to assign the desktop to a specific user and return it to the pool as an active, assigned desktop.
• “Return to Pool” returns the desktop to the pool as an unassigned desktop.
To assign a suspended desktop to a user
Step 1. Go to “Resources > VDI Pools > poolname > desktopname > Actions > Assign VM.”
Step 2. In the “Assign Desktop” popup, type part of the desired user’s name into the search box and click “Search.”
Step 3. Click the “Assign” button for the correct user.
To return a suspended desktop to the pool
Step 1. Go to “Resources > VDI Pools > poolname > desktopname > Actions > Return to Pool.” The “Confirm Return to Pool” popup appears.
Step 2. Click the “Yes, Return” button.
Assigning Pools to Users and Groups (Desktop Entitlements)
Individual Users
Users are assigned desktops in specific pools either user-by-user or in groups. When a user is entitled to have a desktop in a pool, this is called a desktop entitlement.
The desktop entitlement is not the same thing as a desktop assignment. The actual desktop will not be assigned to a user until they log into the Workspot Client and connect via the desktop icon.
For persistent desktops, when an entitlement is removed (unassigned), the desktop is either suspended or returned unassigned to the pool for reuse, depending on the pool settings. A suspended desktop will not be assigned until it is deleted or returned to the pool manually by the Administrator.
To assign a desktop entitlement to a user
Step 1. On the “Users > username > Desktop Assignment > Assign or Unassign Desktop Pool,” page, click the “+” button to assign a new pool to the user and fill in the blank with the name of a pool. Control uses auto- completion to help you find a valid pool.
Step 2. By clicking the “+” button multiple times, you can add entitlements for multiple pools.
Step 3. Click the “Save” button to create the entitlement.
Step 4.You will be returned to the “User Details” page and the new (longer) list of entitlements is displayed.
To revoke a desktop entitlement from a user
Step 1. On the “Users > username > Desktop Assignment > Assign or Unassign Desktop Pool,” page, click the “-“ icon for the desired pool.
Step 2. By clicking the “-“ button multiple times, you can remove entitlements for multiple pools.
Step 3. Click the “Save” button to remove the entitlement.
Step 4. You will be returned to the “User Details” page and the new (shorter) list of entitlements is displayed.
Step 5. If the entitlement is given twice (at the user level and at the group level) it will remain until it is unassigned in both places.
Groups
Group-based entitlements are similar to user-based entitlements.
To add or remove group entitlements
Step 1. Check group membership. Users can be members of more than one group, but only one group is used for a given user’s entitlements. This is displayed as “Selected Group Name” under “Users > Users > username.”
• If the wrong group is listed, rearrange the group priority order under “Users > Groups > Precedence Order.”
Step 2. Go to “Users > Groups > groupname” to display the “Group Info” page.
Step 3. Under “Desktop Pools,” add or remove entitlements.
Click the “+” button to add an entitlement, entering the pool name in the text field. Control uses auto-complete to ensure you enter a valid pool.
Click the “-“ to remove an existing entitlement.
You can add or remove multiple entitlements.
Step 4. Click “Save” to update the group’s entitlements.