Cells 实例迁移¶
https://blueprints.launchpad.net/nova/+spec/cells-instance-migration
现在已经有了将实例映射到 cell 的表,需要用现有实例的数据填充它,这些实例是在创建和使用该表之前存在的。
问题描述¶
当 Nova 被划分为 cell 时,计算 API 需要知道与特定实例通信的 cell。 在维护此映射之前存在的实例需要将其位置添加到表中。
用例¶
操作员希望将他们的部署划分为 cell,以实现扩展、故障域和构建原因。 在划分后,我们需要一个查找表来知道实例位于哪个分区。 该查找表需要用创建之前实例的信息填充。
项目优先级¶
Cells v2 是 Liberty 的优先事项。
提议的变更¶
‘instance_mapping’ 表将填充数据,以确定实例位于哪个 cell 中。
将添加一个新的 nova-manage 命令来查找数据库中的实例,并为它们添加一个 instance_mapping 行。 该命令将 cell 名称/uuid 作为参数,并迁移该 cell 内的实例。 cell 名称/uuid 必须对应于 cell_mapping 表中的条目,并且该行中的数据库连接信息将用于查找要映射的实例。
对于使用多个 cell 的 cells v1 设置,应该为每个 cell 添加一个新的 cell_mapping 条目,然后需要为每个 cell 运行 nova-manage 命令。
备选方案¶
cells v1/v2 的替代方案在此 spec 之前已经讨论过。 在 cells v2 的努力中,对于此映射要求没有替代方案。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
将向部署者提供一个新的 nova-manage 命令来触发映射的创建。 对于当前未使用 cellsv1 的部署,应该运行一次,对于当前使用 cellsv1 的部署,应该在每个 cell 中运行一次。 在当前硬编码数据库连接方法可以被删除之前,需要为每个 cell 运行此命令,或者对于当前非 cellsv1 用户迁移第一个 cell。 该时间表可能是在发布周期结束时,即 Liberty 或 M(ongoose)。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
alaski
- 其他贡献者
无
工作项¶
添加 nova-manage 命令以填充实例的 instance_mapping 数据。 该命令应一次迁移一个 cell。
更新 grenade 测试作业,或添加一个新的作业,以调用新命令并验证迁移是否正常工作。
依赖项¶
https://blueprints.launchpad.net/nova/+spec/cells-instance-mapping
测试¶
测试将结合 Nova 树内功能测试和 grenade 测试,以验证升级是否有效。
文档影响¶
需要编写有关新 nova-manage 命令的文档。
参考资料¶
https://etherpad.openstack.org/p/YVR-nova-cells-v2