启用目标主机冷迁移 — Pike¶
https://blueprints.launchpad.net/nova/+spec/cold-migration-with-target-pike
此功能的目标是允许操作员手动使用目标主机进行冷迁移。
问题描述¶
在实时迁移操作中,可以指定目标主机。并且在 REST API 中,当指定目标主机时,存在调度器规则检查和 ‘force’ 标志。
但是,在冷迁移操作中,无法指定目标主机。这与实时迁移操作不一致,并且这两种操作在需要指定主机时都有相似的情况。
用例¶
这与实时迁移用例相同。有时,操作员或脚本会决定哪个主机最适合接受冷迁移,然后希望执行它。应确保与实时迁移用例的一致性。
提议的变更¶
修改 API 和当前的 resize_instance 流程,以便能够指定冷迁移的目标主机。
添加一个函数,以默认行为检查目标主机是否符合调度器规则。具体来说,在 nova/compute/api.py 中添加 RequestSpec 对象的 ‘requested_destination’ 设置。该字段已经在调度器中得到支持,因此只需要填充即可。
此蓝图还提供了一种让操作员绕过调度器的方法,我们将通过添加一个名为 ‘force’(接受 True 或 False,默认值为 False)的请求体参数,并使相应的 CLI 方法公开该 force 选项,来为冷迁移提供 API,包括目标主机。如果客户端请求的微版本早于提供该字段的版本,则不会将其传递(既不会传递 True 或 False,而是该键将不存在)给 conductor,因此 conductor 不会调用调度器。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
URL: POST /v2.1/servers/{server_id}/action
JSON 请求体
{ "migrate": { "host": "target-host", "force": True } }
由于与实时迁移 API 一致,因此 ‘host’ 参数用于指定目标主机是必需的(不是可选的)。
如果 ‘force’ 为 True,则不检查目标主机。如果 ‘force’ 为 False 或 null 或未提供,则检查目标主机。
如果在请求体中提供了 ‘force’ 并且其值为 true,但 ‘host’ 参数为 null,则将向用户提供 HTTP 400 Bad Request 错误。
微版本已提升。
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
python-novaclient 将被修改,使其具有可选的目标主机参数。并添加可选的 ‘force’ 参数。
nova migrate [–force True] <server> [<host>]
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
natsume-takashi
工作项¶
添加逻辑以指定冷迁移的目标主机
添加处理冷迁移中目标主机检查的逻辑
添加带有新微版本号的 API
在 novaclient 上添加目标主机参数和 ‘force’ 参数
添加 nova 功能测试
添加 tempest 测试
依赖项¶
无
测试¶
添加以下测试。
单元测试
功能测试
Tempest 测试
文档影响¶
API 参考
CLI 参考
关于冷迁移主题的管理员用户指南。
参考资料¶
历史¶
该蓝图已获得 Ocata 的批准,命名为 ‘cold-migration-with-target-ocata’。现在将其重命名为 ‘cold-migration-with-target-pike’。
发布名称 |
描述 |
|---|---|
Ocata |
已批准 |
Pike |
重新提出 |