In the modern IT world, virtualization has been gaining more and more attention. It is not a whole new concept: old Intel 80386 processor architecture introduced so called virtual mode: "by working under VM86 mode the segmentation mechanism is reconfigured to work just like under real mode, but the paging mechanism is still active, and it is transparent to the real mode code; thus, memory protection is still applicable, and so is the isolation of the address space." (source: wikipedia). It means, that the virtual computer is isolated from the physical host, and all programs are executed by the physical processor of the host. RAM of the virtual computer is basically a part of the physical machine.
Virtualization can be performed on different levels: hardware or software. Most commonly used nowadays is the hardware virtualization, which means that the virtualization program creates a virtual computer environment (hence the name: virtual machine) on which it is possible to install an operating system and applications.
Virtualization is not emulation, and the virtualized operationg system is running at the full clock speed. The overhead can however be severe for graphics, because the graphic card has to be emulated. It is possible to speed this up by installing so called "Tools" or "Additions", which is basically a set of drivers for graphics, network, motherboard and disk controller. In some products these drivers can even provide 3D acceleration, so it is possible to run games.
Different kinds of virtualization is available in mainframe servers - for example some Oracle Sun servers can be divided into zones, which use fragments of physical hardware. Solaris zoning can be compared to VLANs on a network switch and is not virtualization in its full meaning.
History of modern virtualization software
In 2003 Microsoft has introduced a program called Virtual PC, which was acquired from Connectix corporation earlier the same year. Microsoft's goal was to ease the transition to Windows XP, but it also allowed running many different operating system on one host machine. Two years later, in 2005, the VMware corporation (which now creates a de-facto standard for x86 virtualization) has released a free VMware Player, which allows creating and running virtual machines on either Windows on Linux host desktops.
In 2006, VMware has released another free product - VMware Server, which compared to the desktop VMware Player is a server virtualization program. Microsoft followed in this trend, and released Virtual PC 2006 as a free program. One year later, in 2007, company known as innoTek released the source code of a lightwieght virtualization solution known as VirtualBox. Open source project was quickly adopted by Sun Microsystems, which subsequently was acquired by Oracle, so the product is now known as Oracle VM VirtualBox.
Microsoft has released the Hyper-V for Windows Server 2008, which enables this operating system to function as a host for virtual machines. Hyper-V itself can also be installed for free as a bare-metal hypervisor (it's actually a very lightweight Windows Server 2008 without GUI). Another free bare-metal hypervisor is VMware's vSphere hypervisor (formerly known as ESXi).
Running a virtual machine requires that the host constantly manages (and translates) the virtual machine memory to physical memory pages, and also modifies some program code, which if left unmodified, would fail. Beginning 2005, two major CPU producers, Intel and AMD have created CPU extensions to the x86 architecture. The first generation of x86 hardware support for virtualization addressed the issue of privileged instructions, with the support for memory management virtualization added later.
Running a virtual machine environment has many advantages:
- virtual machine is an isolated environment - allows risk free testing of different operating system or debugging viruses (some malware programs have been adopted against this)
- more than one virtual machine can run on one physical host - allows consolidation and lowers operating costs
- it is possible to download a pre-configured virtual appliances with an operating system and applications already pre-installled - saves time
- allows deployment of software on unsupported hardware
- allows rapid deployment of many similar servers
- allows mobility of a virtual machine between physical hosts
- backup a physical computer into a virtual machine
Some of these features are available in free virtualization programs, some of them are only available in the paid versions.
When is it possible to consolidate many systems onto a single physical host?
- When the load of systems to be consolidated is low, or high only for short periods of time
- When the to-be consolidated systems do not require real time performance
Otherwise, virtualization can adversely affect performance, and administrator must weigh which is more important - cost savings or keeping high performance.
With tools such as VMware vCenter Converter it is possible to convert a live running system into a virtual machine, provided it is supported by this tool (most Windows from 2000 and above, along with Linux systems are supported). vCenter Converter also allows converting virtual machines from different vendors to the VMware VMX format.
Free virtualization solutions available on the market:
- Oracle VM VirtualBox
- VMware Player
- VMware Server 2.x
- VMware vCenter Converter
- VMware OVF Tool
- VMware vSphere Hypervisor
- Microsoft VirtualPC
- Microsoft Windows 7's XP Mode
- Microsoft Hyper-V
It is also possible to install Mac OSX Snow Leopard on VMware Player. A detailed Snow Leopard installation walkthrough is available.
Managing VMware Server with VMware vSphere Client
I have found out that vSphere Client is unofficially compatible with VMware Server. For details please visit this page.