Virtualization
http://en.wikipedia.org/wiki/Virtualization
Virtualization is the technique of making resources become less dependent on the underlying systems. Virtual Local Area Networks, or VLANs for example make networks that may be physically or logically disconnected act instead as if they were all part of the same system.
Virtual Machine is a term typically used to refer to a fully virtualized operating system. The operating system behaves as if it is installed on its own hardware when it is in fact contained within another system. Using Virtual Machines, or VMs, has a number of interesting benefits.
VMs may be allocated resources so that machines which would otherwise occupy significant space at significant cost can share a single system. This means that in many instances several, or even many real physical machines can be changed into virtual machines and occupy only a single physical machine. This allows for the additional benefit of dedicating machines to a single purpose so that software conflicts and administration conflicts are far less likely.
Dynamic allocation of resources also allow machines which are typically of low utilization to share space and resources so that they have the full amount of RAM or processor time when required, but when quiescent allow some of those same resources to be allocated to other VMs.
VMs also have an easier support path since they can be moved from one physical host to another as efficiency dictates or as older hardware is decommissioned and replaced.
A not unbiased comparison of virtual machine technologies:
There are a number of different types of virtualization tools available to the average computer user and administrators.
Network Virtualization
VLANs, as previously mentioned, make it easier to manage networks, bypassing cumbersome gateways and routes that would otherwise be essential. This is done by ignoring the Packet portion of TCP/IP and tagging larger and more essential segments of digital impulses as belonging to certain LANs rather than simply letting each group of packets be routed. This also allows for security by controlling the underlying architecture that allows packet data transmission.
Environment Virtualization
Jails, or Containers are another method of allocating resources. Sun's Containers technologies allow multiple applications to act like they are alone in the system, providing strict boundaries of resource consumption, increased security and simplified administration. Since they don't have as much overhead as fully virtualized operating systems, they can provide more efficient use of software than full virtualization. With modern hardware, however, the performance gains are somewhat negligible.
Drive virtualization
Hard drive, or disk resource virtualization is epitomized by Logical Volume Management available to Linux GNU systems. Disks, partitions or even files that are treated as disks become the underlying resource that is used by the intervening management layer but is invisible to the systems using the resource. LVM allows administrators to extend, shrink or move data from one physical resource to another without needing to change the structure of the disks presented to the operating system. As a bonus, the management layer allows for snapshots to be taken of a volume's state which is in technical detail similar to RAID, but in practical use similar to Shadow Copies. Snapshots are very low on the resource consumption side making them more practical for many purposes than Shadow Copies.
Sun's ZFS filesystem does most of this virtualization benefit at an even lower level without the need for an intervening management layer which along with some pretty impressive management makes the system amazingly well suited to performance. Unfortunately, it has licenses that prevent adoption as widely as would be otherwise possible (as compared to LVM) and shrinking is not really ever practical.
iSCSI rocks
iSCSI vs Fiber Channel
- Comparing the potential cost and benefits of FC vs iSCSI, consider the following scenario: A small IT department would expect to have 1GB Ethernet already available and purchase three servers, each with 10TB of drive space with hardware based RAID and 4 1GB ports each. By using something like FreeNAS they could have a SAN with RAID 0 speed, RAID 5 redundancy, and a total of 8GB throughput (where one system would be considered redundant.) This might cost around $20,000. To get the same capability from FC SANs the cost would be easily doubled, perhaps tripled or greater and management is typically much more difficult. As an added benefit to using FreeNAS space could also be allocated for FTP, CIFS, NFS or other protocol access, which is typically unavailable with FC systems.
Operating System Virtualization
The biggest draw of virtualization is full operating system virtualization. There are essentially three popular methods of offering this capability. The first is by re-interpreting the commands that the operating system system tries to execute on the fly, which provides the layer of management necessary to virtualize the processor. The second is by using hardware, only recently becoming available, built into the processor to segment the commands that operating systems attempt to process. The third method is by replacing the core operating system with a shell that offloads its workload through the controlling system.
Examples:
- VMWare Player uses the re-interpretion method. (As do VMWare Workstation and their free Server versions.)
- Xen and Hyper-V both utilize hardware control, such as AMD-V and Intel-VT, when dealing with operating systems that expect to run independantly.
- Xen (and maybe Hyper-V) are also capable of using the paravirtualized kernels (where a shell of the core operating system offloads its work though the hosting system) when the operating system is capable of running with such a kernel. Linux does Xen virtualization very well and MS Server 2008 does Hyper-V virtualization very well, but surprisingly Microsoft supports some Linux systems very well in this manner. (Typically Linux cannot use Micosoft software as well due to restrictions in licensing Microsoft enforces, but Linux doesn't have those restricting use and manipulation making it far easier to support.)
Providers: The most established provider is VMWare which is now owned by EMC.1 VMWare (some implementions, maybe all?), Parallels, Virtual PC and Microsoft Virtual Server 2005 depend on re-interpreting the operating system commands on the fly. Why they do an astounding job of doing so, it comes at a cost to performance, at my own estimate, around 20% of the system's capability is sacrificed for the overhead of this processing.
MS Server 2008 has Hyper-V available now2, released to manufacturing in July 2008 and scheduled for common release in August 2008.
Xen has been available in some form since 2003, generally available since 2004, but not ready for Enterprise use until 2005. Still, the three years of Enterprise class support show in how well the product performs and how easy it is to manage.
A brief history of Operating System Virtualization in regards to Xen and Hyper-V
1967
The prototypical illustration of full virtualization is in the control program of IBM's CP/CMS operating system – first demonstrated with IBM's CP-40 research system in 1967, then distributed via open source in CP/CMS in 1967-1972, and re-implemented in IBM's VM family from 1972 to the present. Each CP/CMS user was provided a simulated, stand-alone computer.
1999
Xen originated as a research project at the University of Cambridge, led by Ian Pratt, senior lecturer at Cambridge and founder of XenSource, Inc.
2002
Microsoft provides funding to Xen group (later stops) http://www.crn.com/software/54201647
2003
September Vanderpool announced by Intel
October 19: During the development of Xen 1.x, Microsoft Research, along with the University of Cambridge Operating System group, developed a port of Windows XP to Xen. This was possible due to Microsoft's Academic Licensing Program. The terms of this license do not allow this port to be published, although the experience is documented in the original Xen SOSP paper.
October 22: Citrix aquires XenSource.
November 4: Novell announces it will acquire SuSE.
2004
April 1: Xen 1.0 released
September AMD develops Pacifica (later AMD-V) hardware virtualization
2005
...full virtualization was not quite possible with the x86 platform until the 2005-2006 addition of the AMD-V and IVT extensions
April Novell releases Xen in "Suse Linux Professional"
July Fedora Core 4 release (RedHat) supports Xen
2006
Aug Novell is first major vendor to offer Enterprise version of Xen
Nov Microsoft forms partnership with Novell
VMware and Microsoft adopt paravirtualization (the foundation of Xen technology)
2007
November 7, Microsoft announces HyperV
HyperV supports Xen virtual machines
2008
HyperV is released with Server 2008 officially to be supported starting in August.
Xen and Hyper-V offer such similar performance and resource management that Hyper-V has sometimes been assumed to be using Xen technology. This is inaccurate. I've sometimes referred to "Microsoft Xen" with tongue-in-cheek, but to be clear, Microsoft would not produce a product that incorporated any part of GPL (licensed like Linux) source code. The reason for this is that Microsoft revenue is based primarily on the principle that they have a right to sell software without that software being able to be sold or rebuilt and resold by competitors. GPL software (like Linux or Apache3) requires that any software that is produced using other GPL software must be able to be modified and distributed by anyone who uses it, competitors not withstanding.
Microsoft's contributions to Xen development initially and the time lines of acquisition of virtualization companies and technologies make it obvious that there was parallel work being done by multiple companies. It seems obvious that Microsoft was developing technology that was largely influenced by the design of Xen, but not directly using the actual source code. My own guess is that people at Microsoft were so impressed by how well Xen performed early on, that they saw a potential market and began focusing on producing a product that could compete with VMWare and simultaneously pulled their support for Xen to prevent assisting further competition from Linux and similarly licensed systems. I think it was likely even a factor in their agreements to partner with Novell (the first major system to produce Xen based systems for sale) and influenced the goals of HyperV.
Additional Notes
XenSource recently announced that Dell will incorporate Citrix XenServer OEM Edition as an embedded hypervisor installed in flash memory as an option on all Power Edge Servers, early in 2008.
XenSource is also developing a compatibility layer for Windows Server 2008 hypervisor, so that systems that have been modified to run as Xen guests will be able to function on the 2008 hypervisor.
1 My own experiences with EMC have left me with a dislike for their company and that feeling seems to be shared widely among IT personnel. They have great sales staff, but their support staff and infrastructure seems to be woefully inadequate to normal demands. VMWare is supposed to be mostly independent but observation by people who have worked with them before and after acquisition by EMC seems to indicate that that division has also suffered. ⇑
2 Where now is July 2008 ⇑
3 Apache is the most popular software used to provide web pages, IIS by Microsoft is second ⇑