Virtual Desktops : 8 am when everyone comes in

Solution 1:

There'll be an enormous load, not just on the network but on the VDI hosts too, and the only solution is to design your infrastructure to manage the load. There isn't a single-line one-size-fits-all solution to this as it's dependent on your physical environment, user profiles, available hardware, budgets etc. and why VDI consulting is a very hot area right now.

Ultimately you have to carry out a major design review of your systems to handle the load and there's an almost infinite number of ways forward following that review, in the meantime I'm not sure there's an answer to this question that's universally valid sorry.

Solution 2:

Design the system for the expected load. To do that you have to actually know what kind of load you should design for. To know that it's best to gather data from a smaller-size implementation and extrapolate from it.

To handle the stampede of users in the morning you can have the virtual desktop machines pre-created, waiting for the users to appear, so the load on storage systems will be manageable. You modify things on Friday afternoon, tell the infrastructure to re-deploy and by Monday morning you have 1 500 new images waiting eagerly for the users.

Consider putting the golden images and their linked clones on SSD disks. SSDs love random read access and are a good investment here.

Consider 10 Gbps networking infrastructure. Remember, that a saturated 10 Gbps pipe can eat a core of a CPU just for networking processing.

Use a sufficiently performing filer (e.g. NetApp or Storwize V7k) to serve network shares and profiles to the users over CIFS.

I am not sure if you are interested in designing SAN or LAN for the load, but there are documents addressing both cases, e.g.:

  • http://www.vmware.com/files/pdf/view_storage_considerations.pdf

  • http://www.vmware.com/files/pdf/VMware-View-50kSeatDeployment-WP-EN.pdf

  • http://www.vmware.com/files/pdf/VMware-View-PCoIP-Network-Sizing-Guide-IG-EN.pdf

Read the vendor documentation, from the reference architecture to design and planing, to installation guides.

Solution 3:

Monday morning effect is a known issue, and not only in VDI. For the VM use case though, there's the extra load on the hypervisors, when too many VMs try to start at once.

There are different workarounds, either scriptable, or built into various VDI products:

  1. Don't shut the VMs down at all, this way they will not create a VM startup storm
  2. Keep the VMs suspended (migrate to file/SAN state) - instead of starting up, they'll just load their RAM image and get to work - depending on VM types, this might be lighter on the infrastructure
  3. Keep a batch of VMs started, and once you're almost out of running VMs to assign to users, start up another batch. Kind of a thin/sparse VM startup model
  4. don't let more than a small number of VMs start up at once, only allow more VMs to start once the others are past POST and safely booted
  5. if you start at 8am, automate a bunch of VMs to be started before that, in small batches, so when the users come in, the VMs are already on and waiting