Types of Server Virtualization: Understanding the Different Approaches
Explore the various types of server virtualization, including hypervisor-based methods. Learn how virtualization divides a physical server into multiple virtual servers, each running its own operating system, and the benefits this provides.
Types of Server Virtualization in Computer Networks
Server virtualization is the process of dividing a physical server into multiple virtual servers, each capable of running a different operating system (OS), known as "guest operating systems." These operate on a separate host OS without awareness of other guests on the same physical server. Virtualization uses various techniques to achieve this separation.
Types of Server Virtualization
1. The Hypervisor
A hypervisor, or Virtual Machine Monitor (VMM), exists between the OS and the hardware. It provides the necessary services for operating multiple operating systems effectively. The hypervisor manages queuing, dispatching, and handling hardware requests while responding to privileged CPU instructions. The host OS runs on top of the hypervisor to manage virtual machines.
2. Paravirtualization
Paravirtualization uses a hypervisor for emulation and software-based trapping, where the guest OS is modified and recompiled to directly communicate with the hypervisor. This reduces emulation overhead and enhances performance.
- Example: Xen with a tailored Linux environment for domain 0.
Advantages:
- Simpler and better performance.
- Eliminates emulation overhead.
Limitations:
- Requires modification of the guest OS.
3. Complete Virtualization
Similar to paravirtualization, complete virtualization can simulate underlying hardware as needed. The hypervisor traps system operations like I/O and status changes, software-emulating these actions to appear as though they're being executed on real hardware. This allows an unaltered OS to run on top of the hypervisor.
- Example: VMware ESX Server with a modified Linux Service Console.
Advantages:
- No modification required for the guest OS.
Limitations:
- Emulation makes complex operations slower.
- New device driver installation is challenging.
4. Virtualization with Hardware Assist
This approach is similar to complete virtualization but relies on hardware support, typically from x86 architecture extensions, to reduce the hypervisor overhead. It allows unmodified OSes to handle hardware access, privileged operations, and communication with the virtual machine using hardware-assisted features.
- Examples of supported hardware: AMD’s V Pacifica and Intel’s VT Vanderpool.
Advantages:
- No need to modify the guest OS.
- Very low overhead for the hypervisor.
Limitations:
- Requires specific hardware support.
5. Virtualization at the Kernel Level
Kernel-level virtualization runs a different Linux kernel and views virtual machines as user-space processes. Unlike the hypervisor approach, it simplifies management by integrating virtual machines within the host OS. Communication with the main Linux kernel occurs through device drivers.
- Examples: Kernel Virtual Machine (KVM), User-Mode Linux (UML).
Advantages:
- No need for specialized administrative software.
- Minimal overhead.
Limitations:
- Requires hardware support.
6. System-Level or Operating System Virtualization
System-level virtualization utilizes a single OS kernel to run multiple, logically separated environments, also known as the "shared kernel approach." Unlike server virtualization, all virtual systems in this model share the same OS kernel, making it lightweight and efficient.
- Examples: FreeVPS, Linux VServer, OpenVZ.
Advantages:
- Lightweight compared to full machines.
- Can host more virtual servers.
- Enhanced security and isolation.
- Little to no overhead.
- Supports live migration and dynamic load balancing.
Limitations:
- Kernel or driver issues can halt all virtual servers.