Friday, April 23, 2010

XenServer 5.6 Preview, Part 1: Dynamic Memory Control

By:Andy Paul

I've had the opportunity to work with the XenServer 5.6 Beta and wanted to share a few of the new and improved features. With this latest release, Citrix XenServer is getting closer to the functionality of VMWare. I'm seeing more implementations of XenServer as it matures. Most of these implementations generally for new customers who do not have a virtualization initiatives or customers who are "Citrix shops." However, I do see more and more VMWare customers I work with who are adopting XenServer in parallel to their existing infrastructure.

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.
For each VM the administrator can set a dynamic memory range - this is the range within which memory can be added/removed from the VM without requiring a reboot. When a VM is running the administrator can adjust the dynamic range. XenServer always guarantees to keep the amount of memory allocated to the VM within the dynamic range; therefore adjusting it while the VM is running may cause XenServer to adjust the amount of memory allocated to the VM. 
DMC allows you to configure dynamic minimum and maximum memory levels – creating a Dynamic Memory Range (DMR) that the VM will operate in. In XenCenter, this can be configure to a fixed memory, or a range.  The range can be defined manually or using the graphical tool to slide the setting points. This is analogous to Memory Reservations in VMWare.

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).
Next Installment: Role Based Security and XenCenter Changes

Read more about XenServer

blog comments powered by Disqus
Microsoft Virtualization, Citrix, XENServer, Storage, iscsi, Exchange, Virtual Desktops, XENDesktop, APPSense, Netscaler, Virtual Storage, VM, Unified Comminications, Cisco, Server Virtualization, Thin client, Server Based Computing, SBC, Application Delivery controllers, System Center, SCCM, SCVMM, SCOM, VMware, VSphere, Virtual Storage, Cloud Computing, Provisioning Server, Hypervisor, Client Hypervisor.