Application virtualization, IoT and Cloud Computing, Blog of Sacha Thomet

Machine Catalog with overflow

The idea for the concept behind this blog post was born during a lunch break in summer 2018 when in Switzerland the temperature was pretty high and my colleague Stefan Moser and I had the idea to go swimming in the Aare river instead have a proper lunch. This is a good example of how leaving the Office can facilitate creativity! During our walk upstream, Stefan explained to me that he thinks we need to give vGPU also to normal Office Worker users as long we have enough capacity.

Beginning of 2018 we equipped our virtual desktop infrastructure with Nvidia Tesla M10 GPUs after we’ve done some tests and figured out that only in this way we can get the same high user experience like with a powerful physical laptop computer. We purchased 4 new VMware Hosts with each 2 Tesla M10 GPUs, this is good enough to equip 256 VDIs with an M10-B Profile, which is recommended with Windows 10 and 2 screens.

This means our challenge was having 250 pooled non-persistent VDIs with only 100 vGPUs, that’s the amount of vGPUs we don’t need for the dedicated VDIs with special GPU needs. The idea was also to use vGPU-VDIs as long we have and then switch to the cheap GPU-less desktop.

The implementation of this solution is pretty simple if you know the Power of Tags in a Citrix Virtual Desktop environment.

Recipe:

Create 2 Machine Catalogs, one with VDIs with and one without vGPUs.

 

Then create one Delivery Group and restrict the desktops to the Tag “availibleForUsers”.

 

Further, build a simple PoSh script with 3 functions:
– check the number of free VDI’s in the GPU-Catalog

– set tag “availibleForUsers”

– remove “availibleForUsers” tag as soon
enough free VDIs are in GPU pool

The script is running as a scheduled Task e.g. every 5 minutes and opens and close the overflow pool.

Of course, depending on the Logon storm you need to consider how often the script is running and how many spare desktops you keep before you close the pool (VDI Offset, $FreeMachineThreshold in the Script).

Other use cases:
This script is not only useable to overflow a GPU/Non-GPU workload, but it can also be used in the various scenarios.

Just some examples:
– different hardware types, first the new cool servers than the old hardware.
– existing On-Prem resources before pay-per-use cloud resources
– Catalog in the same location before in a remote location (without any Citrix zones)

The script is available on GitHub:

https://github.com/sacha81/MachineCatalogOverflow

FAQ:

Q: Are Tags also working when you are using Citrix Cloud?
A: Yes They are. (Thanks @bjoernmue for this info)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.