XenApp Planning Guide – Virtualization Best Practices
Daniel Feller, Lead Architect at Citrix Systems and Dimitrios Samorgiannidis, Principal Consultant have created this great whitepaper – XenApp Planning Guide – Virtualization Best Practise.
Desktop virtualization comprises of many different types of virtual desktops. One option is to use a Hosted Shared Desktop model, which consists of a published desktop running on a Citrix XenApp server.
One of the goals when creating a design for Hosted Shared Desktops is to try and maximize scalability while still providing an adequate use experience. Hosted Shared Desktops provide an advantage over other desktop virtualization techniques by only requiring the use of a single operating system, which significantly reduces user resource requirements and helps improve scalability numbers.
However, in order to get the most users, making correct design decisions as to the resource allocation is important. Creating too many virtual machines or too few might negatively impact scalability.
This planning guide provides resource allocation recommendations for users running on a Hosted Shared Desktop on either Windows Server 2003 or Windows Server 2008.
Note: Even though these best practices are based on the Hosted Shared Desktop model, they are still relevant in a non-desktop model where users only connect to published applications without the desktop interface.
In general, when making the decision to virtualize XenApp servers, the main goal is to support the most number of users on a piece of hardware. However, other guidelines can also come into play that might not follow the approach that gives one the best scalability. Business structure, costs and operational items can also play an important role in selecting the most appropriate virtualization strategy for XenApp.
Operating System Scalability
Physical servers have continued to expand with more processor cores and RAM, but many older operating systems, like Windows Server 2003, are not able to take full advantage of these improvements. There are some options that can be used to try and extend the scalability of the system, like using the /PAE option for Windows 2003. Although these options do help increase scalability of a single server, they often do not provide enough value to fully utilize a server.
Virtualizing Windows Server 2003 with XenApp will often allow a greater number of user sessions on the hardware. However, creating too many virtual servers requires more operating system installations, which uses system resources while creating too few virtual servers could also result in wasted resources as the operating system is unable to scale.
In order to create a proper, scalable, virtualized XenApp solution, there must be a balance between the number of virtual machines and virtual machine specifications.
More virtual servers often mean more management activities. This can be a deciding factor when determining if more or less virtual machines are needed. For example, if ten servers are to host six virtual servers instead of four, that yields 20 more servers to manage, maintain, troubleshoot and support.
However, if single image management solutions, like Citrix Provisioning Services, are used, the operational aspects of managing more virtual server instances becomes irrelevant as all of the virtual servers are based on a single master image.
Applications influence how a server should be virtualized based on the application characteristics and user activity.
- Resource Requirements: Certain applications have a bigger impact on CPU while other on RAM. The application characteristics plays an important role when determining how many vCPUs to allocate or how much RAM to assign, assuming these requirements don’t go beyond the maximum limitations of the operating system.
- User Activity: In many implementations, organizations silo or create separate XenApp servers to host different applications. Silos have a direct impact on resources allocated to a virtual server. If the server contains a set of applications that are rarely utilized, it would make sense to create smaller virtual machines as opposed to a virtual server instance expected to host many more users.
The virtual machine specifications must align with the requirements of the application set and expected usage.
Many organizations virtualizing XenApp servers opt for live migration functionality, where a virtual machine can jump from one host to another without impacting active user sessions. This is especially useful when scheduled maintenance is needed on a host or an organization wishes to reduce power consumption by shutting down hosts after hours. Simply shutting down the virtual machine will most likely impact the few remaining XenApp sessions still active, which is why some organizations utilize live migration capabilities. However, the size of a virtual machine can potentially limit flexibility.
When all things are equal, smaller virtual machines provide greater levels of flexibility, especially from a virtual machine placement perspective. For example, it is often easier to move 4 virtual servers (4 vCPU and 8GB of RAM each) than it is to move a single, large virtual machine (16 vCPUs with 32 GB of RAM). In order to successfully migrate a virtual server, the new host must have enough available resources to support the virtual machine. This is much easier when the virtual machine resource allocations are smaller.
When looking at large footprint virtual machines, smaller provides greater flexibility. If this level of flexibility is not required, larger virtual machines are optimal as fewer resources are used for additional operating systems.
Microsoft licensing is very explicit in stating how many licenses are required for physical/virtual servers
- Windows Server 2003/2008 Standard: Each license provides one physical server and one virtual server, although standard is limited to four physical processors.
- Windows Server 2003/2008 Enterprise: Each license provides one physical server and four virtual servers, although Enterprise is limited to eight physical processors.
- Windows Server 2003/2008 Datacenter: A Datacenter license is required for every processor on the physical server, and allows for any number of virtual servers.
The costs associated with licensing the Windows Server operating system can play a role in determining how many virtual machines are created. As an example, would it be better, from a licensing standpoint, to create 4 virtual machines with 6 vCPU or 6 virtual machines with 4 vCPU assuming scalability is similar? The four virtual machine model would result in fewer required Microsoft licenses, which will help keep the costs lower.
In addition, using a feature like XenMotion, Live Migration or vMotion can also impact licensing. The Standard and Enterprise licenses for virtual machines are tied to the physical server. If the virtual machine on one Enterprise server is migrated to another physical server, the new physical server must have enough licenses to support another VM as well as its current virtual machine load.
Note: Calculating licensing costs and requirements can be done by utilizing the Windows Server Virtualization Calculators (http://www.microsoft.com/windowsserver2008/en/us/hyperv-calculators.aspx).
For most organizations, the overall goal is to get the greatest user density from a physical hardware configuration without impacting the user experience. Based on production deployments, numerous case studies and taking into account the guidelines mentioned earlier within this document, the following are the initial recommendations for virtual machine configuration for XenApp.
Note 1: For the Windows 2003 (32bit) configuration, additional VMs with fewer vCPUs should be utilized if RAM reaches a bottleneck before vCPU.
Note 2: The 32-bit operating system can utilize more than 4GB of RAM if the /PAE option is invoked. This can potentially reduce the number of virtual machines, but results are mixed.
Note 3: Page file estimates are typically either 1X or 1.5X RAM for 32bit servers. For 64bit, the same formula can be used, but this will most likely result in an excessively large pagefile size. For 64bit servers, it is best to monitor the server and following Microsoft page file recommendations (http://support.microsoft.com/kb/2021748/en- us?sd=rss&spid=12925).
Note 4: The 64-bit operating system specifications assume there is a need for flexibility with live migration capabilities. Larger virtual machines are also valid if flexibility is not a requirement.
Regardless of the VM allocation decisions made, the following are general recommendations that are almost always advisable when virtualizing XenApp servers