你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 RHEL 上使用 SAP ASCS/SCS 高可用性 VM 部署 SAP 对话实例
本文介绍如何在 Red Hat Enterprise Linux (RHEL) 上运行的同一 ABAP SAP 中心服务 (ASCS)/SAP 中心服务 (SCS) 高可用性群集上安装和配置主应用程序服务器 (PAS) 和其他应用程序服务器 (AAS) 对话实例。
参考
- 在 Pacemaker 中使用 Standalone Enqueue Server 2 (ENSA2) 配置 SAP S/4HANA ASCS/ERS
- 在 RHEL 7.5 及更高版本和 RHEL 8 中使用独立资源配置 SAP NetWeaver ASCS/ERS ENSA1
- SAP 说明 1928533,其中包含:
- 支持部署 SAP 软件的 Azure 虚拟机 (VM) 大小的列表。
- Azure VM 大小的重要容量信息。
- 支持的 SAP 软件、操作系统 (OS) 和数据库组合。
- Windows 和 Linux on Azure 所需的 SAP 内核版本。
- SAP 说明 2015553 列出了在 Azure 中 SAP 支持的 SAP 软件部署的先决条件。
- SAP 说明 2002167 列出了适用于 Red Hat Enterprise Linux 7.x 的建议 OS 设置。
- SAP 说明 2772999 列出了适用于 Red Hat Enterprise Linux 8.x 的建议 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 文档:
- Azure 特定的 RHEL 文档:
- 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 [及更高版本] 高可用性群集)
概述
本文介绍成本优化方案,在此方案中,在高可用性设置中使用 SAP ASCS/SCS 和排队复制服务器 (ERS) 部署 PAS 和 AAS 对话实例。 若要将单个 SAP 系统的 VM 数量降至最低,需在运行 SAP ASCS/SCS 和 SAP ERS 的同一主机上安装 PAS 和 AAS。 在高可用性群集设置中配置 SAP ASCS/SCS 后,PAS 和 AAS 也需要由群集管理。 本质上,该配置是对已配置的 SAP ASCS/SCS 群集设置的补充。 在此设置中,PAS 和 AAS 安装在虚拟主机名上,其实例目录由群集进行管理。
对于此设置,PAS 和 AAS 需要高度可用的实例目录 (/usr/sap/<SID>/D<nr>
)。 可以将实例目录文件系统放置在用于 ASCS 和 ERS 实例配置的同一个高度可用的存储上。 演示的体系结构展示 Azure 文件存储上的 NFS 或 Azure NetApp 文件,用于设置的高可用性实例目录。
本文中所示的用于描述部署的示例使用以下系统信息:
实例名称 | 实例编号 | 虚拟主机名 | 虚拟 IP(探测端口) |
---|---|---|---|
ABAP SAP 中心服务 (ASCS) | 00 | sapascs | 10.90.90.10 (62000) |
排队复制服务器 (ERS) | 01 | sapers | 10.90.90.9 (62001) |
主应用程序服务器 (PAS) | 02 | sappas | 10.90.90.30 (62002) |
其他应用程序服务器 (AAS) | 03 | sapers | 10.90.90.31 (62003) |
SAP 系统标识符 | NW1 | --- | --- |
注意
如果要横向扩展,请在单独的 VM 上安装更多 SAP 应用程序实例。
成本优化解决方案的重要注意事项
- 使用 SAP ASCS/SCS 群集设置只能部署两个对话实例:PAS 和一个 AAS。
- 如果想要通过更多应用程序服务器(如 sapa03 和 sapa04)横向扩展 SAP 系统,可以将其安装在单独的 VM 中。 在虚拟主机名上安装 PAS 和 AAS 后,可以在单独的 VM 中使用物理或虚拟主机名安装更多应用程序服务器。 若要详细了解如何将虚拟主机名分配给 VM,请参阅博客在 Azure 中将 SAP 虚拟主机名与 Linux 结合使用。
- 使用 SAP ASCS/SCS 群集设置进行 PAS 和 AAS 部署时,ASCS、ERS、PAS 和 AAS 的实例编号必须不同。
- 请考虑根据调整大小指南适当调整 VM SKU 的大小。 必须考虑到群集行为,如果群集中的另一个 VM 不可用,多个 SAP 实例(ASCS、ERS、PAS 和 AAS)可能会在单个 VM 上运行。
- 使用 SAP ASCS/SCS 群集设置运行的对话实例(PAS 和 AAS)必须使用虚拟主机名进行安装。
- 还必须使用与 SAP ASCS/SCS 群集设置相同的存储解决方案来部署 PAS 和 AAS 实例。 例如,如果使用 Azure 文件存储上的 NFS 配置了 SAP ASCS/SCS 群集,则必须使用相同的存储解决方案来部署 PAS 和 AAS。
- PAS 和 AAS 的实例目录
/usr/sap/<SID>/D<nr>
必须装载在 NFS 文件系统上,并作为资源由群集进行管理。注意
对于 SAP J2EE 系统,不支持在 Azure 文件存储上的 NFS 上放置
/usr/sap/<SID>/J<nr>
。 - 若要在单独的 VM 上安装更多应用程序服务器,可以使用 NFS 共享或本地托管磁盘作为实例目录文件系统。 如果要为 SAP J2EE 系统安装更多应用程序服务器,则不支持 Azure 文件存储上 NFS 上的
/usr/sap/<SID>/J<nr>
。 - 在传统的 SAP ASCS/SCS 高可用性配置中,如果对 SAP ASCS 和 ERS 群集节点有任何影响,则在单独的 VM 上运行的应用程序服务器实例不受影响。 但是,通过成本优化配置,如果群集中的其中一个节点受到影响,则 PAS 或 AAS 实例会重启。
- 请参阅 Azure 文件存储上的 NFS 注意事项和 Azure NetApp 文件注意事项,因为这些注意事项同样适用于此设置。
先决条件
本文中所述的配置是对已配置的 SAP ASCS/SCS 群集设置的补充。 在此配置中,PAS 和 AAS 安装在虚拟主机名上,其实例目录由群集进行管理。 根据你的存储,按照以下文章中所述的步骤为群集中的 SAP ASCS 和 SAP ERS 实例配置 SAPInstance
资源。
- Azure 文件存储上的 NFS:使用 Azure 文件存储上的 NFS 在 RHEL 上实现 SAP NW 的 Azure VM 高可用性
- Azure NetApp 文件:使用 Azure NetApp 文件在 RHEL 上实现 SAP NW 的 Azure VM 高可用性
使用软件设置管理器 (SWPM) 安装 ASCS、ERS 和数据库实例后,请按照后续步骤安装 PAS 和 AAS 实例。
配置适用于 PAS 和 AAS 的 Azure 负载均衡器
本文假设已为 SAP ASCS/SCS 群集设置配置了负载均衡器,如配置 Azure 负载均衡器中所述。 在相同的 Azure 负载均衡器实例中,按照以下步骤为 PAS 和 AAS 创建更多前端 IP 和负载均衡规则。
- 打开为 SAP ASCS/SCS 群集设置创建的内部负载均衡器。
- 前端 IP 配置:创建两个前端 IP,一个用于 PAS,另一个用于 AAS(例如:10.90.90.30 和 10.90.90.31)。
- 后端池:此池保持不变,因为 PAS 和 AAS 是在同一个后端池上部署的。
- 入站规则:创建两个负载均衡规则,一个用于 PAS,另一个用于 AAS。 对两个负载均衡规则执行相同步骤。
- 前端 IP 地址:选择前端 IP。
- 后端池:选择后端池。
- 高可用性端口:选择此选项。
- 协议:选择“TCP”。
- 运行状况探测:创建具有以下详细信息的运行状况探测(适用于 PAS 和 AAS):
- 协议:选择“TCP”。
- 端口:例如:620<Instance-no.> 用于 PAS, 620<Instance-no.> 用于 AAS。
- 间隔时间:输入 5。
- 探测阈值:输入 2。
- 空闲超时(分钟):输入 30。
- 启用浮动 IP:选择此选项。
不会遵循运行状况探测配置属性 numberOfProbes
(在 Microsoft Azure 门户中也称为“运行不正常阈值”)。 要控制成功或失败的连续探测数量,请将属性 probeThreshold
设置为 2
。 目前无法使用 Microsoft Azure 门户设置此属性。 请使用 Azure CLI 或 PowerShell 命令。
如果没有公共 IP 地址的 VM 放在内部(无公共 IP 地址)标准 Azure 负载均衡器实例的后端池中,则除非执行更多的配置以允许路由到公共终结点,否则就没有出站 Internet 连接。 有关如何实现出站连接的步骤,请参阅 SAP 高可用性方案中使用 Azure 标准负载均衡器的虚拟机的公共终结点连接。
重要
请勿在放置于 Azure 负载均衡器之后的 Azure VM 上启用 TCP 时间戳。 启用 TCP 时间戳会导致运行状况探测失败。 将参数 net.ipv4.tcp_timestamps
设置为 0
。 有关详细信息,请参阅负载均衡器运行状况探测。
准备用于 PAS 和 AAS 安装的服务器
如果本文档中的步骤标有以下前缀,它们的含义如下:
- [A]:适用于所有节点。
- [1]:仅适用于节点 1。
- [2]:仅适用于节点 2。
[A] 设置主机名称解析。
可以使用 DNS 服务器,或修改所有节点上的
/etc/hosts
。 此示例演示如何使用/etc/hosts
文件。 请替换以下命令中的 IP 地址和主机名:sudo vi /etc/hosts # IP address of cluster node 1 10.90.90.7 sap-cl1 # IP address of cluster node 2 10.90.90.8 sap-cl2 # IP address of the load balancer frontend configuration for SAP Netweaver ASCS 10.90.90.10 sapascs # IP address of the load balancer frontend configuration for SAP Netweaver ERS 10.90.90.9 sapers # IP address of the load balancer frontend configuration for SAP Netweaver PAS 10.90.90.30 sappas # IP address of the load balancer frontend configuration for SAP Netweaver AAS 10.90.90.31 sapaas
[1] 在 NFS 共享上创建 SAP 目录。 在其中一个 VM 上临时装载 NFS 共享 sapnw1,并创建要用作嵌套装入点的 SAP 目录。
如果使用 Azure 文件存储上的 NFS:
# mount temporarily the volume sudo mkdir -p /saptmp sudo mount -t nfs sapnfs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys # create the SAP directories sudo cd /saptmp sudo mkdir -p usrsapNW1D02 sudo mkdir -p usrsapNW1D03 # unmount the volume and delete the temporary directory cd .. sudo umount /saptmp sudo rmdir /saptmp
如果使用 Azure NetApp 文件:
# mount temporarily the volume sudo mkdir -p /saptmp # If using NFSv3 sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=3,tcp 10.90.91.5:/sapnw1 /saptmp # If using NFSv4.1 sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=4.1,sec=sys,tcp 10.90.91.5:/sapnw1 /saptmp # create the SAP directories sudo cd /saptmp sudo mkdir -p usrsapNW1D02 sudo mkdir -p usrsapNW1D03 # unmount the volume and delete the temporary directory sudo cd .. sudo umount /saptmp sudo rmdir /saptmp
[A] 创建共享目录。
sudo mkdir -p /usr/sap/NW1/D02 sudo mkdir -p /usr/sap/NW1/D03 sudo chattr +i /usr/sap/NW1/D02 sudo chattr +i /usr/sap/NW1/D03
[A] 配置交换空间。 使用中心服务安装对话实例时,必须配置更多交换空间。
sudo vi /etc/waagent.conf # Check if property ResourceDisk.Format is already set to y and if not, set it ResourceDisk.Format=y # Set the property ResourceDisk.EnableSwap to y # Create and use swapfile on resource disk. ResourceDisk.EnableSwap=y # Set the size of the SWAP file with property ResourceDisk.SwapSizeMB # The free space of resource disk varies by virtual machine size. Make sure that you do not set a value that is too big. You can check the SWAP space with command swapon # Size of the swapfile. #ResourceDisk.SwapSizeMB=2000 ResourceDisk.SwapSizeMB=10480
重启代理以激活更改。
sudo service waagent restart
[A] 为 PAS 和 AAS 添加防火墙规则。
# Probe and gateway port for PAS and AAS sudo firewall-cmd --zone=public --add-port={62002,62003,3302,3303}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62002,62003,3303,3303}/tcp
安装 SAP Netweaver PAS 实例
[1] 检查群集的状态。 在配置 PAS 资源以进行安装之前,请确保配置并启用了 ASCS 和 ERS 资源。
sudo pcs status # Online: [ sap-cl1 sap-cl2 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started sap-cl1 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started sap-cl1 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started sap-cl1 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started sap-cl1 # rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started sap-cl1 # Resource Group: g-NW1_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started sap-cl2 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started sap-cl2 # vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started sap-cl2 # rsc_sap_NW1_ERS01 (ocf::heartbeat:SAPInstance): Started sap-cl2
[1] 为 PAS 实例创建文件系统、虚拟 IP 和运行状况探测资源。
sudo pcs node standby sap-cl2 sudo pcs resource create vip_NW1_PAS IPaddr2 ip=10.90.90.30 --group g-NW1_PAS sudo pcs resource create nc_NW1_PAS azure-lb port=62002 --group g-NW1_PAS # If using NFS on Azure files sudo pcs resource create fs_NW1_PAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D02' \ directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \ op start interval=0 timeout=60 \ op stop interval=0 timeout=120 \ op monitor interval=200 timeout=40 \ --group g-NW1_PAS # If using NFsv3 on Azure NetApp Files sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \ directory='/usr/sap/NW1/D02' 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-NW1_PAS # If using NFSv4.1 on Azure NetApp Files sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \ directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \ op start interval=0 timeout=60 \ op stop interval=0 timeout=120 \ op monitor interval=200 timeout=105 \ --group g-NW1_PAS
确保群集状态正常,并且所有资源都已启动。 资源在哪个节点上运行并不重要。
sudo pcs status # Node List: # Node sap-cl2: standby # Online: [ sap-cl1 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started sap-cl1 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started sap-cl1 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started sap-cl1 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started sap-cl1 # rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started sap-cl1 # Resource Group: g-NW1_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started sap-cl1 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started sap-cl1 # vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started sap-cl1 # rsc_sap_NW1_ERS01 (ocf::heartbeat:SAPInstance): Started sap-cl1 # Resource Group: g-NW1_PAS: # vip_NW1_PAS (ocf::heartbeat:IPaddr2): Started sap-cl1 # nc_NW1_PAS (ocf::heartbeat:azure-lb): Started sap-cl1 # fs_NW1_PAS (ocf::heartbeat:Filesystem): Started sap-cl1
[1] 在装载文件系统后,请更改
/usr/sap/SID/D02
文件夹的所有权。sudo chown nw1adm:sapsys /usr/sap/NW1/D02
[1] 安装 SAP Netweaver PAS。
使用映射到适用于 PAS 的负载均衡器前端配置的 IP 地址的虚拟主机名,以 root 身份在第一个节点上安装 SAP NetWeaver PAS。 例如,使用 sappas、10.90.90.30,以及用于负载均衡器探测的实例编号(如 02)。
可以使用 sapinst 参数
SAPINST_REMOTE_ACCESS_USER
来允许非 root 用户连接到 sapinst。# 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=<pas_virtual_hostname>
更新
/usr/sap/sapservices
文件。要防止 sapinit 启动脚本启动实例,必须从
/usr/sap/sapservices
文件中禁止注释由 Pacemaker 管理的所有实例。sudo vi /usr/sap/sapservices # On the node where PAS is installed, comment out the following lines. # LD_LIBRARY_PATH=/usr/sap/NW1/D02/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D02/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D02_sappas -D -u nw1adm
[1] 创建 PAS 群集资源。
# If using NFS on Azure Files or NFSv3 on Azure NetApp Files pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \ START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \ op monitor interval=20 timeout=60 \ --group g-NW1_PAS # If using NFSv4.1 on Azure NetApp Files pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \ START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \ op monitor interval=20 timeout=105 \ --group g-NW1_PAS
检查群集的状态。
sudo pcs status # Node List: # Node sap-cl2: standby # Online: [ sap-cl1 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started sap-cl1 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started sap-cl1 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started sap-cl1 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started sap-cl1 # rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started sap-cl1 # Resource Group: g-NW1_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started sap-cl1 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started sap-cl1 # vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started sap-cl1 # rsc_sap_NW1_ERS01 (ocf::heartbeat:SAPInstance): Started sap-cl1 # Resource Group: g-NW1_PAS: # vip_NW1_PAS (ocf::heartbeat:IPaddr2): Started sap-cl1 # nc_NW1_PAS (ocf::heartbeat:azure-lb): Started sap-cl1 # fs_NW1_PAS (ocf::heartbeat:Filesystem): Started sap-cl1 # rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance): Started sap-cl1
将约束配置为只有在 ASCS 实例启动后才能启动 PAS 资源组。
sudo pcs constraint order g-NW1_ASCS then g-NW1_PAS kind=Optional symmetrical=false
安装 SAP Netweaver AAS 实例
[2] 检查群集的状态。 在配置 AAS 资源以进行安装之前,请确保 ASCS、ERS 和 PAS 资源已启用。
sudo pcs status # Node List: # Node sap-cl2: standby # Online: [ sap-cl1 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started sap-cl1 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started sap-cl1 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started sap-cl1 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started sap-cl1 # rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started sap-cl1 # Resource Group: g-NW1_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started sap-cl1 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started sap-cl1 # vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started sap-cl1 # rsc_sap_NW1_ERS01 (ocf::heartbeat:SAPInstance): Started sap-cl1 # Resource Group: g-NW1_PAS: # vip_NW1_PAS (ocf::heartbeat:IPaddr2): Started sap-cl1 # nc_NW1_PAS (ocf::heartbeat:azure-lb): Started sap-cl1 # fs_NW1_PAS (ocf::heartbeat:Filesystem): Started sap-cl1 # rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance): Started sap-cl1
[2] 为 AAS 实例创建文件系统、虚拟 IP 和运行状况探测资源。
sudo pcs node unstandby sap-cl2 # Disable PAS resource as it will fail on sap-cl2 due to missing environment variables like hdbuserstore. sudo pcs resource disable g-NW1_PAS sudo pcs node standby sap-cl1 # Execute below command to cleanup resource, if required pcs resource cleanup rsc_sap_NW1_ERS01 sudo pcs resource create vip_NW1_AAS IPaddr2 ip=10.90.90.31 --group g-NW1_AAS sudo pcs resource create nc_NW1_AAS azure-lb port=62003 --group g-NW1_AAS # If using NFS on Azure files sudo pcs resource create fs_NW1_AAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D03' \ directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \ op start interval=0 timeout=60 \ op stop interval=0 timeout=120 \ op monitor interval=200 timeout=40 \ --group g-NW1_AAS # If using NFsv3 on Azure NetApp Files sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \ directory='/usr/sap/NW1/D03' 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-NW1_AAS # If using NFSv4.1 on Azure NetApp Files sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \ directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \ op start interval=0 timeout=60 \ op stop interval=0 timeout=120 \ op monitor interval=200 timeout=105 \ --group g-NW1_AAS
确保群集状态正常,并且所有资源都已启动。 资源在哪个节点上运行并不重要。 由于 g-NW1_PAS 资源组已停止,所有 PAS 资源都停止在(已禁用)状态。
sudo pcs status # Node List: # Node sap-cl1: standby # Online: [ sap-cl2 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started sap-cl2 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started sap-cl2 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started sap-cl2 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started sap-cl2 # rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started sap-cl2 # Resource Group: g-NW1_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started sap-cl2 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started sap-cl2 # vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started sap-cl2 # rsc_sap_NW1_ERS01 (ocf::heartbeat:SAPInstance): Started sap-cl2 # Resource Group: g-NW1_PAS: # vip_NW1_PAS (ocf::heartbeat:IPaddr2): Stopped (disabled) # nc_NW1_PAS (ocf::heartbeat:azure-lb): Stopped (disabled) # fs_NW1_PAS (ocf::heartbeat:Filesystem): Stopped (disabled) # rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance): Stopped (disabled) # Resource Group: g-NW1_AAS: # vip_NW1_AAS (ocf::heartbeat:IPaddr2): Started sap-cl2 # nc_NW1_AAS (ocf::heartbeat:azure-lb): Started sap-cl2 # fs_NW1_AAS (ocf::heartbeat:Filesystem): Started sap-cl2
[2] 在装载文件系统后,请更改
/usr/sap/SID/D03
文件夹的所有权。sudo chown nw1adm:sapsys /usr/sap/NW1/D03
[2] 安装 SAP Netweaver AAS。
使用映射到适用于 PAS 的负载均衡器前端配置的 IP 地址的虚拟主机名,以 root 身份在第二个节点上安装 SAP NetWeaver AAS。 例如,使用 sapaas、10.90.90.31,以及用于负载均衡器探测的实例编号(如 03)。
可以使用 sapinst 参数
SAPINST_REMOTE_ACCESS_USER
来允许非 root 用户连接到 sapinst。# 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=<aas_virtual_hostname>
更新
/usr/sap/sapservices
文件。要防止 sapinit 启动脚本启动实例,必须从
/usr/sap/sapservices
文件中禁止注释由 Pacemaker 管理的所有实例。sudo vi /usr/sap/sapservices # On the node where AAS is installed, comment out the following lines. #LD_LIBRARY_PATH=/usr/sap/NW1/D03/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D03/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D03_sapaas -D -u nw1adm
[2] 创建 AAS 群集资源。
# If using NFS on Azure Files or NFSv3 on Azure NetApp Files pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \ START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \ op monitor interval=120 timeout=60 \ --group g-NW1_AAS # If using NFSv4.1 on Azure NetApp Files pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \ START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \ op monitor interval=120 timeout=105 \ --group g-NW1_AAS
检查群集的状态。
sudo pcs status # Node List: # Node sap-cl1: standby # Online: [ sap-cl2 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started sap-cl2 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started sap-cl2 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started sap-cl2 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started sap-cl2 # rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started sap-cl2 # Resource Group: g-NW1_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started sap-cl2 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started sap-cl2 # vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started sap-cl2 # rsc_sap_NW1_ERS01 (ocf::heartbeat:SAPInstance): Started sap-cl2 # Resource Group: g-NW1_PAS: # vip_NW1_PAS (ocf::heartbeat:IPaddr2): Stopped (disabled) # nc_NW1_PAS (ocf::heartbeat:azure-lb): Stopped (disabled) # fs_NW1_PAS (ocf::heartbeat:Filesystem): Stopped (disabled) # rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance): Stopped (disabled) # Resource Group: g-NW1_AAS: # vip_NW1_AAS (ocf::heartbeat:IPaddr2): Started sap-cl2 # nc_NW1_AAS (ocf::heartbeat:azure-lb): Started sap-cl2 # fs_NW1_AAS (ocf::heartbeat:Filesystem): Started sap-cl2 # rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance): Started sap-cl2
将约束配置为只有在 ASCS 实例启动后才能启动 AAS 资源组。
sudo pcs constraint order g-NW1_ASCS then g-NW1_AAS kind=Optional symmetrical=false
针对 PAS 和 AAS 实例的后配置
[1] 要在任何群集节点(sap-cl1 或 sap-cl2)上运行 PAS 和 AAS,需要复制这两个群集节点的
<sid>adm
的$HOME/.hdb
中的内容。# Check current content of /home/nw1adm/.hdb on sap-cl1 sap-cl1:nw1adm > ls -ltr $HOME/.hdb drwx------. 2 nw1adm sapsys 66 Aug 8 19:11 sappas drwx------. 2 nw1adm sapsys 84 Aug 8 19:12 sap-cl1 # Check current content of /home/nw1adm/.hdb on sap-cl2 sap-cl2:nw1adm > ls -ltr $HOME/.hdb total 0 drwx------. 2 nw1adm sapsys 64 Aug 8 20:25 sap-cl2 drwx------. 2 nw1adm sapsys 66 Aug 8 20:26 sapaas # As PAS and AAS is installed using virtual hostname, you need to copy virtual hostname directory in /home/nw1adm/.hdb # Copy sappas directory from sap-cl1 to sap-cl2 sap-cl1:nw1adm > scp -r sappas nw1adm@sap-cl2:/home/nw1adm/.hdb # Copy sapaas directory from sap-cl2 to sap-cl1. Execute the command from the same sap-cl1 host. sap-cl1:nw1adm > scp -r nw1adm@sap-cl2:/home/nw1adm/.hdb/sapaas .
[1] 为了确保在两个节点运行时,PAS 和 AAS 实例不会在同一节点上运行,请使用以下命令添加负场地租用约束:
sudo pcs constraint colocation add g-NW1_AAS with g-NW1_PAS score=-1000 sudo pcs node unstandby sap-cl1 sudo pcs resource enable g-NW1_PAS
-1000 分是为了确保如果只有一个节点可用,那么两个实例都会继续在另一个节点上运行。 如果要在这种情况下停止 AAS 实例,则可以使用
score=-INFINITY
来强制实施此条件。检查群集的状态。
sudo pcs status # Node List: # Online: [ sap-cl1 sap-cl2 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started sap-cl2 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started sap-cl2 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started sap-cl2 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started sap-cl2 # rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started sap-cl2 # Resource Group: g-NW1_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started sap-cl1 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started sap-cl1 # vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started sap-cl1 # rsc_sap_NW1_ERS01 (ocf::heartbeat:SAPInstance): Started sap-cl1 # Resource Group: g-NW1_PAS: # vip_NW1_PAS (ocf::heartbeat:IPaddr2): Started sap-cl1 # nc_NW1_PAS (ocf::heartbeat:azure-lb): Started sap-cl1 # fs_NW1_PAS (ocf::heartbeat:Filesystem): Started sap-cl1 # rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance): Started sap-cl1 # Resource Group: g-NW1_AAS: # vip_NW1_AAS (ocf::heartbeat:IPaddr2): Started sap-cl2 # nc_NW1_AAS (ocf::heartbeat:azure-lb): Started sap-cl2 # fs_NW1_AAS (ocf::heartbeat:Filesystem): Started sap-cl2 # rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance): Started sap-cl2
测试群集设
通过运行典型故障转移测试来全面测试 Pacemaker 群集。