Commit Graph

137 Commits

Author SHA1 Message Date
Zuul 9fa3600fca Merge "doc: define boot from volume in the glossary" 2020-01-29 03:52:50 +00:00
Matt Riedemann 33c7996624 doc: define boot from volume in the glossary
Define it and also link to the term in a few different docs.

Change-Id: I6333deb2f6e85eba3c92128dab4e4b4d35355603
2020-01-08 12:37:05 -05:00
Zuul 0e81260415 Merge "FUP for docs nits in cross-cell-resize series" 2020-01-07 16:29:48 +00:00
zhufl b608d6bfb4 Fix duplicated words issue like "during during boot time"
This is to fix the duplicated words issue like
"if it was specified during during boot time".

Change-Id: I0ffedb8c40399a4b0ecd83b142bdeaf556d1568f
2020-01-06 14:19:03 +08:00
Matt Riedemann 29100f9b5a FUP for docs nits in cross-cell-resize series
Addresses review comments from:

* https://review.opendev.org/#/c/638269/63/doc/source/admin/configuration/resize.rst
* https://review.opendev.org/#/c/696212/6/doc/source/admin/configuration/cross-cell-resize.rst

Also updates contributor/resize-and-cold-migrate since that is relatively
new and biased toward same-cell resize and cold migrate. However, I chose
to link the same-cell resize glossary term to that contributor doc rather
than admin/configuration/resize because the admin doc is woefully bare.

Part of blueprint cross-cell-resize

Change-Id: I93b051252e34c8604cebea617c34e9299ac508d4
2019-12-23 10:10:57 -05:00
Matt Riedemann 74e76b1a6b Add cross-cell resize tests for _poll_unconfirmed_resizes
This adds two tests and updates the cross-cell resize docs to
show that _poll_unconfirmed_resizes can work if the cells are
able to "up-call" to the API DB to confirm the resize. Since
lots of deployments still enable up-calls we don't explicitly
block _poll_unconfirmed_resizes from processing cross-cell
migrations. The other test shows that _poll_unconfirmed_resizes
fails if up-calls are disabled.

Part of blueprint cross-cell-resize

Change-Id: I39e8159f3e734a1219e1a44434d6360572620424
2019-12-23 10:10:57 -05:00
Matt Riedemann 6aafb29820 Add sequence diagrams for cross-cell-resize
This tries to strike a balance between giving a useful high level
flow without injecting too much complex detail in each diagram.

For the more complicated resize diagram, I have used labels to
try and make clear which conductor task is performing an action.

For the less complicated confirm and revert diagrams, I add a
separator to show where the conductor task is orchestrating the
calls and provide a bit more detail into what each task is doing
since the calls to computes are minimal in those cases.

Part of blueprint cross-cell-resize

Change-Id: I27c549901a3359f106ba5d77aa6559397ee12a5d
2019-12-23 10:10:57 -05:00
Matt Riedemann aa74ac60e2 Flesh out docs for cross-cell resize/cold migrate
This gives most of the high level information. I'm sure there
are more troubleshooting things we can add but those could come
later as they crop up.

The sequence diagram(s) will come in a separate change.

Part of blueprint cross-cell-resize

Change-Id: I13f07a2d45bf5b8584adc8aa079bae640cb5c470
2019-12-23 10:10:57 -05:00
Matt Riedemann 6ebee92445 Add cross-cell resize policy rule and enable in API
This adds the "compute:servers:resize:cross_cell" policy
rule which is now used in the API to determine if a resize
or cold migrate operation can be performed across cells.

The check in the API is based on:

- The policy check passing for the request.
- The minimum nova-compute service version being high
  enough across all cells to perform a cross-cell resize.

If either of those conditions fail a traditional same-cell
resize will be performed.

A docs stub is added here and will be fleshed out in an
upcoming patch.

Implements blueprint cross-cell-resize

Change-Id: Ie8a0f79a3b16e02b7a34a1b81f547013a3d88996
2019-12-23 10:10:57 -05:00
Matt Riedemann 18179aee4e Add CrossCellWeigher
When performing a resize, we'll want to (by default) select
target hosts from the source cell to do a traditional resize
if possible before considering target hosts in another cell
which will be slower and more complicated. If the source cell
is disabled or target flavor is not available in the source cell,
then we'll have no choice but to select a host from another cell.
But all things being equal between hosts, we want to stay within
the source cell (by default). Therefore this change adds a new
CrossCellWeigher and related configuration option to prefer hosts
within the source cell when moving a server. The weigher is
completely noop unless a cross-cell move is permitted by
configuration, which will be provided in a future change.

Part of blueprint cross-cell-resize

Change-Id: Ib18752efa56cfeb860487fe6b26102bb4b1db038
2019-12-12 12:40:29 -05:00
Boris Bobrov 1a88d35cb1 Also enable iommu for virtio controllers and video in libvirt
Ie54fca066f33 added logic to libvirt/designer.py for enabling iommu
for certain devices where virtio is used.  This is required for AMD
SEV[0].  However it missed two cases.

Firstly, a SCSI controller can have the model as 'virtio-scsi', e.g.:

    <controller type='scsi' index='0' model='virtio-scsi'>

As with other virtio devices, here a child element needs to be added
to the config when SEV is enabled:

    <driver iommu="on" />

We do not need to cover the case of a controller with type
'virtio-serial' now, since even though it is supported by libvirt, it
is not currently used anywhere in Nova.

Secondly, a video device can be virtio, e.g. when vgpus are in use:

    <video>
        <model type='virtio'/>
    </video>

Also take this opportunity to clarify the corresponding documentation
around disk bus options.

[0] http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html#proposed-change

Partial-Bug: #1845986
Change-Id: I626c35d1653e6a25125320032d0a4a0c67ab8bcf
2019-12-10 11:01:08 +00:00
Stephen Finucane 5dcfd0750f docs: Blast final references to nova-network
Missed a few. Let's go again.

Change-Id: I26368cb59b08f3271d74310d0aa1e36f3d0db5d5
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-11-29 17:20:02 +00:00
Iury Gregory Melo Ferreira 1efd5ec232 Add ironic hypervisor doc
Nova documentation was missing information documentation about
Ironic virt driver.

Change-Id: I2431dc3db94da44001eefdead50607eab662d16f
Closes-Bug: #1852446
2020-01-16 14:00:18 +01:00
Stephen Finucane 29b9f788de docs: Blast most references to nova-network
The only ones remaining are some real crufty SVGs and references to
things that still exist because nova-network was once a thing.

Change-Id: I1aebf86c05c7b8c1562d0071d45de2fe53f4588b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-11-27 18:26:10 +00:00
Stephen Finucane a0380894d0 docs: Strip '.rst' suffix
These are unnecessary noise. Drop them.

Change-Id: I6ce4c78bd53975ae83c10b2e5c3910f23b42dba0
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-11-15 16:37:26 +00:00
Eric Fried 828e8047e5 Consolidate [image_cache] conf options
Blueprint image-precache-support added a conf section called
[image_cache], so it makes sense to move all the existing image
cache-related conf options into it.

Old:
[DEFAULT]image_cache_manager_interval
[DEFAULT]image_cache_subdirectory_name
[DEFAULT]remove_unused_base_images
[DEFAULT]remove_unused_original_minimum_age_seconds
[libvirt]remove_unused_resized_minimum_age_seconds

New:
[image_cache]manager_interval
[image_cache]subdirectory_name
[image_cache]remove_unused_base_images
[image_cache]remove_unused_original_minimum_age_seconds
[image_cache]remove_unused_resized_minimum_age_seconds

Change-Id: I3c49825ac0d70152b6c8ee4c8ca01546265f4b80
Partial-Bug: #1847302
2019-11-13 11:09:03 -06:00
Zuul 1983d76d6e Merge "docs: Remove a whole load of unused images, most remainder" 2019-10-08 16:06:49 +00:00
Stephen Finucane 5c5927a3d2 docs: Rewrite host aggregate, availability zone docs
These closely related features are the source of a disproportionate
number of bugs and a large amount of confusion among users. The spread
of information around multiple docs probably doesn't help matters.

Do what we've already done for the metadata service and remote consoles
and clean these docs up. There are a number of important changes:

- All documentation related to host aggregates and availability zones is
  placed in one of three documents, '/user/availability-zones',
  '/admin/aggregates' and '/admin/availability-zones'. (note that there
  is no '/user/aggregates' document since this is not user-facing)

- References to these features are updated to point to the new location

- A glossary is added. Currently this only contains definitions for host
  aggregates and availability zones

- nova CLI commands are replaced with their openstack CLI counterparts

- Some gaps in related documentation are closed

Change-Id: If847b0085dbfb4c813d4a8d14d99346f8252bc19
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-10-07 17:26:35 +01:00
Stephen Finucane c24fbc3dc8 docs: Remove a whole load of unused images, most remainder
Thank God. The majority of the removed images are so crufty, it's
actually funny. I don't want to update them and it's unlikely anyone
else does either. The rest are just moved to be with their comrades in
the '_static/images' directory.

Change-Id: I91b34c85379a68be5e6a09ce48b11c0d3343f12b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-10-02 17:36:21 +01:00
Zuul 55439643ad Merge "Deprecate the XenAPIDriver" 2019-09-16 17:39:30 +00:00
shilpa 1bbef754fb Docs for isolated aggregates request filter
Added reference documentation and release note to explain how filtering
of hosts by isolate aggregates works.

Change-Id: I8d8086973039308f9041a36463a834b5275708e3
Implements: blueprint placement-req-filter-forbidden-aggregates
2019-09-12 16:56:32 -05:00
Zuul 5fa49cd0b8 Merge "Fix the incorrect powershell command" 2019-09-11 23:57:36 +00:00
Zuul 22a440e0ed Merge "vCPU model selection" 2019-09-11 22:59:42 +00:00
Zuul 690b3ffd38 Merge "Improve SEV documentation and other minor tweaks" 2019-09-11 20:43:03 +00:00
Zuul 0575eabffb Merge "Enable booting of libvirt guests with AMD SEV memory encryption" 2019-09-11 08:34:19 +00:00
Alexandra Settle 3a99f8a45f Fixing broken links
backport: stein rocky

Change-Id: I6fd8534473465461effc784a1eaa51c7a6da2b12
2019-09-10 14:08:42 +00:00
Adam Spiers 922d8bf811 Improve SEV documentation and other minor tweaks
This is a follow-up to the previous SEV commit which enables booting
SEV guests (I659cb77f12a3), making some minor improvements based on
nits highlighted during review:

- Clarify in the hypervisor-kvm.rst documentation that the
  num_memory_encrypted_guests option is optional, by rewording and
  moving it to the list of optional steps.

- Make things a bit more concise and avoid duplication of information
  between the above page and the documentation for the option
  num_memory_encrypted_guests, instead relying on appropriate
  hyperlinking between them.

- Clarify that virtio-blk can be used for boot disks in newer kernels.

- Hyperlink to a page explaining vhost-user

- Remove an unneeded mocking of a LOG object.

- A few other grammar / spelling tweaks.

blueprint: amd-sev-libvirt-support
Change-Id: I75b7ec3a45cac25f6ebf77c6ed013de86c6ac947
2019-09-10 14:48:32 +01:00
Adam Spiers 8e5d6767bb Enable booting of libvirt guests with AMD SEV memory encryption
Track compute node inventory for the new MEM_ENCRYPTION_CONTEXT
resource class (added in os-resource-classes 0.4.0) which represents
the number of guests a compute node can host concurrently with memory
encrypted at the hardware level.

This serves as a "master switch" for enabling SEV functionality, since
all the code which takes advantage of the presence of this inventory
in order to boot SEV-enabled guests is already in place, but none of
it gets used until the inventory is non-zero.

A discrete inventory is required because on AMD SEV-capable hardware,
the memory controller has a fixed number of slots for holding
encryption keys, one per guest.  Typical early hardware only has 15
slots, thereby limiting the number of SEV guests which can be run
concurrently to 15.  nova needs to track how many slots are available
and used in order to avoid attempting to exceed that limit in the
hardware.

Work is in progress to allow QEMU and libvirt to expose the number of
slots available on SEV hardware; however until this is finished and
released, it will not be possible for nova to programatically detect
the correct value with which to populate the MEM_ENCRYPTION_CONTEXT
inventory.  So as a stop-gap, populate the inventory using the value
manually provided by the cloud operator in a new configuration option
CONF.libvirt.num_memory_encrypted_guests.

Since this commit effectively enables SEV, also add all the relevant
documentation as planned in the AMD SEV spec[0]:

- Add operation.boot-encrypted-vm to the KVM hypervisor feature matrix.

- Update the KVM section of the Configuration Guide.

- Update the flavors section of the User Guide.

- Add a release note.

[0] http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html#documentation-impact

blueprint: amd-sev-libvirt-support
Change-Id: I659cb77f12a38a4d2fb118530ebb9de88d2ed30d
2019-09-10 13:59:02 +01:00
Matt Riedemann af280ffe30 Deprecate the XenAPIDriver
After three months since the quality warning change merged [1]
there has still been no progress in finding a maintainer for
the xenapi driver or someone to get the third party CI running
again - which has been off/broken for more than a release.

This change formally deprecates the driver, logging a warning
on startup along with providing a release note and warnings
in the docs and [xenserver] config group help.

Note that this does not mean the driver will absolutely be
removed in the Ussuri release, but it leaves the option open
to do so if the nova team decides that should happen.

This was discussed at the 2019-09-05 nova meeting [2] and
also at the Train PTG.

[1] I7f8eb7d5c5a9b1cb0a8d5e607d719b49a22675d3
[2] http://eavesdrop.openstack.org/meetings/nova/2019/nova.2019-09-05-14.01.log.html#l-227

Change-Id: Ie7e66ff64185d9fd4be2265e040e1afc45b95174
2019-09-06 11:36:22 -04:00
ya.wang f80e5f989d vCPU model selection
Rename the exist config attribute: [libvirt]/cpu_model to
[libvirt]/cpu_models, which is an orderded list of CPU models the host
supports. The value in the list can be made case-insensitive.

Change logic of method: '_get_guest_cpu_model_config', if cpu_mode is
custom and cpu_models set. It will parse the required traits
associated with the CPU flags from flavor extra_specs and select the
most appropriate CPU model.

Add new method 'get_cpu_model_names' to host.py. It will return a list
of the cpu models that the CPU arch can support.

Update the docs of hypervisor-kvm.

Change-Id: I06e1f7429c056c4ce8506b10359762e457dbb2a0
Implements: blueprint cpu-model-selection
2019-09-06 14:01:35 +08:00
chenxing 8e06eeee2b Fix the incorrect powershell command
Change-Id: I28fb4ddacd87b6fb98d8da6bc6a5dea69ae51431
backport: stein rocky
Closes-Bug: #1842130
2019-09-02 11:12:21 +08:00
Zuul a55ae413ea Merge "doc: remove confusing docs about aggregate allocation ratios" 2019-08-22 20:13:47 +00:00
Zuul efbe94cd7d Merge "Remove deprecated [neutron]/url option" 2019-08-22 19:57:32 +00:00
Zuul 1ae57fe04d Merge "Deprecate Aggregate[Core|Ram|Disk]Filters" 2019-08-21 22:27:13 +00:00
Matt Riedemann 8f53a051cc Remove deprecated [neutron]/url option
The url option was deprecated in Queens:

  I41724a612a5f3eabd504f3eaa9d2f9d141ca3f69

The same functionality is available in the
endpoint_override option so tests and docs
are updated to use that where they were using
url before.

Note that because the logic in the get_client
method changed, some small changes were made to
the test_withtoken and test_withtoken_context_is_admin
unit tests to differentiate from when there is a
context with a token that is not admin and an
admin context that does not have a token which
was otherwise determined by asserting the default
region name.

Change-Id: I6c068a84c4c0bd88f088f9328d7897bfc1f843f1
2019-08-21 17:55:56 +00:00
Sean Mooney 588194d785 Deprecate Aggregate[Core|Ram|Disk]Filters
The Aggregate[Core|Ram|Disk]Filters have not worked
correctly since ocata, this change deprecates them
for removal next cycle.
http://lists.openstack.org/pipermail/openstack-dev/2018-January/126283.html

Related-Bug: #1804125
Change-Id: Ibfbfdae9e6ec93f772631a84e8969f4e11da8aee
2019-08-20 16:45:23 -04:00
Matt Riedemann 77efc084fc doc: remove confusing docs about aggregate allocation ratios
Change Ifaf596a8572637f843f47daf5adce394b0365676 added a note
about the behavior change in Ocata where allocation ratios
set on host aggregates was ignored because of placement resource
provider allocation ratios being used.

Later, change I7d8e822cd40dccaf5244e2cd95fa1af43fa9ed87 added
a lot more detail about allocation ratios in the scheduler docs
including the initial* allocation ratio config options. The note
from the previous change was moved and as a result leads to some
confusion since the doc starts by saying essentially, "you can
use these aggregate filters to manage allocation ratios on a set
of hosts" and then the immediate note says essentially, "oh btw
that doesn't work since ocata, sorry!".

To avoid the confusion, this simply removes the part about how
the aggregate filters can be used to manage allocation ratios.

Change-Id: I62710b0b8c098cca3f67020f4a6da5e684115414
Related-Bug: #1804125
2019-08-20 10:07:38 -04:00
Wang Huaqiang 4945e6dbd4 doc: correct the information of 'cpu_map'
libvirt has split the CPU feature flags file 'cpu_map.xml' into
a bunch of flag files for each CPU model, which are stored under
directory 'src/cpu_map/'.

Update this change accordingly.

Change-Id: Id45587adb6ecd8e0bdef344c90979eaea61e61b8
2019-08-02 20:19:18 +08:00
Zuul 054bf13a78 Merge "Remove 'nova.virt.driver.ComputeDriver.estimate_instance_overhead'" 2019-07-25 18:16:39 +00:00
Stephen Finucane 97096c8e4a Remove 'nova.virt.driver.ComputeDriver.estimate_instance_overhead'
With the removal of the Core, Ram and Disk filters in change
I8a0d332877fbb9794700081e7954f2501b7e7c09, there's now only a single
caller for the 'estimate_instance_overhead' function. This call results
in the 'memory_mb_used', 'local_gb_used', 'vcpus_used', 'free_ram_mb'
and 'free_disk_gb' fields of a compute nodes 'ComputeNode' object being
modified when calculating usage as part of the resource tracker to
include driver-specific overhead. However, these fields are no longer
used for for anything except logging and the 'os-hypervisors' API. Since
overhead is not reflected in placement (and therefore the scheduler),
reporting them as part of the various usage values for both logging and
that API is actually a bit of a lie and is likely to cause confusion
among users. Remove the whole thing and make our logs and the
'os-hypervisors' API better match what's stored in placement.

Change-Id: I033e8269194de54432079cbc970431e3dcea7ce5
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-07-24 16:26:01 +01:00
Zuul ab34c941be Merge "Remove deprecated Core/Ram/DiskFilter" 2019-07-23 23:36:06 +00:00
Stephen Finucane 78645e61c6 Remove deprecated Core/Ram/DiskFilter
These were deprecated during Stein [1] and can now be removed, lest they
cause hassle with the PCPU work. As noted in [1], the aggregate
equivalents of same are left untouched for now.

[1] https://review.opendev.org/#/c/596502/

Change-Id: I8a0d332877fbb9794700081e7954f2501b7e7c09
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-07-23 07:49:41 -07:00
Andreas Jaeger dbe6321537 Update api-ref location
The api documentation is now published on docs.openstack.org instead
of developer.openstack.org. Update all links that are changed to the
new location.

Note that Neutron publishes to api-ref/network, not networking anymore.

Note that redirects will be set up as well but let's point now to the
new location.

For details, see:
http://lists.openstack.org/pipermail/openstack-discuss/2019-July/007828.html

Change-Id: Id2cf3aa252df6db46575b5988e4937ecfc6792bb
2019-07-22 19:17:28 +02:00
Matt Riedemann 12a6fe57b9 Follow up for pre-filter-disabled-computes series
This is a collection of follow up changes from the
patches in the series.

* https://review.opendev.org/#/c/668565/1/nova/tests/unit/compute/test_resource_tracker.py
* https://review.opendev.org/#/c/668707/1/nova/virt/libvirt/driver.py
* https://review.opendev.org/#/c/668743/1/nova/compute/manager.py@5020
* https://review.opendev.org/#/c/668752/1/doc/source/admin/configuration/schedulers.rst
* https://review.opendev.org/#/c/654596/8/nova/compute/api.py

Related to blueprint pre-filter-disabled-computes

Change-Id: I2efb833c6f18b13f86abc6c62bcf2c6f77aa15c1
2019-07-03 15:53:06 -04:00
Matt Riedemann 168d34c8d1 Add placement request pre-filter compute_status_filter
This adds a new mandatory placement request pre-filter
which is used to exclude compute node resource providers
with the COMPUTE_STATUS_DISABLED trait. The trait is
managed by the nova-compute service when the service's
disabled status changes.

Change I3005b46221ac3c0e559e1072131a7e4846c9867c makes
the compute service sync the trait during the
update_available_resource flow (either on start of the
compute service or during the periodic task run).

Change Ifabbb543aab62b917394eefe48126231df7cd503 makes
the libvirt driver's _set_host_enabled callback reflect
the trait when the hypervisor goes up or down out of band.

Change If32bca070185937ef83f689b7163d965a89ec10a will add
the final piece which is the os-services API calling the
compute service to add/remove the trait when a compute
service is disabled or enabled.

Since this series technically functions without the API
change, the docs and release note are added here.

Part of blueprint pre-filter-disabled-computes

Change-Id: I317cabbe49a337848325f96df79d478fd65811d9
2019-07-02 16:01:02 -04:00
Zuul ed8412f702 Merge "docs: Remove references to nova-consoleauth" 2019-06-18 23:21:42 +00:00
Matt Riedemann 257ef9573f Deprecate RetryFilter
Since blueprint return-alternate-hosts in Queens, the scheduler
returns a primary selected host and some alternate hosts based
on the max_attempts config option. The only reschedules we have
are during server create and resize/cold migrate. The list of
alternative hosts are passed down from conductor through compute
and back to conductor on reschedule and if conductor gets a list
of alternate hosts on reschedule it will not call the scheduler
again. This means the RetryFilter is effectively useless now since
it shouldn't ever filter out hosts on the first schedule attempt
and because we're using alternates for reschedules, we shouldn't
go back to the scheduler on a reschedule. As a result this change
deprecates the RetryFilter and removes it from the default list
of enabled filters.

Change-Id: Ic0a03e89903bf925638fa26cca3dac7db710dca3
2019-06-17 15:27:11 -04:00
Matt Riedemann 7c9641266f Fix enabled_filters default value in admin config docs
This fixes a couple of places in the admin scheduler config
docs that were listing out the enabled_filters default value
incorrectly because the ComputeFilter was missing. Rather than
try to keep the docs mirrored with the actual default value,
this change references the config option in one spot and avoids
listing the defaults in another.

Change-Id: I837aefcd37556a7b66b523529c5ca1f3dee8ac7f
Closes-Bug: #1833120
2019-06-17 15:24:24 -04:00
Stephen Finucane 009fd0f35b docs: Remove references to nova-consoleauth
We're going to remove all the code, but first, remove the docs.

Part of blueprint remove-consoleauth

Change-Id: Ie96e18ea7762b93b4116b35d7ebcfcbe53c55527
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-06-17 15:18:31 +01:00
Zuul c2b5ac9b8e Merge "Document restrictions for moving servers between availability zones" 2019-06-15 00:15:10 +00:00