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:
- Host machine: Imagine a huge machine on which multiple other smaller machines will be created
- 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:
- Type one hypervisors ( Bare-metal hypervisors )
- 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.