Propose to move prep_resize to Conductor
scheduler prep_resize() is only necessary when rescheduling a cold migration, but all of this can be done in conductor. Implements: blueprint move-prep-resize-to-conductor Change-Id: I4143aa011e18edcc609e1095f0054c3a8670bc86
This commit is contained in:
125
specs/juno/move-prep-resize-to-conductor.rst
Normal file
125
specs/juno/move-prep-resize-to-conductor.rst
Normal file
@@ -0,0 +1,125 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
===============================
|
||||
Move prep_resize to Conductor
|
||||
===============================
|
||||
|
||||
https://blueprints.launchpad.net/nova/+spec/move-prep-resize-to-conductor
|
||||
|
||||
So as to prepare the scheduler to be a separate project, we need to remove
|
||||
all proxy calls from the scheduler to compute nodes.
|
||||
prep_resize() is still in Scheduler V3 API, so we need to modify how cold
|
||||
migrations are retried.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
When a cold migration is requested, there is a direct call from conductor to
|
||||
compute.prep_resize() which is OK. The problem is when the cold migration is
|
||||
failing, where compute node is asking Scheduler to reschedule a new migration
|
||||
by calling scheduler.prep_resize(), which itself calls compute.prep_resize()
|
||||
after issuing a select_destinations().
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
The idea is to replace the call back by conductor.migrate_server instead of
|
||||
scheduler.prep_resize in the compute prep_resize method.
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
All prep_resize logic should be left to the conductor, but that's a bigger step
|
||||
than just moving the scheduler logic to conductor. With regards to small
|
||||
iterations, that blueprint is quicker to implement and less risky, so that
|
||||
another blueprint for placing cold and hot migrations to conductor [1] could
|
||||
use it as dependency.
|
||||
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
sylvain-bauza
|
||||
|
||||
Other contributors:
|
||||
None
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
- Replace call to scheduler.prep_resize by call to conductor.migrate_server
|
||||
in compute.prep_resize
|
||||
- Remove prep_resize in Scheduler RPC API and note it to be removed in manager
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Covered by existing tempest tests and CIs.
|
||||
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
None
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
* [1] https://blueprints.launchpad.net/nova/+spec/cold-migrations-to-conductor-final
|
||||
Reference in New Issue
Block a user