Server virtualization is essential for the efficient operation of any data center. But what exactly is server virtualization? Server virtualization in 2020 is a more complicated and involved topic than when the concept was first introduced nearly two decades ago. However, the core basic concepts and benefits remain the same.

server virtualization

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, it is a waste of resources in many cases. 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.

Server Virtualization Components

Depending on the approach, server virtualization uses some different components. These include:

A host machine, which is the physical server hardware where virtualization occurs

Virtual machines (VMs), or guest machines, which contain the assets that are abstracted from a traditional server environment

A hypervisor is specialized software that creates and maintains virtual machines and can be run natively on bare metal servers or hosted on top of an existing operating system.

Hypercalls, which are messages sent between para-virtualized hypervisors and operating systems to share resources using an API.

Containers, which are unique user environments that are created in virtualized operating systems. With a container engine, multiple containers can make use of the same interfaces and shared libraries of the underlying host operating system. Containers are often deployed inside of hypervisors or virtual machines to offer an additional layer of isolation from the server’s core host operating system.

server virtualization

Types of Server Virtualization

There are three (3) approaches to server virtualization based on the isolation they provide:

Virtual Machine Model Or Full Virtualization

In 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 Machine

When you need multiple virtual machines and have flexible resource sharing, a fully virtualized environment may not be necessary. In this case, a para-virtualized 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 para-virtualized hypervisor and operating systems. These are modified by implementing an API (application programming interface) to enable them to communicate through hyper calls.

Operating System Layer

Virtualization at the OS level is a feature of an operating system that 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.

server virtualization

Virtualization vs. Cloud

Virtualization and cloud are two technologies that are often interlinked. Cloud technology delivers server compute resources on an elastic model that can scale up or down as needed. Physical servers are not elastic and have fixed capacity, which is why the cloud is built on top of server virtualization.

With cloud server virtualization, cloud vendors use server virtualization to abstract large pools of computing resources within data centers to be consumed by end-users. Cloud services provide users with access to virtualized server capacity but not to the physical hardware itself.

For example, Amazon Web Services (AWS) might have tens of thousands of physical servers in a data center, but end users do not get access to the actual physical server hardware. Instead, the EC2 (Elastic Compute Cloud) service offers cloud server virtualization with different sizes and configurations of virtual machine cloud instances.