Non-Persistent Global Desktop Pools

Workspot’s Global Desktop Pools use ordinary desktop pools in a combination of different Clouds and different zones and regions in the same Cloud. These appear to the end-user  as if they were a single pool, providing automatic, transparent failover if one of the zones becomes unavailable.

There are two kinds of Global Desktop Pools:

  1. Non-Persistent Global Desktop Pools, covered in this article, which use an active/standby approach to provide resilience in the face of datacenter outages. When a user reconnects after such a failure, they get a fresh desktop in a different datacenter and start a new session.

  2. Persistent Global Desktop Pools, which preserve the user’s desktop session in real time. If a datacenter fails while the user is working, they reconnect to a continually updated copy of their desktop in a different datacenter and continue from where they left off. 

Limitations

Current limitations include:

  • Non-persistent Global Desktops are a selective feature: contact Workspot to have it enabled.

  • See Workspot Compatibility Matrices to see which Clouds currently support Non-Persistent Global Desktops.

  • Only the “Pool Precedence” load-balancing policy is supported.

  • Client support: At the time of this writing, all Clients except the Workspot Android Client support Non-persistent Global Desktops. Android support is scheduled for early May, 2024.

Terminology

The terms “Global Desktop” and “Global Desktop Pool” are used ambiguously in the Workspot Control UI, where the same term can mean any of five different things. In this document, we will use the terms shown in parentheses below:

  1. The desktop VM a user is currently using (the user’s currently assigned VM or their Global Desktop).

  2. The array of non-persistent desktop pools in different zones, regions, or Clouds that may provide a given currently assigned VM to a single user as their redundant persistent Global Desktop (the user’s Global Desktop array).

  3. Any single desktop VM that participates in the Global Desktop Pool (a Global Desktop VM).

  4. An array of pools whose VMs are used as Global Desktops (a Pool of Pools).

  5. Global Desktops in general (Global Desktops).

How Non-Persistent Global Desktops Work

A Non-persistent Global Desktop Pool is arranged as Pool of Pools on the “Resource > Global Desktops > Add Global Desktop” page. A Pool of Pool is an array of one or more ordinary non-persistent desktop pools. Typically, each pool is in a different datacenter, such as in two different zones or two different Cloud providers.

Note: The Control UI calls Pool of Pools “Global Desktop Pools” and the underlying ordinary pools “Global Desktops.”

What the Client User Sees

To the end-user, a Global Desktop behaves like any other Workspot non-persistent desktop, though by default it uses a different icon (a desktop with a globe) in the Workspot Client.

The user launches the Global Desktop by clicking on its icon in the Workspot Client. Workspot Control assigns a non-persistent desktop VM to the user from one of the associated pools, based on the Global Desktop Pool’s Load Balancing Method. (If a desktop is already assigned to the user, they are connected to this desktop instead.)

When the user’s remote session times out, they are signed out of the desktop and the VM is returned to its pool. To the end-user, this is indistinguishable from using an ordinary non-persistent desktop pool.

(Note that disconnecting is not the same as signing out. The end-user can disconnect and reconnect many times in the same session.)

If the user loses their session due to a server or datacenter failure, they are assigned a fresh desktop VM in one of the other pools when they reconnect.

Note: Sessions are different from connections. A session starts when the user signs into Windows (or Linux) on the remote desktop or app and ends when the user signs out from Windows or Linux, or is signed out automatically. Once signed in, they user may disconnect and reconnect at will; this has no effect on the remote desktop/app. When the user reconnects, they get the same session as before if it hasn’t timed out or failed in the meantime.

Pool Size

The Global Desktop Pool has a fixed size, the Global Desktop Capacity, that is distributed dynamically between it’s the individual pools that underly it. The original size of these pools is ignored.

This Global Desktop Capacity governs the maximum number of non-persistent desktop VMs that can be in use at the same time. The actual number of available desktops determined by the Warm-up Policy, as discussed in the next section.

For precedence-based load-balancing, pool size works as follows:

  1. Control attempts to allocate the desired number of desktops in the highest-precedence pool (the one at the top of the list of pools).

  2. If the Cloud provider runs out of available VMs in the high-precedence pool, Control will create the remainder in the second-highest-priority pool, and so on with the third-highest priority pool.

  3. Similarly, if the high-priority pool goes offline, replacement desktops are created in the second-highest-priority pool, and so on.

Example. Suppose you have two pools defined for your Global Desktop Pool, Pool1 and Pool2, your Global Desktop Capacity is set to 100, and your Warmup Policy calls for 100 desktops to be running during the current time slot.

  • Control will attempt to create all 100 desktops in Pool1. If the Cloud Provider successfully creates, say, 57 desktop VMs in Pool1 and then refuses to create any more, Control will create the remaining 43 in Pool2.

  • If Pool1 fails, Control will create the now-missing 57 desktops in Pool2.

  • As users sign out, releasing their desktops, replacements will be created in Pool1 if possible.

  • When the Warmup Policy calls for fewer desktops, desktops that are not in use are deallocated from Pool2 first, then Pool1. Desktops with an active session (that is, a signed-in user, whether currently connected or disconnected) are left alone.

  • If Pool1 goes offline, its users are disconnected, of course. Because their old sessions are unavailable, if they attempt to reconnect, they will be assigned a desktop from Pool2.

Creating Non-Persistent Global Desktop Pools in Control

Global Desktop Pools are managed in Workspot Control under “Resources > Global Pools”:

  • Existing Global Pools are listed on the page. This includes Non-Persistent Global Desktop Pools, Persistent Global Desktop Pools, and Global App Pools.

  • Clicking on an existing Pool name in the first column takes you to the “Edit Global Desktop” page.

  • Clicking the “Add Global Pool” button at the top of the page takes you to the “Add Global Pool” page.

To Create a Non-Persistent Global Desktop Pool

Fill in the “Add Global Desktop” page (“Resources > Global Pools > Add Global Pool” in Control) as follows:

  1. Note: It’s simplest to define a Warmup Policy first, but you don’t have to.

  2. Assign a name to the pool.

  3. Choose “Nonpersistent” for the Pool Type.

  4. Choose an alternate icon for the Workspot Client, if desired. Icons should be .PNG, .JPG, or .GIF files.

  5. Choose the Load-Balancing Method. (At the time of this writing, only “Default Precedence Policy” is supported.)

  6. Select a Warm-Up Policy, if you have defined one. If not, you can define it in another Control tab or define it later.

  7. Set the Pool Capacity if you can. This field isn’t editable until you define and apply a Warm-Up Policy. You can come back and add these things later.

  8. Assign ordinary non-persistent desktop pools to the Global Pool. The example above shows just one pool, which is good for initial test. At least two pools are required for the Global Pool to behave differently from a non-Global pool.

  9. Assign one or more user Groups to the pool. These are AD or Entra ID (Azure AD) groups. When you click on the Group field, the available Groups will be listed. Members of these groups are entitled to desktops in the Global Pool, but of course no desktop is assigned until the user launches it from the Workspot Client. The desktop assignment is revoked when the end-user is automatically or manually signed out.

  10. Click Add Global Pool. This Creates the Global Pool.

  11. Test. Sign into the Workspot Client as user who is a member of a Group listed on the “Add Global Pool” page. You should see a Global Desktop. Launch it.

Editing a Global Desktop Pool

On the “Resources > Global Pools” page, click the name of the pool. You will see an Edit page that is almost the same as the “Add Global Pool” page.

Creating a Warmup Policy

See Power Management: Warmup Policies. Once you have created a Global Pool Warmup Policy, you can apply it to your Global Pool and set the Pool Capacity on the Add/Edit Global Pool pages.

Related Documents