Brian Jackson - Fotolia
Historically, paravirtualization arose as a way to get better performance compared to full, software-emulated virtualization. This was accomplished by allowing the OS to interact with the hypervisor directly to effectively offload some of the most time-consuming tasks from hypervisors that otherwise implement a full software-based VM manager. Paravirtualization advantages include easier backups, fast migrations, improved system utilization, server consolidation, power conservation and so on.
But in addition to paravirtualization advantages, there are significant disadvantages to consider. Although the technology promises performance gains, those gains are often erratic and difficult to predict. The actual performance benefits of paravirtualization vary with the workload -- some paravirtualized applications perform better than others. The benefit really depends on the number of hypercalls -- the paravirtualization API that connects the OS and hypervisor -- and how much compute time those hypercalls really save for the particular workload. For example, a workload that generates a lot of hypercalls might see a noteworthy performance boost compared to that same application running in full, software-emulated virtualization.
Paravirtualization also demands a suitable hypervisor and a modified OS capable of interacting with the hypervisor through hypercalls. A Xen hypervisor and Linux kernel are the most common combination. Nonmodified OSes won't run on a paravirtualized hypervisor like Xen -- at least not without suitable paravirtualization drivers for the OS. Businesses certainly can't coax a vendor to create -- let alone maintain -- a suitable paravirtualized version of the OS. Simultaneously, the tight coupling between the OS and hypervisor creates a dependency that can potentially be broken with a hypervisor or OS update or upgrade. The additional communication channel between the OS and the hypervisor also reduces the isolation of each VM and poses possible security vulnerabilities. Taken together, this OS/hypervisor requirement limits the options available to the enterprise, which is highly undesirable.
Paravirtualization advantages were also blunted by the general availability of processor virtualization command set extensions, such as Intel Virtualization Technology (Intel VT) and Advanced Micro Devices Virtualization (AMD-V). This vastly improved the performance of full virtualization and the workloads running in those VMs. Considering that almost all mainstream servers now include those command set extensions, full hardware-assisted virtualization has emerged as the standard for enterprise deployment.
Paravirtualization inside and out
Both full virtualization and paravirtualization enable hardware resource abstraction, but that's where their similarities end. Learn more about the differences between these two technologies. This series also covers the functions and features of paravirtualization and what OSes support paravirtualization technology.
Today, organizations can still employ paravirtualization as a niche platform for legacy systems. Since paravirtualization doesn't require processor extensions, like Intel VT and AMD-V, paravirtualization can be deployed on hardware platforms that don't offer hardware-assisted virtualization. This is an increasingly rare circumstance where the business must maintain aging legacy workloads or highly customized applications that are closely tied to older hardware platforms.
Use these performance enhancements, consolidate servers
Optimize your virtual environment through memory management
Dig Deeper on Introduction to virtualization and how-tos
Related Q&A from Stephen J. Bigelow
Navigating data center malfunctions when hardware is off premises can be tricky. Organizations must have strong SLAs with their colo provider to ... Continue Reading
Regression tests and UAT ensure software quality and both require a sizeable investment. Learn when and how to perform each one, and some tips to get... Continue Reading
Learn the meaning of functional vs. nonfunctional requirements in software engineering, with helpful examples. Then, see how to write both and build ... Continue Reading