第 2 章 Cluster Operation
本章概述了各种集群功能和功能。从建立集群仲裁到隔离的节点隔离,这些不同功能就是高可用性附加组件的核心功能。
2.1. 仲裁概述
为了保持集群的完整性和可用性,集群系统使用一个称为 仲裁 (quorum)的概念来防止数据崩溃和丢失。当超过一半的集群节点在线时,集群就已被“仲裁”。为减少由于失败造成数据崩溃的机会,在不满足仲裁数量的情况下,Pacemaker 会默认停止所有资源。
仲裁是通过一个投票(voting)系统来建立的。当一个集群节点工作不正常,或丢掉了与其他集群部分的通信,则大多数工作的节点可以通过投票来分离有问题的节点,如果需要,对节点进行隔离。
例如,在一个 6 个节点集群中,在至少有 4 个集群节点正常工作时就满足了仲裁。如果大多数节点离线或不可用,集群就不再具有仲裁的 Pacemaker 停止集群的服务。
Pacemaker 中的仲裁功能可以防止出现脑裂( split-brain )问题。当集群中出现无法相互通信的问题,但每个部分都可以作为一个独立的集群运行,则代表集群出现了脑裂的问题。这可能会导致出现数据被破坏的问题。
High Availability Add-On 中的仲裁支持由名为 votequorum 的 Corosync 插件提供,它允许管理员使用分配给集群中的每个系统的投票数来配置集群,并确保在大多数投票机制都存在时,集群操作才可以进行。
在没有大多数的情况下(例如,双节点集群,内部通信网络链接不可用,导致 50% 集群分割), votequorum 可以配置为具有 tiebreaker 策略,管理员可以使用仍与具有最低节点 ID 的可用集群节点联系来继续仲裁。