跳转到: 导航, 搜索

实例可用区

  • Launchpad 条目: NovaSpec:instance-avail-zones
  • 创建: 2011-01-12
  • 贡献者: Eldar Nugaev, Ilya Alekseyev

总结

我们需要能够按可用区调度实例。每个计算服务都有其自己的可用区。

发布说明

这一系列更改为最终用户提供了在启动实例时选择可用区的能力。部署工程师可以选择使用支持可用区的调度器,并可以在每个计算主机上配置可用区。

原理

用户故事

我们应该在不同供电区域或数据中心的不同主机上分配一对 HA 服务器。

前提条件

设计

OpenStack 的“可用区”功能允许用户在定义的部署位置中调度新实例。 可能有两种类型的可用区,一种是定义虚拟机分配位置的“实例可用区”,另一种是定义块存储设备分配位置的“卷可用区”。 在创建过程中,每个服务都会从标志 (FLAGS.node_availability_zone) 获取可用区。

实现

当前的蓝图实现了“实例可用区”的调度。 我们假设“卷可用区”应该以类似的方式作为未来的工作来实现。

UI 变更

代码变更

EC2 API(我们用真实的替换了伪造的方法 describe_availability zones) 调度器(我们添加了一个新的调度器 (ZoneScheduler),它根据 availability_zone 字段做出决策) 数据库 db/sqlalchemy/models.py(我们在 Service 中添加了 availability_zone 字段)

迁移

可以使用标志 scheduler_driver (FLAGS.scheduler_driver) 等于 'nova.scheduler.zone.ZoneScheduler' 来实现计算服务对可用区的使用。 可以使用标志 node_availability_zone (FLAGS.node_availability_zone) 配置具有计算服务的每个主机的可用区。

测试/演示计划

提供了单元测试。

未解决的问题

我们应该为卷服务添加可用区支持。

BoF 议程和讨论