

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

# 集群节点设置
<a name="sap-hana-pacemaker-rhel-cluster-node-setup"></a>

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

**Topics**
+ [部署仲裁生成器节点（仅限横向扩展集群）](#_deploy_a_majority_maker_node_scale_out_clusters_only)
+ [设置无密码身份验证](#_setup_passwordless_authentication)
+ [启用并启动 pcsd 服务](#_start_and_enable_the_pcsd_service)
+ [授权集群](#_authorize_the_cluster)
+ [生成 Corosync 配置](#_generate_corosync_configuration)
+ [验证配置](#_verify_configuration)

## 部署仲裁生成器节点（仅限横向扩展集群）
<a name="_deploy_a_majority_maker_node_scale_out_clusters_only"></a>

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

在中部署 SAP HANA Scale-Out 集群时 AWS，必须在第三个可用区 (AZ) 中包含一个多数制造商节点。仲裁生成器（平局决胜机制）节点在一个可用区出现故障时，通过保留仲裁权来确保集群保持正常运行。要使横向扩展集群正常运行，必须至少有一个可用区中的所有节点以及仲裁生成器节点在运行。如果不满足此最低要求，则集群将失去其仲裁状态，所有剩余的 SAP HANA 节点都将被隔离。

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

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

```
# passwd hacluster
```

## 设置无密码身份验证
<a name="_setup_passwordless_authentication"></a>

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

请参阅 Redhat 文档 [How to setup SSH Key passwordless login in Red Hat Enterprise Linux](https://access.redhat.com/solutions/9194) 

请参阅[访问 Red Hat 知识库门户](https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-red-hat-knowledge-base-access.html) 

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

## 启用并启动 pcsd 服务
<a name="_start_and_enable_the_pcsd_service"></a>

```
# systemctl enable pcsd --now
```

## 授权集群
<a name="_authorize_the_cluster"></a>

运行以下命令，在两个节点上启用并启动 Pacemaker 集群服务：

```
# pcs host auth <hostname_1> <hostname_2> -u hacluster -p <password>
```
+ 系统将提示您输入之前设置的 hacluster 密码。

## 生成 Corosync 配置
<a name="_generate_corosync_configuration"></a>

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\$1ip\$11>  |  10.2.10.1  | 
|  <host\$1additional\$1ip\$11>  |  10.2.10.2  | 
|  <host\$1ip\$12>  |  10.2.20.1  | 
|  <host\$1additional\$1ip\$12>  |  10.2.20.2  | 

时序参数针对 AWS 云环境进行了优化：
+ 将 totem 令牌的值增加到 15 秒可提供稳定的集群操作，同时适应正常的云网络特性。这些设置可防止在短暂的网络变化期间进行不必要的失效转移
+ 扩展到超过两个节点时，请从 quorum 部分中删除 two\$1node 参数。时序参数将使用 token\$1coefficient 功能自动调整，以便在添加节点时保持适当的故障检测能力。

```
# pcs cluster config update totem token=15000
```

## 验证配置
<a name="_verify_configuration"></a>

```
# pcs cluster start --all
```

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