你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 SAP 应用程序的 Red Hat Enterprise Linux 中的 Azure VM 上的 SAP NetWeaver 高可用性(多 SID)
本文介绍如何在适用于 SAP 应用程序的 Red Hat Enterprise Linux 的 Azure VM 上的双节点群集中部署多个 SAP NetWeaver 高可用性系统(多 SID)。
在示例配置中,在单个双节点高可用性群集中部署了三个 SAP NetWeaver 7.50 系统。 SAP 系统 SID 包括:
NW1
:ASCS 实例编号 00 和虚拟主机名msnw1ascs
。 ERS 实例编号 02 和虚拟主机名msnw1ers
。NW2
:ASCS 实例编号 10 和虚拟主机名msnw2ascs
。 ERS 实例编号 12 和虚拟主机名msnw2ers
。NW3
:ASCS 实例编号 20 和虚拟主机名msnw3ascs
。 ERS 实例编号 22 和虚拟主机名msnw3ers
。
本文不涉及 SAP NFS 共享的数据库层和部署。
本文的示例将 Azure NetApp 文件卷 sapMSID
用于 NFS 共享,前提是该卷已部署。 这些示例假设 Azure NetApp 文件卷是使用 NFSv3 协议部署的。 它们为 SAP 系统 NW1
、NW2
和 NW3
的 ASCS 和 ERS 实例的群集资源使用以下文件路径:
- volume sapMSID (nfs://10.42.0.4/sapmntNW1)
- volume sapMSID (nfs://10.42.0.4/usrsapNW1ascs)
- volume sapMSID (nfs://10.42.0.4/usrsapNW1sys)
- volume sapMSID (nfs://10.42.0.4/usrsapNW1ers)
- volume sapMSID (nfs://10.42.0.4/sapmntNW2)
- volume sapMSID (nfs://10.42.0.4/usrsapNW2ascs)
- volume sapMSID (nfs://10.42.0.4/usrsapNW2sys)
- volume sapMSID (nfs://10.42.0.4/usrsapNW2ers)
- volume sapMSID (nfs://10.42.0.4/sapmntNW3)
- volume sapMSID (nfs://10.42.0.4/usrsapNW3ascs)
- volume sapMSID (nfs://10.42.0.4/usrsapNW3sys)
- volume sapMSID (nfs://10.42.0.4/usrsapNW3ers)
在开始之前,请先参阅以下 SAP 说明和文章:
- SAP 说明 1928533,其中包含:
- SAP 软件部署支持的 Azure VM 大小的列表。
- Azure VM 大小的重要容量信息。
- 支持的 SAP 软件、操作系统 (OS) 和数据库组合。
- Microsoft Azure 上 Windows 和 Linux 所需的 SAP 内核版本。
- Azure NetApp 文件文档。
- SAP 说明 2015553 列出了在 Azure 中 SAP 支持的 SAP 软件部署的先决条件。
- SAP 说明 2002167 包含适用于 Red Hat Enterprise Linux 的建议 OS 设置。
- SAP 说明 2009879 包含适用于 Red Hat Enterprise Linux 的 SAP HANA 指南。
- SAP 说明 2178632 包含为 Azure 中的 SAP 报告的所有监控指标的详细信息。
- SAP 说明 2191498 包含 Azure 中的 Linux 所需的 SAP 主机代理版本。
- SAP 说明 2243692 包含 Azure 中的 Linux 上的 SAP 许可的相关信息。
- SAP 说明 1999351 包含适用于 SAP 的 Azure 增强型监视扩展的更多故障排除信息。
- SAP Community WIKI 包含适用于 Linux 的所有必需 SAP 说明。
- 适用于 Linux 上的 SAP 的 Azure 虚拟机规划和实施。
- 适用于 Linux 上的 SAP 的 Azure 虚拟机部署。
- 适用于 Linux 上的 SAP 的 Azure 虚拟机 DBMS 部署。
- Pacemaker 群集中的 SAP Netweaver。
- 通用 RHEL 文档:
- High Availability Add-On Overview(高可用性附加产品概述)
- High Availability Add-On Administration(高可用性附加产品管理)
- High Availability Add-On 参考
- Configuring ASCS/ERS for SAP Netweaver with standalone resources in RHEL 7.5(使用 RHEL 7.5 中的独立资源为 SAP NetWeaver 配置 ASCS/ERS)
- 在 RHEL 上的 Pacemaker 中使用 Standalone Enqueue Server 2 (ENSA2) 配置 SAP S/4HANA ASCS/ERS
- Azure 特定的 RHEL 文档:
- Support Policies for RHEL High Availability Clusters - Microsoft Azure Virtual Machines as Cluster Members(RHEL 高可用性群集的支持策略 - Microsoft Azure 虚拟机作为群集成员)
- Installing and Configuring a Red Hat Enterprise Linux 7.4 (and later) High-Availability Cluster on Microsoft Azure(在 Microsoft Azure 上安装和配置 Red Hat Enterprise Linux 7.4 [及更高版本] 高可用性群集)
- 使用 Azure NetApp 文件的 Microsoft Azure 上的 NetApp SAP 应用程序
概述
如果发生故障转移,则必须调整加入群集的虚拟机的大小,使其能够运行所有资源。 在多 SID 高可用性群集中,每个 SAP SID 都可以相互独立地进行故障转移。
为了实现高可用性,SAP NetWeaver 需要高度可用的共享。 本文将演示部署在 Azure NetApp 文件 NFS 卷上的 SAP 共享示例。 可以改为在高可用性 GlusterFS 群集上托管共享,这些共享可以由多个 SAP 系统使用。
重要
对于 Azure VM 中将 Red Hat Linux 作为来宾操作系统的 SAP ASCS/ERS 的多 SID 群集的支持仅限于在同一群集上提供五个 SAP SID。 每个新 SID 都增加了复杂性。 不支持在同一个群集中混合使用 SAP 排队复制服务器 1 和排队复制服务器 2。 多 SID 群集介绍了如何在一个 Pacemaker 群集中安装多个具有不同 SID 的 SAP ASCS/ERS 实例。 目前仅 ASCS/ERS 支持多 SID 群集。
提示
SAP ASCS/ERS 的多 SID 群集是更为复杂的解决方案。 它实现起来更为复杂。 执行 OS 修补等维护活动时,它还涉及更多的管理工作。 开始实际执行之前,请花些时间仔细规划部署和所有涉及的组件,如 VM、NFS 装载、VIP、负载平衡器配置等。
SAP NetWeaver ASCS、SAP NetWeaver SCS 和 SAP NetWeaver ERS 使用虚拟主机名和虚拟 IP 地址。 在 Azure 上,需要负载均衡器才能使用虚拟 IP 地址。 建议使用标准负载均衡器。
- ASCS 的前端 IP 地址:10.3.1.50 (NW1)、10.3.1.52 (NW2) 和 10.3.1.54 (NW3)
- ERS 的前端 IP 地址:10.3.1.51 (NW1)、10.3.1.53 (NW2) 和 10.3.1.55 (NW3)
- NW1 ASCS 的探测端口 62000、NW2 ASCS 的探测端口 62010 和 NW3 ASCS 的探测端口 62020
- NW1 ASCS 的探测端口 62102、NW2 ASCS 的探测端口 62112 和 NW3 ASCS 的探测端口 62122
注意
如果没有公共 IP 地址的 VM 被放在内部(无公共 IP 地址)标准 Azure 负载均衡器的后端池中,就不会有出站 Internet 连接,除非执行额外的配置来允许路由到公共终结点。 有关如何实现出站连接的详细信息,请参阅 SAP 高可用性方案中使用 Azure 标准负载均衡器的虚拟机的公共终结点连接。
重要
请勿在放置于 Azure 负载均衡器之后的 Azure VM 上启用 TCP 时间戳。 启用 TCP 时间戳会导致运行状况探测失败。 将参数 net.ipv4.tcp_timestamps
设置为 0。 有关详细信息,请参阅负载均衡器运行状况探测。
SAP 共享
SAP NetWeaver 要求对传输和配置文件目录等使用共享的存储。 对于高可用性 SAP 系统,具有高可用性共享非常重要。 需要确定 SAP 共享的体系结构。 另一个选项是在 Azure NetApp 文件 NFS 卷上部署共享。 使用 Azure NetApp 文件时,将获得 SAP NFS 共享的内置高可用性。
另一个选择是在 Red Hat Enterprise Linux for SAP NetWeaver 上的 Azure VM 构建 GlusterFS,这可以在多个 SAP 系统之间共享。
在群集中部署首个 SAP 系统
确定 SAP 共享的体系结构后,请按照相应的文档在群集中部署第一个 SAP 系统。
- 如果使用 Azure NetApp 文件 NFS 卷,请遵循使用适用于 SAP 应用程序的 Azure NetApp 文件实现 Red Hat Enterprise Linux 上的 SAP NetWeaver 的 Azure VM 高可用性。
- 如果使用 GlusterFS 群集,请遵循适用于 SAP NetWeaver 的 Red Hat Enterprise Linux 中的 Azure VM 上的 GlusterFS。
这些文章将指导你完成准备所需基础结构、构建群集、为运行 SAP 应用程序准备 OS 的步骤。
提示
部署第一个系统后,请始终测试该群集的故障转移功能,再将其他 SAP SID 添加到该群集。 这样,在将其他 SAP 系统的复杂性添加到群集之前,就可以了解群集功能的运行状况。
在群集中部署更多 SAP 系统
此示例假定已在群集中部署了系统 NW1
。 此示例演示如何在群集中部署 SAP 系统 NW2
和 NW3
。
以下各项带有前缀:
- [A] 适用于所有节点
- [1] 仅适用于节点 1
- [2] 仅适用于节点 2
先决条件
重要
在按照说明在群集中部署其他 SAP 系统之前,请在群集中部署第一个 SAP 系统。 某些步骤仅在首次进行系统部署期间才需要执行。
本文假设读者:
- 已配置 Pacemaker 群集,且它正在运行。
- 已部署至少一个 SAP 系统(ASCS/ERS 实例),且它正在群集中运行。
- 已测试群集故障转移功能。
- 所有 SAP 系统的 NFS 共享均已部署。
准备 SAP Netweaver 安装
按照说明通过 Azure 门户手动部署 Azure 负载均衡器,将新部署的系统(即
NW2
和NW3
)的配置添加到现有 Azure 负载均衡器。 调整配置的 IP 地址、运行状况探测端口和负载均衡规则。[A] 设置其他 SAP 系统的名称解析。 可以使用 DNS 服务器,或修改所有节点上的 /etc/hosts。 此示例演示如何使用 /etc/hosts 文件。 根据环境调整 IP 地址和主机名。
sudo vi /etc/hosts # IP address of the load balancer frontend configuration for NW2 ASCS 10.3.1.52 msnw2ascs # IP address of the load balancer frontend configuration for NW3 ASCS 10.3.1.54 msnw3ascs # IP address of the load balancer frontend configuration for NW2 ERS 10.3.1.53 msnw2ers # IP address of the load balancer frontend configuration for NW3 ERS 10.3.1.55 msnw3ers
[A] 为要部署到群集的
NW2
和NW3
SAP 系统创建共享目录。sudo mkdir -p /sapmnt/NW2 sudo mkdir -p /usr/sap/NW2/SYS sudo mkdir -p /usr/sap/NW2/ASCS10 sudo mkdir -p /usr/sap/NW2/ERS12 sudo mkdir -p /sapmnt/NW3 sudo mkdir -p /usr/sap/NW3/SYS sudo mkdir -p /usr/sap/NW3/ASCS20 sudo mkdir -p /usr/sap/NW3/ERS22 sudo chattr +i /sapmnt/NW2 sudo chattr +i /usr/sap/NW2/SYS sudo chattr +i /usr/sap/NW2/ASCS10 sudo chattr +i /usr/sap/NW2/ERS12 sudo chattr +i /sapmnt/NW3 sudo chattr +i /usr/sap/NW3/SYS sudo chattr +i /usr/sap/NW3/ASCS20 sudo chattr +i /usr/sap/NW3/ERS22
[A] 为要部署到群集的其他 SAP 系统添加 /sapmnt/SID 和 /usr/sap/SID/SYS 文件系统的装载条目。 在此示例中,它是
NW2
和NW3
。使用要部署到群集的其他 SAP 系统的文件系统来更新文件
/etc/fstab
。- 如果使用 Azure NetApp 文件,请按照具有 Azure NetApp 文件的 RHEL 上 SAP NW 的 Azure VM 高可用性中的说明操作。
- 如果使用 GlusterFS 群集,请按照 RHEL 上 SAP NW 的 Azure VM 高可用性中的说明操作。
安装 ASCS/ERS
为要部署到群集的其他 SAP 系统的 ASCS 实例创建虚拟 IP 和运行状况探测群集资源。 此示例使用
NW2
和NW3
ASCS,在 Azure NetApp 文件卷上使用带有 NFSv3 协议的 NFS。sudo pcs resource create fs_NW2_ASCS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW2ascs' \ directory='/usr/sap/NW2/ASCS10' fstype='nfs' force_unmount=safe \ op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \ --group g-NW2_ASCS sudo pcs resource create vip_NW2_ASCS IPaddr2 \ ip=10.3.1.52 \ --group g-NW2_ASCS sudo pcs resource create nc_NW2_ASCS azure-lb port=62010 \ --group g-NW2_ASCS sudo pcs resource create fs_NW3_ASCS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW3ascs' \ directory='/usr/sap/NW3/ASCS20' fstype='nfs' force_unmount=safe \ op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \ --group g-NW3_ASCS sudo pcs resource create vip_NW3_ASCS IPaddr2 \ ip=10.3.1.54 \ --group g-NW3_ASCS sudo pcs resource create nc_NW3_ASCS azure-lb port=62020 \ --group g-NW3_ASCS
请确保群集状态正常,并且所有资源都已启动。 资源在哪个节点上运行并不重要。
[1] 安装 SAP NetWeaver ASCS。
使用映射到 ASCS 负载均衡器前端配置的 IP 地址的虚拟主机名以 root 身份安装 SAP NetWeaver ASCS。 例如,对于系统
NW2
,虚拟主机名为msnw2ascs
,10.3.1.52
,而用于负载均衡器探测的实例编号为10
。 对于系统NW3
,虚拟主机名为msnw3ascs
,10.3.1.54
,而用于负载均衡器探测的实例编号为20
。 记下在哪个群集节点上安装了每个 SAP SID 的 ASCS。可以使用
sapinst
参数SAPINST_REMOTE_ACCESS_USER
来允许非 root 用户连接到 sapinst。 可以使用参数SAPINST_USE_HOSTNAME
和虚拟主机名来安装 SAP。# Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again sudo firewall-cmd --zone=public --add-port=4237/tcp sudo swpm/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
如果安装过程无法在 /usr/sap/<SID>/ASCS<Instance#> 中创建子文件夹,请尝试将所有者设置为 <sid>adm 并将组设置为 ASCS<Instance#> 的 sapsys,然后重试。
[1] 为要部署到群集的其他 SAP 系统的 ERS 实例创建虚拟 IP 和运行状况探测群集资源。 此示例针对的是
NW2
和NW3
ERS,在 Azure NetApp 文件卷上使用带有 NFSv3 协议的 NFS。sudo pcs resource create fs_NW2_AERS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW2ers' \ directory='/usr/sap/NW2/ERS12' fstype='nfs' force_unmount=safe \ op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \ --group g-NW2_AERS sudo pcs resource create vip_NW2_AERS IPaddr2 \ ip=10.3.1.53 \ --group g-NW2_AERS sudo pcs resource create nc_NW2_AERS azure-lb port=62112 \ --group g-NW2_AERS sudo pcs resource create fs_NW3_AERS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW3ers' \ directory='/usr/sap/NW3/ERS22' fstype='nfs' force_unmount=safe \ op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \ --group g-NW3_AERS sudo pcs resource create vip_NW3_AERS IPaddr2 \ ip=10.3.1.55 \ --group g-NW3_AERS sudo pcs resource create nc_NW3_AERS azure-lb port=62122 \ --group g-NW3_AERS
请确保群集状态正常,并且所有资源都已启动。
接下来,请确保新创建的 ERS 组的资源在群集节点上运行,这与安装了同一 SAP 系统的 ASCS 实例的群集节点相反。 例如,如果在
rhelmsscl1
上安装了 NW2 ASCS,请确保 NW2 ERS 组在rhelmsscl2
上运行。 要将 NW2 ERS 组迁移到rhelmsscl2
,可以为组中的其中一个群集资源运行以下命令:pcs resource move fs_NW2_AERS rhelmsscl2
[2] 安装 SAP NetWeaver ERS。
使用映射到 ERS 负载均衡器前端配置的 IP 地址的虚拟主机名以 root 身份在其他节点上安装 SAP NetWeaver ERS。 例如,对于系统
NW2
,虚拟主机名为msnw2ers
,10.3.1.53
,而用于负载均衡器探测的实例编号为12
。 对于系统NW3
,虚拟主机名为msnw3ers
,10.3.1.55
,而用于负载均衡器探测的实例编号为22
。可以使用
sapinst
参数SAPINST_REMOTE_ACCESS_USER
来允许非 root 用户连接到 sapinst。 可以使用参数SAPINST_USE_HOSTNAME
和虚拟主机名来安装 SAP。# Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again sudo firewall-cmd --zone=public --add-port=4237/tcp sudo swpm/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
注意
使用 SWPM SP 20 PL 05 或更高版本。 较低版本不会正确设置权限,安装将失败。
如果安装过程无法在 /usr/sap/<NW2>/ERS<Instance#> 中创建子文件夹,请尝试将所有者设置为 <sid>adm 并将组设置为 ERS<Instance#> 文件夹的 sapsys,然后重试。
如果需要将新部署的 SAP 系统的 ERS 组迁移到其他群集节点,请不要忘记删除 ERS 组的位置约束。 可以运行以下命令来删除约束。 此示例适用于 SAP 系统
NW2
和NW3
。 请务必删除在命令中用于移动 ERS 群集组的同一资源的临时约束。pcs resource clear fs_NW2_AERS pcs resource clear fs_NW3_AERS
[1] 为新安装的 SAP 系统调整 ASCS/SCS 和 ERS 实例配置文件。 下面显示的示例适用于
NW2
。 需要为添加到群集的所有 SAP 实例调整 ASCS/SCS 和 ERS 配置文件。ASCS/SCS 配置文件
sudo vi /sapmnt/NW2/profile/NW2_ASCS10_msnw2ascs # Change the restart command to a start command #Restart_Program_01 = local $(_EN) pf=$(_PF) Start_Program_01 = local $(_EN) pf=$(_PF) # Add the keep alive parameter, if using ENSA1 enque/encni/set_so_keepalive = TRUE
对于 ENSA1 和 ENSA2,请确保按 SAP 说明 1410736 中所述设置
keepalive
OS 参数。ERS 配置文件
sudo vi /sapmnt/NW2/profile/NW2_ERS12_msnw2ers # Change the restart command to a start command #Restart_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID) Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID) # remove Autostart from ERS profile # Autostart = 1
[A] 更新 /usr/sap/sapservices 文件。
要防止 sapinit 启动脚本启动实例,必须从 /usr/sap/sapservices 文件中注释掉由 Pacemaker 管理的所有实例。 下面显示的示例针对 SAP 系统
NW2
和NW3
。# Depending on whether the SAP Startup framework is integrated with systemd, you may observe below entries on the node for ASCS instances. You should comment out the line(s). # LD_LIBRARY_PATH=/usr/sap/NW2/ASCS10/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW2/ASCS10/exe/sapstartsrv pf=/usr/sap/NW2/SYS/profile/NW2_ASCS10_msnw2ascs -D -u nw2adm # LD_LIBRARY_PATH=/usr/sap/NW3/ASCS20/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW3/ASCS20/exe/sapstartsrv pf=/usr/sap/NW3/SYS/profile/NW3_ASCS20_msnw3ascs -D -u nw3adm # systemctl --no-ask-password start SAPNW2_10 # sapstartsrv pf=/usr/sap/NW2/SYS/profile/NW2_ASCS10_msnw2ascs # systemctl --no-ask-password start SAPNW3_20 # sapstartsrv pf=/usr/sap/NW3/SYS/profile/NW3_ASCS20_msnw3ascs # Depending on whether the SAP Startup framework is integrated with systemd, you may observe below entries on the node for ERS instances. You should comment out the line(s). #LD_LIBRARY_PATH=/usr/sap/NW2/ERS12/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW2/ERS12/exe/sapstartsrv pf=/usr/sap/NW2/ERS12/profile/NW2_ERS12_msnw2ers -D -u nw2adm #LD_LIBRARY_PATH=/usr/sap/NW3/ERS22/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW3/ERS22/exe/sapstartsrv pf=/usr/sap/NW3/ERS22/profile/NW3_ERS22_msnw3ers -D -u nw3adm # systemctl --no-ask-password start SAPNW2_12 # sapstartsrv pf=/usr/sap/NW2/ERS12/profile/NW2_ERS12_msnw2ers # systemctl --no-ask-password start SAPNW3_22 # sapstartsrv pf=/usr/sap/NW3/ERS22/profile/NW3_ERS22_msnw3ers
重要
借助基于 systemd 的 SAP 启动框架,SAP 实例现在可以由 systemd 管理。 SAP 所需的最低 Red Hat Enterprise Linux (RHEL) 版本是 RHEL 8。 如 SAP 说明 3115048 中所述,全新安装一个 SAP 内核(具有集成的基于 systemd 的 SAP 启动框架支持)将始终生成 systemd 控制的 SAP 实例。 但是,将现有 SAP 安装通过 SAP 内核升级升级到一个具有基于 systemd 的 SAP 启动框架支持的内核后,必须按照 SAP 说明 3115048 中所述执行一些手动步骤,以将现有 SAP 启动环境转换为一个由 systemd 控制的环境。
当利用适用于 SAP 的 Red Hat HA 服务(群集配置)来管理 SAP 应用程序服务器实例(例如 SAP ASCS 和 SAP ERS)时,需要进行额外的修改以确保 SAPInstance 资源代理与新的基于 systemd 的 SAP 启动框架之间的兼容性。 因此,根据 SAP 说明 3115048 安装 SAP 应用程序服务器实例或切换到启用了 systemd 的 SAP 内核后,必须在所有群集节点上成功完成 Red Hat KBA 6884531 中提到的步骤。
[1] 为新安装的 SAP 系统创建 SAP 群集资源。
根据是运行 ENSA1 还是 ENSA2 系统,选择相应的选项卡来定义 SAP 系统
NW2
和NW3
的资源,如下所示。 SAP 在 SAP NetWeaver 7.52 中引入了对 ENSA2 的支持,包括复制。 从 ABAP 平台 1809 开始,默认会安装 ENSA2。 对于 ENSA2 支持,请参阅 SAP 说明 2630416,其中介绍了有关排队服务器 2 的支持。如果使用排队服务器 2 体系结构 (ENSA2),则安装资源代理 resource-agents-sap-4.1.1-12.el7.x86_64 或更新版本,并定义 SAP 系统
NW2
和NW3
的资源,如下所示:sudo pcs property set maintenance-mode=true sudo pcs resource create rsc_sap_NW2_ASCS10 SAPInstance \ InstanceName=NW2_ASCS10_msnw2ascs START_PROFILE="/sapmnt/NW2/profile/NW2_ASCS10_msnw2ascs" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \ op monitor interval=20 on-fail=restart timeout=60 \ op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-NW2_ASCS sudo pcs resource meta g-NW2_ASCS resource-stickiness=3000 sudo pcs resource create rsc_sap_NW2_ERS12 SAPInstance \ InstanceName=NW2_ERS12_msnw2ers START_PROFILE="/sapmnt/NW2/profile/NW2_ERS12_msnw2ers" \ AUTOMATIC_RECOVER=false IS_ERS=true \ op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-NW2_AERS sudo pcs constraint colocation add g-NW2_AERS with g-NW2_ASCS -5000 sudo pcs constraint location rsc_sap_NW2_ASCS10 rule score=2000 runs_ers_NW2 eq 1 sudo pcs constraint order start g-NW2_ASCS then stop g-NW2_AERS kind=Optional symmetrical=false sudo pcs resource create rsc_sap_NW3_ASCS20 SAPInstance \ InstanceName=NW3_ASCS20_msnw3ascs START_PROFILE="/sapmnt/NW3/profile/NW3_ASCS20_msnw3ascs" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \ op monitor interval=20 on-fail=restart timeout=60 \ op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-NW3_ASCS sudo pcs resource meta g-NW3_ASCS resource-stickiness=3000 sudo pcs resource create rsc_sap_NW3_ERS22 SAPInstance \ InstanceName=NW3_ERS22_msnw3ers START_PROFILE="/sapmnt/NW3/profile/NW2_ERS22_msnw3ers" \ AUTOMATIC_RECOVER=false IS_ERS=true \ op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-NW3_AERS sudo pcs constraint colocation add g-NW3_AERS with g-NW3_ASCS -5000 sudo pcs constraint location rsc_sap_NW3_ASCS20 rule score=2000 runs_ers_NW3 eq 1 sudo pcs constraint order start g-NW3_ASCS then stop g-NW3_AERS kind=Optional symmetrical=false sudo pcs property set maintenance-mode=false
如果要从旧版本升级并切换到排队服务器 2,请参阅 SAP 说明 2641019。
注意
上述配置中的超时只是示例,可能需要根据特定的 SAP 设置进行调整。
请确保群集状态正常,并且所有资源都已启动。 资源在哪个节点上运行并不重要。 以下示例显示了将 SAP 系统
NW2
和NW3
添加到群集之后群集资源状态。sudo pcs status # Online: [ rhelmsscl1 rhelmsscl2 ] # Full list of resources: # rsc_st_azure (stonith:fence_azure_arm): Started rhelmsscl1 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 # rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 # Resource Group: g-NW1_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 # vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 # rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 # Resource Group: g-NW2_ASCS # fs_NW2_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 # vip_NW2_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 # nc_NW2_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 # rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 # Resource Group: g-NW2_AERS # fs_NW2_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 # vip_NW2_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 # nc_NW2_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 # rsc_sap_NW2_ERS12 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 # Resource Group: g-NW3_ASCS # fs_NW3_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 # vip_NW3_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 # nc_NW3_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 # rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 # Resource Group: g-NW3_AERS # fs_NW3_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 # vip_NW3_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 # nc_NW3_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 # rsc_sap_NW3_ERS22 (ocf::heartbeat:SAPInstance): Started rhelmsscl1
[A] 在两个节点上为 ASCS 和 ERS 添加防火墙规则。 以下示例显示了同时适用于 SAP 系统
NW2
和NW3
的防火墙规则。# NW1 - ASCS sudo firewall-cmd --zone=public --add-port={62010,3210,3610,3910,8110,51013,51014,51016}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62010,3210,3610,3910,8110,51013,51014,51016}/tcp # NW2 - ERS sudo firewall-cmd --zone=public --add-port={62112,3212,3312,51213,51214,51216}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62112,3212,3312,51213,51214,51216}/tcp # NW3 - ASCS sudo firewall-cmd --zone=public --add-port={62020,3220,3620,3920,8120,52013,52014,52016}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62020,3220,3620,3920,8120,52013,52014,52016}/tcp # NW3 - ERS sudo firewall-cmd --zone=public --add-port={62122,3222,3322,52213,52214,52216}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62122,3222,3322,52213,52214,52216}/tcp
继续安装 SAP
通过执行以下内容来完成 SAP 安装:
- 准备 SAP NetWeaver 应用程序服务器。
- 安装 DBMS 实例。
- 安装主 SAP 应用程序服务器。
- 安装一个或多个其他 SAP 应用程序实例。
测试多 SID 群集设置
以下测试属于 Red Hat 最佳做法指南中的测试用例。 为方便起见,已将其包括在内。 有关群集测试的完整列表,请参阅以下文档:
- 如果使用 Azure NetApp 文件 NFS 卷,请遵循使用适用于 SAP 应用程序的 Azure NetApp 文件实现 RHEL 上的 SAP NetWeaver 的 Azure VM 高可用性
- 如果使用高可用
GlusterFS
,请遵循适用于 SAP 应用程序的 RHEL 上 SAP NetWeaver 的 Azure VM 高可用性。
请务必阅读 Red Hat 最佳做法指南,并执行可能已经添加的所有其他测试。 提供的测试位于安装了三个 SAP 系统的双节点多 SID 群集中。
手动迁移 ASCS 实例。 该示例演示了如何迁移 SAP 系统 NW3 的 ASCS 实例。
开始测试之前的资源状态:
Online: [ rhelmsscl1 rhelmsscl2 ] Full list of resources: rsc_st_azure (stonith:fence_azure_arm): Started rhelmsscl1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW1_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_ASCS fs_NW2_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW2_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW2_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_AERS fs_NW2_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW2_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW2_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW2_ERS12 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW3_ASCS fs_NW3_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW3_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW3_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW3_AERS fs_NW3_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW3_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW3_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW3_ERS22 (ocf::heartbeat:SAPInstance): Started rhelmsscl1
以 root 身份运行以下命令来迁移 NW3 ASCS 实例。
pcs resource move rsc_sap_NW3_ASCS200 # Clear temporary migration constraints pcs resource clear rsc_sap_NW3_ASCS20 # Remove failed actions for the ERS that occurred as part of the migration pcs resource cleanup rsc_sap_NW3_ERS22
测试之后的资源状态:
Online: [ rhelmsscl1 rhelmsscl2 ] Full list of resources: rsc_st_azure (stonith:fence_azure_arm): Started rhelmsscl1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW1_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_ASCS fs_NW2_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW2_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW2_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_AERS fs_NW2_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW2_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW2_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW2_ERS12 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW3_ASCS fs_NW3_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW3_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW3_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW3_AERS fs_NW3_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW3_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW3_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW3_ERS22 (ocf::heartbeat:SAPInstance): Started rhelmsscl2
模拟节点崩溃。
开始测试之前的资源状态:
Online: [ rhelmsscl1 rhelmsscl2 ] Full list of resources: rsc_st_azure (stonith:fence_azure_arm): Started rhelmsscl1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW1_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_ASCS fs_NW2_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW2_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW2_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW2_AERS fs_NW2_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW2_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW2_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW2_ERS12 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW3_ASCS fs_NW3_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW3_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW3_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW3_AERS fs_NW3_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW3_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW3_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW3_ERS22 (ocf::heartbeat:SAPInstance): Started rhelmsscl2
以 root 身份在运行有至少一个 ASCS 实例的节点上运行以下命令。 此示例在运行
NW1
、NW2
和NW3
的 ASCS 实例的rhelmsscl1
上运行命令。echo c > /proc/sysrq-trigger
崩溃后重新启动的测试和节点之后的结果应如下所示:
Full list of resources: rsc_st_azure (stonith:fence_azure_arm): Started rhelmsscl2 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW1_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW2_ASCS fs_NW2_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW2_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW2_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_AERS fs_NW2_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW2_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW2_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW2_ERS12 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW3_ASCS fs_NW3_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW3_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW3_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW3_AERS fs_NW3_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW3_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW3_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW3_ERS22 (ocf::heartbeat:SAPInstance): Started rhelmsscl1
如果有针对失败资源的消息,请清除失败资源的状态。 例如:
pcs resource cleanup rsc_sap_NW1_ERS02
后续步骤
若要了解如何在 Azure VM 上建立 SAP HANA 的高可用性和灾难恢复计划,请参阅 Azure 虚拟机 (VM) 上的 SAP HANA 的高可用性。