Virtualization has become a core infrastructure component for most organizations. Server virtualization in particular has become prevalent in all sizes and types of organizations. Hosted desktop virtualization, also known as Virtual Desktop Infrastructure (VDI), is a much less widely used technology. I recently evaluated Citrix Systems XenDesktop 5.6 as a VDI provider for a Microsoft Hyper-V virtualization platform.
VDI is a misunderstood technology because it involves virtualization and desktop systems. VDI products are often confused with products such as VMware Workstation and Microsoft Virtual PC, which run the virtualization software directly on the desktop PC. XenDesktop and other VDI products aren't like this. Instead, they use a back-end virtualization server such as Hyper-V, VMware vSphere, or Citrix Systems XenServer to provide the virtualization support. The physical desktop client uses a remote display protocol such as ICA to connect to a virtual machine (VM) that's running on the back-end virtualization server. In some ways, this is much like managing a virtual server using Remote Desktop Connection. However, in a VDI implementation, the VM runs a desktop OS, such as Windows 7. Typically, there's a server between the physical desktop client and the back-end virtualization host. This server is known as the session or connection broker. Its job is to route the incoming client ICA connections to the appropriate VM image on the host. The network client then displays the desktop for that VM.
Some of the advantages of a VDI product such as XenDesktop are that it can provide centralized control of client desktops and easier migration to new desktop OSs. Centralized control reduces the number of client desktop images that you need to manage and patch as well as centralizes their location in the data center. Migration is made easier because you don't need to upgrade all your older physical systems in order to take advantage of new client OSs such as Windows 7.
Installing and Configuring XenDesktop
There are several components in a XenDesktop implementation. On the server side, you have the Controller, Desktop Studio, and Desktop Director components. The Controller component routes client requests to the appropriate VMs. Desktop Studio is used to create and configure collections of desktop VMs. Desktop Director is a web-based troubleshooting tool. In addition, XenDesktop requires a virtualization server. It can work with all of the popular virtualization platforms, including Hyper-V R2, VMware vSphere 4.1 and later, and XenServer 5.5 and later.
Before jumping into the installation process, you have to make sure that you have the XenDesktop requirements in place. Active Directory (AD) is required to verify the identities of the components and to allow them to communicate securely. In addition, the Controller component requires an instance of SQL Server 2008 R2 or SQL Server 2008 SP1 or later. If you don't have a SQL Server 2008 instance, the Controller installation program will install a copy of SQL Server 2008 R2 Express Edition. In order to work with Hyper-V, XenDesktop also requires either Microsoft System Center Virtual Machine Manager (VMM) 2008 R2 or VMM 2012. The VMM server must be managing the Hyper-V servers, and the VMM administrative console, with its Windows PowerShell support, must be installed on the same server as the XenDesktop server.
I installed the XenDesktop server components on a VM with 2GB of RAM and a 16GB Virtual Hard Disk (VHD) running on a Hyper-V server. For simplicity, I installed the Controller, Desktop Director, and Desktop Studio components on the same VM, but in a production environment, you would typically separate them.
The Controller component requires the Standard or Enterprise Edition of Windows Server 2008 SP2 (32- or 64-bit) or the Standard or Enterprise Edition of Windows Server 2008 R2 (64-bit only). It also requires the Microsoft .NET Framework 3.5 SP1. If the .NET Framework isn't present, the setup program installs it for you.
Desktop Studio supports all editions of Windows 7 (32- and 64-bit), all editions of Windows Vista (32- and 64-bit), Windows XP Professional SP2 (64-bit), and XP Pro SP3 (32-bit). It can also be installed on Windows Server 2008 R2 or Windows Server 2008 (32- and 64-bit). Desktop Studio requires the .NET Framework 3.5 SP1, ASP.NET 2.0, Microsoft Management Console (MMC) 3.0, and IIS. Desktop Director needs Adobe Flash Player.
Preparing the Master Desktop Image and Virtual Infrastructure
After installing all the server components, I used VMM 2008 R2 to create a Windows 7 VM to act as the master desktop image. XenDesktop uses the master VM as a model for creating virtual desktops. This image contains the Windows 7 OS, the Hyper-V Integration Services components, as well as any antivirus software and other software needed by the end users. After creating the master VM, I installed the Virtual Desktop Agent on the VM and then shut it down. Next, to create the VDI infrastructure, I ran Desktop Studio.
When you first run Desktop Studio, you're presented with several different deployment options, as Figure 1 shows. The Quick deploy option is best for evaluation deployments. It can create up to 10 virtual desktops and perform a default configuration for the needed virtual infrastructure. The Join existing deployment option lets you add the Controller component to an existing XenDesktop configuration. If you're familiar with XenDesktop, you can run the Desktop deployment option. You use the Application deployment option to create virtual applications.
To set up my test environment, I choose the Quick deploy option. The Quick Deploy wizard asked me for the type of virtualization platform as well as the required connection information for the host and the location of the master image. For a Hyper-V implementation, this required that the Cluster Shared Volume be shared. This step had to be performed manually. Finally, I selected the number of VMs to be created and the AD users permitted to use the VMs. The wizard creates the required virtual infrastructure and creates what Citrix calls Pooled-Random desktop VMs.
XenDesktop has three basic types of desktop VMs: Pooled-Random, Pooled-Static, and Dedicated. In the Pooled-Random model, desktops are assigned randomly and, after logoff, the desktop is free for other users. Any changes made are discarded at reboot. In the Pooled Static model, desktops are permanently assigned to individual users. Again, all changes are discarded at reboot. In the Dedicated model, desktops are permanently assigned to individual users and changes persist across reboots.
After the Quick Deploy wizard completed, Desktop Studio displayed the management console that you see in Figure 2. I found the management console a bit unintuitive. Plus, the columns were too small and always needed to be expanded on my 1024 ´ 768 display.
Next, I deployed the Virtual Desktop Agent and Citrix Receiver from the installation media to the clients that I wanted to connect to XenDesktop. Citrix provides clients for the 32-bit and 64-bit editions of Windows 7, Vista SP2, and XP Pro SP3. In addition, there are Citrix Receivers for Mac OS X (Snow Leopard, Leopard, and Tiger), Apple iOS, Google Android, Research in Motion BlackBerry, and Linux. The Virtual Desktop Agents for Windows are delivered as .msi files, making it easy to deploy them using Group Policy. After installing the Virtual Desktop Client and Citrix Receiver, I needed to manually make sure ports 80, 1494, 2598, and 3389 were open. Then, the client needed to be restarted. Pointing the browser to the Controller's URL connected the client to the desktop VM that was created by the Quick Deploy wizard. Performance over my test LAN environment was comparable to a local desktop experience.
Exploring XenDesktop's Advanced Features
One major challenge that VDI implementations face is coping with mobile users and other disconnected computing scenarios as well as addressing the needs of knowledge workers, temporary employees, contractors, and shared workstations. XenDesktop's FlexCast technology allows it to provide virtual desktops for all of these types of users -- even mobile and disconnected users. The FlexCast technology enables XenDesktop to deliver four types of desktops, which Citrix calls Hosted VDI desktops, Hosted Shared desktops, Streamed VHD desktops, and Local VM desktops.
Hosted VDI desktops are good for standard office workers. They allow personalization, and Citrix claims you can support about 150 users per server. Hosted Shared desktops don't allow personalization and are the most efficient type of virtual desktop. Citrix claims this model supports up to 500 users per server. Streamed VHD desktops use the processing power of a local client and are designed for diskless workstation implementations. This model can support 1,000 or more users per server. Finally, the Local VM desktop is intended for mobile and disconnected users. It uses the XenClient virtualization support on the target machine to run a client VM that's synchronized with a virtualization host.
XenDesktop provides three mechanisms for delivering these virtual desktop images: Installed Images, Provisioning Services, and Machine Creation Services. Installed Images are essentially Sysprep images of VMs. Machine Creation Services focuses on simplicity. This mechanism is designed to deliver a pool of dedicated VDI desktops. It's a great option for smaller organizations and can be a good way to evaluate XenDesktop. Provisioning Services provides much greater flexibility and can be used for Hosted Shared and Streamed VHD desktops.
Limited video capabilities are another concern for VDI implementations. Because the desktop VM typically runs on the host server in the data center, it's limited to the video capabilities present in the VM. Citrix addresses this problem with their High Def Experience (HDX) technology. HDX builds on Citrix's ICA protocol to provide a separate networking stream for audio and video capabilities. The HDX technology enables client-side rendering of audio and video data streams enabling XenDesktop VMs to webcams and USB audio devices. Client video rendering is provided for Flash, Windows Media Video (WMV), and DirectShow. There's also server-side rendering for QuickTime and Silverlight.
Mature, Flexible, and Capable
XenDesktop is the premiere solution for implementing virtual desktops using the Microsoft virtualization platform. It's a mature, flexible, and capable technology for delivering virtual desktops in the enterprise. The product offers a lot of options, which can make it complex. However, those options provide the flexibility needed for virtual desktop deployment at the enterprise level.
Citrix makes three editions of XenDesktop: VDI, Enterprise, and Platinum. The low-end VDI Edition includes Citrix's HDX technology but doesn't include FlexCast. The Enterprise Edition provides all the features in the VDI Edition, plus support for FlexCast and XenApp allocation virtualization. The Platinum Edition adds support for advanced features such as HDX WAN optimization, single sign-on (SSO), and SmartAccess policy controls.
I found that getting useful information from the Citrix site is a difficult undertaking. If you're interested in XenDesktop, you should try the free evaluation edition, which is limited to 10 users. You can download it from the "Choose your XenDesktop trial" web page. If you're implementing XenDesktop with Hyper-V as I did, I highly recommend that you download the Citrix white paper "XenDesktop Hyper-V Proof ofConcept Guide." This guide contains essential information for this type of deployment.