将 SAP Pacemaker 集群从升级到 ENSA1 ENSA2 - AWS Prescriptive Guidance

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

将 SAP Pacemaker 集群从升级到 ENSA1 ENSA2

由 Gergely Cserdi () 和 Balazs Sandor Skublics (AWS) 创作 AWS

环境:生产

来源:ENSA1基于 Pacemaker 集群

目标:ENSA2基于 Pacemaker 集群

R 类型:重构

工作量:SAP

技术:基础设施;现代化

AWS服务:亚马逊 EC2

Summary

此模式说明了将基于独立入队服务器 () ENSA1 的 SAP Pacemaker 群集升级到的步骤和注意事项。ENSA2此模式中的信息适用于 SUSE Linux 企业服务器 (SLES) 和红帽企业 Linux (RHEL) 操作系统。

SAP NetWeaver 7.52 或 S/4 HANA 1709 及更早版本上的 Pacemaker 集群在ENSA1架构上运行,并且经过专门配置。ENSA1如果您在 Amazon Web Services (AWS) 上运行SAP工作负载ENSA2,并且有兴趣迁移到,则可能会发现SAPSUSE、和RHEL文档并未提供全面的信息。此模式描述了重新配置SAP参数和从升级到的 Pacemaker 集群所需的技术步骤。ENSA1 ENSA2它提供了SUSE系统的示例,但RHEL集群的概念是相同的。

注意:ENSA1和ENSA2是仅适用于SAP应用程序的概念,因此此模式中的信息不适用于SAPHANA或其他类型的集群。

严格来说,ENSA2可以搭配或不使用 Enqueue Replicator 2 一起使用。但是,高可用性 (HA) 和故障转移自动化(通过集群解决方案)需要 Enqueue Replicator 2。此模式使用ENSA2集群一词来指具有独立入队服务器 2 和 Enqueue Replicator 2 的集群。

先决条件和限制

先决条件

  • 一个ENSA1基于工作的集群,在或上使用 Pacemaker 和 Corosync。SLES RHEL

  • 至少有两个亚马逊弹性计算云 (AmazonEC2) 实例,其中 () SAP 中央服务 (ASCS/ABAPSCS) 和 Enqueue Replication Services (ERS) 实例正在运行。

  • 管理SAP应用程序和集群的知识。

  • 以根用户身份访问 Linux 环境。

限制

  • ENSA1基于群集仅支持双节点架构。

  • ENSA2基于集群不能部署到 7.52 之前的SAP NetWeaver 版本。

  • EC2集群中的实例应位于不同的AWS可用区中。

产品版本

  • SAP NetWeaver 版本 7.52 或更高版本

  • 从 S/4 HANA 2020 开始,仅ENSA2支持集群

  • 内核 7.53 或更高版本,它支持ENSA2和 Enqueue Replicator 2

  • SLES适用于SAP应用程序版本 12 或更高版本

  • RHEL适用于SAP高可用性 (HA) 版本 7.9 或更高版本

架构

源技术堆栈

  • SAP NetWeaver 7.52 SAP 内核 7.53 或更高版本

  • SLES或RHEL操作系统

目标技术堆栈

  • SAP NetWeaver 7.52 SAP 内核 7.53 或更高版本,包括带有平台的 S/4 2020 HANA ABAP

  • SLES或RHEL操作系统

目标架构

下图显示了 ASCS /的 HA 配置SCS和基于ENSA2集群的ERS实例。

ENSA2集群上ASCS/SCS和ERS实例的 HA 架构

ENSA1和ENSA2集群的比较

SAPENSA2作为. 的继任者引入ENSA1。ENSA1基于集群的集群支持双节点架构,当出现错误ERS时,ASCS/SCS实例会故障转移到该架构。此限制源于ASCS/SCS实例在故障转移后如何从ERS节点的共享内存中恢复锁表信息。ENSA2基于 Enqueue Replicator 2 的集群消除了这一限制,因为ASCS/SCS实例可以通过网络从ERS实例收集锁定信息。ENSA2基于群集可以有两个以上的节点,因为不再需要ASCS/SCS实例来故障转移到该ERS节点。(但是,在双节点ENSA2群集环境中,ASCS/SCS实例仍将故障转移到该ERS节点,因为集群中没有其他节点可供故障切换。) ENSA2从SAP内核 7.50 开始受支持,但有一些限制。对于支持 Enqueue Replicator 2 的 HA 设置,最低要求为 NetWeaver 7.52(参见 SAPOSSNote 2630416)。默认情况下,S/4 HANA 1809 自带推荐的ENSA2架构,而 S/4 仅HANA支持从 2020 版本ENSA2开始的架构。

自动化和扩缩

目标架构中的 HA 集群会自动将ASCS故障转移到其他节点。

迁移到ENSA2基于基础的集群的场景

升级到ENSA2基于基础的集群有两种主要方案: 

  • 场景 1:假设您的SAP版本和内核版本支持ENSA2,则选择在不进行SAP升级或 S/4 HANA 转换ENSA2的情况下升级到。

  • 场景 2:在升级或转换(例如,升级到 S/4 HANA 1809 或更高版本)的过程中,使用移至。ENSA2 SUM

操作说明部分涵盖了这两种场景的步骤。第一种情况要求您在更改集群配置之前手动设置SAP相关参数ENSA2。在第二种情况下,二进制文件和SAP相关参数由部署SUM,剩下的唯一任务就是更新 HA 的集群配置。我们仍然建议您在使用SAP参数后验证参数SUM。在大多数情况下,S/4 HANA 转换是群集升级的主要原因。

工具

  • 对于操作系统包管理器,我们推荐使用 Zypper (forSLES) 或 YUM (forRHEL) 工具。

  • 对于集群管理,我们建议使用 crm(f orSLES)或 pcs(f orRHEL)shell。

  • SAP实例管理工具,例如SAPControl。

  • (可选)S/4 HANA 转换升级SUM工具。

最佳实践

  • 有关在上使用SAP工作负载的最佳实践AWS,请参阅 Well-Architecte AWS d Framework SAP镜头

  • 考虑一下您的ENSA2多节点架构中的群集节点数量(奇数或偶数)。

  • 按照 SAP S/4-HA-CLU 1.0 认证标准,将ENSA2集群设置为 SLES 15。

  • 在升级到之前,请务必保存或备份现有的集群和应用程序状态ENSA2。

操作说明

任务描述所需技能

配置默认配置文件中的参数。

如果您想在ENSA2保持相同SAP版本的情况下升级到,或者目标版本默认为ENSA1,请在默认配置文件中设置参数 (DEFAULT. PFLfile) 变为以下值。

enq/enable=TRUE enq/serverhost=sapascsvirt enq/serverinst=10 (instance number of ASCS/SCS instance) enque/process_location=REMOTESA enq/replicatorhost=sapersvirt enq/replicatorinst=11 (instance number of ERS instance)

其中,sapascsvirt是ASCS实例的虚拟主机名,sapersvirt是ERS实例的虚拟主机名。您可以更改这些设置以适合您的目标环境。

注意:要使用此升级选项,您的SAP版本和内核版本必须支持ENSA2和 Enqueue Replicator 2。

SAP

配置ASCS/SCS实例配置文件。

如果您想在保持相同SAP版本ENSA2的情况下升级到,或者目标版本默认为ENSA1,请在ASCS/SCSinstance配置文件中设置以下参数。 

配置文件中定义ENSA1的部分如下所示。

#-------------------------------------------------------------- Start SAP enqueue server #-------------------------------------------------------------- _EN = en.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) Execute_04 = local rm -f $(_EN) Execute_05 = local ln -s -f $(DIR_EXECUTABLE)/enserver$(FT_EXE) $(_EN) Start_Program_01 = local $(_EN) pf=$(_PF)

要重新配置此部分,请执行以下操作:ENSA2

  1. _ENQ根据来自的最新信息,将_EN程序前缀更改为SAP(OSS注意 2501860;需要 Supp SAP ONE ort La unchpad 用户帐户)。

  2. 将排队服务器的二进制文件从 enserver 更改为 enq_server

  3. 将新参数 enq/server/replication/enable 设置为 TRUE

  4. 确保 Autostart = 0

更改后,此配置文件部分将如下所示。

#-------------------------------------------------------------- Start SAP enqueue server #-------------------------------------------------------------- _ENQ = enq.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) Execute_04 = local rm -f $(_ENQ) Execute_05 = local ln -s -f $(DIR_EXECUTABLE)/enq_server$(FT_EXE) $(_ENQ) Start_Program_01 = local $(_ENQ) pf=$(_PF) ... enq/server/replication/enable = TRUE Autostart = 0

重要提示:_ENQ 不得启用重新启动选项。如果 _ENQ 设置为 RestartProgram_01,则将其更改为 StartProgram_01。这样可以SAP防止重新启动服务或干扰集群管理的资源。

SAP

配置ERS配置文件。

如果您想在ENSA2保持相同SAP版本的情况下升级到,或者您的目标版本默认为ENSA1,请在ERS实例配置文件中设置以下参数。

查找定义排队复制器的部分。它类似于以下内容。

#------------------------------------------------------ Start enqueue replication server #------------------------------------------------------ _ER = er.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) Execute_03 = local rm -f $(_ER) Execute_04 = local ln -s -f $(DIR_EXECUTABLE)/enrepserver$(FT_EXE) $(_ER) Start_Program_00 = local $(_ER) pf=$(_PF) NR=$(SCSID)

要为 Enqueue Replicator 2 重新配置此部分,请执行以下操作:

  1. _ENQR根据最新注释将_ER程序前缀更改为SAP(OSS注意 2501860;需要 Supp SAP ONE ort La unchpad 用户帐户)。

  2. 将排队复制器的二进制文件更改为 enq_replicator 而不是 enrepserver

  3. 确保 Autostart = 0

更改后,此配置文件部分应如下所示。

#------------------------------------------------------ Start enqueue replication server #------------------------------------------------------ _ENQR = enqr.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) Execute_01 = local rm -f $(_ENQR) Execute_02 = local ln -s -f $(DIR_EXECUTABLE)/enq_replicator$(FT_EXE) $(_ENQR) Start_Program_00 = local $(_ENQR) pf=$(_PF) NR=$(SCSID) … Autostart = 0

重要提示_ENQR 不得启用重新启动选项。如果 _ENQR 设置为 RestartProgram_01,则将其更改为 StartProgram_01。这样可以SAP防止重新启动服务或干扰集群管理的服务。

SAP

重新SAP启动启动服务。

更改此长篇故事中前面描述的配置文件后,请重新SAP启动ASCS/SCS和的 “启动服务” ERS。

sapcontrol -nr 10 -function RestartService SCT

sapcontrol -nr 11 -function RestartService SCT

其中,SCT指的是SAP系统 ID,假设 10 和 11 分别是ASCS/SCS和ERS实例的实例号。

SAP
任务描述所需技能

在SAP资源代理中验证版本号。

当您使用升级SUMSAP到 S/4 HANA 1809 或更高版本时,会SUM处理配置文件中的SAP参数更改。只有集群需要手动调整。不过,我们建议您在对集群进行任何更改之前先验证参数设置。

注意:此长篇故事中的示例假设您使用的是SUSE操作系统。如果你使用的是RHEL,你需要使用诸如YUM和 pcs shell 之类的工具,而不是 Zypper 和 c r m

检查架构中的两个节点,确认resource-agents软件包是否与推荐的最低版本相匹配SAP。有关信息SLES,请查看 SAP OSS Note 2641019。有关信息RHEL,请查看 SAP OSS Note 2641322。(SAP备注需要一个 Su SAPONEpport Launchpad 用户帐户。)

sapers:sctadm 23> zypper search -s -i resource-agents Loading repository data... Reading installed packages... S | Name | Type | Version | Arch | Repository --+-----------------+---------+------------------------------------+--------+----------------------------- i | resource-agents | package | 4.8.0+git30.d0077df0-150300.8.28.1 | x86_64 | SLE-Product-HA15-SP3-Updates

如有必要,请更新 resource-agents 版本。

AWS系统管理员

备份集群配置。

按如下方式备份CRM群集配置。

crm configure show > /tmp/cluster_config_backup.txt

AWS系统管理员

设置维护模式。

将集群设置为维护模式。

crm configure property maintenance-mode="true"

AWS系统管理员

检查集群配置。

检查当前集群配置。

crm configure show

以下是完整输出的摘录:

node 1: sapascs node 2: sapers ... primitive rsc_sap_SCT_ASCS10 SAPInstance \ operations $id=rsc_sap_SCT_ASCS10-operations \ op monitor interval=120 timeout=60 on-fail=restart \ params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10 primitive rsc_sap_SCT_ERS11 SAPInstance \ operations $id=rsc_sap_SCT_ERS11-operations \ op monitor interval=120 timeout=60 on-fail=restart \ params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \ AUTOMATIC_RECOVER=false IS_ERS=true \ meta priority=1000 ... colocation col_sap_SCT_no_both -5000: grp_SCT_ERS11 grp_SCT_ASCS10 location loc_sap_SCT_failover_to_ers rsc_sap_SCT_ASCS10 \ rule 2000: runs_ers_SCT eq 1 order ord_sap_SCT_first_start_ascs Optional: rsc_sap_SCT_ASCS10:start rsc_sap_SCT_ERS11:stop symmetrical=false ...

其中,sapascsvirt指ASCS实例的虚拟主机名,sapersvirt指ERS实例的虚拟主机名,SCT指SAP系统 ID。

AWS系统管理员

移除故障转移主机托管限制。

在前面的示例中,位置约束loc_sap_SCT_failover_to_ers指定故障转移时ASCS应始终遵循ERS实例的ENSA1功能。使用ENSA2,ASCS应该能够自由地故障转移到任何参与的节点,因此您可以移除此约束。

crm configure delete loc_sap_SCT_failover_to_ers

AWS系统管理员

调整原语。

您还需要对ASCS和ERSSAPInstance基元进行细微的更改。

以下是为配置ASCSSAPInstance的原语的示例。ENSA1

primitive rsc_sap_SCT_ASCS10 SAPInstance \ operations $id=rsc_sap_SCT_ASCS10-operations \ op monitor interval=120 timeout=60 on-fail=restart \ params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10

要升级到ENSA2,请将此配置更改为以下内容。

primitive rsc_sap_SCT_ASCS10 SAPInstance \ operations $id=rsc_sap_SCT_ASCS10-operations \ op monitor interval=120 timeout=60 on-fail=restart \ params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=3000

这是为配置ERSSAPInstance的原语的示例。ENSA1

primitive rsc_sap_SCT_ERS11 SAPInstance \ operations $id=rsc_sap_SCT_ERS11-operations \ op monitor interval=120 timeout=60 on-fail=restart \ params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \ AUTOMATIC_RECOVER=false IS_ERS=true \ meta priority=1000

要升级到ENSA2,请将此配置更改为以下内容。

primitive rsc_sap_SCT_ERS11 SAPInstance \ operations $id=rsc_sap_SCT_ERS11-operations \ op monitor interval=120 timeout=60 on-fail=restart \ params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \ AUTOMATIC_RECOVER=false IS_ERS=true

您可以通过多种方式更改原语。例如,您可以在 vi 等编辑器中对其进行修改,如下例所示。

crm configure edit rsc_sap_SCT_ERS11

AWS系统管理员

禁用维护模式。

在集群上禁用维护模式。

crm configure property maintenance-mode="false"

当集群退出维护模式时,它会尝试使用新ENSA2设置使ASCS和ERS实例联机。

AWS系统管理员
任务描述所需技能

查看最佳实践。

在添加更多节点之前,请务必了解最佳实践,例如使用奇数还是偶数节点。

AWS系统管理员

添加节点。

添加更多节点涉及一系列任务,例如更新操作系统、安装与现有节点匹配的软件包以及使附加可用。您可以使用SAP软件预配管理器 (SWPM) 中的 “准备其他主机” 选项来创建该主机的SAP特定基准。有关更多信息,请参阅下一节中列出的SAP指南。

AWS系统管理员

相关资源

SAP和SUSE参考文献

要访问SAP笔记,您必须拥有 Su SAP ONE pport Launchpad 用户帐户。有关更多信息,请访问 Supp SAPort 网站

AWS参考文献