第 4 章 使用 STONITH 隔离 Controller 节点
隔离是隔离故障节点以保护集群和集群资源的过程。如果没有隔离,故障节点可能会导致集群中的数据崩溃。director 使用 Pacemaker 提供 Controller 节点的高可用性集群。
Pacemaker 使用名为 STONITH 的进程隔离故障节点。STONITH 是"Shoot the other node in the head"的缩写。STONITH 默认禁用,需要手动配置,以便 Pacemaker 能够控制集群中每个节点的电源管理。
如果 Controller 节点无法进行健康检查,则作为 Pacemaker 指定协调器(DC)的 Controller 节点使用 Pacemaker stonith
服务隔离受影响的 Controller 节点。
不支持在不使用 STONITH 的情况下部署高可用性 overcloud。您必须在高可用性 overcloud 中为作为 Pacemaker 集群一部分的每个节点配置 STONITH 设备。有关 STONITH 和 Pacemaker 的信息,请参阅红帽高可用性集群中的隔离和 RHEL 高可用性集群的支持策略。
4.1. 支持的隔离代理
当您使用隔离部署高可用性环境时,您可以根据环境需求选择隔离代理。要更改隔离代理,您必须在 fencing.yaml
文件中配置附加参数。
Red Hat OpenStack Platform (RHOSP)支持以下隔离代理:
- 智能平台管理接口 (IPMI)
- Red Hat OpenStack Platform (RHOSP)用来管理隔离的默认隔离机制。
- STONITH 块设备(SBD)
SBD (基于存储的 Death)守护进程与 Pacemaker 和 watchdog 设备集成,以安排节点在触发隔离时可靠地关闭,以防传统隔离机制不可用。
重要-
使用
pacemaker_remote
的远程裸机或虚拟机节点不支持 SBD 隔离,因此如果部署使用了 Instance HA,则不支持它。 -
不支持使用块存储设备的
fence_sbd
和sbd poison-pill
隔离。 - SBD 隔离只支持兼容的 watchdog 设备。如需更多信息,请参阅 RHEL 高可用性集群的支持政策 - sbd 和 fence_sbd。
-
使用
fence_kdump
在带有
kdump
崩溃恢复服务的部署中使用。如果选择这个代理,请确保您有足够的磁盘空间来存储转储文件。除了 IPMI、
fence_mvapich 或 Redfish 隔离代理外,您还可以将此代理
配置为辅助机制。如果您配置多个隔离代理,请确保分配足够时间以便第一个代理在第二个代理启动下一个任务前完成任务。重要-
RHOSP director 仅支持
fence_kdump
STONITH 代理的配置,而不是配置隔离代理所依赖的完整kdump
服务。有关配置kdump
服务的详情,请参考 如何在 Red Hat Pacemaker 集群中配置 fence_kdump。 -
如果 Pacemaker 网络流量接口使用
ovs_bridges
或ovs_bonds
网络设备,则fence_kdump
不被支持。要启用fence_kdump
,必须将网络设备改为linux_bond
或linux_bridge
。
-
RHOSP director 仅支持
- Redfish
-
在带有支持 DMTF Redfish API 的服务器中使用。要指定此代理,请在 fence
.yaml
文件中将agent
参数的值改为fence_redfish
。有关 Redfish 的更多信息,请参阅 DTMF 文档。 - 多层隔离
-
您可以配置多个隔离代理来支持复杂的隔离用例。例如,您可以使用
fence_kdump
配置 IPMI 隔离。隔离代理的顺序决定了 Pacemaker 触发每个机制的顺序。