Server Virtualization, like other virtualizations, is a software architecture that allows multiple server operating systems to share utilization of the same underlying hardware infrastructure. The key enabling software is called a hypervisor, which creates and manages resource sharing between virtual environments, called virtual machines (VMs), and underlying infrastructure.
The alternative to server virtualization is to maintain separate server operating systems on separate hardware, each with their own pool of dedicated resources. While this is potentially less complex to implement, resource dedication risks leaving significant hardware resources underutilized.
Imagine, three OSes on three equal machines, each utilizing only 30% capacity, leaving 70% underutilized across all three systems. What should happen if the needs of one machine grows beyond its capacity? Can it borrow from the space available on the other machines?
With server virtualization, the resources of all three machines can be pooled, each OS can be placed into its virtual machine (VM), and resources can be shared with those VMs that need it most. If one VM needs additional space, it borrows from the resource pool unaware which machine those resources actually reside.
The benefits of virtualization derive from this main point, that resources can be pooled and shared as needed, and every last compute cycle and empty disk drive can be maximized with little waste. In short, virtualization brings the following benefits.
Virtualization is commonly a software method of abstracting a virtual layer on top of the physical hardware that underlies the system, other methods include hardware-assisted virtualization. The virtual layer supports virtual environments known as virtual machines, that access hardware resources through a hypervisor, a feature that creates VMs and acts like a traffic authority, connecting available hardware resources to virtual machines when needed. In this model, physical resources are separate from the VMs, and many VMs can reside in the virtual world on a single computer. These VMs, possibly running different OSes, then have to share system resources. The main advantage of this is the ability to utilize and manage all available resources, without being required to commit them all to a single OS. This configuration grants high resource efficiency.
Server virtualization benefits organizations in the same fashion other virtualizations benefit them:
Building on the concept of virtualization, the emulation of a guest operating system, or VMs, on top of a host operating system with the use of a hypervisor, data centers have adopted this technology and applied it to the seemingly endless storage, compute, and networking resources they possess. The systems are highly flexible allowing every VM to run their own brand of OS (Linux, MAC, or Windows). Called server virtualization, this is the combination of virtualization to data center size resources that are made available to cloud consumers via the internet. In essence, server virtualization hides the hardware resources from users, and allows admins to more effectively optimize the use of those resources.
Virtualization enables the abstraction of operating systems away from hardware resources and can be achieved in multiple ways.
Full Server Virtualization — Full server virtualization is the installation of a hypervisor solely responsible for creating and monitoring virtual machines and managing commands between hardware, host OS, and VMs. The main advantage is that no modifications to guest operating systems is necessary, but the trade off to emulated environments is more complex, and typically slower.
Paravirtualization — Paravirtualization is somewhat like a stripped down version of full server virtualization. In full server virtualization, hardware I/O is emulated, and the hypervisor traps commands from VMs before making calls on hardware. In paravirtualization, guest OSes are modified to interact directly with the hypervisor eliminating the emulation overhead in full server virtualization. Minus emulation, performance improves, however, guest operating systems require modification.
Hardware Assisted Virtualization — In hardware assisted virtualization, virtualization operations remain similar to full and para virtualization, however, guest OSes, by virtue of using common x86 instruction sets, can then interface with modified hardware with much less hypervisor overhead. Performance improves with less hypervisor overhead, but modifications to hardware are required.
Kernel Level Virtualization — In this scenario, virtualization instructions are included within a Linux kernel, acting as its own hypervisor, and subsequent VMs are created and managed as if they were processes interacting through specialized device drivers. While kernel level virtualization has less overhead it does also require hardware support.
OS Level or System Level Virtualization — OS level virtualization shares a single kernel layered on a host operating system with multiple VMs. There are many advantages to these configurations, particularly extreme lightweight, enhanced environment isolation and security, live migrations, capability to host many VMs, and more. The main limitation of system level virtualization is that all VMs must run the same OS. This differs from server virtualization which is capable of running multiple brands of operating systems. There is a significant disadvantage to this configuration, potential kernel or driver issues can collapse all VMs.
Server virtualization is a low-cost approach to maximizing hardware infrastructure resources. Traditional data centers without server virtualization have extremely limited resource utilization because resources are committed to operating systems in full. What this means is that the resources of low usage servers sit idle, underutilized, and ultimately unprofitable until they are accessed.
This is the exact problem for which virtualization was designed to solve, to maximize resource usage by abstracting operating systems from hardware, and eliminating the need to fully commit resources to a single OS. Instead resources are managed separately, and then engaged on-demand. This means many advantages. VMs simply communicate as normal to the hypervisor, while data can then be stored whichever way is most efficient on the myriad of underlying storage. Compute cycles can be judiciously applied to where processing is heaviest and they are most needed. Overall, resource usage becomes granular, granting significant controls over system optimization and cost reduction.