Enable cold migration with target host
The target host can be specified when cold migrating a server. The spec is changed from the approved spec in terms of the following items. * The 'host' parameter in API is optional. (Based on a comment in Iee356c4dd097c846b6ca8617ead6a061300c83f8) * The 'force' parameter is removed. Previously-approved: ocata, pike APIImpact Change-Id: I0fac0761aca74bcd02b20456ac6eff881dd63bcf blueprint cold-migration-with-target-queens
This commit is contained in:
committed by
Matt Riedemann
parent
019285bbd7
commit
32011f2446
172
specs/queens/approved/cold-migration-with-target-queens.rst
Normal file
172
specs/queens/approved/cold-migration-with-target-queens.rst
Normal file
@@ -0,0 +1,172 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
===============================================
|
||||
Enable cold migration with target host - Queens
|
||||
===============================================
|
||||
|
||||
https://blueprints.launchpad.net/nova/+spec/cold-migration-with-target-queens
|
||||
|
||||
The aim of this feature is to let operators cold migrate instances with
|
||||
target host manually.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
A target host can be specified on the live migration operation.
|
||||
But a target host cannot be specified on the cold migration operation.
|
||||
It is inconsistent with the live migration operation,
|
||||
and both of these operations have similar circumstances
|
||||
when the host needs to be specified.
|
||||
|
||||
Use Cases
|
||||
---------
|
||||
|
||||
It is same as the live migration use case.
|
||||
Sometimes an operator or a script decides which host is the best
|
||||
suited to accept a cold migration and then wants to perform it.
|
||||
Consistency with a live migration case should be ensured.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
Modify the API and the current resize_instance flow to be able to
|
||||
specify the target host for cold migration.
|
||||
|
||||
Add the function to check whether a destination host is
|
||||
in accordance with scheduler rules or not in cold migration
|
||||
as a default behaviour.
|
||||
Specifically to say, add setting 'requested_destination' of the RequestSpec
|
||||
object in nova/compute/api.py. The field has already been supported
|
||||
in the scheduler, so it just needs to be filled in.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
* URL: POST /v2.1/servers/{server_id}/action
|
||||
|
||||
JSON request body::
|
||||
|
||||
{
|
||||
"migrate": {
|
||||
"host": "target-host"
|
||||
}
|
||||
}
|
||||
|
||||
The 'host' parameter to specify a target host is optional.
|
||||
Microversion is bumped up.
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
python-novaclient will be modified to have a target host argument as
|
||||
optional.
|
||||
|
||||
nova migrate <server> [<host>]
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
natsume-takashi
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* Add logic to specify target host for cold migration
|
||||
* Add processing checking destination host in the cold migration
|
||||
* Disable retries of the scheduling when the target host is specified
|
||||
* Add API with bumping a new microversion
|
||||
* Add nova functional tests
|
||||
* Add tempest tests
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Add the following tests.
|
||||
|
||||
* Unit tests
|
||||
* Functional tests
|
||||
* Tempest tests
|
||||
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
* API Reference
|
||||
* CLI Reference
|
||||
* Admin User Guide on cold migration topic.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
Mailing list discussion about why ``force`` flag is not added as part of this
|
||||
proposal: http://lists.openstack.org/pipermail/openstack-dev/2017-August/121654.html
|
||||
|
||||
History
|
||||
=======
|
||||
|
||||
The blueprint has been approved for Ocata as
|
||||
'cold-migration-with-target-ocata' and for Pike as
|
||||
'cold-migration-with-target-pike'.
|
||||
It is renamed to 'cold-migration-with-target-queens' now.
|
||||
But the 'force' parameter to bypass the scheduler check is removed in the spec.
|
||||
|
||||
.. list-table:: Revisions
|
||||
:header-rows: 1
|
||||
|
||||
* - Release Name
|
||||
- Description
|
||||
* - Ocata
|
||||
- Approved
|
||||
* - Pike
|
||||
- Reapproved
|
||||
* - Queens
|
||||
- Reproposed
|
||||
Reference in New Issue
Block a user