VM Ware - Xen - Hyper-V - Sun Solaris 10 Containers
Posted by Mike Brunt at 8:57 PM
2 comments - Categories: Default | ColdFusion | JRun-J2EE
The virtualization bandwagon rolls on and by now most of us will have come across virtualization in some form or other and in many cases we won't even know that we have. As I live in that server netherworld I am always aware of what I am dealing with, I have to be, to plan, configure, troubleshoot etc. Those of us that have been aware of virtualization for some time are familiar with VMWare and perhaps Xen, these products use something called a "hypervisor". There are two additional and slightly different approaches emerging which are also worthy of note, either because you will use them at some time or other or because knowledge is always a good investment. Over the long-term, knowledge is a far more valuable investment than property, stocks-shares etc; in my opinion.
So here is an overview of the three different approaches I have encountered in the virtualization sphere. I should add that the emergence of 64-bit architectures and a perception that fewer physical servers are better for the environment is another imperative pushing virtualization (did I hear someone say Mainframe ;o).
1/ Hypervisor Based Virtualization 1 (VMware, Xen): One main job of the hypervisor in this case is to contain and manage hardware emulation via drivers. Because there is a need to exist on (as a host) and run (guests) multiple operating systems on a multitude of physical machines, the drivers-emulation in this iteration of the hypervisor tends to have drivers that are both bland and ancient and I assume with their own inefficiency penalties. As a note point here, I have never encountered a virtualization schema of this kind that does not impact performance negatively. If you are being persuaded to move to this sort of virtualization, making a "like-for-like" move (CPU Memory emulation the same as the dedicated physical space you have) performance will degrade. However, that can be mitigated by having more virtual environments than the physical ones you had.
2/ Hypervisor Based Virtualization 2 - The Microsoft Way (Hyper-V): I am coming across more deployments of Windows Server 2008; setting up IIS7 in 64-bit with ColdFusion can be tricky, but that is a different subject. In Server 2008 Microsoft is introducing something called "Hyper-V", formally code-named "Viridian". As mentioned in item 1 above, one of the frustrations of virtualization is the hardware emulation-drivers which in the case of the VMware-Xen approach are maintained within the hypervisor. The first major difference is that Hyper-V is part of the operating system, not a third party add-on. The host operating system in this version of virtualization must be Windows 2008 Server, after that all other advantages of virtualization apply, run Unix, OSX etc. Both the host operating system (Windows 2008) and all guest operating systems run within their own partitions. There is a key difference between Hyper-V and the virtualization as applied in item 1 above, in Hyper-V virtualization the drivers reside within the guest operating systems not within the hypervisor itself. Time will tell if this is a better approach but on the surface it seems as if it might be.
3/ Sun Solaris 10 "Zones" and "Containers" - In some ways this approach by Sun is not really virtualization in the same way as items 1 and 2 above. For instance in a Solaris Container there can only be one operating system version. If you come across this Solaris version of virtualization, you will often hear the two terms shown above; "Zones" and "Containers", used interchangeably; however there are differences between the two. A Container in Solaris holds the Zone and also another element called a Solaris Resource Manager or SRM. The Zone controls the name space allocation and the SRM manages the physical system resources. So to clarify that, a Container contains the SRM and Zone. There is no hypervisor in this Sun Solaris implementation of virtualization and Sun claims this reduces any performance impacts in comparison to hypervisor based virtualization. There are claimed licensing advantages too but I am not sure how thosewould be quantified. Sun claims that the overhead levied by the use of Containers and Zones will be between 1 and 4 percent, which if accurate, certainly seems very reasonable. One last point, my mind boggles at all these layers of abstraction-virtualization and just to make that even more boggling, Solaris 10 "Zones" and "Containers" can be run within a VM Ware virtualized environment.
Please note, I have not included "Parallels" here because I am not 100% sure whether method 1 or 2 is used by Parallels and because this article is focused on erver-side options rather than desktop virtualization.
Mike Brunt wrote on 12/14/08 6:34 AM
@Johnb, thanks for taking the time to give such a comprehensive run-down here I feel a bit lacking in that I did not cover this is depth in my main post. I will certainly do more digging next time.