Commit Graph

34 Commits

Author SHA1 Message Date
Matt Riedemann 25dadb94db Remove the CachingScheduler
The CachingScheduler has been deprecated since Pike [1].
It does not use the placement service and as more of nova
relies on placement for managing resource allocations,
maintaining compabitility for the CachingScheduler is
exorbitant.

The release note in this change goes into much more detail
about why the FilterScheduler + Placement should be a
sufficient replacement for the original justification
for the CachingScheduler along with details on how to migrate
from the CachingScheduler to the FilterScheduler.

Since the [scheduler]/driver configuration option does allow
loading out-of-tree drivers and the scheduler driver interface
does have the USES_ALLOCATION_CANDIDATES variable, it is
possible that there are drivers being used which are also not
using the placement service. The release note also explains this
but warns against it. However, as a result some existing
functional tests, which were using the CachingScheduler, are
updated to still test scheduling without allocations being
created in the placement service.

Over time we will likely remove the USES_ALLOCATION_CANDIDATES
variable in the scheduler driver interface along with the
compatibility code associated with it, but that is left for
a later change.

[1] Ia7ff98ff28b7265058845e46b277317a2bfc96d2

Change-Id: I1832da2190be5ef2b04953938860a56a43e8cddf
2018-10-18 17:55:36 -04:00
caoyuan 40f8b7cb23 Option "scheduler_default_filters" is deprecated.
The scheduler_default_filters option is deprecated in favor of
the [scheduler]/enabled_filters option. This change updates
the docs to use the enabled_filters option over the deprecated
scheduler_default_filters option.

Change-Id: I6cc78056179e01752e48e51a4e3552d52d66074b
Closes-Bug: #1794306
2018-09-25 19:50:16 +00:00
Matt Riedemann 6bc32481fb Fix docs and add functional test for AggregateMultiTenancyIsolation
The docs for AggregateMultiTenancyIsolation were misleading in that
tenants are not restricted to hosts only in a tenant-isolated
aggregate. It's the opposite: hosts in the tenant-isolated aggregate
are only available for tenants configured for that aggregate.

This fixes the docs including an example for clarification, and also
adds a functional test to show the behavior of the filter.

Change-Id: Ic55b88e7ad21ab5b7ad063eac743ff9406aae559
Related-Bug: #1771523
2018-09-13 16:46:53 -04:00
Matt Riedemann 243ba85130 Deprecate Core/Ram/DiskFilter
The time has come.

These filters haven't been necessary since Ocata [1]
when the filter scheduler started using placement
to filter on VCPU, DISK_GB and MEMORY_MB. The
only reason to use them with any in-tree scheduler
drivers is if using the CachingScheduler which doesn't
use placement, but the CachingScheduler itself has
been deprecated since Pike [2]. Furthermore, as of
change [3] in Stein, the ironic driver no longer
reports vcpu/ram/disk inventory for ironic nodes
which will make these filters filter out ironic nodes
thinking they don't have any inventory. Also, as
noted in [4], the DiskFilter does not account for
volume-backed instances and may incorrectly filter
out a host based on disk inventory when it would
otherwise be OK if the instance is not using local
disk.

The related aggregate filters are left intact for
now, see blueprint placement-aggregate-allocation-ratios.

[1] Ie12acb76ec5affba536c3c45fbb6de35d64aea1b
[2] Ia7ff98ff28b7265058845e46b277317a2bfc96d2
[3] If2b8c1a76d7dbabbac7bb359c9e572cfed510800
[4] I9c2111f7377df65c1fc3c72323f85483b3295989

Change-Id: Id62136d293da55e4bb639635ea5421a33b6c3ea2
Related-Bug: #1787910
2018-08-24 19:32:27 -04:00
zhangyangyang 92a459331f Remove ChanceScheduler
ChanceScheduler is deprecated in Pike [1] and will be removed in a
subsequent release.

[1] https://review.openstack.org/#/c/492210/

Change-Id: I44f9c1cabf9fc64b1a6903236bc88f5ed8619e9e
2018-08-20 15:56:13 +01:00
karimull a9083d13b0 Updated AggregateImagePropertiesIsolation filter illustration
The example given in this section was not matching the explanation
of how the filter works.
Updated the example with right properties and aggregate name

Change-Id: Ieadeb0d736cc83a41093e6f4dfeb75d2396976ec
Closes-Bug: #1684261
2018-07-30 12:31:35 -07:00
leizhang 7637026b90 Add method to get cpu traits
Add a method for libvirt driver to get cpu traits.
This is used for compute nodes to report cpu traits to Placement.

Change-Id: I9bd80adc244c64277d2d00e7d79c3002c8f9d57e
blueprint: report-cpu-features-as-traits
2018-07-24 12:37:46 +00:00
jichen e3c5bd43cc doc follow https://review.openstack.org/#/c/572195
some doc need to be updated as well.

Change-Id: Id69535f2f520db074b9171aaf68d8d6f7fc1c9be
2018-06-11 15:06:33 +08:00
Zuul f7e6d721f5 Merge "Change consecutive build failure limit to a weigher" 2018-06-07 05:22:20 +00:00
Dan Smith 91e29079a0 Change consecutive build failure limit to a weigher
There is concern over the ability for compute nodes to reasonably
determine which events should count against its consecutive build
failures. Since the compute may erronenously disable itself in
response to mundane or otherwise intentional user-triggered events,
this patch adds a scheduler weigher that considers the build failure
counter and can negatively weigh hosts with recent failures. This
avoids taking computes fully out of rotation, rather treating them as
less likely to be picked for a subsequent scheduling
operation.

This introduces a new conf option to control this weight. The default
is set high to maintain the existing behavior of picking nodes that
are not experiencing high failure rates, and resetting the counter as
soon as a single successful build occurs. This is minimal visible
change from the existing behavior with default configuration.

The rationale behind the default value for this weigher comes from the
values likely to be generated by its peer weighers. The RAM and Disk
weighers will increase the score by number of available megabytes of
memory (range in thousands) and disk (range in millions). The default
value of 1000000 for the build failure weigher will cause competing
nodes with similar amounts of available disk and a small (less than ten)
number of failures to become less desirable than those without, even
with many terabytes of available disk.

Change-Id: I71c56fe770f8c3f66db97fa542fdfdf2b9865fb8
Related-Bug: #1742102
2018-06-06 15:18:50 -07:00
jichen 47423dfb7f Fix doc nit
use openstack hypervisor list instead nova hypervisor-list
to sync with sample given

Change-Id: Ib2224d317745738dd0bde62ac832d8308b369164
2018-06-06 14:52:36 +08:00
Jay Pipes 5eda1fab85 mirror nova host aggregate members to placement
This patch is the first step in syncing the nova host aggregate
information with the placement service. The scheduler report client gets
a couple new public methods -- aggregate_add_host() and
aggregate_remove_host(). Both of these methods do **NOT** impact the
provider tree cache that the scheduler reportclient keeps when
instantiated inside the compute resource tracker.

Instead, these two new reportclient methods look up a resource provider
by *name* (not UUID) since that is what is supplied by the
os-aggregates Compute API when adding or removing a "host" to/from a
nova host aggregate.

Change-Id: Ibd7aa4f8c4ea787774becece324d9051521c44b6
blueprint: placement-mirror-host-aggregates
2018-05-30 12:45:20 -04:00
Zuul e2b0b469be Merge "Honor availability_zone hint via placement" 2018-05-24 06:54:56 +00:00
Dan Smith 96f1071166 Honor availability_zone hint via placement
This adds a request filter that, if enabled, allows us to use placement
to select hosts in the desired availability zone by looking up the uuid
of the associated host aggregate and using that in our query for
allocation candidates. The deployer needs the same sort of mirrored
aggregate setup as the tenant filter, and documentation is added here to
make that clear.

Related to blueprint placement-req-filter

Change-Id: I7eb6de435e10793f5445724d847a8f1bf25ec6e3
2018-05-22 08:56:50 -07:00
Zuul 0f70337718 Merge "Fix typo in NUMATopologyFilter docs" 2018-05-18 18:18:18 +00:00
Daniel Abad 72633d955f Fix typos in Host aggregates documentation
Change-Id: I5835928b51435149cb1557080b03ae3ab6bf3fa8
2018-05-07 16:41:39 +02:00
zhangyangyang 3c756ac659 Remove ExactCoreFilter ExactDiskFilter ExactRamFilter
ExactCoreFilter, ExactDiskFilter and ExactRamFilter were deprecated
for removal in the Pike release [1] and are now being removed.

Now scheduling will use the custom resource class defined for each
baremetal node to make its selection.

[1] I843353427c90142a366ae9ca63ee4298b4f3ecd4

Change-Id: Ie25a5f6c28c20f589016791970da8d5849ec291c
2018-05-01 10:33:23 -04:00
Zuul 147b1f1d5c Merge "doc: BFV instances and IsolatedHostsFilter" 2018-04-17 18:41:19 +00:00
Sylvain Bauza 1f2715f5e2 doc: BFV instances and IsolatedHostsFilter
Since BFV instances don't have a specific image attached to them, the
filter will consider them as not having a specific image, hence not
isolated. Correcting the doc.

Change-Id: Ib235fca1365ee7a38b94600960ee3947f448c4a9
2018-04-17 14:25:07 +00:00
Zuul 8f5e90f0a1 Merge "Update the Cell filters section of the scheduler docs" 2018-04-11 11:11:20 +00:00
Zuul deecb7892a Merge "Update the cells FAQs and scheduler maintenance docs." 2018-04-05 23:16:22 +00:00
Surya Seetharaman 660da1e952 Update the cells FAQs and scheduler maintenance docs.
Related to blueprint cell-disable

Change-Id: I020b78cc3ce035ff3466774d5d08198d89271117
2018-04-05 15:57:00 +00:00
Surya Seetharaman f32a2ef7d1 Update the Cell filters section of the scheduler docs
This patch adds a note to inform the users that the filters are
for cellsv1 which is deprecated.

Change-Id: Idbe5a9354088f8d49fa16794ba2028091d8c22b5
2018-04-05 17:17:40 +02:00
Dan Smith a27da62d82 Documentation for tenant isolation with placement
This explains how to actually wire up placement aggregates to allow
for filtering on tenant.

Change-Id: Idb06e7562d88957a00f52cba7d0a788dbff42a28
2018-03-29 11:56:39 -07:00
Matt Riedemann 8be8d02aa7 Fix and update compute schedulers config guide
There were several things wrong with this doc since the migration
in-tree in pike, which are handled here:

- Updated options to use the current names.
- Any mention of the periodic_task_interval option is removed
  since this doc is really about the FilterScheduler, and the
  periodic task interval is only used by the CachingScheduler to
  cache and refresh hosts, something the FilterScheduler doesn't do.
  The note about service_down_time is already covered in the help
  text for the periodic_task_interval option.
- Removed a broken (and oddly placed) link to the block storage
  docs; it's unclear why the compute scheduler docs need to randomly
  link to the block storage docs for schedluing (maybe that was
  super legacy from the nova-volume days).
- Fixed a broken link to the 'evacuate instances' docs.

This change does not get into details for the individual filters
or weighers, only the overview and filter scheduler description.

Change-Id: Ie5bb9781e1997ad12521b5df5245a78b587a4a20
Closes-Bug: #1749235
2018-02-13 12:12:12 -05:00
Matt Riedemann b72d307e7c Fix typo in NUMATopologyFilter docs
This copies similar wording from the Filter Scheduler docs [1]
and applies it in the scheduler configuration guide for the
NUMATopologyFilter.

[1] https://docs.openstack.org/nova/latest/user/filter-scheduler.html

Change-Id: I247ddc8bb344a6821ddeb4ce18f38591dec481ee
2018-02-12 10:47:47 -05:00
Matt Riedemann 60bbec15ed Fix docs for IsolatedHostsFilter
The docs were using variable names from the filter code rather
than the actual config options.

Change-Id: I2694b32e9c90ad098101e41e4e3ae36ddafd8d0f
Related-Bug: #1746483
2018-02-11 17:23:38 -05:00
gaofei a9769a8488 Replace curly quotes with straight quotes
Sphinx's "smart quotes" feature will ensure these are replaced during
generation of docs.

Change-Id: I96412d86ac67c0dbaa0edb88815daa795e3cb1d8
2018-01-23 09:25:05 +00:00
Matt Riedemann ed3c69cb45 Delete the TypeAffinityFilter
Deprecated in Pike:

  I660e0316b11afcad65c0fe7bd167ddcec9239a8b

This filter relies on the flavor.id primary key which will
change as (1) flavors were migrated to the API database and
(2) when a flavor is changed by deleting and re-creating the
flavor.

Also, as noted in blueprint put-host-manager-instance-info-on-a-diet,
this is one step forward in getting us to a point where the only
thing that the in-tree filters care about in the HostState.instances
dict is the instance uuid (for the affinity filters). Which means
we can eventually stop RPC casting all instance information from
all nova-compute services to the scheduler for every instance create,
delete, move or periodic sync task - we only would need to send the
list of instance UUIDs. That should help with RPC traffic in a large
and busy deployment.

Change-Id: Icb43fe2ef5252d2838f6f8572c7497840a9797a1
2017-12-14 17:09:56 -05:00
zhangyangyang aecc165a58 Remove deprecated TrustedFilter
The TrustedFilter and the related trusted_computing config options
were deprecated in Pike:

  If6e53feeb97e6050c1eb7962110ed89504c952fc

Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com>

Change-Id: I0a7ab3a4fb2cfad567a8644bed4de574393ee11a
2017-11-28 14:54:31 -05:00
Takashi NATSUME fa43227f6e Update document related to host aggregate
The arguments of nova CLI commands related to host aggregate
(I93f44a12b6d5a91b448f6f8d238311d58bf40c01) are fixed.
The host APIs have been deprecated since microversion 2.43.
So remove description related to nova host commands.
And add description about nova hypervisor commands.

Change-Id: Ibf78865844da6f007b610f12430df4866076f00b
Closes-Bug: #1726658
2017-11-21 02:01:40 +00:00
evikbas aff78ac53e doc: Fix command output in scheduler document
Change-Id: If2fe3dcac8d32d8a3f83f4db8e2a0b41ac15e888
Closes-Bug: #1723120
2017-10-16 09:21:11 +00:00
jichenjc 456fd13183 Remove RamFilter and DiskFilter in default filter
commit 2fe96819c2
fixed the default filter settings and in doc we should
do it accordingly

Related-Bug: 1709328
Change-Id: I8a7b25e70e1d111f5a0d1db9213a58354cf9e5b1
2017-07-30 02:56:39 +08:00
Stephen Finucane da224b3a05 doc: Import configuration reference
Import the following files from the former config-reference [1]:

  api.rst
  cells.rst
  fibre-channel.rst
  hypervisor-basics.rst
  hypervisor-hyper-v.rst
  hypervisor-kvm.rst
  hypervisor-lxc.rst
  hypervisor-qemu.rst
  hypervisor-virtuozzo.rst
  hypervisor-vmware.rst
  hypervisor-xen-api.rst
  hypervisor-xen-libvirt.rst
  hypervisors.rst
  index.rst
  iscsi-offload.rst
  logs.rst
  resize.rst
  samples/api-paste.ini.rst
  samples/index.rst
  samples/policy.yaml.rst
  samples/rootwrap.conf.rst
  schedulers.rst

The below files are skipped as they're already included, in slightly
different forms, in the nova documentation.

  config-options.rst
  nova-conf-samples.rst
  nova-conf.rst
  nova.conf

Part of bp: doc-migration

Change-Id: I145e38149bf20a5e068f8cfe913f90c7ebeaad36
2017-08-09 11:20:12 -04:00