跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability Extension 文档 / Geo 群集指南 / 概念概述
适用范围 SUSE Linux Enterprise High Availability Extension 15 SP3

2 概念概述

基于 SUSE® Linux Enterprise High Availability Extension 的 Geo 群集可视为覆盖群集,其中每个群集站点对应传统群集中的一个群集节点。覆盖群集由投票间群集票据管理器(以下简称“投票间”)管理。

Geo 群集中的各方都会运行一个服务,即 boothd。它连接到其他站点上运行的投票间守护程序,并交换连接性细节。投票间依靠称为“票据”的群集对象来确保群集资源在各站点之间的高度可用性。票据授予在特定群集站点上运行某些资源的权限。投票间可保证每个票据一次只会授予给一个站点。

如果两个投票间实例之间的通讯断开,则可能是因为群集站点之间的网络发生故障其中一个群集站点中断。在此情况下,您需要使用一个额外的实例(第三个群集站点或仲裁方)来就各决策(例如在站点间进行资源的故障转移)达成一致意见。仲裁方是一台以特殊模式运行投票间实例的计算机(不属于群集)。每个 Geo 群集都可以有一个或多个仲裁方。

最常见的场景可能是,一个 Geo 群集包含两个站点和一个在第三个站点上运行的仲裁方。这就需要三个投票间实例。

也可以运行仲裁方的双站点 Geo 群集。在此情况下,Geo 群集管理员需要手动管理票据。如果同时将一个票据授予多个站点,投票间会显示一条警告。

双站点群集 - 2x2 个节点 + 仲裁方(可选)
图 2.1︰ 双站点群集 - 2x2 个节点 + 仲裁方(可选)

下面的列表更详细地介绍了 Geo 群集的组件和机制。

仲裁方

每个站点运行一个投票间实例,负责与其他站点通讯。如果您的设置包含偶数个站点,拥有一个额外的实例会有助于就各项决策(例如在站点间进行资源的故障转移)达成一致意见。在这种情况下,请添加一台或多台在其他站点运行的仲裁方。仲裁方是一台以特殊模式运行投票间实例的计算机。因为所有投票间实例都相互通讯,仲裁方有助于提高票据授予或撤消决定的可靠性。仲裁方无法保留任何票据。

仲裁方对双站点情境尤其重要:如果站点 A 无法再与站点 B 通讯,则可能有两种原因:

  • 站点 AB 之间发生网络故障。

  • 站点 B 发生故障。

但是,如果站点 C(仲裁方)仍然能与站点 B 通讯,则站点 B 一定还在正常运行。

投票间群集票据管理器

投票间是管理票据分发以及 Geo 群集的站点间故障转移进程的实例。每个参与群集和仲裁方都会运行一个服务,即 boothd。它连接到其他站点上运行的投票间守护程序,并交换连接性细节。将票据授予站点后,投票间机制可以自动管理票据:如果持有票据的站点暂停服务,则投票间守护程序会选举下一个将获得该票据的站点。为了防止短暂连接故障,失去选票(因与选举主体断开连接而显式或隐式失去选票)的站点需要在超时时间后放弃票据。因此,可以确保在前一个站点放弃票据后才重新分发票据。另请参见 Dead man 依赖性 (loss-policy="fence").

对于包含两个站点和仲裁方的 Geo 群集,您需要 3 个投票间实例:每个站点一个实例,再加上在仲裁方上运行的实例。

注意
注意:投票间实例的数量有限

目前的上限为 16 个投票间实例。

Dead man 依赖性 (loss-policy="fence")

撤消票据后,在停止依赖于该票据的所有资源之前可能需要很长时间,尤其是级联资源。要缩短该过程,群集管理员可以针对票据从站点撤消的情况配置一个 loss-policy(以及票据依赖项)。如果将 loss-policy 设置为 fence,托管依赖资源的节点将会被屏蔽。

警告
警告:潜在的数据丢失

一方面,loss-policy="fence" 可以大大加快群集恢复过程,并确保更迅速地迁移资源。

但另一方面,它可能会导致丢失所有未写入的数据,例如:

  • 共享储存中保存的数据。

  • 复制数据库(例如 MariaDB 或 PostgreSQL)或复制设备 (DRBD) 中的数据,由于网络链接缓慢,这些数据尚未到达其他站点。

票据

票据授予在特定群集站点上运行某些资源的权限。一张票据某个时间内只能由一个站点所拥有。最初,每个站点都没有票据 - 每张票据都必须由群集管理员授予一次。之后,票据通过投票间来管理,用于资源的自动故障转移。但是,管理员还可以进行干预以及手动授予或撤消票据。

出于管理目的撤消某个票据后,该票据不再由投票间管理。要使投票间再次开始管理该票据,必须再次将该票据授予站点。

资源可按依赖性绑定到特定票据。仅当站点有定义好的票据时,才会启动相应资源。反之亦然,如果删除了票据,将会自动停止依赖于该票据的资源。

站点有无票据的状态作为一种群集状态储存在 CIB 中。一个站点对于特定票据只有两种状态:true(站点拥有该票据)或 false(站点没有该票据)。将无特定票据状态(在 Geo 群集的初始状态期间)与票据被撤消后的状态视为相同的。它们都是用值 false 来表示。

覆盖群集中的票据类似于传统群集中的资源。但和传统群集不同的是,在覆盖群集中票据是唯一一种资源类型。票据这种原始资源既不需要配置也不需要克隆。

票据故障转移

您最初向某个站点授予自动票据之后,投票间将会自动管理此票据。如果持有票据的站点需要暂停服务,票据将在到达失效时间后自动撤消。如果其余站点具有仲裁,票据将会授予给另一个站点(故障转移)。依赖于该票据的资源将故障转移到持有该票据的新站点。loss-policy(在约束中定义)用于指定之前运行过资源的节点会发生什么情况。

如果发生节点分裂情况时需要自动故障转移,管理员也可以向运行良好的站点授予手动票据。第 8.1 节中介绍了如何通过命令行管理票据。