A term that I've been hearing more frequently in the past few months is "desktop virtualization." What does that mean anyway? It seems to me that this could be the use of any one of several different virtualization technologies in several categories of virtualization software (see Sorting out the different layers of virtualization for the Kusnetzky Group model of virtualization software.) Let's examine what desktop virtualization is and how it can be accomplished using several different types of software. Today's topic will be the role of processing virtualization in desktop virtualization. We looked at the role access virtualization plays in the post Just what is “desktop virtualization” anyway? and application virtualization in the post The Role Application Virtualization Plays in Desktop Virtualization
To review one final time, desktop virtualization is encapsulating and delivering either access to an entire information system environment or the environment itself to a remote device. This device may be based upon an entirely different hardware architecture than that used by the projected desktop environment. It may also be based upon an entirely different operating system as well.
Why should I care about this?The first post in this series (referenced above) laid out the reasons that organizations should care about desktop virtualization. In short, desktop virtualization can be seen as a way to reach back to the past and provide a reliable, durable environment while still offering modern graphical applications.
How does virtualization technology help?How different types of virtualization technology can create a virtual desktop environment was laid out in the first post of this series. I won't bore you with it again. I'll bore you with something else this time.
Processing virtualization to the rescue!Processing virtualization is a way to make it possible for an operating system and all of the applications its supporting to live in a logical or virtual environment. Processing is a spectrum of solutions that range from making many systems appear to be a single system to enhance performance, scalability or reliability or to make one system appear to be many individual systems to consolidate many independent workloads on a single physical machine. All of these approaches may also be used to enhance application agility, that is to make it possible for an application to move from one place to another to offer better overall utilization or to assure that all applications are meeting service level objectives. This last bit requires the assistance of a sophisticated set of management tools.
For the most part, desktop virtualization can be accomplished using either virtual machine software to encapsulate an operating system and all of its supported applications, data management tools, etc. into a single capsule that can be hosted on any compatible physical system using a "hypervisor."
Another, perhaps more efficient approach, is to use operating system virtualization/partitioning software to host multiple independent applications on a single operating system.
In either case, a capsule containing either an operating system plus its supported software or an operating system partition can be copied or streamed to a remote desktop system and execute there.
Another approach is running one or more capsules on a local Blade PC, on a remote Blade computer or even on a remote general purpose computer. In this case a special form of "virtual device interface", such as VMware VDI or Citrix's XenDesktop, allows the remote system to access the virtual machine or partition running on the remote system.
Additionally, a "connection broker" might be utilized to increase the levels of reliability and availability of application delivery. If one server becomes unavailable, the connection broker would simply reconnect the user to another server.
As with access or application virtualization, unless some other form of technology, such as storage virtualization is in use, the user might have to restart a transaction.
This approach is another solution to the network access and network bandwidth problems found with access virtualization. The application and a complete operating system can simply be streamed down or copied to the remote device prior to it being "taken on the road." When a person is "off the grid", he/she can just use the encapsulated version. Citrix XenServer and VMware Workstation or ESX Server are examples of this type of software. All Linux distributions contain both Xen and the KVM hypervisors which can do the same trick. Sun has announced that it is going to included Xen into Solaris as well.