Virtualization can be achieved using different techniques and this article tries to summarize some of the majorly used techniques by providers of Utility Computing space.
Xen Virtualization
Xen is developed and maintained by the Xen community as free software and licensed under GPL2. Developed in University of Cambridge Computer Laboratory, Xen has come a long way. Currently, with an Advisory Board consisting of software giants like Citrix, IBM, Intel, Hewlett-Packard, Novell, Red Hat, Sun Microsystems and Oracle, inclusion in major OS distributions like RHEL/Fedora, Suse, Sun Solaris, and guest support for almost all major OS's including Windows, Xen has become the choice of many Utility Computing provides for running their Cloud Computing powerhouses.
Xen is run in two ways:
Paravirtualization where host and the VM share a common kernel and the VM has direct access to critical OS and hardware resources like device drivers, IRQ interrupts etc. This significantly improves the responsiveness of VMs limiting the impact from the virtualization layer. On the flip side, Guest OS kernel has to be ported to run in Xen Paravirtualized mode hence preventing certain proprietary OS like Windows to be virtualized using this method.
Companies using Xen Paravirtualization:
- Amazon for their Elastic Compute Cloud (EC2).
- Slicehost
- Network Redux
Hardware Assisted Virtualization which takes advantage of hardware virtualization support from Intel VT and AMD-V processors to enable virtualized guests to run natively on the hardware while still achieving very high performance I/O. This method allows proprietary operating systems (such as Microsoft Windows) to be virtualized since the guest system's kernel does not require modification when the host runs on Intel VT or AMD-V hardware.
Companies using Xen Hardware Assisted Virtualization:
- Gogrid
Kernel-based Virtual Machine (KVM)
Kernel-based Virtual Machine (KVM) is a Linux kernel virtualization solution. KVM provides support for full virtualization using Intel VT or AMD-V (it also provides limited support for paravirtualization). Being developed as a module of most popular Open Source OS, KVM enjoys a large community following and contribution. KVM allows multiple virtual machines running unmodified Linux or Windows images making it a good choice of Cloud Computing providers.
Companies using KVM
- Elastic Hosts
VMWare ESX
VMware became the market leader in virtualization space in 1998 when they figured out how to virtualize the x86 platform. The Virtualization technique used was Full Virtualization using binary translation, which they have improved over years. VMware ESX Server was later added into their product suite as an enterprise-level virtualization solution for data centers. With host of features like VMotion, Storage VMotion, DRS (Dynamic Resource Scheduler), and HA, VMware ESX has become a good choice for Web2.0 Enterprises.
Companies using VMware ESX
- Rackspace (Mozzo)
3Tera Applogic
3Tera brought Grid Computing from limited usage in computational applications at enterprises and scientific labs to web industry through Applogic. AppLogic is the first grid operating system that is designed for web applications and is optimized for transactional and I/O intensive workloads which are key features of majority of Internet Applications. Applogic does not require SAN or other expensive shared storage, is vendor-neutral and completely compatible with existing web applications. Applogic provides a robust Utility Computing model for its Utility Computing division and hosting partners worldwid who use Applogic within their datacenter to provide Virtual Servers and Virtual Private Datacenter (VPDS) solutions to their customers.
Companies using Applogic
- 3Tera
- GridLayer
- 1-800-HOSTING
- Cleargrid
- ENKI
OS Level Virtualization
Operating system-level virtualization is a server virtualization method where the kernel of an operating system allows for multiple isolated user-space instances, instead of just one. This is the most basic form of virtualization and usually imposes little or no overhead. However, OS level virtualization is not as flexible as other virtualization approaches since it cannot host a guest operating system different from the host one. Also, OS level virtualization does not provide the level of isolation that other virtualization techniques provide.
Companies using OS Virtualization
- Vpslink (using Openvz on Linux)
- Joyant (using Solaris OS Containers)