Deploy Windows 7 Virtual Desktops or Windows 7-like Virtual Desktops (XenApp Published Desktops vs XenDesktop VDI)
Although Windows 7 has been released to market for nearly a year and a half, it comes as no surprise that Windows XP to Windows 7 migrations are still one of the most significant information technology undertakings for corporate environments. With that in mind, Gartner projects that Pervasive Cloud Computing and Mobility Devices (Tablets, Smartphones and other anywhere connected devices) will be the two most prevalent technology trends in 2011. In the midst of ever changing technology environments, enterprise organizations are evaluating centralized management technologies that meet traditional operating system migration objectives, combined with cloud and mobility initiatives. This objective has significantly contributed to the virtual desktop infrastructure (VDI) boom with key players being Citrix XenDesktop, VMware View, Microsoft VDI (RDS Virtual Host) now with RemoteFX, and Quest vWorkspace.
Fundamentally, VDI technologies are based on a Desktop Operating System being hosted and managed centrally on virtualization Hypervisors (VMware ESX, Citrix XenServer, Microsoft Hyper-V). In contrast, server based computing technologies (such as Microsoft Terminal Services and Citrix XenApp) have accomplished the same fundamental objective, but are based on a Server Operating System being hosted and managed centrally on physical or virtual hardware platforms. I have joked with colleagues that Citrix and Microsoft have been doing virtual desktops for years, but now all the other players are jumping in on the action. Although I say this tongue in cheek, published/terminal service desktops are fundamentally different. There are several factors that play into managing server based computing environments, the most significant being application functionality. Application functionality aside, I will be using the remainder of this post to demonstrate that in most scenarios server based computing (Utilizing Citrix XenApp) with a Windows 7-like experience will often result in the highest return on investment for delivering a standardized virtual desktop experience for larger departmental groups.
Having worked on numerous Citrix Presentation Server and XenApp implementations in the past, a frequent question I have heard is “Why does it look so different than my old desktop?” This often leads to the conversation of the user operating on a server versus a desktop. In the future, I envision a world where I can reply with “because it’s a virtual desktop” and drop the conversation there. This phrase has a lot of positive associations, especially with executives and stakeholders who want to experience the cutting edge of technology. In contrast, users tend to demonstrate concern when they find that they’re running from a server and this has negative connotations from the mainframe days that can be avoided. From the beginning, Citrix implementers have attempted to achieve a familiar computing environment for the end-users, primarily because familiarity achieves higher productivity and increases the rate of adoption to new technologies. With the release of Windows 7 and Server 2008 R2 customizations available, creating a Windows 7-like look and feel has become even easier than ever before! I recently posted the following screenshot to my Facebook profile to see if any of my friends could find the similarities (but more importantly the differences) between the two virtual desktops (Click for full screen view to see the detail in the image):
Several of my friends picked up on subtleties such as recently accessed applications under the start menu and even the “Logoff” versus “Shut down” options. Both desktops are streaming a Flash YouTube video at 360p utilizing Citrix’s HDX Flash Acceleration technology which redirects and offloads Flash video processing to the client. As far as look-and-feel, both desktops show the same desktop icons and applications available to the user. However, under the hood these two virtual desktops are running two different operating systems. The reference desktop on the right is a Windows 7 virtual desktop utilizing VDI technologies (XenDesktop 5). The two applications on the desktop (Winamp and the vSphere client) are actually published through XenApp and delivered as seamless applications to the virtual desktop. The “virtual desktop” on the left is not actually a desktop operating system; it is Microsoft Windows Server 2008 R2 running XenApp 6. The natural question anyone would ask is “Why would anyone want to simulate a Desktop operating experience on a Server? Why not use VDI?” If you’re already convinced that Virtual Desktops are the right choice for any environment regardless of all other factors, let’s discuss scalability in relation to return on investment.
In a server based computing environment, resources are shared and this can have many advantages. For example, if an operating system requires operational overhead (CPU cycles and RAM) to enter and maintain an idle state, this is typically directly reflective of the reference operating system. For example, in benchmark tests I have observed that Windows 7 typically requires 3-4% CPU and 384-512 MBs memory to maintain an idle/active ICA state. Windows 2008 R2 in perspective requires 5-6% CPU and 512-768 MBs memory in an idle state. The difference between desktop and server based operating systems however is under a full user load. In a VDI design utilizing Windows 7, each concurrent user session would require the above mentioned resources to maintain an idle/active ICA session and the additional CPU cycles and memory load to run active applications. In a server-based computing design utilizing XenApp, CPU and memory resources are shared among all concurrent users, so the additional load per user session is representative of active running applications only. So, let’s talk about performance and scalability.
According to Citrix reference architecture for building out XenDesktop virtual desktop environments, on modern virtualization hardware the general recommendation for a “normal use” virtual desktop running Windows 7 is 1 Virtual CPU (vCPU) and 1.5 RAM. All factors being equal, a “normal use” XenApp server running Windows 2008 R2 with 4 vCPUs and 16GBs of RAM can typically support 25 active users. Using these estimates to calculate the CPU and Memory requirements for a 300 user department application group, I have found significantly different results when comparing VDI/XenDesktop to XenApp. Doing the calculations for XenDesktop, the footprint will require 300 vCPUs and 450GB RAM respectively. For XenApp based on 25 concurrent users per system, 12 XenApp servers would be necessary and the footprint is 48 vCPUs and 192GB RAM respectively. Here’s a visualization that shows just how many virtual machines are needed for each design (Click for full view):
I intentionality used a 300 user scale as a reference point as the hardware requirements for 12 XenApp boxes (48 vCPU/192GB RAM) is a design well suited for DL580 G7s with Quad Westmere Processors or DL585 G7s with Quad Magny Cours Processors. Obviously, you would purchase a minimum of two in the cluster and balance the XenApp servers across the cluster (leaving approximately 50% capacity), however this gives a good data point from a hardware cost perspective and makes it relatively easy to formulate direct hardware RIO. Ideally CPU and Memory overcommit will be evaluated and benchmarked under a full load prior to implementing in production. For XenDesktop, Citrix recommends 6-8 users per core for the “normal use” virtual desktop model, so this ultimately will drop the 300 vCPU count down to closer to 50 vCPUs (With overcommit on the physical CPUs). For virtualized XenApp, CPU and Memory overcommit should be avoided and these resources need to be monitored much closer to ensure 1-1 commit ratios are maintained. Remember, if there are 25 active users, CPU latency and Memory ballooning has a much more substantial impact to users.
As with any solution, every design has its advantages and disadvantages. My recommendation is to develop use case based solutions that focus on specific objectives. This post was intended to bring awareness that Windows 7 with Aero does not necessarily equate to VDI. XenApp 6 is capable of delivering a Windows 7-like to “task-based” workers or department groups that all have identical application requirements. I would argue that any user group which falls into the “Hosted Shared” flexcast model would also be an excellent candidate for XenApp 6 with a Windows 7-like experience (http://flexcast.citrix.com/technology/hostedshared.html). This model returns the greatest return on investment from a cluster/host footprint (CPU, Memory & Storage), licensing, and management perspective.
If you have any comments regarding the information mentioned in this post, please feel free to drop a comment in the section below. Upon request, I will post detailed documentation on delivering the Windows 7-like experience for 2008 R2 running XenApp 6. Otherwise, you can utilize the following reference:
Thanks for reading!