启用目标主机冷迁移 — Ocata¶
https://blueprints.launchpad.net/nova/+spec/cold-migration-with-target-ocata
此功能的目标是允许操作员手动使用目标主机进行冷迁移。此外,提供一种方法来确保在指定目标主机时,冷迁移操作的资源分配一致性。
问题描述¶
可以在实时迁移操作中指定目标主机。并且在指定实时迁移操作的目标主机时,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”参数为空,则将向用户提供 HTTP 400 Bad Request 错误。
微版本已升级。
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
python-novaclient 将被修改,使其具有可选的目标主机参数。并添加可选的“force”参数。
nova migrate [–force True] <server> [<host>]
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
natsume-takashi
工作项¶
添加逻辑以指定冷迁移的目标主机
添加处理冷迁移中目标主机检查的逻辑
添加带有新微版本号的 API
在 novaclient 上添加目标主机参数和“force”参数
添加 nova 功能测试
添加 tempest 测试
依赖项¶
无
测试¶
添加以下测试。
单元测试
功能测试
Tempest 测试
文档影响¶
API 参考
CLI 参考
关于冷迁移主题的管理员用户指南。
参考资料¶
历史¶
在 juno 中之前已经批准了指定目标主机的功能[1]。对于 ocata,添加了检查目标主机是否符合调度器规则的函数以及“force”标志。
发布名称 |
描述 |
|---|---|
Ocata |
引入 |