apops - Fotolia

Tip

4 FAQs to better understand a paravirtualization interface

Admins are using paravirtualization because of its ability to improve system performance and reduce virtualization overhead, but its challenges can cause issues for some.

A paravirtualization interface provides admins with additional capabilities beyond full virtualization, such as easier backups, faster migrations, improved system utilization and power conservation. However, paravirtualization also comes with its own unique challenges, such as unpredictable performance gain predictions and hardware compatibility issues. To better understand paravirtualization and its nuances, admins should familiarize themselves with some common FAQs.

Paravirtualization has risen in popularity because of its ability to enhance system performance and minimize virtualization overhead, enabling admins to control underutilization of VMs. When adopting paravirtualization, admins should understand exactly what paravirtualization is, as well as the uses, advantages, disadvantages, functions and features, and which OSes offer support for a paravirtualization interface.

What are the key differences between full virtualization vs. paravirtualization?

There are various types of virtualization, such as full virtualization and paravirtualization. Full virtualization is when a hypervisor provides complete abstraction of the guest OS, which means the guest OS doesn't acknowledge the presence of the hypervisor in question. Essentially, VMs and their guest OSes act as though they each run on independent computers.

This enables admins to support multiple OSes and combine legacy systems with modern environments with hardware. However, full virtualization can lead to slower runtimes and performance issues due to its reliance on data processing and hardware emulation.

On the other hand, paravirtualization offers remedies to full virtualization's downfalls. For example, a paravirtualization interface enables an OS to recognize the presence of a hypervisor and share activity -- known as a hypercall -- that is too complex for the hypervisor's VM manager to control. As a result, admins can improve performance levels and system utilization, as well as backups, migrations, server consolidation and power consumption.

However, paravirtualization requires admins to modify the OS, which can limit an enterprise's OS options significantly. It also creates a hypervisor- and OS-dependency, which can later result in compatibility issues.

Full virtualization vs. paravirtualization

What are the uses, advantages and disadvantages of paravirtualization?

As previously mentioned, paravirtualization became the answer to many of the drawbacks of full virtualization. By enabling an OS to directly interact with the hypervisor, admins were able to offload time-consuming tasks from the VM manager. This provides easier backups, faster migrations, improved system utilization and power conservation. However, paravirtualization comes with its own unique challenges.

Though system performance can improve when admins adopt paravirtualization, those performance gains are erratic and difficult to predict. In addition, improvements in performance significantly depends on admins' workload type. Ultimately, some paravirtualized applications won't perform as expected. This is because paravirtualization utilizes APIs to exchange hypercalls between the paravirtualization hypervisor and guest VMs' OSes. If a workload can't perform a certain number of hypercalls, then admins might not see a significant boost in performance compared to a system that uses full virtualization.

Despite some of paravirtualization's issues, admins still employ the technology, especially for legacy systems. Because paravirtualization doesn't require processor extensions, admins can deploy paravirtualization on systems that don't offer hardware-assisted virtualization. For example, admins can benefit from paravirtualization if they must manage legacy workloads and highly customized applications that are closely tied to older hardware.

What are some examples of paravirtualization interface features and functions?

A paravirtualization interface can provide admins with features and functions by supplying disks and network drivers, as well as supporting an emulated motherboard and legacy boot protocols. Supplying disks and network drivers enables admins' systems to handle storage I/O and network communications, as well as support interrupts and timers so that system devices can call and use hardware as needed.

In addition, supporting motherboard emulation through paravirtualization enables software drivers to accommodate differences between physical motherboards, such as circuitry, effectively expanding hardware support. Support for legacy boot also enables admins' systems to use traditional I/O system firmware over Unified Extensible Firmware Interface, which can help support older hardware used to run legacy applications.

Some other features include privileged instructions, which are low-level processor operations executed in protected mode to access I/O devices and sensitive data. Paravirtualization also supports page tables, which help the OS map physical memory to virtual memory.

Which OSes include paravirtualization support?

Paravirtualization requires an OS that admins can modify and adapt to handle communication between the guest OS and underlying hypervisor. Specific versions of the Linux kernel have the ability to support paravirtualization because paravirt operations (PVOPS) extensions within those Linux kernels enable the system to paravirtualize an OS. Hypervisors such as Xen contain the PVOPS capability to paravirtualize an OS, making it an ideal hypervisor for paravirtualization.

However, paravirtualization support from Linux can vary depending on the kernel level. Though older versions of Linux OSes can support paravirtualization, admins might not have access to updated features and functions in newer versions. As a result, admins must ensure that they consider the Kernel version for a particular OS prior to going forward with paravirtualization.

Dig Deeper on Containers and virtualization