documentation.suse.com / SUSE Linux Enterprise High Availability 简介
SUSE Linux Enterprise High Availability 16.0

SUSE Linux Enterprise High Availability 简介

出版日期:2025 年 11 月 03 日
内容

本文介绍了 SUSE Linux Enterprise High Availability 的功能、体系结构、核心概念和优势。

原因

了解 SUSE Linux Enterprise High Availability,以便确定是否使用该产品,或将本文作为首次设置群集时的参考指南。

工作量

读完本文大约需要 20 分钟。

1 SUSE Linux Enterprise High Availability 是什么?

SUSE® Linux Enterprise High Availability 是开源群集技术的集成套件。高可用性群集是一组服务器(节点),它们协同工作以确保数据、应用程序和服务达到尽可能高的可用性。如果某个节点发生故障,原本在该节点上运行的资源会迁移到另一个节点,且停机时间极短甚至无停机。您也可以手动在节点间迁移资源,以实现负载平衡,或在执行维护任务时最大限度地减少停机时间。群集资源可能是网站、电子邮件服务器、数据库、文件系统、虚拟机,以及任何其他必须始终可供用户访问的基于服务器的应用程序或服务。

1.1 产品供应

SUSE Linux Enterprise High Availability 可通过以下产品获取:

SUSE Linux Enterprise Server

High Availability 以扩展形式提供,需要额外的注册代码。

SUSE Linux Enterprise Server for SAP Applications

High Availability 作为模块内置,无需额外的注册代码。

1.2 功能与优势

SUSE Linux Enterprise High Availability 可消除单一故障点,提升关键资源的可用性和可管理性。这有助于您维持业务连续性、保障数据完整性,并减少关键工作负载的非计划停机时间。

多种群集配置选项

SUSE Linux Enterprise High Availability 群集支持多种配置方式:

  • 本地群集:位于同一位置的单个群集(例如,所有节点均处于同一数据中心),网络延迟极低。所有节点通常以同步方式访问存储设备。

  • 都市区域群集(延伸式群集):指可跨多个建筑物或数据中心部署的单个群集,所有站点通过光纤通道连接。网络延迟通常较低。常通过镜像或同步复制方式实现存储内容复制。

  • 混合群集:可将虚拟服务器与物理服务器组合成群集。这可提高服务可用性和资源利用率。

重要
重要:不支持混合体系结构

不支持采用混合体系结构的群集。同一群集中的所有节点必须采用相同的处理器平台:AMD64/Intel 64、IBM Z 或 POWER。

灵活且可扩缩的资源管理

SUSE Linux Enterprise High Availability 支持的群集节点数量最多可达 32 个。如果当前节点发生故障,资源可自动迁移到另一个节点;也可手动迁移资源,以排查硬件问题或实现负载平衡。还可以将资源配置为在特定时间迁移回已修复的节点。群集能根据可配置规则启动和停止资源。

丰富的资源代理

群集通过资源代理 (RA) 管理资源。SUSE Linux Enterprise High Availability 支持众多资源代理,这些代理专为管理特定类型的应用程序或服务(包括 Apache、IPv4、IPv6、NFS 等)设计。它同时还提供适用于第三方应用程序(如 IBM WebSphere Application Server)的资源代理。

存储和数据复制

SUSE Linux Enterprise High Availability 支持光纤通道或 iSCSI 存储区域网络 (SAN),因而您可以根据需要动态分配和重新分配服务器存储空间。该产品还附带 GFS2 和群集逻辑卷管理器(群集 LVM)。在数据复制方面,可使用 DRBD* 将主动节点上资源的数据镜像到待机节点。

虚拟化环境支持

SUSE Linux Enterprise High Availability 支持由物理和虚拟 Linux 服务器组成的混合群集。群集可识别并管理在虚拟服务器和物理服务器中运行的资源,还能将 KVM 虚拟机作为资源进行管理。

灾难恢复

SUSE Linux Enterprise High Availability 随附 Relax-and-Recover (ReaR),这是一个灾难恢复框架,可帮助备份和恢复系统。

易用的管理工具

SUSE Linux Enterprise High Availability 包含用于配置和管理的工具:

  • CRM 外壳(简称 crmsh)是一款命令行界面工具,可用于安装和设置 High Availability 群集、配置资源,以及执行监控和管理任务。

  • Hawk 是一款基于 Web 的图形界面,用于监控和管理 High Availability 群集。只要计算机能连接到群集节点,无论其运行的是 Linux 还是非 Linux 系统,都可通过 Web 浏览器访问 Hawk。

1.3 High Availability 的工作原理

下图展示了一个三节点群集。每个节点上均安装了 Web 服务器,并托管了两个网站。每个网站的所有数据、图像和网页内容都存储在一个共享磁盘子系统中,该子系统与所有节点相连。

此图展示了三个群集节点:Web 服务器 1、Web 服务器 2、Web 服务器 3。每个 Web 服务器分别托管了两个网站,每个 Web 服务器还连接到光纤通道交换机,该交换机又连接到共享存储设备。
图 1︰ 三节点群集

在群集正常运行期间,每个节点会与群集中的其他节点保持持续通信,并定期检查资源以检测故障。

下图展示了当 Web 服务器 1 因硬件或软件问题发生故障时,群集如何迁移资源。

此图展示了三个群集节点:Web 服务器 1、Web 服务器 2、Web 服务器 3。Web 服务器 1 已被划掉。Web 服务器 2 和 Web 服务器 3 各有三个网站。网站 A 和 网站 B 以橙色突出显示,表示它们已从被划掉的 Web 服务器 1 迁出。
图 2︰ 一个节点故障后的三节点群集

网站 A 迁移到 Web 服务器 2,网站 B 迁移到 Web 服务器 3。这些网站仍保持可用状态,并在剩余的群集节点间实现均匀分布。

当 Web 服务器 1 发生故障时,High Availability 软件会执行以下任务:

  1. 检测故障并确认 Web 服务器 1 确实已宕机。

  2. 将原本挂载在 Web 服务器 1 上的共享数据目录重新挂载到 Web 服务器 2 和 Web 服务器 3 上。

  3. 在 Web 服务器 2 和 Web 服务器 3 上重启原本在 Web 服务器 1 上运行的应用程序。

  4. 将证书和 IP 地址传输到 Web 服务器 2 和 Web 服务器 3。

在此示例中,故障转移过程很迅速,用户几秒钟内即可重新访问网站,且一般无需重新登录。

当 Web 服务器 1 恢复正常运行状态后,网站 A 和网站 B 可自动迁回(故障回复)到 Web 服务器 1。故障回复会产生一定的停机时间,因此您也可将资源配置为仅在指定时间进行故障回复,以最大限度减少服务中断。

2 核心概念

本章将介绍 SUSE Linux Enterprise High Availability 的核心概念。

2.1 群集和节点

高可用性群集是一组服务器,它们协同工作以确保应用程序或服务的可用性。被配置为群集成员的服务器称为节点。如果某个节点发生故障,原本在该节点上运行的资源可迁移到群集中的另一个节点。SUSE Linux Enterprise High Availability 支持的群集节点数量最多可达 32 个。不过,群集通常分为两类:双节点群集,或节点数为奇数的群集(通常为 3 个或 5 个节点)。

2.2 通信通道

群集内部通信由 Corosync 负责处理。Corosync 群集引擎是一个组通信系统,可提供有关群集的消息传递、成员信息及仲裁信息。在 SUSE Linux Enterprise High Availability 16 中,Corosync 采用 kronosnet (knet) 作为默认传输协议。

我们强烈建议至少为群集配置两个通信通道。首选方法是使用网络设备绑定。如果无法使用网络绑定,可在 Corosync 中设置冗余通信通道(也称为第二个)。

2.3 资源管理

在 High Availability 群集中,需要具备高可用性的应用程序和服务称为资源。群集资源可能是网站、电子邮件服务器、数据库、文件系统、虚拟机,以及您希望用户随时都可以访问的任何其他基于服务器的应用程序或服务。您可根据需要启动、停止、监控和迁移资源,还可指定特定资源是否应在同一节点上一同运行,或按顺序启动和停止。如果某个群集节点发生故障,原本在该节点上运行的资源会故障转移(迁移)到另一个节点,而不会丢失。

在 SUSE Linux Enterprise High Availability 中,群集资源管理器 (CRM) 为 Pacemaker,它负责管理和协调所有群集服务。Pacemaker 通过资源代理 (RA) 启动、停止和监控资源。资源代理会对所管理的资源进行抽象处理,并向群集反馈资源状态。SUSE Linux Enterprise High Availability 支持众多资源代理,这些代理专为管理特定类型的应用程序或服务设计。

2.4 节点屏蔽

节点分裂情况下,群集节点会被分割成两个或多个互不感知的组(或分区)。这可能由硬件故障、软件故障或网络连接故障等原因导致。解决节点分裂情况的方法是屏蔽(重置或关闭电源)一个或多个节点。节点级屏蔽可防止故障节点访问共享资源,并阻止资源在状态不确定的节点上运行。

SUSE Linux Enterprise High Availability 采用 STONITH 作为节点屏蔽机制。所有 SUSE Linux Enterprise High Availability 群集要获得支持,必须至少配备一个 STONITH 设备。对于关键工作负载,建议使用两个或三个 STONITH 设备。STONITH 设备可以是物理设备(电源开关),也可以是软件机制(结合使用 SBD 和看门狗)。

2.5 仲裁判定

当一个或多个节点与群集中其他节点的通信发生故障(节点分裂情况)时,会产生群集分区。这些节点仅能与同一分区内的其他节点通信,无法感知其他分区的节点。如果某个群集分区拥有多数节点(或票数),则该分区拥有仲裁权(称为具有法定票数)。这通过仲裁计算确定。必须通过仲裁计算来屏蔽不具有法定票数的节点。

Corosync 根据以下公式计算仲裁:

N ≥ C/2 + 1

N = minimum number of operational nodes
C = number of cluster nodes

例如,一个 5 节点群集至少需要 3 个正常运行的节点才能维持仲裁。

节点数为偶数的群集(尤其是双节点群集)可能会出现各分区节点数相等的情况,从而无法形成多数。为避免这种情况,可将群集配置为结合使用 QDevice 与 QNetd。QNetd 是在群集外部运行的仲裁方。它与群集节点上运行的 QDevice 守护程序通信,为仲裁计算提供可配置数量的投票。相比标准仲裁规则,这种方案能让群集承受更多节点故障。

2.6 存储和数据复制

High Availability 群集可能包含通过光纤通道或 iSCSI 连接的共享磁盘子系统。如果某个节点发生故障,群集中的另一个节点会自动挂载原本挂载在故障节点上的共享磁盘目录。这确保用户能持续访问共享磁盘子系统上的目录。存储在共享磁盘上的内容可能包括数据、应用程序和服务。

下图展示了典型的光纤通道群集配置。绿色线条表示与以太网电源交换机的连接,如果 ping 请求失败,该交换机可重启节点。

该图显示了连接到光纤通道交换机的共享存储设备。交换机又与六台服务器相连。六台服务器全部都连接到一个网络集线器,该集线器又连接到以太网电源交换机。
图 3︰ 典型的光纤通道群集配置

下图展示了典型的 iSCSI 群集配置。

该图显示了连接到以太网交换机的共享存储设备。交换机又与六台服务器相连。六台服务器全部都连接到一个网络集线器,该集线器又连接到以太网电源交换机,并由网络主干网提供支持。
图 4︰ 典型的 iSCSI 群集配置

尽管大多数群集都包含共享磁盘子系统,但您也可创建无共享磁盘子系统的群集。下图展示了无共享磁盘子系统的典型群集配置。

该图显示了连接到网络集线器的以太网电源交换机。网络集线器又与六台服务器相连。
图 5︰ 无共享存储系统的典型群集配置

3 体系结构概述

本章将介绍 SUSE Linux Enterprise High Availability 群集的体系结构,以及不同组件之间的协作方式。

3.1 体系结构层级

SUSE Linux Enterprise High Availability 具有分层体系结构。下图展示了不同层级及其关联组件。

该图显示了两个群集节点上的组件层。有些组件为节点本地组件,而有些组件则跨节点通信,如 Corosync 和 CIB。
图 6︰ SUSE Linux Enterprise High Availability 群集的体系结构
成员信息和消息传递 (Corosync)

Corosync 群集引擎是一个组通信系统,可提供有关群集的消息传递、成员信息及仲裁信息。

群集资源管理器 (Pacemaker)

Pacemaker 是群集资源管理器,负责响应群集中发生的事件(例如,节点加入或退出群集、资源故障、维护等计划性活动)。pacemakerd 守护程序可启动并监控其他所有相关守护程序。

Pacemaker 层还包含以下组件:

  • 群集信息数据库 (CIB)

    Pacemaker 在每个节点上维护群集信息数据库 (CIB)。它以 XML 格式呈现群集配置(包括群集选项、节点、资源、约束及彼此间的关联关系)。CIB 也反映当前群集状态。CIB 管理器 (pacemaker-based) 负责在群集内保持 CIB 同步,并处理群集配置和状态的读写操作。

  • 指定协调器 (DC)

    pacemaker-controld 守护程序是群集控制器,负责协调所有操作。每个群集节点上都会运行该守护程序的一个实例,但仅会选举一个实例作为 DC。DC 会在群集服务启动时选举产生,如果当前 DC 发生故障或退出群集,也会重新选举 DC。DC 负责判断是否必须执行群集级别的更改(如屏蔽某个节点、迁移资源)。

  • 调度程序

    调度程序以 pacemaker-schedulerd 守护程序的形式在每个节点上运行,但仅在 DC 上处于主动状态。当群集需要进行状态转换时,调度程序会计算群集的预期下一状态,并确定需调度哪些操作以实现该状态。

本地执行器

本地执行器位于每个节点上的 Pacemaker 层与资源层之间。通过 pacemaker-execd 守护程序,Pacemaker 可启动、停止并监控资源。

资源和资源代理

在 High Availability 群集中,需要具备高可用性的服务称为资源。资源代理 (RA) 是用于启动、停止和监视群集资源的脚本。

3.2 处理流程

群集中执行的许多操作都会导致群集级别的变更,例如添加或去除群集资源、更改资源约束等。以下示例将说明执行此类操作时群集内发生的情况:

例 1︰ 添加新资源时的群集流程
  1. 您使用 CRM 外壳或 Hawk 添加新的群集资源。可从群集中的任意节点执行此操作。添加资源时会修改 CIB。

  2. CIB 的变更会复制到所有群集节点。

  3. pacemaker-schedulerd 会根据 CIB 中的信息,计算群集的理想状态及实现该状态的方式。它会将指令列表传递给 DC。

  4. DC 通过 Corosync 发送命令,其他节点上的 pacemaker-controld 实例会接收这些命令。

  5. 每个节点通过其本地执行器 (pacemaker-execd) 执行资源修改操作。pacemaker-execd 守护程序不具备群集感知能力,会直接与资源代理交互。

  6. 所有节点将操作结果反馈给 DC。

  7. 如果需要执行屏蔽操作,pacemaker-fenced 会调用屏蔽代理来屏蔽相应节点。

  8. 当 DC 确认所有必要操作已成功执行后,群集恢复为空闲状态,等待后续事件。

  9. 如有任何操作未按计划执行,系统会根据 CIB 中记录的新信息,再次调用 pacemaker-schedulerd

4 安装选项

本章将介绍安装 SUSE Linux Enterprise High Availability 群集的不同选项,并提供可用安装指南的链接。

以下快速入门指南将介绍如何设置具有默认设置的最小群集:

Installing a basic two-node High Availability cluster

此快速入门指南介绍如何设置使用 QDevice、无盘 SBD 和软件看门狗的基本双节点 High Availability 群集。此设置需要 QDevice,以便无盘 SBD 能处理双节点群集的节点分裂情况。

Installing a basic three-node High Availability cluster

此快速入门指南介绍如何设置使用无盘 SBD 和软件看门狗的基本三节点 High Availability 群集。此设置需要三个节点,这样无盘 SBD 不借助 QDevice 即可处理节点分裂情况。

5 更多信息

有关 SUSE Linux Enterprise High Availability 的详细信息,请参考以下资源:

https://clusterlabs.org/

该网站是 SUSE Linux Enterprise High Availability 中许多组件的上游项目。

https://www.clusterlabs.org/pacemaker/doc/

该网站提供 Pacemaker 的文档。有关 SUSE Linux Enterprise High Availability 16 的信息,请参见 Pacemaker 3 的文档。