A hypervisor is a virtualization tool that allows a single host computer to run multiple guest virtual machines, sharing resources such as processor threads, memory or network throughput. In simple terms, a hypervisor abstracts away the host computer's hardware, allowing multiple operating systems to run efficiently on a single computer at the same time.
Common examples of a hypervisor include VMware Workstation / VMware ESXi, Windows Virtual PC / Microsoft Hyper-V, Xen and KVM. These tools all serve the purpose of allowing multiple guest virtual machines to run on a single piece of hardware. The guests may all run the same operating system or could run different operating systems.
How Does a Hypervisor Work?
Hypervisors act as a layer that abstracts the computer's software from its hardware. They allow each virtual machine's operating system to behave as if it was running on dedicated hardware and pass the requests from that operating system to the host machine.
Some hypervisors are built into the host device's firmware, while others run on top of the host computer's operating system. The hypervisor does the job of managing the communication between the virtual machine and the underlying hardware.
As an example, let's imagine you're a software developer running Mac OS X. You need to test your applications on Windows and Linux. Using a Type 2 (hosted) hypervisor, you can run a Linux and Windows 11 virtual machine on your Mac. If the Mac is sufficiently powerful, you could have both of those virtual machines running at the same time and tab between them and your main development environment. The hypervisor manages the allocation of processor threads and memory, and it creates virtual drives that exist as files on the host operating system's file system.
Types of Hypervisors
Hypervisors can be divided into two key categories: bare metal hypervisors and hosted hypervisors.
Bare Metal Hypervisors
As the name suggests, bare metal hypervisors run directly on the host computer. These are often referred to as Type 1 hypervisors, which contain all required OS components and a hypervisor. They are the most deployed option. With a bare metal hypervisor, there is no host operating system. The hypervisor translates each guest VM's requests for access to resources, giving them more direct access to the host hardware.
Bare metal hypervisors offer some security benefits because there's a smaller attack surface. In addition, there are performance benefits because the overhead of running the hypervisor by itself is lower than the overhead of running an operating system. This makes Type 1 hypervisors a popular choice for data centers and enterprise hosting, where the priorities are high performance and the ability to run as many VMs as possible on the host. Microsoft's Hyper-V Technology is an example of a bare metal hypervisor that offers significant performance improvements over traditional software-based (Type 2) hypervisors, such as IBM's early entry into the virtualization space.
A hosted hypervisor, or Type 2 hypervisor, is one that runs on top of the host computer's operating system. These have higher latency than bare metal hypervisors, so they're less commonly used in data center environments. However, they're useful for software developers, testers and security researchers who need to run applications in a variety of environments.
Hosted hypervisors are sometimes used as a way of deploying a preconfigured environment to multiple machines. Developers can have their computers configured how they want them to be and test their work in a virtual machine with a predictable configuration.
Why Use a Hypervisor?
Hypervisors are a good choice for:
Solving infrastructure-level issues
Running multiple operating systems on a single piece of hardware
Running legacy software
Creating sandboxed environments
Creating stateful virtual machines that are easy to pause, suspend or move to other hardware
Sometimes, running a hypervisor and full virtual machines is not the optimal solution. Because each virtual machine runs its own operating system, they are quite resource-intensive. Containers are becoming increasingly popular for situations where developers or systems administrators need to quickly deploy more lightweight sandboxed environments.
Consider containers if:
You want the security benefits of sandboxing but don't need to replicate entire operating systems
You're running stateless microservices
All the applications you need can run on the same operating system
Hypervisors are generally quite secure. However, there are some issues systems administrators should be aware of. For example, the Spectre and Meltdown attacks discovered in 2018 target vulnerabilities in underlying hardware. Even today, those vulnerabilities still exist, so it's important to keep up to date with BIOS and hypervisor software patches.
Another important consideration is how the hypervisors are managed. Limit access to the hypervisor hosts and the management software. Enable logging so that you can review who is accessing the hypervisor host and any changes they're making. Keep in mind that if a guest VM becomes compromised, any damage should be limited to that machine and the services running on it. However, if the hypervisor host is compromised, the attacker could gain privileged access to anything running on the hypervisor.
One way to protect the guest machines is to encrypt them. This not only makes life more difficult for external attackers by limiting what they can see if they do manage to gain access to the hypervisor host, but it also protects against internal threats. If your virtual drives are unencrypted, a malicious systems administrator could make copies of them to read at their leisure. Encrypting the drives makes them unreadable when they're at rest. It's still possible to take backups of virtual machines that are encrypted, but the backups are readable only when mounted in the correct guest OS.
Choosing the Right Hypervisor
Hypervisors come in many flavors to suit different use cases. When choosing a hypervisor, consider the following:
The level of IT expertise in your organization
What infrastructure is already available
The type and size of workload the hypervisor will be expected to deal with
Whether latency is an issue
In most cases, a smaller organization that simply needs access to virtual machines for testing would do well to start with a Type 2 hypervisor. Larger companies that are attempting to maximize the use of their mission-critical infrastructure or that need high-performance VMs should consider a Type 1 hypervisor.
Once you've narrowed down the type of hypervisor, the next consideration is which hypervisor vendor to work with. This choice may be guided by considerations such as:
Whether you're already heavily invested in a cloud platform/software ecosystem
What sort of licensing agreement would suit your budget and scaling needs
How much vendor support you would like to have
How to Get Started
Type 2 hypervisors tend to have quite flexible and powerful management systems, making them easy to use even for teams with limited IT resources. Type 1 hypervisors may require more expertise. When setting up your virtual machines, take into account the following:
How many machines will be running on the host to allocate resources accordingly
Appropriate bursting limits to ensure reliable performance
The size of the virtual disk and whether to store it as a single file or multiple files
The configuration of drive encryption, considering any performance overhead this may create
How the network will be configured (for example, using separate NICs for each group of virtual machines and defining VLAN IDs)
That the networks for host management and other privileged resources are isolated from the VMs
A backup solution to ensure it's easy to restore the virtual machines in the event of an outage or data loss
If you'd like to know more about how Veeam can help you manage your backups and disaster recovery plans, take a look at Veeam Backup & Replication. This flexible and powerful software suite enables you to back up virtual machines and restore them in minutes, getting up and running again as quickly as possible after an outage.