Paravirtualization (PV): Difference between revisions

From Xen
Jump to navigationJump to search
(Added a proper section on Paravirtualization)
 
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== What is it? ==
== What is it? ==
Paravirtualization (PV) is an efficient and lightweight virtualization technique introduced by Xen, later adopted by other virtualization solutions. PV does not require virtualization extensions from the host CPU and thus enables virtualization on hardware architectures that do not support Hardware-assisted virtualization. However, PV guests and control domains require kernel support and drivers that in the past required special kernel builds, but are now part of the Linux kernel as well as other operating systems.
[[File:XenPV-All.png|right|thumb|500px|This diagram gives an overview of how Paravirtualization is implemented in the Xen Project Hypervisor]] Paravirtualization (PV) is an efficient and lightweight virtualization technique introduced by the Xen Project team, later adopted by other virtualization solutions. PV does not require virtualization extensions from the host CPU and thus enables virtualization on hardware architectures that do not support Hardware-assisted virtualization. However, PV guests and control domains require kernel support and drivers that in the past required special kernel builds, but are now part of the Linux kernel as well as other operating systems.

Paravirtualization implements the following functionality
* Disk and Network drivers
* Interrupts and timers
* Emulated Motherboard and Legacy Boot
* Privileged Instructions and [[X86_Paravirtualised_Memory_Management|Page Tables]]

== PV IO Drivers ==
[[File:XenPV.png|thumb|right|500px|This figure shows how a Hardware driver interacts with the PV back-end and PV front-end.]]Disk and Network support (but in general the PV approach can also be applied to other peripherals such as audio, USB, etc.) is implemented via a pair of very simple PV back-end and PV front-end drivers.

Architecturally, PV works by opening additional channels of communication between the hypervisors and the guest operating systems via PV front end and back end drivers as shown in the figure.


== Performance ==
== Performance ==
PV delivers higher performance than full virtualization because the operating system and hypervisor work together more efficiently, without the overhead imposed by the emulation of the system's resources. This makes a big difference for disk and network operations, where the use of PV network, bus and block device drivers enable near-native performance. Examples of devices which benefit from Paravirtualization and where drivers are available are block (disks), SCSI, USB, VGA and PCI devices.
PV delivers higher performance than full virtualization because the operating system and hypervisor work together more efficiently, without the overhead imposed by the emulation of the system's resources. This makes a big difference for disk and network operations, where the use of PV network, bus and block device drivers enable near-native performance. Examples of devices which benefit from Paravirtualization and where drivers are available are block (disks), SCSI, USB, VGA and PCI devices.


Architecturally, PV works by opening additional channels of communication between the hypervisors and the guest operating systems via PV front end and back end drivers as shown in the figure.
== PV and Linux (PVOPS) ==
== PV and Linux (PVOPS) ==
As stated earlier, PV requires kernel support. In the Linux kernel, PV support is provided by the paravirt operations extensions (PVOPS) and PV front and back-end drivers that are shipped with Linux. PVOPS allows the kernel to determine at run-time, whether it is running under virtualization (Xen, KVM, VMI, etc.), which will prompt it to use optimized low-level operations for the specific virtualization stack. Xen Guest (DomU) support for Linux was introduced into the Linux kernel with version 2.6.24, whereas Xen Control Domain (Dom0) support was added from version 2.6.37. The key drivers have been added to Linux v 3.0 and since additional drivers and optimizations are added.
As stated earlier, PV requires kernel support. In the Linux kernel, PV support is provided by the paravirt operations extensions (PVOPS) and PV front and back-end drivers that are shipped with Linux. PVOPS allows the kernel to determine at run-time, whether it is running under virtualization (Xen Project, KVM, VMI, etc.), which will prompt it to use optimized low-level operations for the specific virtualization stack. Xen Project Guest (DomU) support for Linux was introduced into the Linux kernel with version 2.6.24, whereas Xen Project Control Domain (Dom0) support was added from version 2.6.37. The key drivers have been added to Linux v 3.0 and since additional drivers and optimizations are added.


== PV and Legacy Applications ==
== PV and Legacy Applications ==
Paravirtualization is a way to extend the life of legacy and custom applications that are only supported on older operating systems. Using Xen PV virtualization you can run these workloads on new, more powerful, energy-efficient hardware and save money in the long run.
Paravirtualization is a way to extend the life of legacy and custom applications that are only supported on older operating systems. Using Xen Project PV virtualization you can run these workloads on new, more powerful, energy-efficient hardware and save money in the long run.


== Compatibility ==
== Compatibility ==
The following links provide information about Xen and PV compatibility with various operating systems:
The following links provide information about Xen and PV compatibility with various operating systems:
* [[DomU_Support_for_Xen|Guest support for Xen]]
* [[DomU_Support_for_Xen|Xen Project Guest support]]
* [[Dom0_Kernels_for_Xen|Control Domain support for Xen]]
* [[Dom0_Kernels_for_Xen|Xen Project Control Domain support]]
* [[Xen_Kernel_Feature_Matrix#KernelCompatbility|PVOPS support in the Linux Kernel]]
* [[Xen_Kernel_Feature_Matrix#KernelCompatbility|PVOPS support in the Linux Kernel]]
* [[Xen_Kernel_Feature_Matrix#XenLinux|Xen kernels in (legacy) Linux distributions]]
* [[Xen_Kernel_Feature_Matrix#XenLinux|Xen Project kernels in (legacy) Linux distributions]]


[[Category:Xen]]
[[Category:Xen]]
Line 25: Line 34:
[[Category:Beginners]]
[[Category:Beginners]]
[[Category:Glossary]]
[[Category:Glossary]]
[[Category:Fundamentals]]

Latest revision as of 14:22, 20 April 2015

What is it?

This diagram gives an overview of how Paravirtualization is implemented in the Xen Project Hypervisor

Paravirtualization (PV) is an efficient and lightweight virtualization technique introduced by the Xen Project team, later adopted by other virtualization solutions. PV does not require virtualization extensions from the host CPU and thus enables virtualization on hardware architectures that do not support Hardware-assisted virtualization. However, PV guests and control domains require kernel support and drivers that in the past required special kernel builds, but are now part of the Linux kernel as well as other operating systems.

Paravirtualization implements the following functionality

  • Disk and Network drivers
  • Interrupts and timers
  • Emulated Motherboard and Legacy Boot
  • Privileged Instructions and Page Tables

PV IO Drivers

This figure shows how a Hardware driver interacts with the PV back-end and PV front-end.

Disk and Network support (but in general the PV approach can also be applied to other peripherals such as audio, USB, etc.) is implemented via a pair of very simple PV back-end and PV front-end drivers.

Architecturally, PV works by opening additional channels of communication between the hypervisors and the guest operating systems via PV front end and back end drivers as shown in the figure.

Performance

PV delivers higher performance than full virtualization because the operating system and hypervisor work together more efficiently, without the overhead imposed by the emulation of the system's resources. This makes a big difference for disk and network operations, where the use of PV network, bus and block device drivers enable near-native performance. Examples of devices which benefit from Paravirtualization and where drivers are available are block (disks), SCSI, USB, VGA and PCI devices.

PV and Linux (PVOPS)

As stated earlier, PV requires kernel support. In the Linux kernel, PV support is provided by the paravirt operations extensions (PVOPS) and PV front and back-end drivers that are shipped with Linux. PVOPS allows the kernel to determine at run-time, whether it is running under virtualization (Xen Project, KVM, VMI, etc.), which will prompt it to use optimized low-level operations for the specific virtualization stack. Xen Project Guest (DomU) support for Linux was introduced into the Linux kernel with version 2.6.24, whereas Xen Project Control Domain (Dom0) support was added from version 2.6.37. The key drivers have been added to Linux v 3.0 and since additional drivers and optimizations are added.

PV and Legacy Applications

Paravirtualization is a way to extend the life of legacy and custom applications that are only supported on older operating systems. Using Xen Project PV virtualization you can run these workloads on new, more powerful, energy-efficient hardware and save money in the long run.

Compatibility

The following links provide information about Xen and PV compatibility with various operating systems: