List/show all server migration types¶
https://blueprints.launchpad.net/nova/+spec/list-show-all-server-migration-types
以下 API 用于列出正在进行的服务器实时迁移并显示正在进行的实时迁移的详细信息。因此,此蓝图使我们能够列出并显示其他迁移类型(‘撤离’、‘调整大小’、‘迁移’)。
GET /servers/{server_id}/migrations
GET /servers/{server_id}/migrations/{migration_id}
问题描述¶
要中止冷迁移 [1],管理员必须列出/显示正在进行的冷迁移。但目前他们只能在服务器迁移 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", "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", "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 已修改为指定迁移类型。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
natsume-takashi
- 其他贡献者
无
工作项¶
将 ‘type’ 查询参数添加到列出服务器迁移(‘evacuation’,‘resize’,‘migration’)API
修改显示服务器迁移(‘evacuation’,‘resize’ 或 ‘migration’)API
在 novaclient/openstackclient 中添加可选的 ‘type’ 参数
API 文档包括可能类型的说明
依赖项¶
无
测试¶
添加以下测试。
功能测试
tempest test
文档影响¶
API 参考
CLI 参考
参考资料¶
历史¶
发布名称 |
描述 |
|---|---|
Pike |
已批准 |
Queens |
重新提出 |