Feature Support Matrix

Warning

Please note, while this document is still being maintained, this is slowly being updated to re-group and classify features using the definitions described in here: Feature Classification

When considering which capabilities should be marked as mandatory the following general guiding principles were applied

  • Inclusivity - people have shown ability to make effective use of a wide range of virtualization technologies with broadly varying featuresets. Aiming to keep the requirements as inclusive as possible, avoids second-guessing what a user may wish to use the cloud compute service for.
  • Bootstrapping - a practical use case test is to consider that starting point for the compute deploy is an empty data center with new machines and network connectivity. The look at what are the minimum features required of a compute service, in order to get user instances running and processing work over the network.
  • Competition - an early leader in the cloud compute service space was Amazon EC2. A sanity check for whether a feature should be mandatory is to consider whether it was available in the first public release of EC2. This had quite a narrow featureset, but none the less found very high usage in many use cases. So it serves to illustrate that many features need not be considered mandatory in order to get useful work done.
  • Reality - there are many virt drivers currently shipped with Nova, each with their own supported feature set. Any feature which is missing in at least one virt driver that is already in-tree, must by inference be considered optional until all in-tree drivers support it. This does not rule out the possibility of a currently optional feature becoming mandatory at a later date, based on other principles above.

Summary

Feature Status Hyper-V Ironic Libvirt KVM (ppc64) Libvirt KVM (s390x) Libvirt KVM (x86) Libvirt LXC Libvirt QEMU (x86) Libvirt Virtuozzo CT Libvirt Virtuozzo VM Libvirt Xen VMware vCenter XenServer
Attach block volume to instance optional
Detach block volume from instance optional
Set the host in a maintenance mode optional
Evacuate instances from a host optional ? ? ? ? ? ? ? ?
Rebuild instance optional
Guest instance status mandatory
Guest host status optional
Live migrate instance across hosts optional
Launch instance mandatory
Stop instance CPUs (pause) optional
Reboot instance optional
Rescue instance optional
Resize instance optional
Restore instance optional
Service control optional
Set instance admin password optional
Save snapshot of instance disk optional
Suspend instance optional
Swap block volumes optional
Shutdown instance mandatory
Trigger crash dump optional
Resume instance CPUs (unpause) optional
Auto configure disk optional
Instance disk I/O limits optional
Config drive support choice
Inject files into disk image optional
Inject guest networking config optional
Remote desktop over RDP choice
View serial console logs choice
Remote interactive serial console choice ? ? ? ?
Remote desktop over SPICE choice
Remote desktop over VNC choice
Block storage support optional
Block storage over fibre channel optional
Block storage over iSCSI condition
CHAP authentication for iSCSI optional
Image storage support mandatory
Network firewall rules optional
Network routing optional
Network security groups optional
Flat networking choice
VLAN networking choice
uefi boot optional

Details

  • Attach block volume to instance

    Status: optional. The attach volume operation provides a means to hotplug additional block storage to a running instance. This allows storage capabilities to be expanded without interruption of service. In a cloud model it would be more typical to just spin up a new instance with large storage, so the ability to hotplug extra storage is for those cases where the instance is considered to be more of a pet than cattle. Therefore this operation is not considered to be mandatory to support.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Detach block volume from instance

    Status: optional. See notes for attach volume operation.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Set the host in a maintenance mode

    Status: optional. This operation allows a host to be placed into maintenance mode, automatically triggering migration of any running instances to an alternative host and preventing new instances from being launched. This is not considered to be a mandatory operation to support. The CLI command is “nova host-update <host>”. The driver methods to implement are “host_maintenance_mode” and “set_host_enabled”.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): missing
    • Libvirt QEMU (x86): missing
    • Hyper-V: missing
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): missing
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

  • Evacuate instances from a host

    Status: optional. A possible failure scenario in a cloud environment is the outage of one of the compute nodes. In such a case the instances of the down host can be evacuated to another host. It is assumed that the old host is unlikely ever to be powered back on, otherwise the evacuation attempt will be rejected. When the instances get moved to the new host, their volumes get re-attached and the locally stored data is dropped. That happens in the same way as a rebuild. This is not considered to be a mandatory operation to support.

    CLI commands:

    • nova evacuate <server>
    • nova host-evacuate <host>

    drivers:

    • Libvirt Xen: unknown
    • Libvirt KVM (ppc64): unknown
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): unknown
    • Hyper-V: unknown
    • Libvirt LXC: unknown
    • XenServer: unknown
    • Libvirt KVM (x86): complete
    • Ironic: unknown
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: unknown

  • Rebuild instance

    Status: optional. A possible use case is additional attributes need to be set to the instance, nova will purge all existing data from the system and remakes the VM with given information such as ‘metadata’ and ‘personalities’. Though this is not considered to be a mandatory operation to support.

    CLI commands:

    • nova rebuild <server> <image>

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: complete
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Guest instance status

    Status: mandatory. Provides a quick report on information about the guest instance, including the power state, memory allocation, CPU allocation, number of vCPUs and cummulative CPU execution time. As well as being informational, the power state is used by the compute manager for tracking changes in guests. Therefore this operation is considered mandatory to support.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: complete
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Guest host status

    Status: optional. Unclear what this refers to

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Live migrate instance across hosts

    Status: optional. Live migration provides a way to move an instance off one compute host, to another compute host. Administrators may use this to evacuate instances from a host that needs to undergo maintenance tasks, though of course this may not help if the host is already suffering a failure. In general instances are considered cattle rather than pets, so it is expected that an instance is liable to be killed if host maintenance is required. It is technically challenging for some hypervisors to provide support for the live migration operation, particularly those built on the container based virtualization. Therefore this operation is not considered mandatory to support.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

      https://bugs.launchpad.net/nova/+bug/1192192

  • Launch instance

    Status: mandatory. Importing pre-existing running virtual machines on a host is considered out of scope of the cloud paradigm. Therefore this operation is mandatory to support in drivers.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: complete
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Stop instance CPUs (pause)

    Status: optional. Stopping an instances CPUs can be thought of as roughly equivalent to suspend-to-RAM. The instance is still present in memory, but execution has stopped. The problem, however, is that there is no mechanism to inform the guest OS that this takes place, so upon unpausing, its clocks will no longer report correct time. For this reason hypervisor vendors generally discourage use of this feature and some do not even implement it. Therefore this operation is considered optional to support in drivers.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: missing

  • Reboot instance

    Status: optional. It is reasonable for a guest OS administrator to trigger a graceful reboot from inside the instance. A host initiated graceful reboot requires guest co-operation and a non-graceful reboot can be achieved by a combination of stop+start. Therefore this operation is considered optional.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: complete
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Rescue instance

    Status: optional. The rescue operation starts an instance in a special configuration whereby it is booted from an special root disk image. The goal is to allow an administrator to recover the state of a broken virtual machine. In general the cloud model considers instances to be cattle, so if an instance breaks the general expectation is that it be thrown away and a new instance created. Therefore this operation is considered optional to support in drivers.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Resize instance

    Status: optional. The resize operation allows the user to change a running instance to match the size of a different flavor from the one it was initially launched with. There are many different flavor attributes that potentially need to be updated. In general it is technically challenging for a hypervisor to support the alteration of all relevant config settings for a running instance. Therefore this operation is considered optional to support in drivers.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: partial

      Only certain ironic drivers support this

    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Restore instance

    Status: optional. See notes for the suspend operation

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Service control

    Status: optional. Something something, dark side, something something. Hard to claim this is mandatory when no one seems to know what “Service control” refers to in the context of virt drivers.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: complete

  • Set instance admin password

    Status: optional. Provides a mechanism to (re)set the password of the administrator account inside the instance operating system. This requires that the hypervisor has a way to communicate with the running guest operating system. Given the wide range of operating systems in existence it is unreasonable to expect this to be practical in the general case. The configdrive and metadata service both provide a mechanism for setting the administrator password at initial boot time. In the case where this operation were not available, the administrator would simply have to login to the guest and change the password in the normal manner, so this is just a convenient optimization. Therefore this operation is not considered mandatory for drivers to support.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): missing
    • Libvirt QEMU (x86): complete

      Requires libvirt>=1.2.16 and hw_qemu_guest_agent.

    • Hyper-V: missing
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete

      Requires libvirt>=1.2.16 and hw_qemu_guest_agent.

    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

  • Save snapshot of instance disk

    Status: optional. The snapshot operation allows the current state of the instance root disk to be saved and uploaded back into the glance image repository. The instance can later be booted again using this saved image. This is in effect making the ephemeral instance root disk into a semi-persistent storage, in so much as it is preserved even though the guest is no longer running. In general though, the expectation is that the root disks are ephemeral so the ability to take a snapshot cannot be assumed. Therefore this operation is not considered mandatory to support.

    drivers:

    • Libvirt Xen: partial

      Only cold snapshots (pause + snapshot) supported

    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Suspend instance

    Status: optional. Suspending an instance can be thought of as roughly equivalent to suspend-to-disk. The instance no longer consumes any RAM or CPUs, with its live running state having been preserved in a file on disk. It can later be restored, at which point it should continue execution where it left off. As with stopping instance CPUs, it suffers from the fact that the guest OS will typically be left with a clock that is no longer telling correct time. For container based virtualization solutions, this operation is particularly technically challenging to implement and is an area of active research. This operation tends to make more sense when thinking of instances as pets, rather than cattle, since with cattle it would be simpler to just terminate the instance instead of suspending. Therefore this operation is considered optional to support.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Swap block volumes

    Status: optional. The swap volume operation is a mechanism for changing a running instance so that its attached volume(s) are backed by different storage in the host. An alternative to this would be to simply terminate the existing instance and spawn a new instance with the new storage. In other words this operation is primarily targeted towards the pet use case rather than cattle, however, it is required for volume migration to work in the volume service. This is considered optional to support.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: complete
    • XenServer: missing
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: missing

  • Shutdown instance

    Status: mandatory. The ability to terminate a virtual machine is required in order for a cloud user to stop utilizing resources and thus avoid indefinitely ongoing billing. Therefore this operation is mandatory to support in drivers.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete

      Fails in latest Ubuntu Trusty kernel from security repository (3.13.0-76-generic), but works in upstream 3.13.x kernels as well as default Ubuntu Trusty latest kernel (3.13.0-58-generic).

    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: complete
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Trigger crash dump

    Status: optional. The trigger crash dump operation is a mechanism for triggering a crash dump in an instance. The feature is typically implemented by injecting an NMI (Non-maskable Interrupt) into the instance. It provides a means to dump the production memory image as a dump file which is useful for users. Therefore this operation is considered optional to support.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: missing
    • XenServer: missing
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

  • Resume instance CPUs (unpause)

    Status: optional. See notes for the “Stop instance CPUs” operation

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: missing

  • Auto configure disk

    Status: optional. something something, dark side, something something. Unclear just what this is about.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): missing
    • Libvirt QEMU (x86): missing
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): missing
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

  • Instance disk I/O limits

    Status: optional. The ability to set rate limits on virtual disks allows for greater performance isolation between instances running on the same host storage. It is valid to delegate scheduling of I/O operations to the hypervisor with its default settings, instead of doing fine grained tuning. Therefore this is not considered to be an mandatory configuration to support.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: missing
    • XenServer: missing
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

  • Config drive support

    Status: choice(guest.setup). The config drive provides an information channel into the guest operating system, to enable configuration of the administrator password, file injection, registration of SSH keys, etc. Since cloud images typically ship with all login methods locked, a mechanism to set the administrator password of keys is required to get login access. Alternatives include the metadata service and disk injection. At least one of the guest setup mechanisms is required to be supported by drivers, in order to enable login access.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: complete
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Inject files into disk image

    Status: optional. This allows for the end user to provide data for multiple files to be injected into the root filesystem before an instance is booted. This requires that the compute node understand the format of the filesystem and any partitioning scheme it might use on the block device. This is a non-trivial problem considering the vast number of filesystems in existence. The problem of injecting files to a guest OS is better solved by obtaining via the metadata service or config drive. Therefore this operation is considered optional to support.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): missing
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

  • Inject guest networking config

    Status: optional. This allows for static networking configuration (IP address, netmask, gateway and routes) to be injected directly into the root filesystem before an instance is booted. This requires that the compute node understand how networking is configured in the guest OS which is a non-trivial problem considering the vast number of operating system types. The problem of configuring networking is better solved by DHCP or by obtaining static config via the metadata service or config drive. Therefore this operation is considered optional to support.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): missing
    • Libvirt QEMU (x86): partial

      Only for Debian derived guests

    • Hyper-V: missing
    • Libvirt LXC: missing
    • XenServer: partial

      Only for Debian derived guests

    • Libvirt KVM (x86): partial

      Only for Debian derived guests

    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: partial

      requires vmware tools installed

  • Remote desktop over RDP

    Status: choice(console). This allows the administrator to interact with the graphical console of the guest OS via RDP. This provides a way to see boot up messages and login to the instance when networking configuration has failed, thus preventing a network based login. Some operating systems may prefer to emit messages via the serial console for easier consumption. Therefore support for this operation is not mandatory, however, a driver is required to support at least one of the listed console access operations.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): missing
    • Libvirt QEMU (x86): missing
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: missing
    • Libvirt KVM (x86): missing
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

  • View serial console logs

    Status: choice(console). This allows the administrator to query the logs of data emitted by the guest OS on its virtualized serial port. For UNIX guests this typically includes all boot up messages and so is useful for diagnosing problems when an instance fails to successfully boot. Not all guest operating systems will be able to emit boot information on a serial console, others may only support graphical consoles. Therefore support for this operation is not mandatory, however, a driver is required to support at least one of the listed console access operations.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

  • Remote interactive serial console

    Status: choice(console). This allows the administrator to interact with the serial console of the guest OS. This provides a way to see boot up messages and login to the instance when networking configuration has failed, thus preventing a network based login. Not all guest operating systems will be able to emit boot information on a serial console, others may only support graphical consoles. Therefore support for this operation is not mandatory, however, a driver is required to support at least one of the listed console access operations. This feature was introduced in the Juno release with blueprint https://blueprints.launchpad.net/nova/+spec/serial-ports

    CLI commands:

    • nova get-serial-console <server>

    drivers:

    • Libvirt Xen: unknown
    • Libvirt KVM (ppc64): unknown
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): unknown
    • Hyper-V: complete
    • Libvirt LXC: unknown
    • XenServer: missing
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

  • Remote desktop over SPICE

    Status: choice(console). This allows the administrator to interact with the graphical console of the guest OS via SPICE. This provides a way to see boot up messages and login to the instance when networking configuration has failed, thus preventing a network based login. Some operating systems may prefer to emit messages via the serial console for easier consumption. Therefore support for this operation is not mandatory, however, a driver is required to support at least one of the listed console access operations.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): missing
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: missing
    • XenServer: missing
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

  • Remote desktop over VNC

    Status: choice(console). This allows the administrator to interact with the graphical console of the guest OS via VNC. This provides a way to see boot up messages and login to the instance when networking configuration has failed, thus preventing a network based login. Some operating systems may prefer to emit messages via the serial console for easier consumption. Therefore support for this operation is not mandatory, however, a driver is required to support at least one of the listed console access operations.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): missing
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: missing
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Block storage support

    Status: optional. Block storage provides instances with direct attached virtual disks that can be used for persistent storage of data. As an alternative to direct attached disks, an instance may choose to use network based persistent storage. OpenStack provides object storage via the Swift service, or a traditional filesystem such as NFS/GlusterFS may be used. Some types of instances may not require persistent storage at all, being simple transaction processing systems reading requests & sending results to and from the network. Therefore support for this configuration is not considered mandatory for drivers to support.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: partial
    • VMware vCenter: complete

  • Block storage over fibre channel

    Status: optional. To maximise performance of the block storage, it may be desirable to directly access fibre channel LUNs from the underlying storage technology on the compute hosts. Since this is just a performance optimization of the I/O path it is not considered mandatory to support.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: complete
    • XenServer: missing
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: missing

  • Block storage over iSCSI

    Status: condition(storage.block==complete). If the driver wishes to support block storage, it is common to provide an iSCSI based backend to access the storage from cinder. This isolates the compute layer for knowledge of the specific storage technology used by Cinder, albeit at a potential performance cost due to the longer I/O path involved. If the driver chooses to support block storage, then this is considered mandatory to support, otherwise it is considered optional.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • CHAP authentication for iSCSI

    Status: optional. If accessing the cinder iSCSI service over an untrusted LAN it is desirable to be able to enable authentication for the iSCSI protocol. CHAP is the commonly used authentication protocol for iSCSI. This is not considered mandatory to support. (?)

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: missing

  • Image storage support

    Status: mandatory. This refers to the ability to boot an instance from an image stored in the glance image repository. Without this feature it would not be possible to bootstrap from a clean environment, since there would be no way to get block volumes populated and reliance on external PXE servers is out of scope. Therefore this is considered a mandatory storage feature to support.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: complete
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Network firewall rules

    Status: optional. Unclear how this is different from security groups

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: missing

  • Network routing

    Status: optional. Unclear what this refers to

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: complete
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • Network security groups

    Status: optional. The security groups feature provides a way to define rules to isolate the network traffic of different instances running on a compute host. This would prevent actions such as MAC and IP address spoofing, or the ability to setup rogue DHCP servers. In a private cloud environment this may be considered to be a superfluous requirement. Therefore this is considered to be an optional configuration to support.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: partial

      This is supported by the Neutron NSX plugins

  • Flat networking

    Status: choice(networking.topology). Provide network connectivity to guests using a flat topology across all compute nodes. At least one of the networking configurations is mandatory to support in the drivers.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: complete
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: complete
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • VLAN networking

    Status: choice(networking.topology). Provide network connectivity to guests using VLANs to define the topology. At least one of the networking configurations is mandatory to support in the drivers.

    drivers:

    • Libvirt Xen: complete
    • Libvirt KVM (ppc64): complete
    • Libvirt KVM (s390x): complete
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: complete
    • XenServer: complete
    • Libvirt KVM (x86): complete
    • Ironic: missing
    • Libvirt Virtuozzo CT: complete
    • Libvirt Virtuozzo VM: complete
    • VMware vCenter: complete

  • uefi boot

    Status: optional. This allows users to boot a guest with uefi firmware.

    drivers:

    • Libvirt Xen: missing
    • Libvirt KVM (ppc64): missing
    • Libvirt KVM (s390x): missing
    • Libvirt QEMU (x86): complete
    • Hyper-V: missing
    • Libvirt LXC: missing
    • XenServer: missing
    • Libvirt KVM (x86): complete
    • Ironic: partial

      depends on hardware support

    • Libvirt Virtuozzo CT: missing
    • Libvirt Virtuozzo VM: missing
    • VMware vCenter: missing

Notes

  • Virtuozzo was formerly named Parallels in this document

Previous topic

Feature Classification

Next topic

How to get (more) involved with Nova

Project Source

This Page