第 4 章 使用 STONITH 的隔离 Controller 节点
隔离(fencing)是隔离故障节点来保护集群和集群资源的过程。如果没有隔离,故障节点可能会导致集群中的数据崩溃。director 使用 Pacemaker 提供 Controller 节点的高可用性集群。
Pacemaker 使用名为 STONITH 的进程来隔离失败的节点。STONITH 是 "Shoot the other nodes 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 (基于存储)守护进程与 Pacemaker 和 watchdog 设备集成,以便在触发隔离机制时调度节点以可靠地关闭,并在传统隔离机制不可用时可靠地关闭。
重要-
使用
pacemaker_remote
的远程裸机或虚拟机节点不支持 SBD 隔离,因此如果部署使用 Instance HA,则不支持它。 -
不支持使用块存储设备的
fence_sbd
和sbd poison-pill
隔离。 - SBD 隔离只支持兼容 watchdog 设备。如需更多信息,请参阅 RHEL 高可用性集群的支持政策 - sbd 和 fence_sbd。
-
使用
fence_kdump
在带有
kdump
崩溃恢复服务的部署中使用。如果您选择此代理,请确保您有足够的磁盘空间来存储转储文件。除了 IPMI、
fence_ the 或 Redfish 隔离代理外,您还可以将此代理
配置为辅助机制。如果您配置多个隔离代理,请确保为第一个代理分配足够时间来完成任务,然后再启动下一个任务。重要-
RHOSP director 仅支持
fence_kdump
STONITH 代理的配置,不支持隔离代理依赖的完整kdump
服务的配置。有关配置kdump
服务的详情,请参考红帽知识库解决方案 如何在 Red Hat Pacemaker 集群中配置 fence_kdump。 -
如果 Pacemaker 网络流量接口使用
ovs_bridges
、ovs_bonds
或 Linux 网桥上的 VLAN,则不支持fence_kdump
。要启用fence_kdump
,您必须将网络设备改为linux_bond
或linux_bridge
。有关 VLAN 和kdump
的详情,请查看红帽知识库解决方案 kdump 支持哪些 VLAN 配置?有关网络接口配置的更多信息,请参阅 网络接口参考。
-
RHOSP director 仅支持
- Redfish
-
在部署中使用支持 DMTF Redfish API 的服务器。要指定此代理,请在 fence
.yaml
文件中将agent
参数的值改为fence_redfish
。有关 Redfish 的更多信息,请参阅 DTMF 文档。 fence_ASP
for Red Hat Virtualization (RHV)用于为在 RHV 环境中运行的 Controller 节点配置隔离。您可以像 IPMI
隔离一样生成 fence.yaml
文件,但您必须在nodes.json
文件中定义pm_type
参数以使用 RHV。默认情况下,
ssl_insecure
参数设置为接受自签名证书。您可以根据安全要求更改参数值。重要确保您使用在 RHV 中创建和启动虚拟机的角色,如
UserVMManager
。- 多层隔离
-
您可以配置多个隔离代理来支持复杂的隔离用例。例如,您可以将 IPMI 隔离配置为
fence_kdump
。隔离代理的顺序决定了 Pacemaker 触发每个机制的顺序。