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
html_last_updated_fmt option is interpreted as a
byte string in python3, causing Sphinx build to break.
This patch makes it utf-8 string.
Changing Popen to .check_output because of 3 reasons:
1. check_output() will raise CalledProcessError if
the called process returns a non-zero return code.
2. For consistency with keystone [1] and cinder [2]
3. It makes the code look much better.
[1] https://review.openstack.org/#/c/457142/
[2] https://review.openstack.org/#/c/433081
Change-Id: Ia3e792c512da46c2b92d3ad9ec1657849d379052
block_device_mapping.rst had bad ref link and i think with
oslosphinx 4.13 or Sphinx 1.6.2, it started throwing error.
This commit fix this.
Change-Id: Ia279fd93609664efcdb5038a50460d54dd14f254
This deprecates the TypeAffinityFilter. This filter, which
is really an anti-affinity filter for flavors, attempts to
ensure that no two flavors show up on the same host. However,
to do this it relies on the flavors.id primary key, which is
subject to "change" if/when the admin deletes and recreates a
flavor (this is how Horizon allows you to 'edit' a flavor).
When you do that, you have a new flavor with a new id primary
key and the filter will not know the difference. So you could
really end up with more than one m1.large instance on the
same host, which defeats the purpose of the filter.
This filter is also problematic for
blueprint put-host-manager-instance-info-on-a-diet because in
that blueprint we want to stop sending full instance objects
over RPC from all compute services to the scheduler just to
track affinity and anti-affinity. All we really need for the
ServerGroupAffinityFilter and ServerGroupAntiAffinityFilter
is the list of instance uuids on a host, not the full object.
If we can get rid of TypeAffinityFilter, we can change the
compute<>scheduler RPC calls to just pass the list of instance
uuids for update_instance_info rather than sending an InstanceList.
Change-Id: I660e0316b11afcad65c0fe7bd167ddcec9239a8b
This adds a --strict option that can be passed in when calling the
nova-manage cell_v2 discover_hosts command. When this option is used,
the command will only return success if a new host has been found.
In any other case it is considered a failure.
Closes-Bug: #1692982
Change-Id: I942af11a3987e1edce67423c66931ad9ece65587
This came up in IRC where someone upgraded from newton to
ocata and didn't use the simple_cell_setup command, but they
didn't run the map_instances command. Our cells v2 deploy/upgrade
guide mentions using simple_cell_setup for the minimal scenario
so it wasn't clear that they needed to run map_instances.
The install guide doesn't mention any of this either since this
is about upgrades, and the install guide is focused on fresh installs
where there are no existing instances to map.
Change-Id: Iedf3aabf1508abf59a54071b20a7f1c58b63e32c
There is a cells cache in the API and in the request context,
which is used in the controller services (api, conductor, and
scheduler), so this adds a FAQ item about needing to restart
those services if you update the db connection or transport url
in a given cell which is already cached.
Change-Id: I56daf87dad9e86f747e945f0842344ddba42b91e
We get random questions about cells v2 in IRC and some of them
are repeats, and some are just good questions which took some
thought to answer, so we should document those so they aren't
lost.
This is the start of a series, so it adds an initial question.
Change-Id: I96005d1b86bb92f71a5cc848afd2d0126dd9071a
We've had a couple of nice presentations on cells v2
from previous summits. This change links those into the
top-level cells v2 docs in the devref. Note that I
consciously put them before the Manifesto section as
that might be somewhat dated at this point, but it would
also be nice as someone new to watch a presentation before
digging into prose for the details. I also elected to avoid
adding yet a third "References" section to this page since
the other ones are specifically references for install and
upgrade scenarios.
Change-Id: I8e60e018cd103e18dd34c3f9cbdd409ec6550a97
These aren't maintained and their usefulness is questionable, given the
availability of logs in '/var/log/' and the plethora of powerful tools
(Logstash) that can be used to parse these logs in large deployments.
Change-Id: I685512a17b8aea700fadf167571f37ecf1874861
Most of these operations can be accomplished using the REST API [1],
with the 'quota_usage_refresh' command being the sole exception. This
particular command is duplicated in a new category - quota - thus
allowing us to fully deprecate the entire 'project' and 'account'
categories.
Note that the '(project|account) quota_usage_refresh' command has been
named 'quota refresh' and not 'quota usage_refresh'. This is because
cliff, which will be used by 'nova-manage' in the future, does not
support underscores in command names.
[1] https://developer.openstack.org/api-ref/compute/#quota-sets-os-quota-sets
Change-Id: Ic02a96802d2a38ed9c4e00991a6bd2088dfcffc6
Cinder deprecated the GlusterFS volume driver
in Newton and deleted it in Ocata:
I10c576602dd0e65947d1a1af5d04b8ada54f4625
Since it's unused, unmaintained and unsupported in
Cinder we should remove it from the libvirt driver.
This also removes the related configuration options.
A note is left in the code since I'm unsure if anything
relies on checking for the netfs disk source_protocol which
was added at the same time as the glusterfs support in
Ic6dd861b40b692b25df67c9d5b63fd436c690fde.
Change-Id: I2745f5578646ec994b53f6b5c0a5f62637b0948a
The current docs on the Filter Scheduler imply that filters can be
specified per request. This is not the case, so this change corrects
that page to remove this incorrect language, and make clear that only
the filters specified in the config file will be used.
Closes-Bug: #1689339
Change-Id: I3459a894481cab7d3961ef875015e2b8011e9a58
This provides a brief explanation of the new nova-api-wsgi [1] and
nova-metadata-wsgi [2] scripts in the Architecture section of the devref
with links to the new doc added to the man pages for the eventlet
scripts.
The nova-api.rst mentioned ec2 so figured best to fix that now
rather than forget about it, despite not being entirely germane.
There is also a reno note that indicates the availability of the new
scripts.
There is a devstack change which is testing the new wsgi scripts as
well as forcing grenade to not use them at
If2d7e363a6541854f2e30c03171bef7a41aff745
[1] I7c4acfaa6c50ac0e4d6de69eb62ec5bbad72ff85
[2] Icb35fe2b94ab02c0ba8ba8129ae18aae0f794756
Change-Id: I351b2af3b256d3031bd2a65feba0495e815f8427
Related-Bug: #1661360
Right now, we can't build Nova package in RDO because the tooling still
find some bits for nova-cert in Nova codebase.
This patch aims to purge them:
- man entry for nova-cert
- nova-cert binary in setup.cfg
Change-Id: Iebee0fbcdad5808e6543e3bcad10ea1f08b8f306
With XenServer as hypervisor, we have implemented the blueprint
attach/detach interface https://review.openstack.org/#/c/365505/
and it can pass the tempest, so mark this feauture as complete
in support matrix
Change-Id: I34709b41c4ba6133e3539a3a7ef1224dbdf266bf
the guideline include a broken links
nova/api/openstack/rest_api_version_history.rst need to be
nova/api/openstack/compute/rest_api_version_history.rst
Change-Id: I54f4796382865081654f2ab471fd67274d84bb89
This commit removes nova-cert which has been deprecated since change
Id7a1fc943cbe6d860a50d3cc776717b55351004b. The APIs have been hard coded
to return a 410 whenever they're called now. For the API ref a new
section for obsolete apis is added to the bottom of the page and the
certificates api ref is moved there.
Implements bp remove-nova-cert
Change-Id: I2c78a0c6599b92040146cf9f0042cff8fd2509c3
We have to continue scrubbing our documentation for anything
that generically refers to 'cells' since older documentation is
referring to cells v1, and we don't want people to confuse that
with cells v2. This simply provides a warning that cells v1 is
not recommended for new deployments and if you were looking for
help with cells v2 commands, we need to redirect you.
Change-Id: I3bd0332607bff169b5f496d17e4fc7d372ea991b
As of change If1e03c9343b8cc9c34bd51c2b4d25acdb21131ff, using
"nova hypervisor-list" before compute hosts are mapped to a cell
will result in an empty list.
Our cells v2 install steps mention using 'nova hypervisor-list' after
creating a cell and starting compute services to tell when to run
the discover_hosts command, but now hypervisor-list won't work until
you've run discover_hosts, so it's a catch-22.
This change adds a release note to let people writing deployment tools
to know about the change in behavior and also updates the install steps
to use service-list instead of hypervisor-list, since service-list does
not require the compute host to be mapped to the cell first.
We are going to need to make a similar change in the OpenStack install
guide since that also mentions using 'nova hypervisor-list' before
discover_hosts.
Change-Id: If2baab40c2e2a3de20e561bba50688d615b002ef
Closes-Bug: #1682060
This copies a line from the ComputeCapabilitiesFilter description
which points out that if the flavor does not have any extra specs
then it passes the filter. I had to figure this out via code inspection
so it would be good to document it.
Change-Id: Id7b3ec5dd2847c9ea615981031d7e0f2b1beb3e2
The usefulness of these options is dubious at best and there's no real
reason to keep them around. Deprecate this command now, with the plan to
remove it entirely in Queens.
Change-Id: I5c578d4f322cab1be69b8e498a8dd3bbff29b269
Partially-Implements: bp move-nova-cmds-to-cliff
This was previously hidden within the code review guide making it almost
impossible to find from the initial index page.
Change-Id: I47e771c641d72a837345b1b9a07e86ca4313b518
The note about rolling upgrades not being supported for cells
was referring to cells v1, so let's make that clear.
We will support rolling upgrades for cells v2 deployments, we
just haven't documented it yet (or done it in a grenade job).
Change-Id: I6a8b3d3aaa49859e8b769a296684ac96883719f8