List/show all server migration types¶
https://blueprints.launchpad.net/nova/+spec/list-show-all-server-migration-types
以下 API 用于列出服务器迁移和显示服务器迁移。但它们只能列出或显示实时迁移。因此,此蓝图使我们能够列出和显示其他迁移类型(‘evacuation’,‘resize’,‘migration’)。
GET /servers/{server_id}/migrations
GET /servers/{server_id}/migrations/{migration_id}
问题描述¶
要中止冷迁移 [1],管理员必须列出/显示冷迁移。但目前他们只能列出/显示实时迁移。(‘os-migrations’ API 已弃用,因此管理员不应使用它。)
用例¶
操作员希望列出云中的所有迁移,以便对它们采取任何操作 [1]。
提议的变更¶
修改以下用于实时迁移的现有 2 个 API,以列出并显示其他迁移类型(‘evacuation’,‘resize’,‘migration’)。
GET /servers/{server_id}/migrations
GET /servers/{server_id}/migrations/{migration_id}
前一个 API 返回正在进行的迁移。后一个 API 如果指定的迁移未进行中,则返回 404 错误。行为保持不变。
迁移状态转换如下
Migration/resize
‘pre-migrating’ –> ‘migrating’ –> ‘post-migrating’ –> ‘finished’
Confirm resize
‘finished’ –> ‘confirming’ –> ‘confirmed’
Revert resize
‘finished’ –> ‘reverting’ –> ‘reverted’
Evacuation
‘accepted’ –> ‘pre-migrating’ –> ‘done’
实时迁移
(Skip the definition)
正在进行中的迁移状态定义如下
migration/resize
‘pre-migrating’, ‘migrating’, ‘post-migrating’
confirm resize
无
‘confirming’ 未包含在内,因为它不执行磁盘复制。
revert resize
无
‘reverting’ 未包含在内,因为它不执行磁盘复制。
evacuation
‘accepted’, ‘pre-migrating’
实时迁移
‘queued’, ‘preparing’, ‘running’, ‘post-migrating’
现有定义。保持不变。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
以下更改将在新的 API 微版本中引入。
GET /servers/{server_id}/migrations
它列出正在进行的迁移。可以通过 ‘type’ 查询参数指定迁移类型来过滤结果。‘type’ 查询参数是可选的。如果未指定 ‘type’ 参数,则列出所有迁移类型。
有效的 ‘type’ 参数为 ‘live-migration’、‘migration’、‘resize’ 和 ‘evacuation’。 如果 ‘type’ 参数错误,nova-api 将返回 400 错误。 因此,将 badRequest(400) 添加到错误响应代码中。
‘type’ 参数已添加到响应中。
JSON 响应体示例
{ "migrations": [ { "dest_host": "10.0.2.15", "status": "post-migrating", "memory_processed_bytes": null, "type": "migration", "updated_at": "2017-01-31T08:03:25.000000", "created_at": "2017-01-31T08:03:21.000000", "memory_remaining_bytes": null, "dest_compute": "devstack-master2", "id": 11, "source_node": "devstack-master1", "server_uuid": "a333ee8a-367f-4841-bdc9-c8d92a6adfe4", "memory_total_bytes": null, "dest_node": "devstack-master2", "disk_total_bytes": null, "disk_processed_bytes": null, "disk_remaining_bytes": null, "source_compute": "devstack-master1" } ] }
GET /servers/{server_id}/migrations/{migration_id}
响应代码未修改。显示具有任何迁移类型的迁移。‘type’ 参数已添加到响应中。
JSON 响应体示例
{ "migration": { "dest_host": "10.0.2.15", "status": "post-migrating", "memory_processed_bytes": null, "type": "migration", "updated_at": "2017-01-31T08:03:25.000000", "created_at": "2017-01-31T08:03:21.000000", "memory_remaining_bytes": null, "dest_compute": "devstack-master2", "id": 11, "source_node": "devstack-master1", "server_uuid": "a333ee8a-367f-4841-bdc9-c8d92a6adfe4", "memory_total_bytes": null, "dest_node": "devstack-master2", "disk_total_bytes": null, "disk_processed_bytes": null, "disk_remaining_bytes": null, "source_compute": "devstack-master1" } }
如果迁移未处于进行中状态,则返回 404 错误。
POST /servers/{server_id}/migrations/{migration_id}/action
这是一个“强制迁移完成操作”API。 如果迁移不是 ‘live-migration’,它将返回 400 错误而不是 404 错误。
DELETE /servers/{server_id}/migrations/{migration_id}
如果迁移不是 ‘live-migration’,则返回 400 错误。这是当前行为。(未更改。)
安全影响¶
只有管理员可以操作建议的功能。因此,没有安全影响。
通知影响¶
无
其他最终用户影响¶
novaclient 和 openstackclient 已修改为指定迁移类型。
性能影响¶
无
安全影响¶
只有管理员可以操作建议的功能。因此,没有安全影响。
通知影响¶
无
其他终端用户影响¶
novaclient 和 openstackclient 已修改为指定迁移类型。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
natsume-takashi
- 其他贡献者
无
工作项¶
将 ‘type’ 查询参数添加到列出服务器迁移(‘evacuation’,‘resize’,‘migration’)API
修改显示服务器迁移(‘evacuation’,‘resize’ 或 ‘migration’)API
在 novaclient/openstackclient 中添加可选的 ‘type’ 参数
API 文档包括可能类型的说明
依赖项¶
无
测试¶
添加以下测试。
功能测试
tempest test
文档影响¶
API 参考
CLI 参考
参考资料¶
历史¶
发布名称 |
描述 |
|---|---|
Pike |
引入 |