替换冷迁移以使用 Nova 迁移 API

https://blueprints.launchpad.net/watcher/+spec/replace-cold-migrate-to-use-nova-migration-api

问题描述

目前 Watcher 通过自身的方式实现实例冷迁移,用于指定目标节点。该实现包括实例创建。由于管理员运行 Watcher API,实例会迁移到服务项目。

用例

迁移操作在 `migration_type` 为 cold 时执行实例冷迁移。

提议的变更

自 v2.56 起,Nova migrate Server(migrate Action) API 具有 host 选项。通过将 common/nova_helper.py 中的 `watcher_non_live_migrate_instance` 方法替换为使用该 API,我们可以简单地解决这个问题。

备选方案

另一种方法是在实例所在的 project 中使用临时用户创建实例。但此解决方案仍然存在 quota 问题。在临时用户存活期间且达到 quota 限制时,无法创建新用户。

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

我们预计冷迁移会变得更快,因为当前的实现会调用许多 Nova 和 Neutron API。

其他部署者影响

  • 管理员可以使用 Nova List Migrations API 通过 Watcher 查看迁移。

开发人员影响

实现

负责人

主要负责人

<nakamura-h>

其他贡献者

<None>

工作项

  • 将 common/nova_helper.py 中的 `watcher_non_live_migrate_instance` 方法替换为使用 Nova migrate Server(migrate Action) API。

依赖项

测试

我们应该期望当前的测试代码可以测试此替换。

文档影响

参考资料