IntroductionServer virtualization is the process of creating multiple server instances from one physical server. Each server instance represents an isolated virtual environment. Within each virtual environment, you can run a separate operating system.In this article you will learn all about server virtualization and why you should utilize this powerful technology.
What is Server Virtualization?Before virtualization, you would install an operating system on top of the hardware, making it directly linked to the server. This meant that each server had to have its own separate hardware.On average, dedicated servers use only 15% of their resources during normal operation. Although running your application on bare metal servers has some advantages over virtualization, in many cases it is a waste of resources. Furthermore, software or hardware failures often required hands-on repair on all the servers.Therefore, there was a need to boost resource utilization and maintain separation between the clients’ operating systems for security purposes.Server virtualization was introduced as a solution to the issues mentioned above. A virtualization software allowed you to “break up” your physical server into multiple virtual ones. By doing so, you can utilize your physical resources to the fullest, without investing in more hardware.
How Does Server Virtualization Work?To create virtual server instances you first need to set up a virtualization software. This essential piece of software is called a hypervizor. Its main role is to create a virtualization layer that separates CPU / Processors, RAM and other physical resources from the virtual instances.
Once you install the hypervizor on your host machine, you can use that virtualization software to emulate the physical resources and create a new virtual server on top of it.There are different types of server virtualization. The distinction between them is mainly based on the level of isolation they provide, which is also related to how much hardware resources they emulate.
Note: To learn more about hypervizors, refer to our article What Is A Hypervisor? Types Of Hypervisors 1 & 2.
Types of Server VirtualizationThere are three (3) approaches to server virtualization based on the isolation they provide:
- Full virtualization or virtual machine model
- Paravirtual machine model
- Virtualization at the OS level
Note: A hypervisor is also called a Virtual Machine Monitor (VMM). The hardware on which it is installed is labeled as the host machine. The virtual resources, created and managed by the hypervisor, are known as virtual or guest machines.
Virtual Machine Model Or Full VirtualizationIn a full virtual machine model, the hypervisor completely isolates guest machines. It shares the hardware of the host machine but runs as if being on a completely autonomous computer, unaware of the hypervisor and its role. These VMs see themselves as self-reliant and efficient. Therefore you do not need to adapt or specially modify their instances of operating systems.
Paravirtual MachineWhen you need multiple virtual machines and have flexible resource sharing, a fully virtualized environment may not be necessary. In this case, a paravirtualized environment may better suit the situation.The paravirtual model eliminates the need for the VM to trap privileged instructions, making it more time efficient and less intrusive to the system. The operating systems acknowledge the existence of a hypervisor and communicate directly with it by sending comments known as hypercalls.For this communication to take place, both the hypervisor and the operating systems are specialized to exchange hypercalls. Consequently, paravirtualization requires a paravirtualized hypervisor and operating systems. These are modified by implementing an API (application programming interface) to enable them to communicate through hypercalls.
Note: Did you know there’s a Cloud that doesn’t run on a hypervisor? Learn more about Bare Metal Cloud.
Operating System LayerVirtualization at the OS level is a feature of an operating system which has a kernel that allows the existence of multiple user-space instances. We call this type of virtualization containerization and these user-space instances containers (partitions, virtual environments or jails).Programs can run inside the container but are restricted only to the content of the container and devices assigned to that container. Unlike the primary OS, these user-space instances believe they have all available resources but are limited to the resources allocated to the container.As this level of virtualization uses the same OS and kernel as the host, it can only differ from its host by the version of OS. Therefore it is limited as it can’t have a different OS than its host.
Types of HypervisorsTwo types of hypervisors are used to create virtual environments:
- Type 1 hypervisors (native/bare metal hypervisors)
- Type 2 hypervisors (hosted hypervisors)
Type 1 HypervisorType 1 or bare-metal hypervisors are installed directly on the physical hardware of the host machine, providing a layer between the hardware and an OS. On top of this layer, you can install many virtual machines. The machines are not connected in any way and can have different instances of operating systems and act as different application servers.Management ConsoleSystem administrators and advanced users control the hypervisor remotely through an interface called a management console.With it, you can connect to and manage instances of operating systems. You can also turn servers on and off, transfer operating systems from one server to another (in case of downtime or malfunction) and perform many other operations.A type 1 hypervisor is highly secure since it doesn’t have an attack surface of an underlying operating system (host). Also, it controls and assigns the resources allocated to each virtual machine based on its usage to avoid wasting resources.Examples of type 1 hypervisors include VMware ESXi, KVM, Oracle VM, Citrix XenServer, Microsoft Hyper-V, and others.
Type 2 HypervisorUnlike type 1, a type 2 hypervisor is installed on top of an existing operating system. This allows users to utilize their personal computer or server as a host for virtual machines. Therefore, you have the underlying hardware, an operating system serving as a host, a hypervisor and a guest operating system.
Although a VM is isolated, the primary OS is still directly connected to the hardware. This makes it less secure than type 1 hypervisors.In environments where security is paramount, this type of hypervisor may not suit your needs. However, end-users and clients with small businesses may find this type of environment more fitting.Having a hosted hypervisor allows more than one instance of an operating system to be installed. However, you should be careful with resource allocation. In the case of type 2 hypervisors, over-allocation may result in your host machine crashing.Examples of type 2 hypervisors include VMware Workstation, KVM, Oracle VM VirtualBox, Microsoft Virtual PC, Red Hat Enterprise Virtualization and others.
Note: The guest machine is not aware of its part of a larger system and all actions you run on it are isolated from the host.