An Overview of Virtualization Technologies: From Full Virtualization to Containerization
This article provides a comprehensive introduction to virtualization technologies, covering historical background, full and half virtualization, hardware‑assisted virtualization, KVM‑QEMU, GPU and I/O virtualization, and container solutions such as LXC and Docker, while highlighting their roles in modern cloud computing.
Introduction
Cloud computing has become pervasive, and the market now features distinct vendor and player tiers. Detailed analyses of the PaaS and SaaS markets in China (2021) are referenced, along with several research reports and a standardization white‑paper.
Hybrid Cloud
Two‑thirds of cloud service buyers are seeking hybrid‑cloud solutions to meet unique application requirements. Topics include application‑centric hybrid cloud practices, large‑enterprise migration paths, and technical series on hybrid‑cloud solutions.
Historical Background
Virtualization abstracts physical resources (CPU, memory, storage, network) into logical units that can be partitioned and combined to form multiple independent computing environments.
Key concepts include partitioning, isolation, and encapsulation, allowing multiple virtual machines to run on a single physical server while each OS perceives its own dedicated hardware.
Full Virtualization: VMware Binary Translation
Full virtualization translates guest instructions into host‑compatible instructions, similar to Java bytecode execution. Sensitive instructions that cannot trigger exceptions are handled via binary translation, enabling the guest OS to run unmodified.
VMware’s binary translation combines direct execution of safe instructions with translation of privileged ones, but the software‑only approach incurs performance overhead.
Code example: 陷阱 & 模拟
Half Virtualization: Xen Kernel Modifications
Half virtualization replaces privileged instructions with hypercalls, reducing the need for full instruction trapping and improving performance. Xen, an open‑source project launched in 2003, exemplifies this approach.
Virtualization Software Architecture Classification
Server virtualization can be categorized as:
Hosted (paravirtualization) – a regular OS runs a virtualization manager as an application.
Bare‑metal (hypervisor) – the hypervisor runs directly on hardware, handling privileged instruction trapping and I/O scheduling.
OS‑level – the host OS allocates resources among containers without a separate hypervisor (e.g., OpenVZ, Docker).
Hybrid – a kernel driver provides a virtual hardware manager (VHM) that mediates between VMs and the host OS.
Memory Virtualization
Virtual memory managers maintain shadow page tables that map guest virtual addresses to host physical addresses, or use hardware extensions such as Extended Page Tables (EPT) to translate guest physical addresses directly.
Hardware‑Assisted Virtualization (VT / AMD‑V)
Intel VT‑x and AMD‑V introduce root and non‑root operation modes, allowing the hypervisor to run in root mode while guests run in non‑root mode, reducing the need for binary translation.
VT‑d enables direct I/O access for guests, while VT‑c (including VMDq and VMDc) offloads network processing to hardware, and SR‑IOV allows a single physical NIC to be shared among multiple VMs.
KVM‑QEMU
KVM (Kernel‑based Virtual Machine) integrates a hypervisor into the Linux kernel, providing hardware‑assisted CPU and memory virtualization. QEMU complements KVM by emulating peripheral devices, forming the KVM‑QEMU architecture.
GPU Virtualization
GPU pass‑through assigns a physical GPU to a single VM, while GPU sharing or vGPU technology virtualizes a GPU into multiple logical GPUs that can be concurrently used by several VMs.
I/O Virtualization
I/O virtualization abstracts storage and network devices, allowing multiple VMs to share bandwidth while maintaining isolation. Techniques include full device emulation, paravirtualized front‑ends, and hardware‑assisted IOMMU/PCI‑SR‑IOV.
Container Technology – LXC & Docker
Containers provide OS‑level isolation using cgroups and namespaces, offering lightweight execution environments compared to full VMs. LXC is a classic implementation; Docker builds on LXC (initially) to package applications and dependencies for easy deployment.
Containers are more efficient but offer weaker isolation than hypervisor‑based VMs, making security a key consideration.
Conclusion
The article outlines the evolution of virtualization from early software‑only solutions (VMware Workstation, Xen) to hardware‑assisted hypervisors (Intel VT, AMD‑V) and modern container technologies (Docker). It highlights how advances in hardware support have dramatically improved performance and enabled fine‑grained virtualization for cloud and micro‑service architectures.
Architects' Tech Alliance
Sharing project experiences, insights into cutting-edge architectures, focusing on cloud computing, microservices, big data, hyper-convergence, storage, data protection, artificial intelligence, industry practices and solutions.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.