第 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_sbdsbd poison-pill fencing with Block storage devices。
  • SBD 隔离只支持兼容的 watchdog 设备。如需更多信息,请参阅 RHEL 高可用性集群的支持政策 - sbd 和 fence_sbd
fence_kdump

使用 kdump 崩溃恢复服务的部署中。如果选择了这个代理,请确保有足够的磁盘空间来存储转储文件。

除了 IPMI、fence_rhevm 或 Redfish 隔离代理外,您还可以将此代理配置为二级机制。如果您配置多个隔离代理,请确保为第一个代理分配充足的时间,以便在第二个代理启动下一个任务前完成任务。

重要
  • RHOSP director 只支持配置 fence_kdump STONITH 代理,而不是配置隔离代理所依赖的完整 kdump 服务。有关配置 kdump 服务的详情,请参考 如何在 Red Hat Pacemaker 集群中配置 fence_kdump
  • 如果 Pacemaker 网络流量接口使用 ovs_bridgesovs_bonds 网络设备,则不支持 fence_kdump。要启用 fence_kdump,必须将网络设备更改为 linux_bondlinux_bridge。有关网络接口配置的更多信息,请参阅 网络接口引用
Redfish
在支持 DMTF Redfish API 的服务器中使用。要指定这个代理,在 fence .yaml 文件中将 agent 参数的值改为 fence_redfish。有关 Redfish 的更多信息,请参阅 DTMF 文档
fence_rhevm for Red Hat Virtualization (RHV)

使用 为在 RHV 环境中运行的 Controller 节点配置隔离。您可以以与 IPMI 隔离操作相同的方式生成 fencing.yaml 文件,但必须在 nodes.json 文件中定义 pm_type 参数来使用 RHV。

默认情况下,ssl_insecure 参数被设置为接受自签名证书。您可以根据安全要求更改参数值。

重要

确保使用具有在 RHV 中创建和启动虚拟机的角色,如 UserVMManager

多层隔离
您可以配置多个隔离代理来支持复杂的隔离用例。例如,您可以将 IPMI 隔离与 fence_kdump 一起配置。隔离代理的顺序决定了 Pacemaker 触发每个机制的顺序。