第 26 章 配置集群仲裁(quorum)


为了保持集群的完整性和可用性,集群系统使用一个称为仲裁(quorum) 的概念来防止数据崩溃和丢失。当超过一半的集群节点在线时,集群就已被“仲裁”。为减少由于失败造成数据崩溃的机会,在不满足仲裁数量的情况下,Pacemaker 会默认停止所有资源。

仲裁是通过一个投票(voting)系统来建立的。当一个集群节点工作不正常,或丢掉了与其他集群部分的通信,则大多数工作的节点可以通过投票来分离有问题的节点,如果需要,对节点进行隔离。

例如,在一个 6 个节点集群中,在至少有 4 个集群节点正常工作时就满足了仲裁。如果大多数节点离线或不可用,集群就不再具仲裁数量,Pacemaker 会停止集群的服务。

Pacemaker 仲裁的功能可以防止出现脑裂(split-brain)问题。当集群中出现无法相互通信的部分,而每个部分都可以在自己的部分中作为一个独立的集群运行,则代表集群出现了脑裂的问题。这可能会导致出现数据被破坏的问题。有关处于脑裂状态意味着什么,以及仲裁概念的更多信息,请参阅红帽知识库文章 RHEL 高可用性集群的概念 - 仲裁

Red Hat Enterprise Linux 高可用性附加组件集群使用 votequorum 服务,并结合隔离,以避免脑裂的情况。为集群中的每个系统分配一组投票机制,只能在大多数投票机制都存在时才允许执行集群操作。该服务必须被加载到所有节点或无节点 ; 如果服务被载入到集群节点的一个子集,则结果将无法预计。有关 votequorum 服务的配置和操作的详情,请查看您系统上的 votequorum(5)手册页。

26.1. 配置仲裁选项

使用 pcs cluster setup 命令创建集群时,可以设置仲裁配置的一些特殊功能。下表总结了这些选项。

Expand
表 26.1. 仲裁选项
选项描述

auto_tie_breaker

启用后,集群可能会以确定的方式达到 50% 个节点同时失败的情况。集群分区或仍与 auto_tie_breaker_node 中配置的 nodeid 保持联系的节点集合(如果未设置则为最低的 nodeid )将保持仲裁状态。其他节点将为 inquorate。

auto_tie_breaker 选项主要用于具有偶数节点的集群,因为它允许集群使用平均分割继续操作。对于更复杂的故障,如多个不均匀的分割,建议您使用仲裁设备。

auto_tie_breaker 选项与仲裁设备不兼容。

wait_for_all

在启用后,只有在所有节点都最少同时可见一次后,集群才会第一次处于仲裁状态。

wait_for_all 选项主要用于双节点集群,以及使用仲裁设备 lms (last man standing)算法的偶数节点集群。

当集群具有两个节点,不使用仲裁设备,且禁用 auto_tie_breaker 时,wait_for_all 选项会自动启用。您可以通过将 wait_for_all 明确设置为 0 来覆盖它。

last_man_standing

启用后,集群可以在特定情况下重新动态计算 expected_votes 和仲裁。启用这个选项时,您必须启用 wait_for_alllast_man_standing 选项与仲裁设备不兼容。

last_man_standing_window

在集群丢失节点后,在重新计算 expected_votes 和仲裁前需要等待的时间(毫秒)。

有关配置和使用这些选项的详情,请查看您系统上的 votequorum(5)手册页。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat