实例可用区
- 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) 配置具有计算服务的每个主机的可用区。
测试/演示计划
提供了单元测试。
未解决的问题
我们应该为卷服务添加可用区支持。