ec74cc688e1bbfc2f16cfe9473551fd261c6e78e
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
…
========================
Team and repository tags
========================
.. image:: https://governance.openstack.org/badges/nova.svg
:target: https://governance.openstack.org/reference/tags/index.html
.. Change things from this point on
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.
API
---
To learn how to use Nova's API, consult the documentation
available online at:
https://developer.openstack.org/api-guide/compute/
https://developer.openstack.org/api-ref/compute/
For more information on OpenStack APIs, SDKs and CLIs,
please see:
https://www.openstack.org/appdev/
https://developer.openstack.org/
Operators
---------
To learn how to deploy and configure OpenStack Nova, consult the
documentation available online at:
https://docs.openstack.org
For information about the different compute (hypervisor) drivers
supported by Nova, please read:
https://docs.openstack.org/developer/nova/feature_classification.html
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:
https://bugs.launchpad.net/nova
Developers
----------
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:
https://docs.openstack.org/developer/nova/
Description
Languages
Python
97.5%
Smarty
2.3%
Shell
0.2%