群集节点设置 - SAP HANA 开启 Amazon
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

群集节点设置

使用 Corosync 在节点之间建立集群通信并配置所需的身份验证。

部署多数制造商节点(仅限横向扩展集群)

注意

只有拥有两个以上节点的集群才需要此选项。

在中部署 SAP HANA Scale-Out 集群时 Amazon,必须在第三个可用区 (AZ) 中包含一个多数制造商节点。多数人(平局决胜局)节点通过保留法定人数来确保在一个可用区出现故障时集群保持正常运行。要使 Scale-Out 集群正常运行,必须至少运行一个可用区中的所有节点以及多数制造商节点。如果不满足此最低要求,则集群将失去其法定人数状态,所有剩余的 SAP HANA 节点都将被屏蔽。

多数制造商要求的最低 EC2 实例配置为 2 v CPUs、2 GB RAM 和 50 GB 磁盘空间;此实例专门用于法定人数管理,不托管 SAP HANA 数据库或任何其他集群资源。=== 更改黑群集密码

在所有群集节点上,更改操作系统用户 hacluster 的密码:

# passwd hacluster

设置无密码身份验证

红帽集群工具为集群活动提供全面的报告和故障排除功能。这些工具中有许多需要在节点之间进行无密码 SSH 访问才能有效地收集集群范围的信息。Red Hat 建议为 root 用户配置无密码 SSH,以实现无缝集群诊断和报告。

参见 Redhat 文档如何在红帽企业 Linux 中设置 SSH 密钥无密码登录

请参阅访问红帽知识库门户

警告

在实施此配置之前,请查看对您的组织的安全影响,包括根访问控制和网络分段。

启动并启用 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

时序参数针对 Amazon 云环境进行了优化:

  • 将 totem 代币的值增加到 15 秒可提供可靠的集群操作,同时适应正常的云网络特性。这些设置可防止在短暂的网络变化期间进行不必要的故障转移

  • 当扩展到两个节点以外时,请从 quorum 部分中删除 two_node 参数。时序参数将使用 token_fectrior 功能自动调整,以便在添加节点时保持适当的故障检测。

# pcs cluster config update totem token=15000

验证配置

# pcs cluster start --all

通过启用 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