Virtualization is the process of abstracting resources from their underlying hardware to create virtual versions of a network resource, such as a server, desktop, or storage device. The concept of virtualization has been around since the late 1960s. Today, the use of virtualized servers has become essential for businesses and forms the foundation of cloud computing.
Server virtualization allows for the creation of multiple virtual servers on a single physical server. Each virtual server operates as an isolated and independent server and runs its own operating system. Organizations can run multiple workloads on a single physical server, maximizing utilization.
Dgtl Infra explains what server virtualization is, along with its different types and examples, including the types of software (hypervisors) involved. We also highlight the main advantages and disadvantages of server virtualization and discuss when an organization should use it. Finally, we explore how server virtualization powers cloud computing and how different cloud service providers (CSPs), like Amazon Web Services (AWS) and Microsoft Azure, leverage and enable the technology.
What is Server Virtualization?
In a client-server architecture, a server is a computer that receives and processes requests from client computers on the same network. Traditionally, each server in a data center requires dedicated hardware and is capable of supporting a single operating system (OS). It means organizations need multiple dedicated servers to host different applications and workloads to avoid compatibility issues.
Today, enterprise-grade servers are powerful enough to handle multiple workloads. Whereas reserving them for a single workload each, often results in underutilization of server resources.
Server virtualization allows organizations and users to divide a single piece of hardware into multiple virtual servers, each working as an independent machine with its own share of resources. Each virtual server is capable of supporting its own OS, applications, and workloads. This way, organizations can use a single physical server to host different operating systems and divide its resources between several tasks.
How Does Server Virtualization Work?
Server virtualization abstracts all software, such as the operating system (OS) and other applications, from the underlying hardware. This abstraction and isolation are achieved through specialized software called a hypervisor, which sits between the physical hardware and the virtual machines (VMs) running on top.
A hypervisor virtualizes a computer machine’s physical resources, such as processors, memory, and network interfaces, and also translates all requests between the physical and virtualized components.
Basically, a hypervisor partitions physical hardware resources and distributes them among VMs, which are smaller logical instances of a computer machine. This way, each VM has its own subset of CPU, memory, storage, and network interfaces. The hypervisor enables each VM to access the physical hardware resources in a controlled and isolated manner.
Once a hypervisor creates virtual machines or virtual servers in the case of server virtualization, all software, operating systems, drivers, and applications must be installed on them. The OS installed on a VM is referred to as a guest operating system (guest OS).
What is the Main Purpose of Server Virtualization?
Traditionally, enterprises had to dedicate each server to a single application or workload. Considering the sheer number of applications modern enterprises rely on, enterprises would have to procure more servers than necessary (i.e., overprovision) and bear the ongoing maintenance costs of large data centers. In addition, enterprise workloads do not require as many compute and storage resources as today’s enterprise-grade servers offer, which means most servers remain severely underutilized anyway.
Server virtualization divides each physical server into multiple, smaller virtual servers. Each virtual server has its own operating system (OS) and applications, allowing a single physical server to run several workloads. Through server virtualization, enterprises can reduce the number of servers they need and utilize their existing server infrastructure to its maximum capacity. This results in ease of management and cost savings through efficient resource utilization and lower power consumption.
What are Examples of Server Virtualization?
As an example of server virtualization, consider an organization requiring several server roles, such as a web server for hosting a website, a domain controller for authenticating internal users, and a database server for storing and managing databases. Instead of installing multiple servers, the organization can use server virtualization to create multiple virtual servers and consolidate all these server roles onto a single physical server.
Additionally, there are several virtualization offerings available for organizations and individuals. Some of the most popular products for server virtualization include VMware vSphere, VMware Workstation, Microsoft Hyper-V, and Oracle VM Virtual Box.
Types of Server Virtualization
Different types of server virtualization can be implemented, depending on the level of isolation between the virtual machines and their host hardware. The three major types of server virtualization are full virtualization, paravirtualization, and OS-level virtualization.
Full Virtualization vs Paravirtualization – Diagram
Below are the three major types of server virtualization:
1) Full Virtualization
Full virtualization is a type of server virtualization in which a hypervisor distributes and allocates hardware resources to completely isolated virtual servers. Each virtual server is oblivious to the presence of a hypervisor or other virtual servers running on the physical machine. It functions as a fully independent and self-sufficient computer, as if it is running on its own dedicated hardware.
Full virtualization allows enterprises to customize virtual servers individually since they all act as autonomous and distinct computers.
Paravirtualization allows all virtual machines (VMs) to share resources and communicate with each other. To enable this flexible resource sharing, virtual machines must be able to interact directly with the hypervisor, instead of being unaware of its presence.
Paravirtualization requires some modifications to the guest OS, as well as a specialized hypervisor to enable direct communication via a hypercall. Because each virtual machine can interact directly with other virtual machines on the same computer machine, the hypervisor requires fewer resources for managing the virtual machines.
3) OS-Level Virtualization
OS-level virtualization eliminates the need for a hypervisor, as the operating system (OS) is configured to allow multiple user-space instances, called containers. Each container basically functions as an independent and isolated computer and packages an application or a workload along with all its dependencies. Unlike a hypervisor that enables multiple OS instances to run on the same hardware, OS-level virtualization isolates different processes running on the same OS instance.
Programs running inside containers are isolated and restricted to the resources and devices allocated to the particular container. Containerized applications can run on any underlying platform, and to this extent, containerization effectively achieves what a hypervisor does with virtual machines (VMs).
READ MORE: Containers – What are they? and How Do they Work?
Server Virtualization Software
Server virtualization software is commonly called a hypervisor. It is also referred to as a virtual machine monitor (VMM) or VM monitor. Organizations use hypervisors to partition dedicated servers into several virtual instances and allocate server resources to different virtual machines, ensuring resource optimization.
There are two different types of hypervisors available in the market:
A type-1 hypervisor is installed directly on the firmware of the physical machine and is sometimes erroneously referred to as a “bare metal” hypervisor. In reality, it is software that runs natively and directly on top of the hardware, with direct access to its components and resources.
Compatibility with attached hardware can be an issue with type-1 hypervisors. Examples of type-1 hypervisors include VMware ESXi, Microsoft Hyper-V, and Citrix XenServer powered by the open-source Xen Project hypervisor.
Instead of being tied directly to the underlying hardware, a type-2 hypervisor runs under a host operating system installed on the hardware. The type-2 hypervisor does not have direct interaction and control over the underlying hardware, which means that some performance will be lost due to the operating system in the middle needing its own resources, patching requirements, and operational oversight.
However, the host OS allows type-2 hypervisors to emulate hardware that is different from the underlying physical machine. Examples of type-2 hypervisors include Oracle VM VirtualBox and VMware Workstation.
Advantages and Disadvantages of Server Virtualization
What are the Advantages of Server Virtualization?
The advantages of server virtualization are server consolidation, efficient resource consumption, an isolated environment, and faster deployment.
1) Server Consolidation
Server consolidation is the single biggest advantage of server virtualization. By transferring different workloads to various virtualized servers running on the same physical machine, organizations can consolidate different server roles into just a few physical machines. This way, organizations can reduce the number of physical servers they need. Fewer physical servers result in a smaller hardware footprint, as well as lower procurement and maintenance costs.
2) Efficient Resource Consumption
Physical servers today have significantly more processing power and storage capacity than what an average enterprise application or workload needs. Traditionally, the physical server’s excess resources would go to waste. However, server virtualization distributes the available resources to multiple virtual servers, which results in efficient utilization of powerful hardware.
3) Isolated Environment
Organizations can execute untrusted programs under an isolated and controlled environment. An admin can filter the operations of a program running on a virtual machine (VM) and prevent their execution on the host machine. This technique is known as sandboxing.
Virtualization is often used in development and testing environments because of its isolation feature. If issues arise when trying out a new build, the virtual machine can be reset without data loss or downtime for other systems.
4) Faster Deployment
Purchasing and setting up new physical servers can take days or weeks, whereas virtual servers can be deployed within minutes. Enterprises can also quickly replicate virtual servers for backing up critical systems to meet their disaster recovery objectives.
What are the Disadvantages of Server Virtualization?
The disadvantages of server virtualization are security vulnerability, performance degradation, virtualization sprawl, and upfront costs.
1) Security Vulnerability
The security of virtual servers is tied to the security of the hypervisor. Because the hypervisor has control over the virtual machines (VMs) and their access to computing resources, the possibility of malware injections and open attack vectors becomes pronounced for any VMs hosted under or controlled by the hypervisor.
2) Performance Degradation
There is a slight decrease in virtual server performance, as compared to a physical server, because of all the additional translations and resource sharing and mapping in a virtual environment. However, with the latest virtualization technologies and techniques, the performance degradation is minimal and barely noticeable.
3) Virtualization Sprawl
Since virtual servers are relatively easy to build, administrators are more likely to create more VMs than needed. Companies end up having to manage more virtual servers than they can handle, creating sprawl.
4) Upfront Costs
Transitioning from legacy to virtualized systems is costly. Furthermore, although uncommon, some legacy hardware and software may not support virtualization at all.
When Should Server Virtualization be Used?
Overall, server virtualization allows greater IT agility, flexibility, and efficiency. Organizations should consider server virtualization to reduce their IT costs and improve productivity and resiliency. However, when moving from legacy systems, organizations need to evaluate their existing infrastructure and workloads to ensure compatibility and estimate the costs of acquiring relevant licenses.
Server Virtualization in Cloud Computing
Virtualization, in itself, is not cloud computing. The technology, however, is responsible for making it possible to deliver cloud computing services. One of the primary characteristics of a cloud service provider (CSP) is the ability to provision virtualized infrastructure resources using a self-service management tool.
By offering well-defined application programming interfaces (APIs) and enabling automation, cloud providers have made it possible for customers to provision necessary resources using a self-service model. Therefore, customers do not have to wait in a queue to get their resources deployed, while a cloud engineer performs the necessary configuration for them. Instead, customers can interact with the cloud services directly using API calls, and “spin up” their own resources in a matter of minutes.
What is Server Virtualization in AWS?
Amazon Web Services (AWS) offers the ability to provision virtualized infrastructure resources using self-service management tools – through its AWS Management Console (accessible via a web browser), command-line interface (CLI), and direct access to its software APIs – to enable customers to provision their resources, such as servers, storage, and databases.
As an example, an Amazon Elastic Compute Cloud (Amazon EC2) instance is a virtual server that runs in AWS data centers.
READ MORE: Amazon Web Services (AWS) Data Center Locations
What is Server Virtualization in Microsoft Azure?
Azure cloud is built on Microsoft’s proprietary Azure Hypervisor. To enable self-service access to its virtualized infrastructure and resources, Azure provides a web-based Microsoft Azure Portal comprising various tools and resources, such as Azure PowerShell, Azure Resource Manager, Azure Monitor Agent (AMA), and Azure Diagnostic Agent, amongst others.
Microsoft Azure Portal enables organizations to centrally monitor and manage their Azure resources, including VMs, storage resources, applications, services, and data, across all devices and platforms.
As an example, Azure Virtual Machines (VMs) are the Azure equivalent of a virtual server running in Azure data centers.
READ MORE: Microsoft Azure’s Data Center Locations