Archived/Xen Project Release Features 4.0 to 4.3: Difference between revisions

From Xen
Jump to navigationJump to search
(→‎Toolstack and Tools: Removed 4.4+ from archive)
(→‎Features: Removed 4.4+ from archive)
Line 285: Line 285:
!style="width: 8%;"|Xen 4.2
!style="width: 8%;"|Xen 4.2
!style="width: 8%;"|Xen 4.3
!style="width: 8%;"|Xen 4.3
!style="width: 8%;"|Xen 4.4
!style="width: 8%;"|Xen 4.5
!style="width: 8%;"|Xen 4.6
!style="width: 8%;"|Xen 4.7
!style="width: 8%;"|Xen 4.8
|-
|-
!colspan="10" style="background-color: #A9BCF5;"|Advanced Memory Management
!colspan="10" style="background-color: #A9BCF5;"|Advanced Memory Management
|-
|-
|Memory Ballooning
|Memory Ballooning
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
Line 309: Line 299:
|{{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>
|{{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>
|-
|-
|Memory Paging<br/><small>allow pages belonging to HVM guests to be paged to disk</small>
|Memory Paging<br/><small>allow pages belonging to HVM guests to be paged to disk</small>
Line 320: Line 305:
|{{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>
|{{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>
|-
|-
|[http://oss.oracle.com/projects/tmem/ TMEM] - Transcendent Memory
|[http://oss.oracle.com/projects/tmem/ TMEM] - Transcendent Memory
Line 331: Line 311:
|{{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>
|{{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>
|-
|-
!colspan="10" style="background-color: #A9BCF5;"|[[:Category:Resource Management|Resource Management]]
!colspan="10" style="background-color: #A9BCF5;"|[[:Category:Resource Management|Resource Management]]
Line 342: Line 317:
|
|
|{{HalfDone}}
|{{HalfDone}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
Line 355: Line 325:
|{{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>
|{{HalfDone}}<small>experimental (significant additions)</small>
|{{Tick}}
|-
|[[RTDS-Based-Scheduler|RTDS Based Scheduler]]<br/><small>Real-time CPU scheduler built to provide guaranteed CPU capacity to guest VMs on SMP hosts.</small>
|
|
|
|
|
|{{HalfDone}}<small>experimental</small>
|{{HalfDone}}<small>experimental</small>
|{{HalfDone}}<small>experimental (significant additions)</small>
|{{HalfDone}}<small>experimental</small>
|-
|-
|[[Xen_Numa_Scheduling_and_Placement|NUMA scheduler affinity]]
|[[Xen_Numa_Scheduling_and_Placement|NUMA scheduler affinity]]
Line 377: Line 332:
|
|
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
|-
|-
!colspan="10" style="background-color: #A9BCF5;"|Scalability
!colspan="10" style="background-color: #A9BCF5;"|Scalability
Line 387: Line 337:
|1GB/2MB super page support
|1GB/2MB super page support
|
|
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
Line 398: Line 343:
|Deliver events to PVHVM guests using Xen event channels
|Deliver events to PVHVM guests using Xen event channels
|
|
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
Line 412: Line 352:
|
|
|
|
|
|
|{{Tick}}
|{{Tick}}
|{{Tick}}
|-
|-
!colspan="10" style="background-color: #A9BCF5;"|High Availability and Fault Tolerance
!colspan="10" style="background-color: #A9BCF5;"|High Availability and Fault Tolerance
Line 425: Line 360:
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
|{{Tick}} <sup>[ [[#Foot18|18]] ]</sup> <small>Migration v2</small>
|{{Tick}} <sup>[ [[#Foot23|23]] ]</sup>
|{{Tick}} <sup>[ [[#Foot23|23]] ]</sup>
|-
|-
|[[Remus]] Fault Tolerance
|[[Remus]] Fault Tolerance
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{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}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|-
|[[COLO_-_Coarse_Grain_Lock_Stepping|COLO Manager]]
|
|
|
|
|
|
|
|{{HalfDone}} <small>experimental</small> <sup>[ [[#Foot24|24]] ]</sup>
|{{HalfDone}} <small>experimental</small> <sup>[ [[#Foot24|24]] ]</sup>
|-
|-
|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}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
Line 467: Line 376:
|-
|-
|[[Blktap2]]
|[[Blktap2]]
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
Line 478: Line 382:
|-
|-
|Online resize of virtual disks
|Online resize of virtual disks
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
Line 491: Line 390:
|-
|-
|[[Driver_Domain|Driver Domains]]
|[[Driver_Domain|Driver Domains]]
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
Line 506: Line 400:
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{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>
|-
|[[Kconfig|Kconfig]]
|
|
|
|
|
|
|
|{{HalfDone}} <small>experimental</small>
|{{Tick}} <small>experimental</small>
|-
|[[LivePatch|Live Patching]]
|
|
|
|
|
|
|
|{{HalfDone}} <small>preview</small> <sup>[ [[#Foot22|22]] ]</sup>
|{{Tick}} <small>preview (added ARM support)</small>
|-
|-
|[[Virtual Machine Introspection]] (Memaccess and VM Event APIs)<br/><small>enabling integration of 3rd party security solutions into Xen virtualized environments</small>
|[[Virtual Machine Introspection]] (Memaccess and VM Event APIs)<br/><small>enabling integration of 3rd party security solutions into Xen virtualized environments</small>
Line 539: Line 406:
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}} <small>improvements</small><sup>[ [[#Foot12|12]] ]</sup>
|{{Tick}} <sup>[ [[#Foot19|19]] ]</sup> <small>reworked with ARM support, added VM Event APIs</small>
|{{Tick}} <small>improvements</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 550: Line 412:
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
|-
|-
|[[Xen Security Modules : XSM-FLASK|XSM & FLASK]] support for IS_PRIV
|[[Xen Security Modules : XSM-FLASK|XSM & FLASK]] support for IS_PRIV
Line 561: Line 418:
|
|
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}}
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
|-
|-
|[[Virtual Trusted Platform Module (vTPM)|vTPM Support]]<br/>
|[[Virtual Trusted Platform Module (vTPM)|vTPM Support]]<br/>
Line 572: Line 424:
|{{Tick}}
|{{Tick}}
|{{Tick}}<br/><small>updates and new functionality</small>
|{{Tick}}<br/><small>updates and new functionality</small>
|{{Tick}}
|{{Tick}}
|{{Tick}} <small> vTPM 2.0</small>
|{{Tick}}
|{{Tick}}
|}
|}



Revision as of 11:27, 27 June 2017

Legend: : Feature : Partial : Removed

Overview

Xen 4.0 Xen 4.1 Xen 4.2 Xen 4.3
Initial Release 7 April 2010 25 March 2011 17 Sept 2012 9 July 2013
Supported until ???[ 21 ] ???[ 21 ] ???[ 21 ] Jan 2015
Security support until ???[ 21 ] ???[ 21 ] Sept 2015 July 2016
Feature List FL 4.2 FL 4.3
Release Notes RN 4.0 RN 4.1 RN 4.2 RN 4.3
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 ]
ARM v8 preview [ 6 ]
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
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
Host Limits
For X86 Architectures
Physical CPUs 128 [ 0 ] >255 4095 4095
Physical RAM 1TB 5TB 5TB 16TB
For ARM Architectures
Physical CPUs 8
Physical RAM 16GB
Guest Limits
X86 PV Guest Limits
Virtual CPUs 128 >255 512 512
Virtual RAM 512GB 512GB 512GB 512GB
X86 HVM Guest Limits
Virtual CPUs 128 128 128 128
Virtual RAM 1TB 1TB 1TB 1TB
ARM Guest Limits
Virtual CPUs 8
Virtual RAM 16GB
Number of event channels
Event Channels 1024/4096 1024/4096 1024/4096 1024/4096



Toolstack and Tools

Xen 4.0 Xen 4.1 Xen 4.2 Xen 4.3
Toolstack
Built-in
xend / xm deprecated in this release deprecated
XL initial implementation preview release
Qemu based disk backend (qdisk) for XL
[ 5 ] [ 5 ] [ 5 ]
XL Open vSwitch integration preview
3rd Party
libvirt driver for XL
Tooling
gdbsx
debugger to debug ELF guests
vPMU
Virtual Performance Management Unit for HVM guests
[ 4 ] [ 4 ] [ 4 ] [ 4 ]
Serial console Add EHCI debug support
xentrace
performance analysis


Features

Xen 4.0 Xen 4.1 Xen 4.2 Xen 4.3
Advanced Memory Management
Memory Ballooning
Memory Sharing
allow sharing of identical pages between HVM guests
preview preview preview [ 3 ] preview [ 3 ]
Memory Paging
allow pages belonging to HVM guests to be paged to disk
preview preview preview [ 3 ] preview [ 3 ]
TMEM - Transcendent Memory experimental [ 2 ] experimental [ 2 ] experimental [ 2 ] experimental [ 2 ]
Resource Management
Cpupool
advanced partitioning
Credit 2 Scheduler
designed for latency-sensitive workloads and very large systems.
prototype prototype experimental
NUMA scheduler affinity
Scalability
1GB/2MB super page support
Deliver events to PVHVM guests using Xen event channels
Fair locks (ticket-locks)
High Availability and Fault Tolerance
Live Migration, Save & Restore
Remus Fault Tolerance
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
Virtual Machine Introspection (Memaccess and VM Event APIs)
enabling integration of 3rd party security solutions into Xen virtualized environments
XSM & FLASK
mandatory access control policy providing fine-grained controls over Xen domains, similar to SELinux
XSM & FLASK support for IS_PRIV
vTPM Support

updates and new functionality


Interoperability / Hardware Support

Xen 4.0 Xen 4.1 Xen 4.2 Xen 4.3 Xen 4.4 Xen 4.5 Xen 4.6 Xen 4.7 Xen 4.8
X86
X86 Nested Virtualisation
Running a hypervisor inside an HVM guest
experimental experimental preview preview [ 11 ] preview [ 11 ] preview [ 11 ] preview [ 11 ]
HVM PXE Stack (x86) gPXE iPXE iPXE iPXE iPXE iPXE iPXE iPXE iPXE
Physical CPU Hotplug [ 12 ] [ 12 ] [ 12 ] [ 12 ]
Physical Memory Hotplug [ 12 ] [ 12 ] [ 12 ] [ 12 ]
Support for PV kernels in bzImage format [ 12 ] [ 12 ] [ 12 ] [ 12 ]
PCI Passthrough [ 12 ] [ 12 ] [ 12 ][ 13 ] [ 12 ] [ 12 ] [ 12 ]
X86 Advanced Vector eXtension (AVX) [ 4 ] AVX-512
Intel Platform QoS Technologies preview: CMT preview: CAT, MBM preview: CDP preview: CDP
Other Intel® Xeon® Features [ 25 ] [ 25 ]
ARM
64K Guest Pages
ACPI / SBBR Compliance experimental; ACPI 6.0+ experimental
ACPI guest support with UEFI
PCSI Compatibility v0.1 & 0.2 v1.0 v1.0
ARM® Interrupt Virtualization GiC v2 GiC v2m/GiC v3 improvements to v2/v3
Wallclock support


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 Xen 4.7 Xen 4.8
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 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 experimental [ 4 ] + ARM support 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.
[ 22 ] The code for hypervisor live patching is NOT enabled by default. When compiling the hypervisor one must change the config to build it. Note that Live Patching is currently only supported on x86. For more information on live patching, see LivePatch.
[ 23 ] CPU ID Levelling enables migration of VM’s between a larger range of non-identical hosts than previously supported.
[ 24 ] The COLO Manager has been fully integrated as an experimental feature into Xen 4.7. Note that the COLO Block Replication and COLO Proxy components, both of which are QEMU components, are currently still reviewed by the QEMU community. Both components are available as out-of-tree add-ons to the Xen Project Hypervisor, until fully integrated into QEMU.
[ 25 ] Added experimental support for VT-d Posted Interrupts, VMX TSC Scaling, Memory Protection Keys
[ 26 ] Removed support for Huawei hip04-d04