There is no denying that vSphere is the more mature and more robust product. Just like there is no denying that it is more expensive and can be more complex. I generally say that XenServer will get you 90% of the way there at a much lower price tag, and for most customers that is plenty. With these new updates, that margin of difference is decreasing.
XenServer 5.6 Beta includes a number of new features and ongoing improvements. The full list can be seen here, but today, I want to focus on Dynamic Memory Control. This is the feature that peaks the most interest of administrators.
Personally, I have never been a fan of over-allocating memory. Virtualization allows dynamic use of resources, but those resources are not limitless. However, there are times when you need to use overallocation, such as lab, PoC, and Test/Dev environments. Using the DMC in XenServer 5.6 through the XenCenter console is easy and intuitive. As you can see in the picture below, you can monitor the "big picture" of the host, as well as the individual impact on each VM -- so you really know how and where your memory is being used. The first image below show the memory allocation without DMC configured (the host only has 4 GB of RAM); the second image shows the memory allocations after adjusting the memory ranges (the host is now over committed -118%)
Note, the VMs are running in a variety of memory configurations:
- XDPOCDDC VM is configured to run between 1024 and 2048 MB, the Guest OS (Win 2003) see 2048 available RAM
- XDPOCWINXP1 was configured at 512 static, I modified it to range between 512 and 768. Because it was not using DMC before this change, a reboot is required to complete the RAM increase
- XDPOCWINXP2 was configured at 1024 static, I modified it to range between 768 and 1024.
- XDPOCWINXP3 is still configured for 512 static (min and max are the same value)
Per Citrix -- "Dynamic Memory Control. This feature can increase the number of VMs per host by permitting the memory utilization of existing VMs to be compressed so that additional VMs can boot on the host. Once VMs on that host are later shut down or migrated to other hosts, running VMs can reclaim unused physical host memory. Dynamic Memory Control is enabled by defining minimum and maximum memory settings for virtual machines."
Basically, this is the over-commit VMWare has been long known for. Dynamic Memory Control (DMC) provides the following benefits:
- Memory can be added or removed without restarting the VM, providing a seamless experience to the user.
- When host servers are full, DMC allows you to start more VMs on these servers, reducing the amount of memory allocated to the running VMs proportionally.
- As memory requirements on the host change, DMC will auto-adjust the memory of running VMs, but will keep the memory within a range specified by the administrator.
DMC Behavior: Automatic VM squeezing
If a new VM is started on a XenServer with "full" memory already assigned the running VMs have their memory 'squeezed' to start new ones. The required extra memory is obtained by reducing the existing running VMs proportionally within their pre-defined dynamic ranges. Of course, if a VM is set to Fixed Memory and the Host is "full," the an "out of memory" failure will occur.
When DMC is enabled, and the host's memory is plentiful, then all running VMs will receive their Dynamic Maximum Memory level. When a host's memory is scarce, all running VMs will receive their Dynamic Minimum Memory level (or close too it). Again, the memory sharing is proportional.
Please note, the Dynamic Memory Control requires a Citrix Essentials for XenServer license. As of XenServer 5.6, this is centrally managed via the Citrix License Management Console. You can download XenServer 5.6 Beta as well as the require Essentials License files here (MyCitrix Login is Required).
Read more about XenServer