It is easy to think of virtualization in terms of application virtualization or server virtualization, but one trend that is really starting to take off is desktop virtualization.
Desktop virtualization is similar to server virtualization, except that the operating systems for users’ desktops are virtualized rather than being installed locally. But virtualizing hundreds or even thousands of desktops can be a logistical nightmare. And the costs associated with it could also keep you up at night.
These days everyone is on a budget, so it makes sense to try to make the most of your virtual desktop infrastructure (VDI) server resources. Because VDI is so resource-intensive, it is important to choose servers that give you the most bang for your buck.
The cost of storage is another major factor in deploying VDI. But there are a number of techniques you can use to greatly reduce the required storage and, thereby, reduce the amount you have to spend on it.
VDI is bandwidth intensive. You can avoid a network bottleneck by picking your virtualization protocol carefully to reduce the impact that VDI has on bandwidth.
VDI deployments tend to be demanding of the underlying hardware. So, it makes sense to plan ahead to make sure that your hardware is going to be sufficient for the deployment. Here is some practical advice to meet your server, storage and network requirements before you roll out your VDI:
Server considerations: When you virtualize your desktops, you are putting all of your eggs into one basket. A VDI outage is going to affect your users far more than a typical server failure because they won’t even be able to work locally. Because of that, you are going to need to choose server hardware that is fault tolerant and hardware that scales well as the number of hosted virtual desktops increases. The hardware also needs to be powerful enough to allow users to work at least as efficiently as they are now.
When it comes to CPU resources, you should use quad-core processors— at least until the eight-core processors become readily available. The reason why is that most of the time server software is licensed on a per-CPU basis, not on a per-core basis. This means that it is generally going to be less expensive to license a server with a quad-core CPU than a server with two dual-core CPUs. In a VDI deployment, you are certainly going to need more than four cores, but this same general principle still applies.
Mega servers or low-end servers
Another issue to consider is whether it makes more sense to operate a few mega servers or a lot of low-end servers. There are compelling arguments for both strategies.
When shopping for server hardware, there comes a point when the cost of the hardware begins to increase exponentially. Often it is possible to purchase two mid-grade servers for just above the price of a high-end server, keeping in mind that the two mid-grade servers have a combined performance that exceeds that of a single high-end server. Finding the right server hardware involves striking just the right balance between price and performance. Just don’t forget to include licensing costs into your calculations.
As you determine which servers you want to purchase for your VDI deployment, be sure to leave room in your budget for clustering. Technically, clustering isn’t an absolute requirement for VDI, but it is highly recommended.
One reason why clustering is so important is that clusters can help to provide scalability. For example, VERDE Cluster from Virtual Bridges Inc. can cluster up to 10,000 VDI servers and host up to a million concurrent user sessions.
Clustering is also important from a fault-tolerance standpoint. When you virtualize all of your organization’s desktops, you are essentially putting yourself into a position in which a VDI infrastructure failure could potentially cause an outage for every user in the entire organization.
Storage considerations: Any organization that is seriously considering implementing VDI needs to carefully assess its storage requirements. Administrators who have previously used Windows Terminal Services as a mechanism for centralizing control of user desktops are often surprised to learn that VDI requires far more storage space than a typical Terminal Services deployment does. In fact, each virtual desktop requires its own virtual hard drive file, even if all of the virtual desktops are more or less identical.
So what does this mean in terms of the required storage space? It means that your virtual desktops are going to require lots of storage and that you are probably going to have to be creative in coming up with ways to reduce the amount of required space.
To show you why this is the case, imagine that you wanted to create 1,000 virtual desktops, each running Windows Vista, Microsoft Office 2007 and maybe a couple of other miscellaneous applications. According to Microsoft, Windows Vista Business edition requires a 40 GB hard drive with at least 15 GB of free space. Likewise, Microsoft Office Professional 2007 requires 2 GB of disk space, although some of that space will be freed after the installation process completes.
On top of these requirements, you are also going to need free disk space for the Windows pagefile, additional applications and eventual upgrades to the operating system and to any applications that you may be using. So you may find that you need to dedicate 50 GB of disk space to each virtual desktop.
Although 50 GB isn’t really a lot of space by today’s standards, let’s not forget that you need to provide this space for 1,000 virtual desktops. In other words, you need roughly about 50 TB of storage space in this scenario.
To those who are used to working in large, enterprise-class environments, 50 TB of required disk space probably won’t be a deal breaker. Remember, though, that this disk space is going to be used only for virtualized operating systems and for any applications that are installed locally on those operating systems. All of each user’s data is going to be stored elsewhere.
This is just one example of the storage-intensive nature of VDI. Depending on your requirements you may need more or less storage space in a real world deployment. In any case, there is no denying that VDI requires a significant amount of storage space. As a result, you’ll need to determine what the best storage infrastructure is and how to use the storage space most efficiently.
The pluses of a storage area network
Technically, you can use just about any common type of storage infrastructure in conjunction with VDI. Even so, a Storage Area Network (SAN) is highly recommended, especially for large-scale deployments. There are two main reasons for this:
- SANs are highly flexible and designed with high availability in mind. This is extremely important in a VDI environment because all users can’t just shut down their virtual desktops every time you need to perform server maintenance. When properly constructed, SANs allow you to perform various maintenance tasks and even reallocation of resources without disconnecting users.
- SANs are typically designed to maximize disk throughput, ultimately resulting in a more efficient VDI deployment. Disk throughput is going to be a major issue for organizations wanting to use VDI.
One possible option to reduce storage costs is to use Windows XP instead of Vista. Windows XP has a much smaller footprint—a typical Windows XP deployment is only about 4 GB, as opposed to the 15 GB required by Vista. When you extrapolate this difference over the number of desktops that you need to virtualize, the savings are substantial.
Another idea is to use “snapshotting.” The idea behind snapshotting is that each virtual desktop still has its own virtual hard drive file, but the virtual hard drive file is a diff file that points back to a single snapshot that is shared by all of the virtual desktops.
Although this technique can be used, it isn’t always the best solution because there are often performance and file locking issues that are associated with it. Besides that, if anything happens to the base image file, it affects everyone because everyone’s virtual desktop is linked to that same image.
Still another possible solution is to perform a hybrid deployment. Depending on the virtualization products you are using, it may be possible to use the virtual desktops to host the Windows operating system but with no applications installed. The Windows Server 2008 version of the Terminal Services supports a feature called Terminal Services Remote Programs in which applications run on a terminal server but provide the illusion that they are running locally.
You may be able to use a solution like this to offload applications to a terminal server, thus greatly reducing storage costs. But keep in mind that it would likely be very bandwidth-intensive. Network considerations: Although some of the protocols that VDI uses have become more efficient, there is simply no getting around the fact that VDI is bandwidth-intensive. But there are several approaches that you can use to avoid a bottleneck.
One approach is to install as many NICs as possible into your host servers. This will help to relieve congestion by distributing network traffic over multiple interfaces. Next, avoid using blade servers as VDI hosts because the compact form factor used by blade servers limits the number of NICs that can be installed into the server. Rather than using blades, look for servers with a larger form factor that can accommodate more than four NICs.
Choose your virtualization protocol carefully
Make sure to choose your virtualization protocol carefully to minimize the impact that VDI has on network bandwidth. Some VDI implementations require the Remote Desktop Protocol, but some also support the Independent Computing Architecture Protocol or the Virtual Network Computing protocol.
If your chosen VDI solution supports multiple protocols, you should consider performing a small-scale pilot deployment. Use a network monitor to determine which of the available protocols is going to be the most efficient in the large-scale deployment.
Finally, take steps to make sure that your users aren’t consuming excessive bandwidth. Disabling audio is a good start. You might also consider removing Windows Media Player in an effort to prevent users from playing any videos.
As you pick and choose features for your users, keep in mind that VDI isn’t a good solution for everyone. As much as you might like to make all of the users use a virtual desktop, there are some users who might be better off using a traditional PC. For example, users who do CAD work or who do graphics editing using applications such as Adobe Photoshop would consume an excessive amount of bandwidth and would likely put a strain on the VDI. Likewise, users who use multiple monitors typically are not good VDI candidates.
The future of virtual desktops
We’ll likely see a major shift in the way that desktop virtualization is implemented in the next five years. The reason is the Windows 7 architecture.
Windows 7 includes something called Windows XP Mode, which appears to be nothing more than a copy of Windows XP running inside a copy of Virtual PC. But there is more to it than that. Applications installed in Windows XP can run seamlessly on the Windows 7 desktop without the virtual instance of Windows XP even being open.
This is significant because with this design, Microsoft has laid the groundwork for future versions of Windows, which will probably be much leaner. In addition, Microsoft will likely make use of VM-based add-ins that will provide backward compatibility with older versions of Windows but through a common interface.
Right now, virtual desktop images are bloated. If Microsoft adopts a modular Windows design, it could mean that future VDI implementations would require far fewer resources because only the necessary modules will be installed.
About the Author
Brien M. Posey has received Microsoft’s Most Valuable Professional award five times for his work with Windows Server, IIS, file systems/storage, and Exchange Server. He has served as CIO for a nationwide chain of hospitals and healthcare facilities and was once a network administrator for Fort Knox.