OpenStack Compute (Nova)
Go to file
Stephen Finucane ec74cc688e Add PCIWeigher
Take three hosts, one with a single PCI device, one with many PCI
devices, and one with no PCI devices. Nova should prioritise these
differently based on the demands of the instance. If the instance
requests a single PCI device, then the first of the hosts should be
preferred. Similarly, if the instance requests multiple PCI devices,
then the second of these hosts would be preferred. Finally, if the
instance does not request a PCI device, then the last of these hosts
should be preferred.

While the first and second of these cases is already somewhat handled by
the NUMA topology filter (which will ensure the correct number and type
of PCI devices are available on the hosts), there is nothing to stop a
instance that *does not* require PCI devices from occupying space on one
of the few hosts that *does* have free PCI devices.

The PCIWeigher is designed to keep hosts with PCI device(s) as free as
possible, to best ensure they can satisfy requests from instances with
PCI requirements when called upon.  This change ensures (a) an instance
with PCI requirements has the best possible chance of scheduling
successfully and (b) an instance without these requirements won't clog
up hosts that have these valuable resources.

Change-Id: I04bf7e6b8324dcac6c93b0cb69c38c30fb05be56
Partially Implements: blueprint reserve-numa-with-pci
2017-06-08 09:44:46 +01:00
api-guide/source Remove cloudpipe APIs 2017-05-04 16:13:45 +08:00
api-ref/source Merge "Fixed some nits for microversion 2.48" 2017-06-06 23:27:49 +00:00
contrib Merge "changed quantum to neutron in vif-openstack" 2014-03-05 10:45:05 +00:00
devstack Don't run ssh validation in cells v1 job 2017-05-26 20:18:09 -04:00
doc Add PCIWeigher 2017-06-08 09:44:46 +01:00
etc/nova libvirt: remove scality volume driver 2017-05-19 14:51:37 -04:00
gate move gate hooks to gate/ 2017-01-04 11:05:16 +00:00
nova Add PCIWeigher 2017-06-08 09:44:46 +01:00
placement-api-ref/source [placement] Add api-ref for resource classes 2017-06-05 14:39:29 +03:00
plugins/xenserver XenAPI Remove useless files when use os-xenapi lib 2017-01-10 18:06:17 -08:00
releasenotes Add PCIWeigher 2017-06-08 09:44:46 +01:00
tools [placement] Fix placement-api-ref check tool 2017-05-24 12:15:28 +03:00
.coveragerc Remove nova/openstack/* from .coveragerc 2016-10-12 16:20:49 -04:00
.gitignore Structure for simply managing placement-api-ref 2017-03-24 15:15:53 +03:00
.gitreview Add .gitreview config file for gerrit. 2011-10-24 15:07:19 -04:00
.mailmap Add mailmap entry 2014-05-07 12:14:26 -07:00
.testr.conf [placement] Adjust the name of the gabbi tests 2016-09-20 19:14:44 +00:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:37 +00:00
HACKING.rst Enable global hacking checks and removed local checks 2017-02-10 15:09:37 +01:00
LICENSE initial commit 2010-05-27 23:05:26 -07:00
MAINTAINERS Add a maintainers file 2015-05-23 03:22:07 +10:00
README.rst Optimize the link address 2017-04-07 08:56:37 +08:00
babel.cfg Get rid of distutils.extra. 2012-02-08 19:30:39 -08:00
bindep.txt List system dependencies for running common tests 2016-08-24 06:49:32 +02:00
requirements.txt Merge "Revert "Remove Babel from requirements.txt"" 2017-06-07 15:41:22 +00:00
setup.cfg Use plain routes list for os-services endpoint instead of stevedore 2017-06-07 14:25:58 +08:00 Updated from global requirements 2017-03-02 11:50:48 +00:00
test-requirements.txt Updated from global requirements 2017-06-03 13:10:15 +00:00
tests-functional-py3.txt Remove invalid URL in gabbi tests 2017-01-17 21:10:45 +00:00
tests-py3.txt Skip unit tests for SSL + py3 2017-03-02 14:30:16 +08:00
tox.ini Merge "[placement] Fix placement-api-ref check tool" 2017-05-24 21:30:55 +00:00


Team and repository tags


OpenStack Nova

OpenStack Nova provides a cloud computing fabric controller, supporting a wide variety of compute technologies, including: libvirt (KVM, Xen, LXC and more), Hyper-V, VMware, XenServer and OpenStack Ironic.

OpenStack Nova is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.


To learn how to use Nova's API, consult the documentation available online at:

For more information on OpenStack APIs, SDKs and CLIs, please see:


To learn how to deploy and configure OpenStack Nova, consult the documentation available online at:

For information about the different compute (hypervisor) drivers supported by Nova, please read:

In the unfortunate event that bugs are discovered, they should be reported to the appropriate bug tracker. If you obtained the software from a 3rd party operating system vendor, it is often wise to use their own bug tracker for reporting problems. In all other cases use the master OpenStack bug tracker, available at:


For information on how to contribute to Nova, please see the contents of the CONTRIBUTING.rst.

Any new code must follow the development guidelines detailed in the HACKING.rst file, and pass all unit tests.

Further developer focused documentation is available at: