3978
Comment: cpu / memory hotplug column added
|
3963
|
Deletions are marked like this. | Additions are marked like this. |
Line 7: | Line 7: |
|| || full virt || paravirt || license || architectures || performance || SMP guests || CPU / memory hotplug || standalone host || notes || || || || || || || || || || || || || Xen || (./) || (./) || GPL || i686, x86-64, IA64, PPC || paravirt very fast, full virt slow/medium || (./) || (./) || (./) || full virt needs VT / AMD-V || || KVM || (./) || || GPL || i686, x86-64 || still slow || || || || requires VT / AMD-V, upstream || || lhype || || (./) || GPL || i686 || slow/medium || || || || || || rhype || || (./) || (?) || i686, x86-64, PPC || fast || (?) || || (./) || research project || || MoL || (./) || || GPL || PPC || fast || || || || 32 bit only || || UML || || (./) || GPL || i686, x86-64, PPC || slow || || || || || upstream || || qemu || (./) || || GPL || i686, x86-64, IA64, PPC || slow/medium || || || || runs in userspace, kQEMU not GPL || || OpenVZ || || || GPL || i686, x86-64, IA64, PPC || very fast || || (./) || || shared kernel || || VServer || || || GPL || i686, x86-64, IA64, PPC || very fast || || || || shared kernel, no performance isolation || || VMware || (./) || || proprietary || i686, x86-64 || medium || (./) || || || || || LPAR || (./) || || proprietary || s390 || native || (./) || || (./) || || || || z/VM || (./) || (./) || proprietary || s390 || very fast || (./) || || (./) || typically runs under LPAR || || PHYP || || (./) || proprietary || PPC || fast || (./) || (./) || (./) || used on all modern IBM System p || || lv1 || || (./) || proprietary || PPC || fast || (./) || || (./) || used on Sony PS3 || || BEAT || || (./) || proprietary || PPC || fast || (?) || || (./) || used on Toshiba CellEB || |
|| || full virt || paravirt || license || architectures || performance || SMP guests || CPU / memory hotplug || standalone host || notes || || || || || || || || || || || || || Xen || (./) || (./) || GPL || i686, x86-64, IA64, PPC || paravirt very fast, full virt slow/medium || (./) || (./) || (./) || full virt needs VT / AMD-V || || KVM || (./) || || GPL || i686, x86-64 || slow/medium || || || || requires VT / AMD-V, upstream || || lhype || || (./) || GPL || i686 || slow/medium || || || || || || rhype || || (./) || (?) || i686, x86-64, PPC || fast || (?) || || (./) || research project || || MoL || (./) || || GPL || PPC || fast || || || || 32 bit only || || UML || || (./) || GPL || i686, x86-64, PPC || slow || || || || upstream || || L4Linux || || (./) || GPL || i686, ARM || medium || || || (./) || || || qemu || (./) || || GPL || i686, x86-64, IA64, PPC || slow/medium || || || || runs in userspace, kQEMU not GPL || || OpenVZ || || || GPL || i686, x86-64, IA64, PPC || very fast || || (./) || || shared kernel || || VServer || || || GPL || i686, x86-64, IA64, PPC || very fast || || || || shared kernel, no performance isolation || || VMware || (./) || || proprietary || i686, x86-64 || medium || (./) || || || || || LPAR || (./) || || proprietary || s390 || native || (./) || || (./) || || || z/VM || (./) || (./) || proprietary || s390 || very fast || (./) || || (./) || typically runs under LPAR || || PHYP || || (./) || proprietary || PPC || fast || (./) || (./) || (./) || used on all modern IBM System p || || lv1 || || (./) || proprietary || PPC || fast || (./) || || (./) || used on Sony PS3 || || BEAT || || (./) || proprietary || PPC || fast || (?) || || (./) || used on Toshiba CellEB || Notes: |
Line 25: | Line 27: |
Notes: 1. Paravirtualization is fundamentally faster than full virtualization, with the exception of the userspace implementation in UML. 1. For an overview of the other benefits of paravirtualization, see ParavirtBenefits. 1. Full virtualization performance in KVM and Xen is largely limited by the overhead of trap & emulate. Emulating multiple instructions at once at the time of a trap should bring it up to speed with VMware. 1. OpenVZ (Virtuozo) and VServer are not virtualization technologies per se. They carve up a single system in "super chroot" jails. All the containers run on top of the same kernel. 1. OpenVZ (Virtuozo) can change memory and CPU quota during runtime, there is no real hotplug since there are no guest kernels. 1. Qemu can emulate different guest architectures, eg. running an x86 virtual machine on a PPC guest. Qemu also has the distinction of being the only full virtualization technology that can run without root privileges. 1. Parts of Qemu are used in the full virtualization implementations of Xen and KVM. |
1. Paravirtualization is fundamentally faster than full virtualization, with the exception of the userspace implementation in UML. 1. Performance can vary wildly depending on workload. This page assumes system call intensive applications, since "fair weather" performance numbers are not very useful. 1. Memory and CPU hotplug is mostly useful because it allows one to run more virtual machines on a system simultaneously, adjusting the amount of memory allocated to each guest depending on load. 1. For an overview of the other benefits of paravirtualization, see ParavirtBenefits. 1. Full virtualization performance in KVM and Xen is largely limited by the overhead of trap & emulate. Emulating multiple instructions at once at the time of a trap should bring it up to speed with VMware. 1. OpenVZ (Virtuozo) and VServer are not virtualization technologies per se. They carve up a single system in "super chroot" jails. All the containers run on top of the same kernel. 1. OpenVZ (Virtuozo) can change memory and CPU quota during runtime, there is no real hotplug since there are no guest kernels. 1. Qemu can emulate different guest architectures, eg. running an x86 virtual machine on a PPC guest. Qemu also has the distinction of being the only full virtualization technology that can run without root privileges. 1. Parts of Qemu are used in the full virtualization implementations of Xen and KVM. 1. The ''standalone host'' column indicates whether or not the hypervisor (or host OS, in the case of VM) is booted before Linux. See the [:HypervisorVsLinuxBased:comparison of hypervisor based vs. Linux based virtualization] for the debate on whether or not this is an advantage. |
This table compares the features and performance of the various virtualization technologies available for Linux. Hopefully this table also explains why many Linux distributions today ship Xen, even though UML and KVM are upstream and lhype is getting pretty close to inclusion into the upstream kernel.
For an explanation of the technologies, please see the [:TechOverview:technology overview] page.
If you spot something that is not up to date, or think of something missing, feel free to update this page.
|
full virt |
paravirt |
license |
architectures |
performance |
SMP guests |
CPU / memory hotplug |
standalone host |
notes |
|
|
|
|
|
|
|
|
|
|
Xen |
|
|
GPL |
i686, x86-64, IA64, PPC |
paravirt very fast, full virt slow/medium |
|
|
|
full virt needs VT / AMD-V |
KVM |
|
|
GPL |
i686, x86-64 |
slow/medium |
|
|
|
requires VT / AMD-V, upstream |
lhype |
|
|
GPL |
i686 |
slow/medium |
|
|
|
|
rhype |
|
|
(?) |
i686, x86-64, PPC |
fast |
(?) |
|
|
research project |
MoL |
|
|
GPL |
PPC |
fast |
|
|
|
32 bit only |
UML |
|
|
GPL |
i686, x86-64, PPC |
slow |
|
|
|
upstream |
|
|
GPL |
i686, ARM |
medium |
|
|
|
|
|
qemu |
|
|
GPL |
i686, x86-64, IA64, PPC |
slow/medium |
|
|
|
runs in userspace, kQEMU not GPL |
OpenVZ |
|
|
GPL |
i686, x86-64, IA64, PPC |
very fast |
|
|
|
shared kernel |
VServer |
|
|
GPL |
i686, x86-64, IA64, PPC |
very fast |
|
|
|
shared kernel, no performance isolation |
VMware |
|
|
proprietary |
i686, x86-64 |
medium |
|
|
|
|
LPAR |
|
|
proprietary |
s390 |
native |
|
|
|
|
z/VM |
|
|
proprietary |
s390 |
very fast |
|
|
|
typically runs under LPAR |
PHYP |
|
|
proprietary |
PPC |
fast |
|
|
|
used on all modern IBM System p |
lv1 |
|
|
proprietary |
PPC |
fast |
|
|
|
used on Sony PS3 |
BEAT |
|
|
proprietary |
PPC |
fast |
(?) |
|
|
used on Toshiba CellEB |
Notes:
- Paravirtualization is fundamentally faster than full virtualization, with the exception of the userspace implementation in UML.
- Performance can vary wildly depending on workload. This page assumes system call intensive applications, since "fair weather" performance numbers are not very useful.
- Memory and CPU hotplug is mostly useful because it allows one to run more virtual machines on a system simultaneously, adjusting the amount of memory allocated to each guest depending on load.
For an overview of the other benefits of paravirtualization, see ParavirtBenefits.
Full virtualization performance in KVM and Xen is largely limited by the overhead of trap & emulate. Emulating multiple instructions at once at the time of a trap should bring it up to speed with VMware.
- OpenVZ (Virtuozo) and VServer are not virtualization technologies per se. They carve up a single system in "super chroot" jails. All the containers run on top of the same kernel.
- OpenVZ (Virtuozo) can change memory and CPU quota during runtime, there is no real hotplug since there are no guest kernels.
- Qemu can emulate different guest architectures, eg. running an x86 virtual machine on a PPC guest. Qemu also has the distinction of being the only full virtualization technology that can run without root privileges.
- Parts of Qemu are used in the full virtualization implementations of Xen and KVM.
The standalone host column indicates whether or not the hypervisor (or host OS, in the case of VM) is booted before Linux. See the [:HypervisorVsLinuxBased:comparison of hypervisor based vs. Linux based virtualization] for the debate on whether or not this is an advantage.