Virtualization 101, From Data Center To Desktop

Escaping the Limitations

Using virtualization we remove the ties that bind us (to specific hardware). Imagine if you can, that the operating system and its applications are not bound to the hardware. Instead there is a basic software layer installed on the hardware that you can then put your choice of operating system on, to include multiple instances whose numbers are only limited by the amount of processing power, memory, and disk (or storage) space you have available. If and when your needs outgrow the current hardware, you can then add another server and simply move as many of your "Virtual Machines" as needed to it in real-time, without having to reload or experience significant (if any) downtime.

The server hardware at this point, through the implementation of virtualization, acts as a container for your various virtual machines which consist of the operating system and applications.  Handling the task of communicating requests back and forth (I/O) for hardware resources that power the virtual machine is the Hypervisor. The Hypervisor, sometimes called virtual machine manager (VMM) is the software that allows multiple operating systems to share a single hardware host and its hardware resources such as memory, hard disks, CPU, etc. The hypervisor can perform many functions such as dynamically allocating memory or CPU processing power to virtual machines or guest operating systems as needed, thereby enabling the optimal use of the hardware resources.

Johan De Gelas in another article on IBM/Intel's explains the hypervisor this way:

"To create several virtual servers on one physical machine, a new software layer is necessary: the hypervisor, also called Virtual Machine Monitor (VMM). The most important role is to arbitrate the access to the underlying hardware, so that guest OSes can share the machine. You could say that a VMM manages virtual machines (Guest OS + applications) like an OS manages processes and threads."

Virtualization is accomplished in one of two widely adopted implementations:
  1. A host operating system is installed on the hardware with a virtualization application (Hypervisor) loaded on it.
  2. A virtualization software implementation (Hypervisor) is loaded directly on the hardware.
Option two is of course the most efficient use of hardware resources as there is not a host operating system to draw on them. Once the choice of virtualization implementation is deployed you then can create a virtual machine(s) with your choice of OS as supported by it. Various virtualization software vendors accommodate different albeit wide selections of guest operating systems. When installing a supported guest OS, the virtualization software does not require the installation of additional drivers we are so accustomed to.  Instead it simulates an accepted base utilizing components from the operating system's HCL.

Along with the different flavors of virtualization software you have a multitude of different monitoring, disaster recovery, backup, conversion (from hardware to VM or from Image to VM) utilities, and load balancing applications available in the burgeoning virtualization software market.

Related content