Here is a pretty common question… I want to virtualize my XenApp servers, how should I carve the physical server up? Should I use a bunch of small VMs or a few massive VMs?

First, you have to look at a few decision points:

  1. OS Scalability: This is more of an issue in Windows 2003.
  2. Operations: More VMs means more to manage, unless you use a single image management solution like Provisioning Services.
  3. Application Requirements: The applications will dictate how many vCPUs and how much RAM you need to fully utilize the VM. Over allocate one and you waste resources. Under allocate one and you waste resources.
  4. Flexibility: How easy is it to migrate active VMs to another server (discussed in the Big or Small VMs for XenApp blog)
  5. Licensing Costs: More VMs means more Microsoft licensing costs. In fact, you might end up moving from Standard to Enterprise or even Data Center.

When we take all of this stuff together, we end up with the following:

Sockets Cores / Socket Hyper-Thread Logical Cores / Socket Logical Cores / Server VM Count vCPU per VM RAM per VM
32-bit Operating Systems (Windows 2003, Windows 2008)
2 2 No 2 4 2 VMs 2 vCPU 4 GB
2 2 Yes 4 8 2 VMs 4 vCPU 4 GB
2 4 Yes 8 16 4 VMs 4 vCPU 4 GB
4 2 Yes 4 16 4 VMs 4 vCPU 4 GB
4 4 Yes 8 32 8 VMs 4 vCPU 4 GB
64-bit Operating Systems (Windows 2003, Windows 2008, Windows 2008 R2)
2 2 No 2 4 2 VMs 2 vCPU 8 GB
2 2 Yes 4 8 2 VMs 4 vCPU 16 GB
2 4 Yes 8 16 2 VMs 8 vCPU 32 GB
4 2 Yes 4 16 4 VMs 4 vCPU 16 GB
4 4 Yes 8 32 4 VMs 8 vCPU 32 GB

I’ll probably hear a lot of comments for the 64bit systems with using bigger VMs and fewer of them. And those comments would be true. Windows 2008 64bit overcomes many of the bottlenecks we experienced with Windows 2003 32bit. But we are trying to have greater flexibility. We are trying to limit the impact of a VM failure. Bigger VMs means bigger impact if there is a failure.

How closely does your virtualized XenApp environment align? Or how about your plans? Are they retty close?

Daniel – Lead Architect
XenDesktop Design Handbook
Blog: Virtualize My Desktop