Xen Project Release Features: Difference between revisions
Lars.kurth (talk | contribs) (→Toolstack and Tools: Populated section with preliminary 4.7 information) |
Lars.kurth (talk | contribs) (Populated section with preliminary 4.7 information) |
||
Line 457: | Line 457: | ||
{|class="prettytable" style="text-align: left;" valign="top" |
{|class="prettytable" style="text-align: left;" valign="top" |
||
!style="width: |
!style="width: 28%;"| |
||
!style="width: |
!style="width: 9%;"|Xen 4.0 |
||
!style="width: |
!style="width: 9%;"|Xen 4.1 |
||
!style="width: |
!style="width: 9%;"|Xen 4.2 |
||
!style="width: |
!style="width: 9%;"|Xen 4.3 |
||
!style="width: |
!style="width: 9%;"|Xen 4.4 |
||
!style="width: |
!style="width: 9%;"|Xen 4.5 |
||
!style="width: |
!style="width: 9%;"|Xen 4.6 |
||
!style="width: 9%;"|Xen 4.7 |
|||
|- |
|- |
||
!colspan="8"|<big>Features</big> |
!colspan="8"|<big>Features</big> |
||
Line 471: | Line 472: | ||
|- |
|- |
||
|Memory Ballooning |
|Memory Ballooning |
||
|{{Tick}} |
|||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
Line 485: | Line 487: | ||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup> |
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup> |
||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup> |
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup> |
||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
|||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
||
Line 494: | Line 497: | ||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup> |
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup> |
||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup> |
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup> |
||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
|||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
||
Line 503: | Line 507: | ||
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup> |
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup> |
||
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup> |
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup> |
||
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
|||
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
||
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
||
Line 511: | Line 516: | ||
| |
| |
||
|{{HalfDone}} |
|{{HalfDone}} |
||
|{{Tick}} |
|||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
Line 521: | Line 527: | ||
|{{HalfDone}}<small>prototype</small> |
|{{HalfDone}}<small>prototype</small> |
||
|{{HalfDone}}<small>prototype</small> |
|{{HalfDone}}<small>prototype</small> |
||
|{{HalfDone}}<small>experimental</small> |
|||
|{{HalfDone}}<small>experimental</small> |
|{{HalfDone}}<small>experimental</small> |
||
|{{HalfDone}}<small>experimental</small> |
|{{HalfDone}}<small>experimental</small> |
||
Line 532: | Line 539: | ||
| |
| |
||
| |
| |
||
|{{HalfDone}}<small>experimental</small> |
|||
|{{HalfDone}}<small>experimental</small> |
|{{HalfDone}}<small>experimental</small> |
||
|{{HalfDone}}<small>experimental</small> |
|{{HalfDone}}<small>experimental</small> |
||
Line 541: | Line 549: | ||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
|||
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
||
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
||
Line 548: | Line 557: | ||
|1GB/2MB super page support |
|1GB/2MB super page support |
||
| |
| |
||
|{{Tick}} |
|||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
Line 557: | Line 567: | ||
|Deliver events to PVHVM guests using Xen event channels |
|Deliver events to PVHVM guests using Xen event channels |
||
| |
| |
||
|{{Tick}} |
|||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
Line 571: | Line 582: | ||
| |
| |
||
| |
| |
||
|{{Tick}} |
|||
|{{Tick}} |
|{{Tick}} |
||
|- |
|- |
||
Line 581: | Line 593: | ||
|{{HalfDone}}<small>experimental</small> |
|{{HalfDone}}<small>experimental</small> |
||
|{{HalfDone}}<small>preview</small> |
|{{HalfDone}}<small>preview</small> |
||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup> |
|||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup> |
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup> |
||
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup> |
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup> |
||
Line 586: | Line 599: | ||
|HVM PXE Stack (x86) |
|HVM PXE Stack (x86) |
||
|gPXE |
|gPXE |
||
|[http://ipxe.org iPXE] |
|||
|[http://ipxe.org iPXE] |
|[http://ipxe.org iPXE] |
||
|[http://ipxe.org iPXE] |
|[http://ipxe.org iPXE] |
||
Line 599: | Line 613: | ||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
|||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
||
Line 608: | Line 623: | ||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
|||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
||
Line 617: | Line 633: | ||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
|||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
||
Line 627: | Line 644: | ||
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
||
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot13|13]] ]</sup> |
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot13|13]] ]</sup> |
||
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
|||
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
||
|- |
|- |
||
Line 632: | Line 650: | ||
| |
| |
||
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup> |
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup> |
||
|{{Tick}} |
|||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
Line 646: | Line 665: | ||
|{{HalfDone}} <small>preview: CMT</small> |
|{{HalfDone}} <small>preview: CMT</small> |
||
|{{HalfDone}} <small>preview: CAT, MBM</small> |
|{{HalfDone}} <small>preview: CAT, MBM</small> |
||
|{{HalfDone}} <small>preview: CDP</small> |
|||
|-Moved into correct section |
|-Moved into correct section |
||
!colspan="8" style="background-color: #A9BCF5;"|High Availability and Fault Tolerance |
!colspan="8" style="background-color: #A9BCF5;"|High Availability and Fault Tolerance |
||
Line 657: | Line 677: | ||
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup> |
||
|{{Tick}} <sup>[ [[#Foot18|18]] ]</sup> <small>Migration v2</small> |
|{{Tick}} <sup>[ [[#Foot18|18]] ]</sup> <small>Migration v2</small> |
||
|{{Tick}} <sup>[ TODO ]</sup> |
|||
|- |
|- |
||
|[[Remus]] Fault Tolerance |
|[[Remus]] Fault Tolerance |
||
Line 666: | Line 687: | ||
|{{Tick}} <small>improvements <br/>for [[COLO_-_Coarse_Grain_Lock_Stepping|COLO]]</small> <sup>[ [[#Foot10|10]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}} <small>improvements <br/>for [[COLO_-_Coarse_Grain_Lock_Stepping|COLO]]</small> <sup>[ [[#Foot10|10]] ]</sup><sup>[ [[#Foot12|12]] ]</sup> |
||
|{{Tick}} <small>Remus ported to Migration v2</small> |
|{{Tick}} <small>Remus ported to Migration v2</small> |
||
|{{Tick}} <small> TODO COLO</small> |
|||
|- |
|- |
||
|X86 vMCE<br/><small>Forward Machine Check Exceptions to Appropriate guests</small> |
|X86 vMCE<br/><small>Forward Machine Check Exceptions to Appropriate guests</small> |
||
| |
| |
||
| |
| |
||
|{{Tick}} |
|||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
Line 679: | Line 702: | ||
|- |
|- |
||
|[[Blktap2]] |
|[[Blktap2]] |
||
|{{Tick}} |
|||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
Line 688: | Line 712: | ||
|- |
|- |
||
|Online resize of virtual disks |
|Online resize of virtual disks |
||
|{{Tick}} |
|||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
Line 699: | Line 724: | ||
|- |
|- |
||
|[[Driver_Domain|Driver Domains]] |
|[[Driver_Domain|Driver Domains]] |
||
|{{Tick}} |
|||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
Line 714: | Line 740: | ||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup> |
||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot17|17]] ]</sup> |
|||
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot17|17]] ]</sup> |
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot17|17]] ]</sup> |
||
|- |
|- |
||
Line 724: | Line 751: | ||
|{{Tick}} <small>improvements</small><sup>[ [[#Foot12|12]] ]</sup> |
|{{Tick}} <small>improvements</small><sup>[ [[#Foot12|12]] ]</sup> |
||
|{{Tick}} <sup>[ [[#Foot19|19]] ]</sup> <small>reworked with ARM support, added VM Event APIs</small> |
|{{Tick}} <sup>[ [[#Foot19|19]] ]</sup> <small>reworked with ARM support, added VM Event APIs</small> |
||
|{{Tick}} |
|||
|- |
|- |
||
|[[Xen Security Modules : XSM-FLASK|XSM & FLASK]]<br/><small>mandatory access control policy providing fine-grained controls over Xen domains, similar to SELinux</small> |
|[[Xen Security Modules : XSM-FLASK|XSM & FLASK]]<br/><small>mandatory access control policy providing fine-grained controls over Xen domains, similar to SELinux</small> |
||
Line 732: | Line 760: | ||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup> |
|||
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup> |
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup> |
||
|- |
|- |
||
Line 741: | Line 770: | ||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup> |
|||
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup> |
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup> |
||
|- |
|- |
||
Line 751: | Line 781: | ||
|{{Tick}} |
|{{Tick}} |
||
|{{Tick}} <small> vTPM 2.0</small> |
|{{Tick}} <small> vTPM 2.0</small> |
||
|{{Tick}} |
|||
|} |
|} |
||
Revision as of 16:44, 13 June 2016
Legend: ✓: Feature ✓: Partial ✗: Removed
Overview
Xen 4.0 | Xen 4.1 | Xen 4.2 | Xen 4.3 | Xen 4.4 | Xen 4.5 | Xen 4.6 | Xen 4.7 | |
---|---|---|---|---|---|---|---|---|
Initial Release | 7 April 2010 | 25 March 2011 | 17 Sept 2012 | 9 July 2013 | 10 March 2014 | 15 Jan 2015 | 13 Oct 2015 | TBD |
Supported until | ???[ 21 ] | ???[ 21 ] | ???[ 21 ] | Jan 2015 | Sept 2015 | July 2016 | April 2017 | TBD |
Security support until | ???[ 21 ] | ???[ 21 ] | Sept 2015 | July 2016 | March 2017 | Jan 2018 | Oct 2018 | TBD |
Feature List | FL 4.2 | FL 4.3 | FL 4.4 | FL 4.5 | FL 4.6 | FL 4.7 | ||
Release Notes | RN 4.0 | RN 4.1 | RN 4.2 | RN 4.3 | RN 4.4 | RN 4.5 | RN 4.6 | RN 4.7 |
Supported Mainline Architectures for the hypervisor (Host) | ||||||||
IA-A32 | ✓ | ✓ | ✓ | ✗removed | ||||
X86-64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Itanium (ia64) | ✓ | ✓deprecated in this release | ✓deprecated | ✗removed | ||||
ARM v7 + Virtualization Extensions | ✓preview [ 6 ] | ✓ | ✓ [ 8 ] | ✓ [ 14 ] | ✓ [ 22 ] | |||
ARM v8 | ✓preview [ 6 ] | ✓ | ✓ [ 8 ] | ✓ [ 15 ] | ✓ [ 15 ] | |||
Guest Types | ||||||||
For X86 Architectures | ||||||||
Paravirtualised Traditional Xen Project PV guest |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
HVM Guest [ 1 ] Fully virtualised guest using hardware virtualisation extensions |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PV-on-HVM Guest [ 1 ] Fully virtualised guest using PV extensions/drivers for improved performance |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PVH Guest | ✓preview | ✓preview added PVH Dom0 |
✓preview | ✓preview | ||||
For ARM Architectures | ||||||||
ARM Guest Optimal combination of full virtualization and PV extensions |
✓preview [ 6 ] | ✓ | ✓ | ✓ | ✓ |
Limits
Xen 4.0 | Xen 4.1 | Xen 4.2 | Xen 4.3 | Xen 4.4 | Xen 4.5 | Xen 4.6 | Xen 4.7 | |
---|---|---|---|---|---|---|---|---|
Host Limits | ||||||||
For X86 Architectures | ||||||||
Physical CPUs | 128 [ 0 ] | >255 | 4095 | 4095 | 4095 | 4095 | 4095 | 4095 |
Physical RAM | 1TB | 5TB | 5TB | 16TB | 16TB | 16TB | 16TB | 16TB |
For ARM Architectures | ||||||||
Physical CPUs | 8 | 8 | 8 | 8 for 32bit; 128 for 64bit | 8 for 32bit; 128 for 64bit | |||
Physical RAM | 16GB | 16GB | 16GB for 32bit, 5TB for 64bit | 8 for 32bit; 128 for 64bit | 8 for 32bit; 128 for 64bit | |||
Guest Limits | ||||||||
X86 PV Guest Limits | ||||||||
Virtual CPUs | 128 | >255 | 512 | 512 | 512 | 512 | 512 | 512 |
Virtual RAM | 512GB | 512GB | 512GB | 512GB | 512GB | 512GB | 512GB | > 1TB |
X86 HVM Guest Limits | ||||||||
Virtual CPUs | 128 | 128 | 256 | 256 | 256 | 256 | 256 | 256 |
Virtual RAM | 1TB | 1TB | 1TB | 1TB | 1TB | 1TB | 1TB | 1TB |
ARM Guest Limits | ||||||||
Virtual CPUs | 8 | 8 | 8 | 8 for 32bit; 128 for 64bit | 8 for 32bit; 128 for 64bit | |||
Virtual RAM | 16GB | 16GB | 1TB [ 7 ] | 1TB [ 7 ] | 1TB [ 7 ] | |||
Number of event channels | ||||||||
Event Channels | 1024/4096 | 1024/4096 | 1024/4096 | 1024/4096 | 131072 | 131072 | 131072 | 131072 |
Toolstack and Tools
Xen 4.0 | Xen 4.1 | Xen 4.2 | Xen 4.3 | Xen 4.4 | Xen 4.5 | Xen 4.6 | Xen 4.7 | |
---|---|---|---|---|---|---|---|---|
Toolstack | ||||||||
Built-in | ||||||||
xend / xm | ✓ | ✓ | ✓deprecated in this release | ✓deprecated | ✓deprecated | ✗removed | ||
XL | ✓initial implementation | ✓preview release | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Qemu based disk backend (qdisk) for XL |
✓ [ 5 ] | ✓ [ 5 ] | ✓ [ 5 ] | ✓ [ 5 ] | ✓ [ 5 ] | ✓ [ 5 ] | ✓ [ 5 ] | |
XL Open vSwitch integration | ✓preview | ✓ | ✓ | ✓ | ✓ | |||
systemd support | ✓ | ✓ | ✓ | |||||
JSON support | ✓infrastructure only, no tools support | ✓infrastructure only, no tools support | ✓infrastructure only, no tools support | |||||
AHCI support | ✓ | ✓ | ||||||
3rd Party | ||||||||
libvirt driver for XL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓[ 16 ] | ✓[ 16 ] | |
Tooling | ||||||||
gdbsx debugger to debug ELF guests |
✓ | ✓ | ✓ | ✓ | ✓ | ✓[ 12 ] | ✓[ 12 ] | ✓[ 12 ] |
vPMU Virtual Performance Management Unit for HVM guests |
✓ [ 4 ] | ✓ [ 4 ] | ✓ [ 4 ] | ✓ [ 4 ] | ✓ [ 4 ] | ✓ [ 4 ][ 12 ] | ✓ [ 4 ][ 12 ] | ✓ [ 4 ][ 12 ] |
Serial console | ✓ | ✓ | ✓ | ✓Add EHCI debug support | ✓ | ✓Add Oxford PCIe, and Broadcom TrueManage support | ✓ | ✓ |
xentrace performance analysis |
✓ | ✓ | ✓ | ✓ | ✓ | ✓[ 12 ] | ✓Added Xenalyze | ✓ |
Features
Xen 4.0 | Xen 4.1 | Xen 4.2 | Xen 4.3 | Xen 4.4 | Xen 4.5 | Xen 4.6 | Xen 4.7 | |
---|---|---|---|---|---|---|---|---|
Features | ||||||||
Advanced Memory Management | ||||||||
Memory Ballooning | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Memory Sharing allow sharing of identical pages between HVM guests |
✓preview | ✓preview | ✓preview [ 3 ] | ✓preview [ 3 ] | ✓preview [ 3 ] | ✓preview [ 3 ][ 12 ] | ✓preview [ 3 ][ 12 ] | ✓preview [ 3 ][ 12 ] |
Memory Paging allow pages belonging to HVM guests to be paged to disk |
✓preview | ✓preview | ✓preview [ 3 ] | ✓preview [ 3 ] | ✓preview [ 3 ] | ✓preview [ 3 ][ 12 ] | ✓preview [ 3 ][ 12 ] | ✓preview [ 3 ][ 12 ] |
TMEM - Transcendent Memory | ✓experimental [ 2 ] | ✓experimental [ 2 ] | ✓experimental [ 2 ] | ✓experimental [ 2 ] | ✓experimental [ 2 ] | ✓experimental [ 2 ][ 12 ] | ✓experimental [ 2 ][ 12 ] | ✓experimental [ 2 ][ 12 ] |
Resource Management | ||||||||
Cpupool advanced partitioning |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Credit 2 Scheduler designed for latency-sensitive workloads and very large systems. |
✓prototype | ✓prototype | ✓experimental | ✓experimental | ✓experimental | ✓experimental | ✓experimental | |
RTDS Based Scheduler Real-time CPU scheduler built to provide guaranteed CPU capacity to guest VMs on SMP hosts. |
✓experimental | ✓experimental | ✓experimental | |||||
NUMA scheduler affinity | ✓ | ✓ | ✓ [ 12 ] | ✓ [ 12 ] | ✓ [ 12 ] | |||
Scalability | ||||||||
1GB/2MB super page support | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Deliver events to PVHVM guests using Xen event channels | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Fair locks (ticket-locks) | ✓ | ✓ | ||||||
Interoperability / Hardware Support | ||||||||
X86 Nested Virtualisation Running a hypervisor inside an HVM guest |
✓experimental | ✓experimental | ✓preview | ✓preview [ 11 ] | ✓preview [ 11 ] | ✓preview [ 11 ] | ||
HVM PXE Stack (x86) | gPXE | iPXE | iPXE | iPXE | iPXE | iPXE | iPXE | iPXE |
Physical CPU Hotplug | ✓ | ✓ | ✓ | ✓ | ✓ | ✓[ 12 ] | ✓[ 12 ] | ✓[ 12 ] |
Physical Memory Hotplug | ✓ | ✓ | ✓ | ✓ | ✓ | ✓[ 12 ] | ✓[ 12 ] | ✓[ 12 ] |
Support for PV kernels in bzImage format | ✓ | ✓ | ✓ | ✓ | ✓ | ✓[ 12 ] | ✓[ 12 ] | ✓[ 12 ] |
PCI Passthrough | ✓ | ✓ | ✓ | ✓ [ 12 ] | ✓ [ 12 ] | ✓ [ 12 ][ 13 ] | ✓ [ 12 ] | ✓ [ 12 ] |
X86 Advanced Vector eXtension (AVX) | ✓ [ 4 ] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Intel Platform QoS Technologies | ✓ preview: CMT | ✓ preview: CAT, MBM | ✓ preview: CDP | |||||
High Availability and Fault Tolerance | ||||||||
Live Migration, Save & Restore | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ [ 12 ] | ✓ [ 18 ] Migration v2 | ✓ [ TODO ] |
Remus Fault Tolerance | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ improvements for COLO [ 10 ][ 12 ] |
✓ Remus ported to Migration v2 | ✓ TODO COLO |
X86 vMCE Forward Machine Check Exceptions to Appropriate guests |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Network and Storage | ||||||||
Blktap2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Online resize of virtual disks | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Security (also see this presentation or this document) | ||||||||
Driver Domains | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Device Model Stub Domains | ✓ | ✓ | ✓ | ✓ | ✓ | ✓[ 12 ] | ✓[ 12 ][ 17 ] | ✓[ 12 ][ 17 ] |
Virtual Machine Introspection (Memaccess and VM Event APIs) enabling integration of 3rd party security solutions into Xen virtualized environments |
✓ | ✓ | ✓ | ✓ | ✓ improvements[ 12 ] | ✓ [ 19 ] reworked with ARM support, added VM Event APIs | ✓ | |
XSM & FLASK mandatory access control policy providing fine-grained controls over Xen domains, similar to SELinux |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ [ 17 ] | ✓ [ 17 ] |
XSM & FLASK support for IS_PRIV | ✓ | ✓ | ✓ | ✓ [ 17 ] | ✓ [ 17 ] | |||
vTPM Support |
✓ | ✓ | ✓ | ✓ updates and new functionality |
✓ | ✓ | ✓ vTPM 2.0 | ✓ |
Device Models and Virtual Firmware
Xen 4.0 | Xen 4.1 | Xen 4.2 | Xen 4.3 | Xen 4.4 | Xen 4.5 | Xen 4.6 | |
---|---|---|---|---|---|---|---|
Device Models and Virtual Firmware for HVM guests | |||||||
For X86 Architectures | |||||||
Traditional Device Model Device emulator based on Xen fork of Qemu |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Qemu Upstream Device Model Device emulator based on upstream Qemu |
✓preview | ✓default, unless stubdomains are used | ✓default, unless stubdomains are used | ✓default, unless stubdomains are used | ✓default, unless stubdomains are used | ||
ROMBIOS BIOS used with traditional device model only |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SeaBIOS BIOS used with upstream qemu device model and XL only |
✓ | ✓ | ✓ | ✓ | ✓ | ||
OVMF/Tianocore UEFI Firmware used with upstream qemu device model and XL only |
✓experimental [ 4 ] | ✓experimental [ 4 ] | ✓experimental [ 4 ] | ✓experimental [ 4 ] | ✓experimental [ 4 ] + ARM support | ||
PV Bootloader support | |||||||
For X86 Architectures | |||||||
PyGrub support for GRUB 2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PyGrub support for /boot on ext4 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
pvnetboot support Bootloader supporting network boot of PV guests |
✓ | ✓ | ✓ | ✓ | ✓ |
Notes
[ 0 ] Compile time limit, can be increased
[ 1 ] Requires hardware virtualisation support
[ 2 ] Disabled by default (enable with hypervisor command line option). Not supported in production and doesn't have full security support
[ 3 ] Preview, due to limited tools support. Hypervisor side in good shape
[ 4 ] Disabled by default (enable with hypervisor command line option)
[ 5 ] Used as a fallback if blkback and/or blktap2 are not available
[ 6 ] See Xen ARM with Virtualization Extensions; basic functionality implemented; lack of real hardware to validate against
[ 7 ] Limited by supported host memory
[ 8 ] Tested on Broadcom 7445D0 A15, Midway (Calxeda), Odroid-XU, OMAP5, OMAP6, DRA7 (Texas Instrument), Exynos5 (Samsung), SunXI (AllWinner) aka A20/A21, CubieTruck, CubieBoard
[ 9 ] Tested on Vexpress (ARM Ltd.), Seattle (AMD), Mustang (Applied Micro-X-Gene), McDivitt aka HP Moonshot cartridge (Applied Micro X-Gene)
[ 10 ] Remus has been ported to XL and has been tested with COLO which is currently outside the Xen tree, but planned to be included in Xen 4.6. Also see Remus Toolkit Differences explaining differences between Remus with XM (not supported in Xen 4.5) and XL
[ 11 ] There are a number of reported crashes that have not yet been fixed and some known limitations
[ 12 ] Not yet supported on ARM; for a more detailed update on what is supported on ARM see here and here
[ 13 ] The PCI passthrough features did not make it on time for Xen 4.5, but doing passthrough of MMIO regions did. In the ARM world it is quite common to have no PCIe devices and to only access devices using MMIO regions. As such this feature allows us to have driver domains be in charge of network or storage devices.
[ 14 ] Added the following platforms to [ 8 ]: Renesas R-Car Gen2, Huawei hip04-d04
[ 15 ] Added the following platforms to [ 9 ]: Thunder X (partial), Xilinx ZynqMP SoC
[ 16 ] Now tested as part of Xen Project Test Lab and OpenStack CI Loop
[ 17 ] Now tested as part of Xen Project Test Lab
[ 18 ] Migration v2: see [1] and [2]. VM migration using libvirt between two hosts is now tested. Live Migration between hosts of different Xen versions is now tested.
[ 19 ] The memory event subsystem has been reworked and extended to a new VM event subsystem. The new VM event subsystems supports both the ARM and x86 architectures.
[ 20 ] Passthrough for non-PCI devices allows users to passthrough devices via partial device trees.
[ 21 ] Dates for historical releases have not be researched.