集群节点设置
使用 Corosync 并配置所需的身份验证,在节点之间建立集群通信。
部署仲裁生成器节点(仅限横向扩展集群)
注意
只有拥有两个以上节点的集群才需要此选项。
在 AWS 云端部署 SAP HANA 横向扩展集群时,您必须在第三个可用区(AZ)中包含一个仲裁生成器节点。仲裁生成器(平局决胜机制)节点在一个可用区出现故障时,通过保留仲裁权来确保集群保持正常运行。要使横向扩展集群正常运行,必须至少有一个可用区中的所有节点以及仲裁生成器节点在运行。如果不满足此最低要求,则集群将失去其仲裁状态,所有剩余的 SAP HANA 节点都将被隔离。
仲裁生成器要求的最低 EC2 实例配置为 2 个 vCPU、2 GB RAM 和 50 GB 磁盘空间;此实例专门用于仲裁管理,不托管 SAP HANA 数据库或任何其他集群资源。=== 更改 hacluster 密码
在所有集群节点上,更改操作系统用户 hacluster 的密码:
# passwd hacluster
设置无密码身份验证
Red Hat 集群工具为集群活动提供全面的报告和故障排除功能。许多这些工具需要在节点之间进行无密码 SSH 访问才能有效地收集整个集群的信息。Red Hat 建议为根用户配置无密码 SSH,以实现无缝集群诊断和报告。
请参阅 Redhat 文档 How to setup SSH Key passwordless login in Red Hat Enterprise Linux
警告
在实施此配置之前,请查看配置对组织的安全影响,包括根访问权限控制和网络分段。
启用并启动 pcsd 服务
# systemctl enable pcsd --now
授权集群
运行以下命令,在两个节点上启用并启动 Pacemaker 集群服务:
# pcs host auth <hostname_1> <hostname_2> -u hacluster -p <password>
-
系统将提示您输入之前设置的 hacluster 密码。
生成 Corosync 配置
Corosync 提供高可用性集群所需的成员资格和成员通信需求。
使用以下命令执行初始设置
# pcs cluster setup <cluster_name> \ <hostname_1> addr=<host_ip_1> addr=<host_additional_ip_1> \ <hostname_2> addr=<host_ip_2> addr=<host_additional_ip_2>
-
示例
# pcs cluster setup hana_cluster hanahost01 addr=10.1.20.1 addr=10.1.20.2 hanahost02 addr=10.2.20.1 addr=10.2.20.2
| IP 地址类型 | 示例 |
|---|---|
|
<host_ip_1> |
10.2.10.1 |
|
<host_additional_ip_1> |
10.2.10.2 |
|
<host_ip_2> |
10.2.20.1 |
|
<host_additional_ip_2> |
10.2.20.2 |
时序参数针对 AWS 云环境进行了优化:
-
将 totem 令牌的值增加到 15 秒可提供稳定的集群操作,同时适应正常的云网络特性。这些设置可防止在短暂的网络变化期间进行不必要的失效转移
-
扩展到超过两个节点时,请从 quorum 部分中删除 two_node 参数。时序参数将使用 token_coefficient 功能自动调整,以便在添加节点时保持适当的故障检测能力。
# pcs cluster config update totem token=15000
验证配置
# pcs cluster start --all
通过启用 Pacemaker 服务,服务器将在重启后自动加入集群。这样可以确保系统受到保护。或者,您可以在引导时手动启动 Pacemaker 服务。然后,您可以调查失败的原因。
运行以下命令,查看 Pacemaker 服务的状态。
# systemctl status pacemaker
输出示例:
● pacemaker.service - Pacemaker High Availability Cluster Manager Loaded: loaded (/usr/lib/systemd/system/pacemaker.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2025-06-02 13:27:48 AEST; 39s ago Docs: man:pacemakerd https://clusterlabs.org/pacemaker/doc/ Main PID: 38554 (pacemakerd) Tasks: 7 Memory: 31.3M CPU: 136ms CGroup: /system.slice/pacemaker.service ├─38554 /usr/sbin/pacemakerd ├─38555 /usr/libexec/pacemaker/pacemaker-based ├─38556 /usr/libexec/pacemaker/pacemaker-fenced ├─38557 /usr/libexec/pacemaker/pacemaker-execd ├─38558 /usr/libexec/pacemaker/pacemaker-attrd ├─38559 /usr/libexec/pacemaker/pacemaker-schedulerd └─38560 /usr/libexec/pacemaker/pacemaker-controld
集群服务 Pacemaker 启动后,使用 pcs 命令检查集群状态,如下例所示:
# pcs status
输出示例:
# pcs status
Cluster name: hana_cluster
WARNINGS:
No stonith devices and stonith-enabled is not false
Cluster Summary:
* Stack: corosync
* Current DC: hanahost02 (version 2.0.5-9.el8_4.8-ba59be7122) - partition with quorum
* Last updated: Mon May 12 12:59:35 2025
* Last change: Mon May 12 12:59:25 2025 by hacluster via crmd on hanahost02
* 2 nodes configured
* 0 resource instances configured
Node List:
* Online: [ hanahost01 hanahost02 ]
Full List of Resources:
* No resources
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled
主系统(hanahost01)和辅助系统(hanahost02)必须显示为在线。您可以使用 corosync-cfgtool 命令,查找集群的环路状态和关联的 IP 地址,如下例所示:
# corosync-cfgtool -s
输出示例:
Local node ID 1, transport knet LINK ID 0 udp addr = 10.2.10.1 status: nodeid: 1: localhost nodeid: 2: connected LINK ID 1 udp addr = 10.2.10.2 status: nodeid: 1: localhost nodeid: 2: connected