Many of us know that if we virtualize XenApp servers using a 32bit OS, we can more fully utilize the physical servers. This is possible because the 32bit OS will reach system limits before we reach physical hardware limits. By adding more VMs, we effectively increase the scalability of the physical hardware by more fully utilizing it. Nothing too Earth shattering there.
What about running XenApp on a 64bit OS? We don’t have the same system limitations. Do we want to virtualize it? How should we carve up the server?
There are many different aspects to look at but I’m only going to focus on flexibility at this point. If I didn’t virtualize one of the newer servers (4 sockets, 2 cores and hyperthreading enabled) I would have a XenApp server with 16 logical CPU cores. Windows Server 2008 R2 and XenApp can handle this, but do you want to? This one server will support hundreds of users. If I don’t virtualize it, how difficult will it be to maintain the one image? It might take a long time to siphon off all of the users so I can do maintenance. So the answer is to virtualize it… Right?
Sure. That way we can move the live VM to another host so we can do physical host maintenance. But moving the VM might be difficult. And by difficult I don’t mean from a hypervisor perspective as XenServer, Hyper-V and vSphere are truly capable of migrating VMs to other hosts. By difficult I mean that it might be a challenge to find a server that has that many resources available to host the VM. You could do an N+1 scenario and forget about the VM migration, but you still have to wait for the users to siphon off of the VM.
What happens if I use smaller VMs? It makes finding a home for the VM easier. I probably have more options finding a host for a 4 vCPU VM than a 16 vCPU VM. And even if I didn’t migrate, the time to siphon off users from a small VM should be a lot faster than from a large VM.
Flexibility is one aspect to consider when virtualizing XenApp servers.