Virtualization (sometimes written as v12n) is the creation of a virtual, rather than actual, version of a computing capability. There are many types of virtualization, but for cloud computing the most important one is hardware virtualization.
Hardware virtualization uses software to create a Virtual Machine (VM) that emulates a physical computer. This creates a separate Operating System (OS) environment (the guest) that is logically isolated from the host server. There are many advantages to this approach:
- Running multiple OSes simultaneously
One can switch between OSes without having to reboot. This allows for easy testing of software on different OSes, for example.
- Testing and disaster recovery
The state of a VM can be saved and restored, allowing free experimentation.
- Easier software installation
Software vendors can use VMs to ship entire software configurations. For example, installing and configuring a complex piece of software can be difficult and error-prone. The vendor is in a much better position to do this, and can provide a ready made VM to its customers. Such a VM is often called an appliance.
- Infrastructure consolidation
Instead of running many physical computers that are only partially used, one can pack many VMs onto a few powerful hosts and balance the loads between them. This enables the resource pooling that is one of the essential characteristics of cloud computing.
The software that runs a VM is called a hypervisor. The leading vendor in this space is VMware, but most big software companies have their own virtualization software, like Microsoft, IBM, and Oracle. And there are many more implementations.
IBM’s hypervisor offering is based on Kernel-based Virtual Machine (KVM), which is open source software integrated into to the Linux kernel. The use of KVM is promoted by the Open Virtualization Alliance. Oracle’s VM also has an open source version, VirtualBox. Another popular open source hypervisor is Xen.
There are two types of hypervisors:
- Type 1 (also caled native or bare metal)
A Type 1 hypervisor runs directly on the host’s hardware to control the hardware and to manage guest operating systems. Examples are VMware ESXi, Citrix XenServer and Microsoft Hyper-V.
- Type 2 (also caled hosted)
A Type 2 hypervisor runs within a conventional OS environment. With the hypervisor layer as a distinct second software level, guest operating systems run at the third level above the hardware.
Hypervisors must offer to the guest OS the same interface as the underlying hardware does. This isn’t always easy to do in a way that performs well. Therefore, hardware vendors have made changes to their hardware that make it easier to write good performing hypervisors. Hypervisor vendors, on the other hand, have approached the problem by modifying the guest OS to make system calls to the hypervisor, rather than executing machine I/O instructions which the hypervisor then simulates. This approach is called paravirtualization. Finally, a coalition of VMware, Cisco, and EMC (the Virtual Computing Environment company, or VCE) have put together an optimized hardware/hypervisor combination called VBlock.
|Previous: Deployment, Hosting, and Management Models||Next: Cloud Computing Standards|
One thought on “Virtualization”