4

I'm learning about virtual desktops and I was wondering; suppose you have 1500 people in your company, almost all using virtual desktops, and they would have to start up their computers all at the same time more or less.

How will this affect the network and what would the solution be? It would congest the network, right?

The only thing I could think off is maybe using multicast to spread the golden images, or a pool per level (building level) that caches images in the morning and sees to it that it always has the newest one cached.

But I can't find any articles about it.

Does anyone have some good reading or examples of how they solved this?

sysadmin1138
  • 133,124
  • 18
  • 176
  • 300
Lucas Kauffman
  • 16,880
  • 9
  • 58
  • 93
  • 2
    Unless you really *NEED* a dedicated virtual machine for each user... (there are very few reasons this would be true)... why no consider "Remote Desktop Services" where you're not trying to fire off a new virtual machine for each user... but rather using a "shared" OS. It's much more efficient... and requires significantly less licenses. – TheCompWiz Jan 05 '12 at 14:38
  • 2
    This is called a "Boot Storm" and if you Google that term you'll find plenty of information. – 3dinfluence Jan 05 '12 at 15:32
  • VDI as far as I'm concerned is for special case use only, in our case its all about protecting sensitive data but in general we xenapps or as thecompwiz stated RDS with app-v. – tony roth Jan 05 '12 at 16:44

3 Answers3

7

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.

Chopper3
  • 101,299
  • 9
  • 108
  • 239
  • +1 This sort of design isn't rocket science, but as Chopper said you have to design the network and infrastructure specifically for the situation. The easiest way to learn is to try it small scale and see what happens, or both VMWare and MS are more than happy to provide some guidance. – Chris S Jan 05 '12 at 14:13
  • 2
    The single most important thing to do is baseline an average user's load over a day, including the 8am-start-up window for CPU, memory, network and especially disk IO/space. Only then can you start extrapolating those "user units" across your physical layout to best suit the circumstances. – Chopper3 Jan 05 '12 at 14:19
1

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.:

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

Paweł Brodacki
  • 6,511
  • 20
  • 23
1

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
dyasny
  • 18,802
  • 6
  • 49
  • 64