本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
群集配置
引导集群并配置所有必需的群集资源和限制。
主题
为资源创建做准备
为确保集群在设置资源和配置期间不会执行任何意外操作,请将维护模式设置为 true。
运行以下命令将集群置于维护模式:
# pcs property set maintenance-mode=true
要验证当前的维护状态,请执行以下操作:
$ pcs status
注意
维护模式有两种类型:
-
集群范围的维护(设置为)
pcs property set maintenance-mode=true
-
特定于节点的维护(设置为)
pcs node maintenance nodename
更改配置时,请务必使用集群范围的维护模式。有关特定于节点的操作,例如硬件维护,请参阅 “操作” 部分以了解正确的步骤。
要在配置完成后禁用维护模式,请执行以下操作:
# pcs property set maintenance-mode=false
集群引导
配置群集属性
配置群集属性以建立屏蔽行为和资源故障转移设置:
# pcs property set stonith-enabled="true" # pcs property set stonith-timeout="600" # pcs property set priority-fencing-delay="20"
-
建议priority-fencing-delay在网络分区事件期间保护 SAP HANA 节点。当集群分区发生时,这种延迟会优先考虑托管更高优先级资源的节点,而 SAP HANA 主实例(已提升)实例将获得额外的优先级权重。这有助于确保主 HANA 节点在脑分裂场景中存活下来。建议的 20 秒 priority-fencing-delay与 stonith 资源中配置的 pcmk_delay_max(10 秒)配合使用,在进行围栏之前,总共可能延迟长达 30 秒。
要验证您的集群属性设置,请执行以下操作:
# pcs property list # pcs property config <property_name>
配置资源默认值
配置资源默认行为:
各个资源可以用自己定义的值覆盖这些默认值。
要验证您的资源默认设置,请执行以下操作:
配置操作默认值
# pcs resource op defaults update timeout="600"
op_defaults 超时可确保所有集群操作的合理默认超时时间为 600 秒,而未定义资源特定的超时时间则为 600 秒。默认值不适用于使用自己定义的值覆盖它们的资源
创建 STONITH 围栏资源
正确的群集屏蔽操作需要 Amazon STONITH 资源。建议将该fence_aws
资源用于 Amazon 部署,因为它利用 Amazon API 通过停止故障或非传染性节点的实例来安全地屏蔽这些 EC2 节点。
使用资源代理fence_aws
创建 STONITH 资源:
# pcs stonith create <stonith_resource_name> fence_aws \ pcmk_host_map="<hostname_1>:<instance_id_1>;<hostname_2>:<instance_id_2>" \ region="<aws_region>" \ pcmk_delay_max="10" \ pcmk_reboot_timeout="600" \ pcmk_reboot_retries="4" \ op start interval="0" timeout="600" \ op stop interval="0" timeout="180" \ op monitor interval="300" timeout="60"
详细信息:
-
pcmk_host_map-将群集节点的主机名映射到其实例。 EC2 IDs此映射在 Amazon 账户中必须是唯一的,并遵循主机名:instance-id 的格式,多个条目用分号分隔。
-
Amazon 区域-部署 EC2 实例的区域
-
pcmk_delay_max-屏蔽操作前的随机延迟。与群集属性配合使用
priority-fencing-delay
以防止同时进行屏蔽。历史上设置为较高的值,但priority-fencing-delay
现在处理主节点保护时,较低的值 (10 秒) 就足够了。 -
pcmk_reboot_timeout-允许进行重启操作的最长时间(以秒为单位)
-
pcmk_reboot_retries-重试失败的重启操作的次数
-
使用参数参考中的值的示例:
# pcs stonith create rsc_fence_aws fence_aws \ pcmk_host_map="hanahost01:i-xxxxinstidforhost1;hanahost02:i-xxxxinstidforhost2" \ region="us-east-1" \ pcmk_delay_max="10" \ pcmk_reboot_timeout="600" \ pcmk_reboot_retries="4" \ op start interval="0" timeout="600" \ op stop interval="0" timeout="180" \ op monitor interval="300" timeout="60"
注意
配置 STONITH 资源时,请考虑实例的启动和关闭时间。默认 pcmk_reboot_action 是 “reboot_action”,其中集群会等待停止和启动操作完成,然后再考虑屏蔽操作成功。这允许集群返回到受保护状态。设置pcmk_reboot_action=off
允许集群在关闭后立即继续。对于 High Memory Metal 实例,建议只使用 “关闭”,因为启动期间初始化内存的时间会延长。
# pcs resource update <stonith_resource_name> pcmk_reboot_action="off" # pcs resource update <stonith_resource_name> pcmk_off_timeout="600" # pcs resource update <stonith_resource_name> pcmk_off_retries="4"
创建叠加 IP 资源
此资源通过更新 Amazon 路由表条目来确保在故障转移期间客户端连接跟随 SAP HANA 主实例。它管理着一个始终指向活动的 SAP HANA 数据库的覆盖 IP 地址
创建 IP 资源:
# pcs resource create rsc_ip_<SID>_HDB<hana_sys_nr> ocf:heartbeat:aws-vpc-move-ip \ ip="<hana_overlayip>" \ routing_table="<routetable_id>" \ interface="eth0" \ profile="<cli_cluster_profile>" \ op start interval="0" timeout="180" \ op stop interval="0" timeout="180" \ op monitor interval="60" timeout="60"
详细信息:
-
ip-将用于连接主要 SAP HANA 数据库的覆盖 IP 地址。参见叠加 IP 概念
-
routing_tab le-需要更新的 Amazon 路由表 ID。可以使用逗号指定多个路由表(例如,
routing_table=rtb-xxxxxroutetable1,rtb-xxxxxroutetable2
)。确保已创建以下初始条目 为叠加层添加 VPC 路由表条目 IPs -
接口-IP 地址的网络接口(通常为 eth0)
-
profil e-(可选)用于 AP Amazon I 身份验证的 CLI 配置文件名称。使用验证个人资料是否存在
aws configure list-profiles
。如果未明确配置配置文件,则将使用默认配置文件。 -
使用参数参考中的值的示例:
# pcs resource create rsc_ip_HDB_HDB00 ocf:heartbeat:aws-vpc-move-ip \ ip="172.16.52.1" \ routing_table="rtb-xxxxxroutetable1" \ interface="eth0" \ profile="cluster" \ op start interval="0" timeout="180" \ op stop interval="0" timeout="180" \ op monitor interval="60" timeout="60"
已启用 Active/Active 读取
仅当您正在使用logreplay_readenabled
并要求可通过叠加 IP 访问辅助设备时。您可以创建其他 IP 资源。
# pcs resource create primitive rsc_ip_<SID>_HDB<hana_sys_nr>_readenabled ocf:heartbeat:aws-vpc-move-ip \ ip="<readenabled_overlayip>" \ routing_table="<routetable_id>" \ interface="eth0" \ profile="<cli_cluster_profile>" \ op start interval="0" timeout="180" \ op stop interval="0" timeout="180" \ op monitor interval="60" timeout="60"
-
使用参数参考中的值的示例:
# crm configure primitive rsc_ip_HDB_HDB00_readenabled ocf:heartbeat:aws-vpc-move-ip \ params ip="172.16.52.2" \ routing_table="rtb-xxxxxroutetable1" \ interface="eth0" \ profile="cluster" \ op start interval="0" timeout="180" \ op stop interval="0" timeout="180" \ op monitor interval="60" timeout="60"
对于共享 VPC
如果您的配置需要共享 vpc,则需要另外两个参数。
# pcs resource create primitive rsc_ip_<SID>_HDB<hana_sys_nr> ocf:heartbeat:aws-vpc-move-ip \
ip="<hana_overlayip>" routing_table=<routetable_id> interface=eth0 \
profile="<cli_cluster_profile>" lookup_type=NetworkInterfaceId \
routing_table_role="arn:aws:iam::<sharing_vpc_account_id>:role/<sharing_vpc_account_cluster_role>" \
op start interval="0" timeout="180" \
op stop interval="0" timeout="180" \
op monitor interval="60" timeout="60"
其他详细信息:
-
lookup_type= NetworkInterfaceId
-
<shared_vpc_account_id><sharing_vpc_account_cluster_role>routing_table_role= “arn: aws: iam::: role/”
创建 SAPHana拓扑资源
SAPHana拓扑资源代理通过系统复制帮助管理 SAP HANA 数据库的高可用性。它分析 HANA 拓扑并通过节点状态属性报告发现。 SAPHana 或 SAPHana控制器资源代理使用这些属性来控制 HANA 数据库。 SAPHana拓扑启动并监视本地 saphostagent,利用 landscapeHostConfiguration .py、hdbnsutil 和 saphostctrl 等 SAP 接口收集有关系统状态、角色和配置的信息。
适用于纵向扩展和横向扩展部署
有关该资源的文档,您可以查看手册页。
# man ocf_heartbeat_SAPHanaTopology
详细信息:
-
SID-HANA 实例的 SAP 系统 ID
-
InstanceNumber-SAP HANA 实例的实例号
-
clone-node-max-定义可以在单个节点上启动多少个资源代理副本(设置为 1)
-
interleav e-允许在同一节点上并行启动依赖的克隆资源(设置为 true)
-
clone-max-定义可以在集群中启动的克隆实例总数(例如,使用 2 进行横向扩展,或将设置为 6 用于横向扩展,每个站点 3 个节点,不包括多数制造商节点)
创建 SAPHANA 资源(基于资源代理 SAPHana 或 SAPHana控制器)
SAP HANA 资源代理管理 SAP HANA 数据库之间的系统复制和故障转移。这些代理在检查同步状态的同时控制启动、停止和监视操作,以保持数据一致性。他们利用 SAP 接口,包括 sapcontrol、 landscapeHostConfiguration、hdbnsutil 和 saphostctrl。 systemReplicationStatus所有配置都与 SAPHana拓扑代理配合使用,拓扑代理收集有关群集节点间系统复制状态的信息。
根据你的 SAP HANA 架构选择适当的资源代理配置:
SAPHanaSR-angi 部署(在 RHEL 9.6 和 10+ 版本中可用)
在 RHEL 9.6 和 10 及更高版本上推出并推荐用于新部署。具有下一代系统复制架构 (SAPHanaSR-angi) 的 SAPHana控制器资源代理为纵向扩展和横向扩展部署提供了改进的集成和管理功能。有关详细信息:
有关该资源的文档,您可以查看手册页。
# man ocf_heartbeat_SAPHanaController
详细信息:
-
SID-HANA 实例的 SAP 系统 ID
-
InstanceNumber-SAP HANA 实例的实例号
-
clone-node-max-定义可以在单个节点上启动多少个资源代理副本(设置为 1)
-
interleav e-允许在同一节点上并行启动依赖的克隆资源(设置为 true)
-
clone-max-定义可以在集群中启动的克隆实例总数(例如,使用 2 进行横向扩展,或将设置为 6 用于横向扩展,每个站点 3 个节点,不包括多数制造商节点)
-
PREFER_SITE_TAKEOVER 定义了是否首选接管次要服务器。查看非标准部署。
-
AUTO@@ MATED_REG ISTER 定义了是否应将前主要学生注册为次要学生。查看非标准部署。
-
DUPLICATE_PRIMARY_TIMEOUT 是最大限度地降低意外双主节点风险的等待时间。
-
meta pri ority-将其设置为 100 可以同时 priority-fencing-delay确保正确的故障转移顺序并防止同步屏蔽操作
-
对于较大的数据库,可能需要增加启动和停止超时值 (3600 秒)。根据您的数据库大小和观测 startup/shutdown 时间调整这些值
-
如果您需要更新配置,以下示例可能会帮助您使用正确的命令
# pcs resource update rsc_SAPHanaController_HDB_HDB00 op monitor role="Promoted" timeout=900 # pcs resource update rsc_SAPHanaController_HDB_HDB00 DUPLICATE_PRIMARY_TIMEOUT=3600 # pcs resource meta rsc_SAPHanaController_HDB_HDB00-clone priority=100
经典部署
对于经典的纵向扩展部署, SAPHana 资源代理管理两个 SAP HANA 数据库之间的接管。有关详细信息:
# man ocf_heartbeat_SAPHana
详细信息:
-
SID-HANA 实例的 SAP 系统 ID
-
InstanceNumber-SAP HANA 实例的实例号
-
clone-node-max-定义可以在单个节点上启动多少个资源代理副本(设置为 1)
-
interleav e-允许在同一节点上并行启动依赖的克隆资源(设置为 true)
-
clone-max-定义可以在集群中启动的克隆实例总数(例如,使用 2 进行横向扩展,或将设置为 6 用于横向扩展,每个站点 3 个节点,不包括多数制造商节点)
-
PREFER_SITE_TAKEOVER 定义了是否首选接管次要服务器。查看非标准部署。
-
AUTO@@ MATED_REG ISTER 定义了是否应将前主要学生注册为次要学生。查看非标准部署。
-
DUPLICATE_PRIMARY_TIMEOUT 是最大限度地降低意外双主节点风险的等待时间。
-
meta pri ority-将其设置为 100 可以同时 priority-fencing-delay确保正确的故障转移顺序并防止同步屏蔽操作
-
对于较大的数据库,可能需要增加启动和停止超时值 (3600 秒)。根据您的数据库大小和观测 startup/shutdown 时间调整这些值
-
如果您需要更新配置,以下示例可能会帮助您使用正确的命令
# pcs resource update rsc_SAPHana_HDB_HDB00 op monitor role="Promoted" timeout=900 # pcs resource update rsc_SAPHana_HDB_HDB00 DUPLICATE_PRIMARY_TIMEOUT=3600 # pcs resource meta rsc_SAPHana_HDB_HDB00-clone priority=100
创建资源约束
需要以下约束。
订单约束
此约束定义了 SAPHana拓扑和 SAPHana 资源之间的起始顺序:
# pcs constraint order <SAPHanaTopology-clone> <SAPHana/SAPHanaController-clone> symmetrical=false
-
示例:
# pcs constraint order start rsc_SAPHanaTopology_HDB_HDB00-clone then rsc_SAPHana_HDB_HDB00-clone symmetrical=false
托管限制
带主的 IP
此约束可确保决定叠加 IP 目标的 IP 资源在具有主 SAP Hana 角色的节点上运行:
# pcs constraint colocation add <ip_resource> with promoted <SAPHana/SAPHanaController-clone> 2000
-
示例:
# pcs constraint colocation add rsc_ip_HDB_HDB00 with promoted rsc_SAPHana_HDB_HDB00-clone 2000
ReadOnly 带辅助的 IP(仅适用于 ReadOnly 模式)
此约束可确保启用读取功能的 IP 资源在辅助(未提升)节点上运行。当辅助节点不可用时,IP 将移至主节点,读取工作负载将与主工作负载共享容量:
# pcs constraint colocation add <ip_resource> with unpromoted <SAPHana/SAPHanaController-clone> 2000
-
示例:
# pcs constraint colocation add rsc_ip_HDB_HDB00_readenabled with unpromoted rsc_SAPHana_HDB_HDB00-clone 2000
位置约束
多数股权制造商上没有 SAP HANA 资源(仅限横向扩展)
这种位置限制可确保 SAP HANA 资源避开不适合运行它们的多数制造者。
# pcs constraint location <SAPHanaTopology-clone> avoids <hostname_mm> # pcs constraint location <SAPHana/SAPHanaController-clone> avoids <hostname_mm>
激活集群
pcs config show
用于检查所有值是否输入正确。
确认正确值后,使用以下命令将维护模式设置为 false。这允许集群控制资源:
# pcs property set maintenance-mode=false
重置配置-可选
重要
以下说明可帮助您重置完整的配置。只有当你想从头开始安装时,才运行这些命令。
运行以下命令备份当前配置以供参考:
# pcs config backup /tmp/cluster_backup_$(date +%Y%m%d) # pcs config show > /tmp/config_backup_$(date +%Y%m%d).txt
运行以下命令停止并清除当前配置
# pcs cluster stop --all hanahost02: Stopping Cluster (pacemaker)... hanahost01: Stopping Cluster (pacemaker)... hanahost02: Stopping Cluster (corosync)... hanahost01: Stopping Cluster (corosync)... # pcs cluster destroy Shutting down pacemaker/corosync services... Killing any remaining services... Removing all cluster configuration files...
执行上述擦除命令后,它将从群集信息库 (CIB) 中删除所有群集资源,并断开从 corosync 到群集的通信。只有在您绝对需要将所有内容重置为默认值时才执行这些步骤。对于较小的更改,请改用 pcs 资源更新或 pcs 属性集。