DEV Community

Developer Tharun

Server virtualization for roadrunners | Hypervisor

Introducing Virtualization

I know the article made you hungry, let’s get back to the topic.

You need to know two basic things:

  1. Host machine: Imagine a huge machine on which multiple other smaller machines will be created
  2. Guest  machine: The multiple smaller machines that are created on top of the  huge machine, that uses the resources provided by the huge machine is a  guest machine.

Virtualization  creates a software representation of the underlying hardware resources  on a host and shares it among the virtual machines that are created on  top of it. Each virtual machine has its own operating system and  applications, thereby being able to utilize the resources of a host  machine by its guest machines in an isolated manner.

A  virtual machine ( VM ) is an isolated guest machine that has it’s own  operating system and applications. Each VM is completely independent of  other VMs running on the same host machine.

If you remember our x84 vs x64 architecture systems blog post,  the x84 systems are not capable of running more than one operating  system or application at a time. The concept of multi-processing came up  only with the x64 systems introducing the dual-core, quad-core so on.  Because of this reason, the earlier datacenters which were based on x84  systems had to increase the number of servers, whereas the server  utilization remained underutilized.

Today,  this is not the scenario. Virtualization has gone beyond just server  virtualization and has reached network virtualization, disk  virtualization, and so on. But how is this possible?

Hypervisor — The hero of our story

The  concept of Virtual Machines is made possible only because of the thin  layer of software known as the Hypervisor, which is installed on the  host machine. The hypervisor enables the virtualization of resources and  isolation between the Virtual machines that are created on the same  host. This enables efficient and transparent utilization of data center  resources.

Types of Hypervisors:

  1. Type one hypervisors ( Bare-metal hypervisors )
  2. Type two hypervisors ( Hosted hypervisors )

Type one hypervisors

Type  1 hypervisors as depicted above lay directly above the physical server  and host the virtual machines on top of them. They are also known as  bare-metal hypervisors. It has shown far better performance than type  two hypervisors.

Dynamic  resource allocation in Type 1 hypervisor allows VMs to consume  resources only as much as they need to be fully functional, even if you  allocate more than that. For example, if you allocate 32GB of RAM to a  VM, it will not reserve all 32GB of RAM to the VM, but only that  resource which it needs to fully function. ( This is not the case with  Type 2 hypervisors ).

Example: The open-source KVM ( Kernel-based Virtual Machine )

Type two hypervisors

Type 2 hypervisors as depicted above have an operating system on top of  the physical server layer, over which a type two hypervisor is  installed. So, there is a host operating system ( a software layer )  that comes in between the physical server and the type two hypervisor.



Episode source