第 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. 支持的隔离代理
当您使用隔离部署高可用性环境时,您可以根据环境需求选择隔离代理。要更改隔离代理,您必须在 fence .yaml 文件中配置附加参数。
Red Hat OpenStack Platform (RHOSP)支持以下隔离代理:
- 智能平台管理接口 (IPMI)
- Red Hat OpenStack Platform (RHOSP)使用的默认隔离机制来管理隔离。
- STONITH 块设备(SBD)
SBD (基于Storage-Based Death)守护进程与 Pacemaker 和 watchdog 设备集成,以便在触发隔离时为节点进行可靠关闭,并在其中无法使用传统的隔离机制时进行正常关闭。
重要-
在使用
pacemaker_remote的远程裸机或虚拟机节点的集群中不支持 SBD 隔离,因此部署使用 Instance HA 时不支持它。 -
不支持
fence_sbd和sbd poison-pillfencing with Block storage devices。 - SBD 隔离只支持兼容的 watchdog 设备。如需更多信息,请参阅 RHEL 高可用性集群的支持政策 - sbd 和 fence_sbd。
-
在使用
fence_kdump使用
kdump崩溃恢复服务的部署中。如果选择了这个代理,请确保有足够的磁盘空间来存储转储文件。除了 IPMI、
fence_rhevm或 Redfish 隔离代理外,您还可以将此代理配置为二级机制。如果您配置多个隔离代理,请确保为第一个代理分配充足的时间,以便在第二个代理启动下一个任务前完成任务。重要-
RHOSP director 只支持配置
fence_kdumpSTONITH 代理,而不是配置隔离代理所依赖的完整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_rhevmfor Red Hat Virtualization (RHV)使用 为在 RHV 环境中运行的 Controller 节点配置隔离。您可以以与 IPMI 隔离操作相同的方式生成
fencing.yaml文件,但必须在nodes.json文件中定义pm_type参数来使用 RHV。默认情况下,
ssl_insecure参数被设置为接受自签名证书。您可以根据安全要求更改参数值。重要确保使用具有在 RHV 中创建和启动虚拟机的角色,如
UserVMManager。- 多层隔离
-
您可以配置多个隔离代理来支持复杂的隔离用例。例如,您可以将 IPMI 隔离与
fence_kdump一起配置。隔离代理的顺序决定了 Pacemaker 触发每个机制的顺序。