Jump to: navigation, search

Difference between revisions of "HypervisorSupportMatrix"

(Hypervisor feature support matrix: Add Ironic and some notes about Baremetal)
Line 57: Line 57:
  
 
Nova has support for [[XenServer]] and XCP through the XenAPI virt layer. Note that this does not imply support for other Xen-based platforms such as those shipped with RHEL 6 or SUSE, which is provided via the libvirt layer (i.e. Xen via libvirt).
 
Nova has support for [[XenServer]] and XCP through the XenAPI virt layer. Note that this does not imply support for other Xen-based platforms such as those shipped with RHEL 6 or SUSE, which is provided via the libvirt layer (i.e. Xen via libvirt).
 +
 +
As far as the [[Baremetal]] hypervisor is concerned, it is worth noting that [[Ironic]] will deprecate the baremetal driver upon its graduation. New features are being added to [[Ironic]].
  
 
'''NOTE: The PowerVM driver is deprecated in the Havana release and was removed in the Icehouse release.'''
 
'''NOTE: The PowerVM driver is deprecated in the Havana release and was removed in the Icehouse release.'''
Line 73: Line 75:
 
| '''[[Hyper-V]]'''
 
| '''[[Hyper-V]]'''
 
| '''[[Baremetal]]'''
 
| '''[[Baremetal]]'''
 +
| '''[[Ironic]]'''
 
| style="color: red" | '''[https://blueprints.launchpad.net/nova/+spec/powervm-compute-driver PowerVM]''' (deprecated)
 
| style="color: red" | '''[https://blueprints.launchpad.net/nova/+spec/powervm-compute-driver PowerVM]''' (deprecated)
 
| '''[http://www.docker.io Docker]'''
 
| '''[http://www.docker.io Docker]'''
Line 85: Line 88:
 
| ✔           
 
| ✔           
 
| ✔
 
| ✔
 +
| ✔             
 
| ✔               
 
| ✔               
 
| ✔
 
| ✔
Line 97: Line 101:
 
| ✔           
 
| ✔           
 
| ✔     
 
| ✔     
 +
| ✔             
 
| ✔*(11)         
 
| ✔*(11)         
 
| ✔
 
| ✔
Line 109: Line 114:
 
| ✔           
 
| ✔           
 
| ✔     
 
| ✔     
 +
| ✔             
 
| ✔         
 
| ✔         
 
| ✔
 
| ✔
Line 120: Line 126:
 
| ✔           
 
| ✔           
 
| ✔           
 
| ✔           
|    
+
| * (15)
 +
| * (15)
 
| ✔           
 
| ✔           
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 132: Line 139:
 
| ✔           
 
| ✔           
 
|             
 
|             
 +
| style="color: red" | ✗
 
|
 
|
 
| style="color: red" | ✗             
 
| style="color: red" | ✗             
Line 144: Line 152:
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
 
| ✔         
 
| ✔         
|      
+
| * (15)
 +
| * (15)
 
| style="color: red" | ✗     
 
| style="color: red" | ✗     
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 156: Line 165:
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
 
| ✔         
 
| ✔         
|    
+
| * (15)
 +
| * (15)
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 168: Line 178:
 
| ✔           
 
| ✔           
 
| ✔         
 
| ✔         
|    
+
| * (15)
 +
| * (15)
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 180: Line 191:
 
| ✔           
 
| ✔           
 
| ✔         
 
| ✔         
|    
+
| * (15)
 +
| * (15)
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 192: Line 204:
 
| ✔*         
 
| ✔*         
 
| ✔         
 
| ✔         
|
+
| style="color: red" | ✗
 +
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
|
 
|
Line 204: Line 217:
 
|             
 
|             
 
| style="color: red" | ✗*(6)
 
| style="color: red" | ✗*(6)
|
+
| style="color: red" | ✗
 +
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 216: Line 230:
 
| ✔           
 
| ✔           
 
| style="color: red" | ✗         
 
| style="color: red" | ✗         
| ✔*
+
|  
 +
|
 
| style="color: red" | ✗         
 
| style="color: red" | ✗         
 
| ✔
 
| ✔
Line 228: Line 243:
 
| ✔           
 
| ✔           
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
|    
+
| style="color: red" | ✗
 +
| style="color: red" | ✗
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 240: Line 256:
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
 +
| style="color: red" | ✗   
 
| style="color: red" | ✗     
 
| style="color: red" | ✗     
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
Line 252: Line 269:
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| ✔           
 
| ✔           
 +
| style="color: red" | ✗   
 
| style="color: red" | ✗     
 
| style="color: red" | ✗     
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
Line 264: Line 282:
 
| ✔           
 
| ✔           
 
| ✔           
 
| ✔           
|    
+
|
 +
|
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 276: Line 295:
 
| ✔           
 
| ✔           
 
| ✔           
 
| ✔           
|    
+
|
 +
|
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 288: Line 308:
 
| style="color: red" | ✗    (10)     
 
| style="color: red" | ✗    (10)     
 
| ✔           
 
| ✔           
|
+
| * (15)
 +
| * (15)
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 300: Line 321:
 
| ✔           
 
| ✔           
 
| ✔           
 
| ✔           
|  
+
| * (15)
 +
| * (15)
 
| ✔           
 
| ✔           
 
| ✔
 
| ✔
Line 313: Line 335:
 
| ✔           
 
| ✔           
 
| ✔           
 
| ✔           
 +
|
 
|  
 
|  
 
|
 
|
Line 325: Line 348:
 
|           
 
|           
 
|           
 
|           
 +
|
 
|  
 
|  
 
|
 
|
Line 338: Line 362:
 
|           
 
|           
 
|  
 
|  
 +
|
 
|
 
|
 
|
 
|
Line 349: Line 374:
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
 
| style="color: red" | ✗*(6)       
 
| style="color: red" | ✗*(6)       
|          
+
| * (15)
 +
| * (15)
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 361: Line 387:
 
| ✔           
 
| ✔           
 
| ✔           
 
| ✔           
 +
|
 
|             
 
|             
 
| ✔
 
| ✔
Line 373: Line 400:
 
| ✔           
 
| ✔           
 
| ✔           
 
| ✔           
 +
|
 
|     
 
|     
 
| ✔       
 
| ✔       
Line 386: Line 414:
 
| ✔           
 
| ✔           
 
| ✔
 
| ✔
 +
| ✔         
 
| ✔           
 
| ✔           
 
| ✔
 
| ✔
Line 398: Line 427:
 
|             
 
|             
 
|       
 
|       
 +
|
 
| style="color: red" | ✗     
 
| style="color: red" | ✗     
 
|
 
|
Line 409: Line 439:
 
| ✔           
 
| ✔           
 
| style="color: red" | ✗*(7)       
 
| style="color: red" | ✗*(7)       
|    
+
| style="color: red" | ✗
 +
| style="color: red" | ✗*(16)
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
|
 
|
Line 421: Line 452:
 
| ✔           
 
| ✔           
 
|  ✔         
 
|  ✔         
 +
| ✔
 
| ✔
 
| ✔
 
| ✔           
 
| ✔           
Line 433: Line 465:
 
| style="color: red" | ✗*(9)           
 
| style="color: red" | ✗*(9)           
 
| style="color: red" | ✗*(7)           
 
| style="color: red" | ✗*(7)           
|
+
|
 +
|
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
 
|
 
|
Line 445: Line 478:
 
| style="color: red" | ✗    *(14)           
 
| style="color: red" | ✗    *(14)           
 
|           
 
|           
|    
+
| * (15)
 +
| * (15)
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
|
 
|
Line 457: Line 491:
 
| ✔           
 
| ✔           
 
| style="color: red" | ✗*(7)       
 
| style="color: red" | ✗*(7)       
|    
+
| ✔         
 +
| ✔         
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
|
 
|
Line 469: Line 504:
 
|             
 
|             
 
|             
 
|             
|    
+
|
 +
|
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 481: Line 517:
 
| ✔           
 
| ✔           
 
| ✔         
 
| ✔         
|    
+
| style="color: red" | ✗     
 +
|
 
| style="color: red" | ✗       
 
| style="color: red" | ✗       
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 493: Line 530:
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| ✔
 
| ✔
| style="color: red" |
+
|
 +
|
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 505: Line 543:
 
|             
 
|             
 
| ✔           
 
| ✔           
|
+
| style="color: red" | ✗
 +
| style="color: red" | ✗
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
 
|
 
|
Line 517: Line 556:
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
 
| style="color: red" | ✗
 
| style="color: red" | ✗
| style="color: red" |
+
|
 +
|
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 529: Line 569:
 
| style="color: red" | ✗           
 
| style="color: red" | ✗           
 
| style="color: red" | ✗
 
| style="color: red" | ✗
| style="color: red" |
+
|
 +
|
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗
 
| style="color: red" | ✗
Line 549: Line 590:
 
# Only cold-snapshots are available.
 
# Only cold-snapshots are available.
 
#  https://bugs.launchpad.net/nova/+bug/1269448
 
#  https://bugs.launchpad.net/nova/+bug/1269448
 +
# Feature does not make sense for Baremetal / Ironic
 +
# Feature currently enabled by some Ironic drivers, but not all.
  
 
=== Description of features ===
 
=== Description of features ===

Revision as of 23:37, 26 March 2014

Compute Drivers

OpenStack Compute (Nova) has an abstraction layer for compute drivers. This is what allows you to choose which hypervisor(s) to use for your Nova deployment. The reality is that the support of each of the options is not equal. They are not tested the same amount. They also do not all support the same features. The purpose of this page is to describe the current support state of each compute driver in terms of testing and functionality.

Driver Testing Status

Group A

These drivers are fully supported. Test coverage includes:

  • unit tests that gate commits
  • functional testing that gate commits


Drivers in this group include:

  • libvirt (qemu/KVM on x86)

Group B

These drivers are in a bit of a middle ground. Test coverage includes:

  • unit tests that gate commits
  • functional testing providing by an external system that does not gate commits, but advises patch authors and reviewers of results in gerrit (the code review system).


Drivers in this group include:

Group C

NOTE: Drivers in Group C will be deprecated by the Icehouse release. See HypervisorSupportMatrix/DeprecationPlan for details.

These drivers have minimal testing and may or may not work at any given time. Use them at your own risk. Test coverage includes:

  • (maybe) unit tests that gate commits
  • no public functional testing


Drivers in this group include.

  • baremetal
  • docker
  • Xen via libvirt
  • LXC via libvirt

Hypervisor feature support matrix

This is an attempt to help new users decide on a hypervisor based on features that can be controlled through compute.

Most OpenStack development is done with the KVM and XEN hypervisors. This means that (currently at least) you are more likely to find community support for issues with these hypervisors. All features that are currently supported in KVM are also supported in QEMU.

As far as the Xen hypervisor is concerned, it is worth noting the following definitions:

  • XenServer: Open Source but commercially supported product from Citrix (Free edition also available)
  • Xen Cloud Platform (XCP): Open-source equivalent of XenServer (and the development project for the toolstack). Everything said about XenServer below applies equally to XCP.
  • XenAPI: The management API exposed by XenServer and XCP.
  • XAPI: The primary daemon on XenServer and Xen Cloud Platform; the one that exposes the XenAPI.
  • Xen via Libvirt: Xen hypervisor management using the libvirt Xen driver.

Nova has support for XenServer and XCP through the XenAPI virt layer. Note that this does not imply support for other Xen-based platforms such as those shipped with RHEL 6 or SUSE, which is provided via the libvirt layer (i.e. Xen via libvirt).

As far as the Baremetal hypervisor is concerned, it is worth noting that Ironic will deprecate the baremetal driver upon its graduation. New features are being added to Ironic.

NOTE: The PowerVM driver is deprecated in the Havana release and was removed in the Icehouse release.

Please help keep this list up-to-date.

Legend: ✔ indicates support, ✗ indicates the feature is not supported, * indicates there is a caveat to the functionality (caveats need to be documented!), and a blank cell generally indicates more testing is needed to make a judgment.

Feature XenServer/XCP KVM on x86 QEMU on x86 LXC via libvirt ESXi/VC Hyper-V Baremetal Ironic PowerVM (deprecated) Docker Xen/Libvirt
Launch ✔ *(12)
Reboot ✔*(11)
Terminate
Resize * (15) * (15)
Rescue
Pause * (15) * (15)
Un-pause * (15) * (15)
Suspend * (15) * (15)
Resume * (15) * (15)
Inject Networking ✔*(1)(2) ✔*(1) ✔*(1) ✔*
Inject File ✔* ✔* ✗*(6)
Serial Console Output ✔(4)
VNC Console ✔* ✔* ✔*
SPICE Console
RDP Console
Attach Volume
Detach Volume
Live Migration ✗ (10) * (15) * (15)
Snapshot * (15) * (15) ✔ * (13)
iSCSI
iSCSI CHAP
Fibre Channel
Set Admin Pass ✗*(6) * (15) * (15)
Get Guest Info
Get Host Info
Glance Integration
Service Control
VLAN Networking ✗*(7) ✗*(16)
Flat Networking
Security Groups ✗*(9) ✗*(7)
Firewall Rules ✗ *(14) * (15) * (15)
Routing ✗*(7)
nova diagnostics
Config Drive
Auto configure disk
Evacuate
Volume swap
Volume rate limiting
  1. Inject Networking only works with nova-network in Flat mode, and only with Debian/Ubuntu based virtual machines, and only at boot time
  2. XenServer integration also supports using a guest agent to inject networking settings, at any time when a VM has the guest agent installed, through an admin API extension
  3. (unused)
  4. XenAPI support for serial console was added in Havana
  5. (unsued)
  6. Functionality provided by cloudbase-init for windows http://www.cloudbase.it/cloud-init-for-windows-instances/
  7. Vlan and Routing is only supported on Hyper-V when using the Quantum / Neutron Hyper-V Agent; VlanManager mode is not supported with nova-network.
  8. Support of Xen using Libvirt
  9. Security Groups supported on VC/ESX Driver when using the Quantum NVP Plugin
  10. https://bugs.launchpad.net/nova/+bug/1192192
  11. The PowerVM driver currently only supports hard reboot.
  12. Copy on write images are not suported (see bug XXX).
  13. Only cold-snapshots are available.
  14. https://bugs.launchpad.net/nova/+bug/1269448
  15. Feature does not make sense for Baremetal / Ironic
  16. Feature currently enabled by some Ironic drivers, but not all.

Description of features

Auto configure disk

Automatically reconfigure the size of the partition to match the size of the flavor's root drive before booting.

nova diagnostics

The `nova diagnostics` command will provide some information about resource use associated with an instance. See the OpenStack Compute admin guide for more details.

Set Admin Pass

This feature is the use of a guest agent to change the administrative (root) password on an instance.

Known bugs, by hypervisor