In computing, virtualization refers to creating a virtual version of computing devices like servers, hardware platforms, storage devices, computer network resources, etc. Cloud computing is the technology used to deliver these virtual computing devices via the internet. To be more precise, we can tell that cloud computing cannot be achieved without virtualization.
To have a clear idea of virtualization as well as cloud computing, please do look at our article on both of them here :
Basic technical details of virtualization
Most common virtualization is operating system level virtualization. Here, multiple operating systems will be run on a single hardware where hardware is emulated through software. When a different operating system is operating on top of another underlying primary operating system through virtualization, it is referred to as a virtual machine. Virtual machines reside on a physical computer as data files, which can be moved and copied to another computer, like any normal data file. Virtualised computers make use of two types of file structures – file defining hardware as well as file defining hard drive. Virtual machines are created and run by a computer software, firmware or hardware called Hypervisor (Virtual Machine Monitor / VMM). The system on which a hypervisor runs one or more VMs is called a host machine and each of the virtual machines is called a guest machine.
There are various layers of virtualization – server virtualization, desktop virtualization, file virtualization and network virtualization. Virtualization can bring in low / no-cost deployment, complete resource utilization, operational and power savings, etc. But the need for extensive planning and skilled technical resource, slow performance because all virtual machines using the same resource to run, etc. are the disadvantages of virtualization.
Major virtualization tools today
VMWare – Known as the first commercially successful virtualisation software to virtualise x86 architecture. Technically very good; known for its hypervisors, but costly. Another disadvantage is VMWare has a hardware compatibility list which needs to be checked before adopting it.
Xen – Leading open source hypervisor included in the Linux kernel and available in all Linux distributions. Xen project is one of the projects handled by Linux Foundation. Xen can provide virtualisation compatible with many operating systems. It can do full virtualization on systems supporting virtualization extensions as well as work as a hypervisor on machines not offering virtualisation extensions. Though included in Linux kernel, a supported Xen stack is only offered by Linux distributions Oracle unbreakable Linux and SUSE Linux Enterprise Server, in Xen’s commercial version. RedHat included Xen till RHEL5.
But the system requirements to set up and maintain XEN is high, causing a decrease in resources for VPS by default.
KVM – An open source virtualization software known as the best for hardware virtualisation, where it claims to allow equal distribution of available resources. KVM allows high customisation as per needs; an example is ‘kernel modification feature’, which makes it possible to edit the user’s kernel, rather than ending up in problems with the company’s allocated kernel. KVM makes this possible by stimulating hardware, meaning it can be run on any kernel. This makes kernel independent so that VPS can modify it, giving a more isolated environment to the account holder. KVM uses SeaBIOS to replace 16 bit x86 BIOS. KVM VPS can host various operating systems such as Windows, Linux, and others. RedHat included KVM instead of Xen, when RHEL6 was released.
Even though having disadvantages due to the need of complex setup, availability only on a limited number of processors, chance of lesser performance compared to para-virtualization (KVM gives full virtualization), KVM claims to be lesser costlier, robust in security, superlative in service and highest in efficiency compared to its competitors. In addition, being open source, KVM can be used by anybody as well as customized to fit any specific requirements; Most of the open source cloud automation software use KVM as its default hypervisor.
OpenVZ – OpenVZ does virtualisation in operating system level for Linux. Node’s kernel is used to split the operating system into containers and then, the kernel will be shared between several VPS. OpenVZ uses two types of resources – dedicated resources (they are own resources guaranteeing own VPS) and burst resources (they are the result of spare resources in the system, one VPS can use the resources of another VPS when those resources are not used by the other VPS). When there are no spare resources, the server can terminate processes running on burst resources.
OpenVZ doesn’t need many resources and since it shares kernel among various VPS, OpenVZ can save memory and CPU. OpenVZ is low priced, less complicated to set up and maintain, user-friendly, lowest in management complexity. All these features make OpenVZ an apt choice at entry level. But the disadvantages of OpenVZ are – It only runs on Linux and doesn’t support Windows / BSD; Upon shared kernel failure, every VPS instance on the same server will be affected, etc.
Oracle VM VirtualBox – Free, open source hosted hypervisor for x86 computers currently developed by Oracle Corporation. Initially, it was developed by GmbH, it was then acquired by Sun Microsystems in 2008 and Sun Microsystems was acquired by Oracle in 2010. VirtualBox can be installed in various operating systems like Linux, MacOS, Windows, Solaris and OpenSolaris.
VirtualBox runs on Windows, Linux, Macintosh and Solaris hosts; supports a large number of guest operating systems like Windows (NT 4, 2000, XP, Server 2003, Vista, Windows 7, Windows 8, Windows 10), DOS/Windows 3.x, Linux (2.4, 2.6, 3.x and 4.x). VirtualBox is – free-so no hassle with licensing, machine details (machine state and specifications) will be shown in UI in one place, highly customizable (can be attached to different networks, environment settings can be changed), actively updated and quite stable, popular-so good community support. Some of the disadvantages are, in VirtualBox – VM errors crash the VMs, VMs will become unreadable upon host machine running out of space (even after freeing space. VirtualBox keeps a copy, but need to manually restore it.), nested hardware virtualization not supported, VMs seem to lose network connectivity as well as VM clock goes out of sync when the host computer is in sleep mode or in hibernation.
Microsoft HyperV – Server virtualization product from Microsoft. This provides virtualization via hypervisor-based emulations. HyperV consolidates a single physical server into many virtual servers, all sharing the hardware resources of the host server and powered by HyperV. HyperV operates both as a stand-alone solution and as an addition to Windows server 2008 R2. HyperV isolates the physical machine into child partitions and allocates them to various guest operating systems, Windows server 2008 being the primary host or parent.
HyperV improves server utilization as well as save the money required to by an in-house physical server. Disadvantages are – HyperV only works on Windows, Its inability to virtualize audio hardware, It doesn’t support burning to DISC, audio CDs, video CD/DD, etc. (because HyperV doesn’t support host/root operating systems optical systems to pass-through in guest VMs.). In general, HyperV can be told as a native hypervisor which creates virtual machines on x86-64 systems running Windows.
Depending upon what an end user wants to achieve in their particular environment (IT infrastructure), the virtualization needs will differ and as per that one need to adopt a virtualization plan, along with considering cost.