实例高可用性¶
包含您的 Launchpad 蓝图的 URL
https://blueprints.launchpad.net/tripleo/+spec/instance-ha
运营商和客户经常要求的功能是能够自动复活运行在发生故障的计算节点(无论是硬件故障、网络问题还是通用服务器问题)上的虚拟机。目前我们有一个仅限下游的程序,需要许多手动步骤来配置实例高可用性:https://access.redhat.com/documentation/en/red-hat-openstack-platform/9/paged/high-availability-for-compute-instances/chapter-1-overview
我们希望在这里实现的是基本上一个可选的、自动部署支持实例高可用性的云。
问题描述¶
目前,如果计算节点发生硬件故障或内核崩溃,所有在该节点上运行的实例都会消失,需要手动干预才能在另一个计算节点上复活这些实例。
提议的变更¶
概述¶
提议的更改是添加一些额外的 puppet-tripleo 配置文件,这些配置文件将帮助我们配置实例高可用性所需的 pacemaker 资源。与之前的迭代不同,我们不需要将 nova-compute 资源置于 pacemaker 的管理之下。我们设法在不触碰计算节点的情况下实现了相同的结果(除了在计算节点上设置 pacemaker_remote,但该支持已经存在)
替代方案¶
有一些规格正在模拟主机恢复
主机恢复 - https://review.openstack.org/#/c/386554/ 实例自动撤离 - https://review.openstack.org/#/c/257809
第一个规格以非常相似的方式使用 pacemaker,但它太新、太高级,目前无法真正发表评论。第二个规格已经停滞了很长时间,看起来还没有就所需的方法达成共识。长远目标是将实例高可用性部署转变为被接受的规格。我们也在积极地处理这两个规格。无论如何,我们已经与 SuSe 和 NTT 讨论了长期计划,并同意了长期计划,该规格是 TripleO 的第一步。
安全影响¶
没有额外的安全影响。
其他最终用户影响¶
最终用户不受影响,除了虚拟机可以在非故障计算节点上自动复活之外。
性能影响¶
与当前部署相比,没有性能相关的性能影响。
其他部署者影响¶
因此,此更改不会影响默认部署。它所做的就是添加一个布尔值和一些额外的配置文件,以便部署者可以拥有开箱即用支持实例高可用性的云。
一个顶级参数来启用实例高可用性部署
虽然 fencing 配置目前已受 tripleo 支持,但我们需要改进一些部分,以便我们不需要额外的命令来生成 fencing 参数。
升级将受到此更改的影响,因为我们需要确保在启用实例高可用性时对其进行测试。
开发人员影响¶
没有计划对开发人员产生影响。
实现¶
负责人¶
- 主要负责人
michele
- 其他贡献者
cmsj, abeekhof
工作项¶
使 fencing 配置完全自动化(这已经基本完成,我们需要 oooq 集成和一些优化)
在控制平面上添加逻辑和所需资源
测试在配置了实例高可用性时的升级路径
测试¶
手动测试很简单
配置了实例高可用性并具有两个计算节点的部署
生成一个测试虚拟机
崩溃运行虚拟机的计算节点
观察虚拟机在另一个计算节点上复活
在 CI 中进行测试是可行的,但由于资源限制,可能更具挑战性。
文档影响¶
需要在高级配置下添加一个部分,解释支持实例高可用性的云的部署。