doc: provide more details on scheduling with placement
This provides a more detailed, but still high level, explanation of how the FilterScheduler is using allocation candidates to pick hosts during scheduling, and how the allocations are handled during a move operation, including a resize to the same host. Ideally this content will live somewhere else in the devref, or would be updated in the spec for blueprint placement-claims, but for now this should suffice for Pike release notes that can point at this upgrade doc. Change-Id: I274c684f829bc310ebb17faabf498d36f4ceea0c
This commit is contained in:
@@ -195,11 +195,33 @@ Pike (16.0.0)
|
|||||||
* The ``nova.scheduler.filter_scheduler.FilterScheduler`` in Pike will
|
* The ``nova.scheduler.filter_scheduler.FilterScheduler`` in Pike will
|
||||||
no longer fall back to not using the Placement Service, even if older
|
no longer fall back to not using the Placement Service, even if older
|
||||||
computes are running in the deployment.
|
computes are running in the deployment.
|
||||||
* The scheduler now requests allocation candidates from the Placement service
|
* The FilterScheduler now requests allocation candidates from the Placement
|
||||||
during scheduling. The allocation candidates information was introduced in
|
service during scheduling. The allocation candidates information was
|
||||||
the Placement API 1.10 microversion, so you should upgrade the placement
|
introduced in the Placement API 1.10 microversion, so you should upgrade the
|
||||||
service **before** the Nova scheduler service so that the scheduler can take
|
placement service **before** the Nova scheduler service so that the scheduler
|
||||||
advantage of the allocation candidate information.
|
can take advantage of the allocation candidate information.
|
||||||
|
|
||||||
|
The scheduler gets the allocation candidates from the placement API and
|
||||||
|
uses those to get the compute nodes, which come from the cell(s). The
|
||||||
|
compute nodes are passed through the enabled scheduler filters and weighers.
|
||||||
|
The scheduler then iterates over this filtered and weighed list of hosts and
|
||||||
|
attempts to claim resources in the placement API for each instance in the
|
||||||
|
request. Claiming resources involves finding an allocation candidate that
|
||||||
|
contains an allocation against the selected host's UUID and asking the
|
||||||
|
placement API to allocate the requested instance resources. We continue
|
||||||
|
performing this claim request until success or we run out of allocation
|
||||||
|
candidates, resulting in a NoValidHost error.
|
||||||
|
|
||||||
|
For a move operation, such as migration, allocations are made in Placement
|
||||||
|
against both the source and destination compute node. Once the
|
||||||
|
move operation is complete, the resource tracker in the *nova-compute*
|
||||||
|
service will adjust the allocations in Placement appropriately.
|
||||||
|
|
||||||
|
For a resize to the same host, allocations are summed on the single compute
|
||||||
|
node. This could pose a problem if the compute node has limited capacity.
|
||||||
|
Since resizing to the same host is disabled by default, and generally only
|
||||||
|
used in testing, this is mentioned for completeness but should not be a
|
||||||
|
concern for production deployments.
|
||||||
|
|
||||||
|
|
||||||
REST API
|
REST API
|
||||||
|
Reference in New Issue
Block a user