Commit Graph

2625 Commits

Author SHA1 Message Date
Zuul b6fe7521af Merge "docs: Follow-ups for cells v2, architecture docs" 2022-02-07 10:27:51 +00:00
Zuul 26ce7b30b2 Merge "docs: Add new architecture guide" 2022-02-03 18:28:02 +00:00
Stephen Finucane 136f1deb6e docs: Follow-ups for cells v2, architecture docs
Based on review feedback on [1] and [2].

[1] If39db50fd8b109a5a13dec70f8030f3663555065
[2] I518bb5d586b159b4796fb6139351ba423bc19639

Change-Id: I44920f20213462a3abe743ccd38b356d6490a7b4
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-02-03 11:41:50 +00:00
Zuul b0633ac49b Merge "docs: Add a new cells v2 document" 2022-02-02 17:01:13 +00:00
Zuul bb2984b9c7 Merge "[doc] propose Review-Priority label for contribs" 2022-01-20 17:05:49 +00:00
Zuul a17b67ab2a Merge "Update Interop doc" 2022-01-14 22:27:56 +00:00
Zuul 755aa11e0c Merge "Reattach mdevs to guest on resume" 2021-12-08 16:08:24 +00:00
Sylvain Bauza 890cd82b84 [doc] propose Review-Priority label for contribs
As we already discussed at the PTG, the consensus was to accept contributors
to use this label for asking cores to review some changes.

Documenting it first so a dependent patch would then modify Gerrit once
we agree.

Change-Id: I38e999954e2c91d049e1af5cda6dd0b4f8168a0e
2021-12-07 11:50:15 +01:00
Gustavo Santos 16f7c601b6 Reattach mdevs to guest on resume
When suspending a VM in OpenStack, Nova detaches all the mediated
devices from the guest machine, but does not reattach them on the resume
operation. This patch makes Nova reattach the mdevs that were detached
when the guest was suspended.

This behavior is due to libvirt not supporting the hot-unplug of
mediated devices at the time the feature was being developed. The
limitation has been lifted since then, and now we have to amend the
resume function so it will reattach the mediated devices that were
detached on suspension.

Closes-bug: #1948705

Signed-off-by: Gustavo Santos <gustavofaganello.santos@windriver.com>
Change-Id: I083929f36d9e78bf7713a87cae6d581e0d946867
2021-12-06 12:00:34 -03:00
Zuul c5c2cc0341 Merge "docs: Add notes about IoOpsWeigher, BuildFailureWeigher" 2021-12-01 15:32:28 +00:00
Lee Yarwood 1241d3440b docs: Update libvirt distro support matrix for Xena
This is mostly distro updates as our MIN versions didn't change during
the cycle.

Change-Id: If30d75c8fa96aa6ed7f0483d791d1dea86f58c08
2021-11-18 14:12:49 +00:00
Martin Kopec 78e1542b80 Update Interop doc
The commit replaces DefCore committee (a former name) by
Interop Working Group (the current name) and updates a few
more old interop references.

Change-Id: I578a21d610b5b680b4549bf34e1857307a1b8e74
2021-11-08 10:09:29 +00:00
Zuul 909cfc7636 Merge "api: enable oslo.reports when using uWSGI" 2021-11-03 21:57:17 +00:00
Balazs Gibizer 90ed7e574d [nova-manage]support extended resource request
The nova-manage placement heal_allocations CLI is capable of healing
missing placement allocations due to port resource requests. To support
the new extended port resource request this code needs to be adapted
too.

When the heal_allocation command got the port resource request
support in train, the only way to figure out the missing allocations was
to dig into the placement RP tree directly. Since then nova gained
support for interface attach with such ports and to support that
placement gained support for in_tree filtering in allocation candidate
queries. So now the healing logic can be generalized to following:

For a given instance
1) Find the ports that has resource request but no allocation key in the
   binding profile. These are the ports we need to heal
2) Gather the RequestGroups from the these ports and run an
   allocation_candidates query restricted to the current compute of the
   instance with in_tree filtering.
3) Extend the existing instance allocation with a returned allocation
   candidate and update the instance allocation in placement.
4) Update the binding profile of these ports in neutron

The main change compared to the existing implementation is in step 2)
the rest mostly the same.

Note that support for old resource request format is kept alongside of
the new resource request format until Neutron makes the new format
mandatory.

blueprint: qos-minimum-guaranteed-packet-rate

Change-Id: I58869d2a5a4ed988fc786a6f1824be441dd48484
2021-11-01 09:20:30 +01:00
Stephen Finucane ef4d759e87 docs: Add new architecture guide
As with the cells v2 docs before this, we have a number of architecture
focused documents in tree. The 'user/architecture' guide is relatively
up-to-date but is quite shallow, while the 'admin/arch' guide is
in-depth but almost a decade out-of-date, with references to things
like nova's in-built block storage service. Replace most of the latter
with more up-to-date information and the merge the former into it,
before renaming the file to 'admin/architecture'.

Change-Id: I518bb5d586b159b4796fb6139351ba423bc19639
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2021-10-19 12:51:39 +01:00
Stephen Finucane 13b06ebb1c docs: Add a new cells v2 document
We currently have three cells v2 documents in-tree:

- A 'user/cellsv2-layout' document that details the structure or
  architecture of a cells v2 deployment (which is to say, any modern
  nova deployment)
- A 'user/cells' document, which is written from a pre-cells v2
  viewpoint and details the changes that cells v2 *will* require and the
  benefits it *would* bring. It also includes steps for upgrading from
  pre-cells v2 (that is, pre-Pike) deployment or a deployment with cells
  v1 (which we removed in Train and probably broke long before)
- An 'admin/cells' document, which doesn't contain much other than some
  advice for handling down cells

Clearly there's a lot of cruft to be cleared out as well as some
centralization of information that's possible. As such, we combine all
of these documents into one document, 'admin/cells'. This is chosen over
'users/cells' since cells are not an end-user-facing feature. References
to cells v1 and details on upgrading from pre-cells v2 deployments are
mostly dropped, as are some duplicated installation/configuration steps.
Formatting is fixed and Sphinx-isms used to cross reference config
option where possible. Finally, redirects are added so that people can
continue to find the relevant resources. The result is (hopefully) a
one stop shop for all things cells v2-related that operators can use to
configure and understand their deployments.

Change-Id: If39db50fd8b109a5a13dec70f8030f3663555065
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2021-10-19 12:51:39 +01:00
Stephen Finucane 0564006a0a docs: Add notes about IoOpsWeigher, BuildFailureWeigher
A recent customer call highlighted some misunderstandings about the two
weighers in the nova tree. Firstly, the basis for the metrics used by
the 'IoOpsWeigher' was not well explained and required some spelunking
through the code to understand. Secondly, the 'BuildFailureWeigher'
multiplier, configured by '[scheduler] build_failure_weight_multiplier',
defaults to a very large value for reasons that are not apparent unless
you read the commit logs for that weigher (hint: it's because we wanted
to preserve the behavior of the older filter-based approach to handling
nodes with build failures). Expand the documentation to fill both gaps.
In the process, we also correct some small nits with this doc, mostly
centered around whitespace.

Change-Id: If2d329b86808bdc70619fbe057dd25a938eb79da
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2021-10-19 12:51:39 +01:00
Lucian Petrut 46401ef666 api: enable oslo.reports when using uWSGI
At the moment, oslo.reports is enabled when running nova-api
standalone, but not when using uWSGI.

We're now updating the uwsgi entry point as well to include the
oslo.reports hook, which is extremely helpful when debugging
deadlocks.

Change-Id: I605f0e40417fe9b0a383cc8b3fefa1325f9690d9
2021-10-14 09:23:08 +03:00
Zuul d8de985ff8 Merge "Update contributor guide for Yoga" 2021-09-30 16:01:56 +00:00
Takashi Natsume a2bedcc6fc Update contributor guide for Yoga
Change-Id: I3f5eed7e4dc908d611bf67dd8c14abaa19b6436e
Signed-off-by: Takashi Natsume <takanattie@gmail.com>
2021-09-19 11:09:27 +09:00
melanie witt 9797b921d0 Add section for 'nova-manage placement audit' tool
The 'nova-manage placement audit' tool has functionality that can
delete orphaned allocations in placement. Add a section for it in the
doc for troubleshooting orphaned allocations.

Change-Id: I697de57cf7eb43c0993af2b1f5b3f5c4395ef097
2021-09-16 22:07:31 +00:00
Lee Yarwood 70040856aa docs: Add nova-volume volume_attachment refresh admin workflow
This adds some basic documentation for the above command and also
includes some very generic osc commands to use when checking volume
attachments.

Blueprint: nova-manage-refresh-connection-info
Change-Id: Ib3d680654fe0809c9e8341dffd3a63ab02945a38
2021-09-15 10:26:39 +01:00
Zuul 497b2c5a9b Merge "[doc] port-resource-request-groups not landed in Xena" 2021-09-10 23:35:25 +00:00
Zuul e276184892 Merge "Describe the use of Review-Priority label" 2021-09-10 10:58:38 +00:00
Balazs Gibizer 22d4057a16 [doc] port-resource-request-groups not landed in Xena
This patches adjusts the nova documentation about the extended port
resource request support in nova as the neutron API extension did not
land in Xena.

Change-Id: I3b961426745084bdb4a6d04468f5a3c762be4cfa
blueprint: qos-minimum-guaranteed-packet-rate
2021-09-06 13:03:22 +02:00
Zuul 713b653fc0 Merge "Add --sleep option for archive_deleted_rows --until-complete" 2021-09-03 12:45:25 +00:00
melanie witt fc77ce191f Add --sleep option for archive_deleted_rows --until-complete
Currently, when 'nova-manage db archive_deleted_rows' is run with
the --until-complete option, the process will archive rows in batches
in a tight loop, which can cause problems in busy environments where
the aggressive archiving interferes with other requests trying to write
to the database.

This adds an option for users to specify an amount of time in seconds
to sleep between batches of rows while archiving with --until-complete,
allowing the process to be throttled.

Closes-Bug: #1912579

Change-Id: I638b2fa78b81919373e607458e6f68a7983a79aa
2021-09-02 13:55:46 +02:00
Balazs Gibizer 44309c419f Support interface attach / detach with new resource request format
The interface attach and detach logic is now fully adapted to the new
extended resource request format, and supports more than one request
group in a single port.

blueprint: qos-minimum-guaranteed-packet-rate
Change-Id: I73e6acf5adfffa9203efa3374671ec18f4ea79eb
2021-09-01 15:51:47 +02:00
Zuul e81211318a Merge "Support move ops with extended resource request" 2021-08-31 21:38:24 +00:00
Zuul 9abcb3825a Merge "Support boot with extended resource request" 2021-08-31 21:38:15 +00:00
Zuul 649b2452da Merge "nova-manage: Introduce volume show, refresh, get_connector commands" 2021-08-31 10:54:48 +00:00
Zuul 0d0de2e448 Merge "docs: admin/networking rename neutron_tunneled to neutron_tunnel" 2021-08-31 08:37:47 +00:00
Zuul 77c8f91a5b Merge "Bump min placement microversion to 1.36" 2021-08-31 01:35:22 +00:00
Zuul f8cc8b6863 Merge "Reject server create with extended resource req" 2021-08-31 00:52:42 +00:00
Balazs Gibizer 191bdf2069 Support move ops with extended resource request
Nova re-generates the resource request of an instance for each server
move operation (migrate, resize, evacuate, live-migrate, unshelve) to
find (or validate) a target host for the instance move. This patch
extends the this logic to support the extended resource request from
neutron.

As the changes in the neutron interface code is called from nova-compute
service during the port binding the compute service version is bumped.
And a check is added to the compute-api to reject the move operations
with ports having extended resource request if there are old computes
in the cluster.

blueprint: qos-minimum-guaranteed-packet-rate
Change-Id: Ibcf703e254e720b9a6de17527325758676628d48
2021-08-27 17:59:18 +02:00
Balazs Gibizer c3886c3ca7 Support boot with extended resource request
This adds the final missing pieces to support creating servers with
ports having extended resource request. As the changes in the neutron
interface code is called from nova-compute service during the port
binding the compute service version is bumped. And a check is added to
the compute-api to reject such server create requests if there are old
computes in the cluster.

Note that some of the negative and SRIOV related interface attach
tests are also started to pass as they are not dependent on any of the
interface attach specific implementation. Still interface attach is
broken here as the failing of the positive tests show.

blueprint: qos-minimum-guaranteed-packet-rate

Change-Id: I9060cc9cb9e0d5de641ade78c5fd7e1cc77ade46
2021-08-27 15:51:12 +02:00
Stephan Pampel fc1a99dc16 docs: admin/networking rename neutron_tunneled to neutron_tunnel
Closes-Bug: #1941757
Change-Id: Ic8756ad4e977b24ced52beca3e18f4f8163f0be0
2021-08-26 16:18:09 +02:00
Lee Yarwood e906a8c0ec nova-manage: Introduce volume show, refresh, get_connector commands
Add a combination of commands to allow users to show existing stashed
connection_info for a volume attachment and update volume attachments
with fresh connection_info from Cinder by recreating the attachments.

Unfortunately we don't have an easy way to access host connector
information remotely (i.e. over the RPC API), meaning we need to also
provide a command to get the compute specific connector information
which must be run on the compute node that the instance is located on.

Blueprint: nova-manage-refresh-connection-info
Co-authored-by: Stephen Finucane <stephenfin@redhat.com>
Change-Id: I2e3a77428f5f6113c10cc316f94bbec83f0f46c1
2021-08-25 10:26:07 +01:00
Zuul fded762f4d Merge "fup: Remove unused legacy block_device_info format" 2021-08-25 02:25:41 +00:00
Zuul caa2a5d556 Merge "Fix documentation about cpu topologies" 2021-08-24 20:38:37 +00:00
Balazs Gibizer 1d62485472 Fix documentation about cpu topologies
There was a copy paste error about requesting host without SMT enabled.

Change-Id: Ief2914201cb28060ed85f7cb6d6f202ad96db991
Closes-Bug: #1940535
2021-08-24 13:53:02 +02:00
Stephen Finucane 6652999494 scheduler: Merge driver into manager
There's only one driver now, which means there isn't really a driver at
all. Move the code into the manager altogether and avoid a useless layer
of abstraction.

Change-Id: I609df5b707e05ea70c8a738701423ca751682575
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2021-08-23 16:52:25 +01:00
Stephen Finucane 289438b4c2 docs: Drop references to non-filter scheduler drivers
Take the opportunity to clean up the docs quite a bit, ultimately
combining two disparate guides on the scheduler into one.

Change-Id: Ia72d39b4774d93793b381359b554c717dc9a6994
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2021-08-23 16:45:37 +01:00
Balazs Gibizer f6e8c512fb Bump min placement microversion to 1.36
To implement the usage of same_subtree query parameter in the
allocation candidate request first the minimum requires placement
microversion needs to be bumped from 1.35 to 1.36. This patch makes such
bump and update the related nova upgrade check. Later patches will
modify the query generation to include the same_subtree param to the
request.

Change-Id: I5bfec9b9ec49e60c454d71f6fc645038504ef9ef
blueprint: qos-minimum-guaranteed-packet-rate
2021-08-21 10:00:51 +02:00
Balazs Gibizer e357ad3c23 Reject server create with extended resource req
To prepare for the unlikely event that Neutron merges and an operator
enables the port-resource-request-groups neutron API extension before
nova adds support for it, this patch rejects server creation if such
extension is enabled in Neutron. Enabling that extension has zero
benefits without nova support hence the harsh but simple rejection.

A subsequent patch will reject server lifecycle operations in a more
sophisticated way and as soon as we support some operations, like
boot, the deployer might rightfully choose to enable the Neutron
extension.

Change-Id: I2c55d9da13a570efbc1c862116cea31aaa6aa02e
blueprint: qos-minimum-guaranteed-packet-rate
2021-08-21 09:49:54 +02:00
Zuul 033af94179 Merge "Deprecate filters that have been replaced by placement filters" 2021-08-21 02:51:28 +00:00
Zuul 51f3d6c60c Merge "Rename vgpu options to mdev" 2021-08-20 22:57:10 +00:00
Zuul 00454f6279 Merge "scheduler: Merge 'FilterScheduler' into base class" 2021-08-20 17:17:37 +00:00
Zuul eedbff3859 Merge "api: Improve extra spec validator help texts" 2021-08-20 16:17:26 +00:00
Zuul 560fbf069f Merge "docs: Explicitly state lack of support for node renaming" 2021-08-20 16:17:10 +00:00