你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用适用于 SAP 应用程序的 Azure NetApp 文件实现 RHEL 上的 SAP NetWeaver 的 Azure 虚拟机 HA
本文介绍如何使用 Azure NetApp 文件部署虚拟机 (VM),配置 VM、安装群集框架,以及安装高可用性 SAP NetWeaver 7.50 系统。 在示例配置和安装命令中,ASCS 实例的编号为 00、ERS 实例的编号为 01、主应用程序实例 (PAS) 的编号为 02、应用程序实例 (AAS) 的编号为 03。 使用 SAP 系统 ID QAS。
文本不会详细介绍数据库层。
先决条件
请先阅读以下 SAP 说明和文档:
SAP 说明 1928533,其中包含:
- SAP 软件部署支持的 Azure VM 大小的列表。
- Azure VM 大小的重要容量信息。
- 支持的 SAP 软件、操作系统 (OS) 和数据库组合。
- Microsoft Azure 上 Windows 和 Linux 所需的 SAP 内核版本。
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 说明。
常规 Red Hat Enterprise Linux (RHEL) 文档:
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 [及更高版本] 高可用性群集)
概述
SAP NetWeaver 中心服务的高可用性 (HA) 需要共享存储。 到目前为止,若要在 Red Hat Linux 上实现 HA,需要生成单独的高可用性 GlusterFS 群集。
现在,可以使用部署在 Azure NetApp 文件上的共享存储来实现 SAP NetWeaver HA。 通过将 Azure NetApp 文件用于共享存储,无需额外的 GlusterFS 群集。 SAP NetWeaver 中心服务 (ASCS/SCS) 的 HA 仍需要 Pacemaker。
SAP NetWeaver ASCS、SAP NetWeaver SCS、SAP NetWeaver ERS 和 SAP HANA 数据库使用虚拟主机名和虚拟 IP 地址。 在 Azure 上,需要负载均衡器才能使用虚拟 IP 地址。 建议使用 Azure 负载均衡器标准。 此处的配置显示了一个负载均衡器,其中包含一个:
- 前端 IP 地址:192.168.14.9(用于 ASCS)。
- 前端 IP 地址:192.168.14.10(用于 ERS)。
- 探测端口 62000(用于 ASCS)。
- 探测端口 62101(用于 ERS)。
设置 Azure NetApp 文件基础结构
SAP NetWeaver 要求对传输和配置文件目录使用共享存储。 在继续设置 Azure NetApp 文件基础结构之前,请先通过 Azure NetApp 文件文档熟悉该基础结构。 检查所选的 Azure 区域是否提供 Azure NetApp 文件。 有关 Azure NetApp 文件在各 Azure 区域的可用性,请参阅按 Azure 区域划分的 Azure NetApp 文件可用性。
Azure NetApp 文件在多个 Azure 区域中可用。
部署 Azure NetApp 文件资源
这些步骤假定你已部署 Azure 虚拟网络。 Azure NetApp 文件资源和将装载 Azure NetApp 文件资源的 VM 必须部署在同一 Azure 虚拟网络或对等 Azure 虚拟网络中。
按照创建 Azure NetApp 文件帐户的说明,在选定的 Azure 区域中创建 Azure NetApp 文件帐户。
按照设置 Azure NetApp 文件容量池的说明,设置 Azure NetApp 文件容量池。 本文中介绍的 SAP NetWeaver 体系结构使用单个 Azure NetApp 文件容量池、高级 SKU。 对于 Azure 上的 SAP NetWeaver 应用程序工作负载,建议使用 Azure NetApp 文件高级 SKU。
按照有关如何将子网委派给 Azure NetApp 文件的说明,将子网委派给 Azure NetApp 文件。
按照为 Azure NetApp 文件创建卷的说明,部署 Azure NetApp 文件卷。 将卷部署在指定的 Azure NetApp 文件子网中。 将自动分配 Azure NetApp 卷的 IP 地址。 Azure NetApp 文件资源和 Azure VM 必须位于同一 Azure 虚拟网络或对等 Azure 虚拟网络中。 在此示例中,我们使用两个 Azure NetApp 文件卷:sapQAS 和 transSAP。 装载到相应装入点的文件路径是 /usrsapqas/sapmntQAS 和 /usrsapqas/usrsapQASsys。
- 卷 sapQAS (nfs://192.168.24.5/usrsapqas/sapmntQAS)
- 卷 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASascs)
- 卷 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASsys)
- 卷 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASers)
- 卷 transSAP (nfs://192.168.24.4/transSAP)
- 卷 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASpas)
- 卷 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASaas)
在此示例中,我们将 Azure NetApp 文件用于所有 SAP NetWeaver 文件系统,来演示如何使用 Azure NetApp 文件。 不需要通过 NFS 装载的 SAP 文件系统也可以部署为 Azure 磁盘存储。 在此示例中,a-e 必须位于 Azure NetApp 文件上,f-g(即 /usr/sap/QAS/D02 和 /usr/sap/QAS/D03)可以部署为 Azure 磁盘存储。
重要注意事项
在考虑将 Azure NetApp 文件用于 RHEL HA 上的 SAP NetWeaver 体系结构时,请注意以下重要注意事项:
- 最小容量池为 4 TiB。 可以以 1-TiB 为增量增加容量池大小。
- 最小卷大小为 100 GiB。
- Azure NetApp 文件和所有 VM(将装载 Azure NetApp 文件卷)必须位于同一 Azure 虚拟网络中或同一区域中的对等虚拟网络中。 现在支持通过同一区域中的虚拟网络对等互连进行 Azure NetApp 文件访问。 尚不支持通过全球对等互连进行 Azure NetApp 文件访问。
- 所选的虚拟网络必须具有一个委派给 Azure NetApp 文件的子网。
- Azure NetApp 文件卷的吞吐量和性能特征取决于卷配额和服务级别。 有关详细信息,请参阅 Azure NetApp 文件的服务级别。 调整 SAP Azure NetApp 卷的大小时,请确保生成的吞吐量满足应用程序要求。
- Azure NetApp 文件提供导出策略。 可以控制允许的客户端和访问类型(例如读/写和只读)。
- Azure NetApp 文件功能尚不能识别区域。 当前,Azure NetApp 文件功能未部署在 Azure 区域中的所有可用性区域中。 请注意某些 Azure 区域的潜在延迟影响。
- 可以将 Azure NetApp 文件卷部署为 NFSv3 或 NFSv4.1 卷。 SAP 应用程序层(ASCS/ERS、SAP 应用程序服务器)支持这两种协议。
准备基础结构
Azure 市场包含具有高可用性加载项的 SAP 限定的映像,这些映像可用于使用各种版本的 Red Hat 部署新 VM。
通过 Azure 门户手动部署 Linux VM
本文档假定你已部署 Azure 虚拟网络、子网和资源组。
为 SAP ASCS、ERS 和应用程序服务器部署 VM。 选择 SAP 系统支持的合适的 RHEL 映像。 可以通过任何一个可用性选项(虚拟机规模集、可用性区域或可用性集)来部署 VM。
配置 Azure 负载均衡器
在配置 VM 期间,你可以在网络部分中创建或选择现有的负载均衡器。 按照以下步骤为 SAP ASCS 和 SAP ERS 的高可用性设置配置标准负载均衡器。
按照创建负载均衡器指南,使用 Azure 门户为高可用性 SAP 系统设置标准负载均衡器。 在设置负载均衡器期间,请考虑以下几点。
- 前端 IP 配置:创建两个前端 IP,一个用于 ASCS,另一个用于 ERS。 选择与你的 ASCS/ERS 虚拟机相同的虚拟网络和子网。
- 后端池:创建后端池并添加 ASCS 和 ERS VM。
- 入站规则:创建两个负载均衡规则,一个用于 ASCS,另一个用于 ERS。 对两个负载均衡规则执行相同步骤。
- 前端 IP 地址:选择前端 IP
- 后端池:选择后端池
- 检查“高可用性端口”
- 协议:TCP
- 运行状况探测:创建具有以下详细信息的运行状况探测(适用于 ASCS 或 ERS)
- 协议:TCP
- 端口:[例如:对于 ASCS,为 620<Instance-no.>;对于 ERS,为 621<Instance-no.>]
- 间隔: 5
- 探测阈值: 2
- 空闲超时 (分钟):30
- 选中“启用浮动 IP”
注意
不会遵循运行状况探测配置属性 numberOfProbes(在门户中也称为“运行不正常阈值”)。 因此,要控制成功或失败的连续探测数量,请将属性“probeThreshold”设置为 2。 当前无法使用 Azure 门户设置此属性,请使用 Azure CLI 或 PowerShell 命令。
注意
如果没有公共 IP 地址的 VM 放在内部(无公共 IP 地址)标准负载均衡器的后端池中,则除非执行更多的配置以允许路由到公共终结点,否则就没有出站 Internet 连接。 有关如何实现出站连接的详细信息,请参阅 SAP 高可用性方案中使用 Azure 标准负载均衡器的 VM 的公共终结点连接。
重要
请勿在放置于 Azure 负载均衡器之后的 Azure VM 上启用 TCP 时间戳。 启用 TCP 时间戳会导致运行状况探测失败。 将参数 net.ipv4.tcp_timestamps 设置为 0。 有关详细信息,请参阅负载均衡器运行状况探测。
禁用 ID 映射(如果使用 NFSv4.1)
仅当使用带有 NFSv4.1 协议的 Azure NetApp 文件卷时,本部分中的说明才适用。 在要装载 Azure NetApp 文件 NFSv4.1 卷的所有 VM 上执行配置。
验证 NFS 域设置。 请确保域配置为默认的 Azure NetApp 文件域,即
defaultv4iddomain.com
,并且映射设置为“无人”。重要
确保在 VM 上的
/etc/idmapd.conf
中设置 NFS 域,以匹配 Azure NetApp 文件上的默认域配置:“defaultv4iddomain.com
”。 如果 NFS 客户端(即 VM)上的域配置和 NFS 服务器(即 Azure NetApp 配置)之间不匹配,则 VM 上已装载的 Azure NetApp 卷上文件的权限将显示为nobody
。sudo cat /etc/idmapd.conf # Example [General] Domain = defaultv4iddomain.com [Mapping] Nobody-User = nobody Nobody-Group = nobody
以下 [A] 前缀适用于 PAS 和 AAS。
[A] 验证
nfs4_disable_idmapping
。 它应设置为“Y”。若要创建nfs4_disable_idmapping
所在的目录结构,请运行 mount 命令。 无法在/sys/modules
下手动创建目录,因为访问权限是为内核和驱动程序保留的。# Check nfs4_disable_idmapping cat /sys/module/nfs/parameters/nfs4_disable_idmapping # If you need to set nfs4_disable_idmapping to Y mkdir /mnt/tmp mount 192.168.24.5:/sapQAS umount /mnt/tmp echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping # Make the configuration permanent echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
设置 (A)SCS
接下来,你将做好准备并安装 SAP ASCS 和 ERS 实例。
创建 Pacemaker 群集
按照在 Azure 中的 Red Hat Enterprise Linux 上设置 Pacemaker 的步骤,创建适用于此 (A)SCS 服务器的基本 Pacemaker。
准备 SAP NetWeaver 安装
以下各项带有任一前缀:
- [A] :适用于所有节点
- [1]:仅适用于节点 1
- [2]:仅适用于节点 2
[A] 设置主机名解析。
可以使用 DNS 服务器,或修改所有节点上的
/etc/hosts
文件。 此示例演示如何使用/etc/hosts
文件。 请替换以下命令中的 IP 地址和主机名:sudo vi /etc/hosts
将以下行插入
/etc/hosts
中。 根据环境更改 IP 地址和主机名。# IP address of cluster node 1 192.168.14.5 anftstsapcl1 # IP address of cluster node 2 192.168.14.6 anftstsapcl2 # IP address of the load balancer frontend configuration for SAP Netweaver ASCS 192.168.14.9 anftstsapvh # IP address of the load balancer frontend configuration for SAP Netweaver ERS 192.168.14.10 anftstsapers
[1] 在 Azure NetApp 文件卷中创建 SAP 目录。 在其中一个 VM 上暂时装载 Azure NetApp 文件卷,并创建 SAP 目录(文件路径)。
# mount temporarily the volume sudo mkdir -p /saptmp # If using NFSv3 sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 192.168.24.5:/sapQAS /saptmp # If using NFSv4.1 sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 192.168.24.5:/sapQAS /saptmp # create the SAP directories sudo cd /saptmp sudo mkdir -p sapmntQAS sudo mkdir -p usrsapQASascs sudo mkdir -p usrsapQASers sudo mkdir -p usrsapQASsys sudo mkdir -p usrsapQASpas sudo mkdir -p usrsapQASaas # unmount the volume and delete the temporary directory sudo cd .. sudo umount /saptmp sudo rmdir /saptmp
[A] 创建共享目录。
sudo mkdir -p /sapmnt/QAS sudo mkdir -p /usr/sap/trans sudo mkdir -p /usr/sap/QAS/SYS sudo mkdir -p /usr/sap/QAS/ASCS00 sudo mkdir -p /usr/sap/QAS/ERS01 sudo chattr +i /sapmnt/QAS sudo chattr +i /usr/sap/trans sudo chattr +i /usr/sap/QAS/SYS sudo chattr +i /usr/sap/QAS/ASCS00 sudo chattr +i /usr/sap/QAS/ERS01
[A] 安装 NFS 客户端和其他要求。
sudo yum -y install nfs-utils resource-agents resource-agents-sap
[A] 检查
resource-agents-sap
的版本。请确保已安装的
resource-agents-sap
包的版本至少为3.9.5-124.el7
。sudo yum info resource-agents-sap # Loaded plugins: langpacks, product-id, search-disabled-repos # Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast # Installed Packages # Name : resource-agents-sap # Arch : x86_64 # Version : 3.9.5 # Release : 124.el7 # Size : 100 k # Repo : installed # From repo : rhel-sap-for-rhel-7-server-rpms # Summary : SAP cluster resource agents and connector script # URL : https://github.com/ClusterLabs/resource-agents # License : GPLv2+ # Description : The SAP resource agents and connector script interface with # : Pacemaker to allow SAP instances to be managed in a cluster # : environment.
[A] 添加装载条目。
如果使用 NFSv3:
sudo vi /etc/fstab # Add the following lines to fstab, save and exit 192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3 192.168.24.5:/sapQAS/usrsapQASsys /usr/sap/QAS/SYS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3 192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
如果使用 NFSv4.1:
sudo vi /etc/fstab # Add the following lines to fstab, save and exit 192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys 192.168.24.5:/sapQAS/usrsapQASsys /usr/sap/QAS/SYS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys 192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
注意
装载卷时,请确保匹配 Azure NetApp 文件卷的 NFS 协议版本。 如果将 Azure NetApp 文件卷创建为 NFSv3 卷,请使用相应的 NFSv3 配置。 如果将 Azure NetApp 文件卷创建为 NFSv4.1 卷,请按照说明禁用 ID 映射,并确保使用相应的 NFSv4.1 配置。 在此示例中,Azure NetApp 文件卷被创建为 NFSv3 卷。
装载新共享。
sudo mount -a
[A] 配置 SWAP 文件。
sudo vi /etc/waagent.conf # 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 VM 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
重启代理以激活更改。
sudo service waagent restart
[A] 执行 RHEL OS 配置。
安装 SAP NetWeaver ASCS/ERS
[1] 配置群集默认属性。
pcs resource defaults resource-stickiness=1 pcs resource defaults migration-threshold=3
[1] 为 ASCS 实例创建虚拟 IP 资源和运行状况探测。
sudo pcs node standby anftstsapcl2 # If using NFSv3 sudo pcs resource create fs_QAS_ASCS Filesystem device='192.168.24.5:/sapQAS/usrsapQASascs' \ directory='/usr/sap/QAS/ASCS00' 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-QAS_ASCS # If using NFSv4.1 sudo pcs resource create fs_QAS_ASCS Filesystem device='192.168.24.5:/sapQAS/usrsapQASascs' \ directory='/usr/sap/QAS/ASCS00' fstype='nfs' force_unmount=safe options='sec=sys,nfsvers=4.1' \ op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=105 \ --group g-QAS_ASCS sudo pcs resource create vip_QAS_ASCS IPaddr2 \ ip=192.168.14.9 \ --group g-QAS_ASCS sudo pcs resource create nc_QAS_ASCS azure-lb port=62000 \ --group g-QAS_ASCS
确保群集状态正常,并且所有资源都已启动。 资源在哪个节点上运行并不重要。
sudo pcs status # Node anftstsapcl2: standby # Online: [ anftstsapcl1 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started anftstsapcl1 # Resource Group: g-QAS_ASCS # fs_QAS_ASCS (ocf::heartbeat:Filesystem): Started anftstsapcl1 # nc_QAS_ASCS (ocf::heartbeat:azure-lb): Started anftstsapcl1 # vip_QAS_ASCS (ocf::heartbeat:IPaddr2): Started anftstsapcl1
[1] 安装 SAP NetWeaver ASCS。
使用虚拟主机名在第一个节点上以根用户身份安装 SAP NetWeaver ASCS,其中该主机名映射到适用于 ASCS 的负载均衡器前端配置的 IP 地址,例如 anftstsapvh、192.168.14.9,以及用于负载均衡器探测的实例编号(例如 00)。
可以使用
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=<virtual_hostname>
如果安装过程无法在 /usr/sap/QAS/ASCS00 中创建子文件夹,请尝试设置 ASCS00 文件夹的所有者和组,然后重试。
sudo chown qasadm /usr/sap/QAS/ASCS00 sudo chgrp sapsys /usr/sap/QAS/ASCS00
[1] 为 ERS 实例创建虚拟 IP 资源和运行状况探测。
sudo pcs node unstandby anftstsapcl2 sudo pcs node standby anftstsapcl1 # If using NFSv3 sudo pcs resource create fs_QAS_AERS Filesystem device='192.168.24.5:/sapQAS/usrsapQASers' \ directory='/usr/sap/QAS/ERS01' 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-QAS_AERS # If using NFSv4.1 sudo pcs resource create fs_QAS_AERS Filesystem device='192.168.24.5:/sapQAS/usrsapQASers' \ directory='/usr/sap/QAS/ERS01' fstype='nfs' force_unmount=safe options='sec=sys,nfsvers=4.1' \ op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=105 \ --group g-QAS_AERS sudo pcs resource create vip_QAS_AERS IPaddr2 \ ip=192.168.14.10 \ --group g-QAS_AERS sudo pcs resource create nc_QAS_AERS azure-lb port=62101 \ --group g-QAS_AERS
确保群集状态正常,并且所有资源都已启动。 资源在哪个节点上运行并不重要。
sudo pcs status # Node anftstsapcl1: standby # Online: [ anftstsapcl2 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started anftstsapcl2 # Resource Group: g-QAS_ASCS # fs_QAS_ASCS (ocf::heartbeat:Filesystem): Started anftstsapcl2 # nc_QAS_ASCS (ocf::heartbeat:azure-lb): Started anftstsapcl2< # vip_QAS_ASCS (ocf::heartbeat:IPaddr2): Started anftstsapcl2 # Resource Group: g-QAS_AERS # fs_QAS_AERS (ocf::heartbeat:Filesystem): Started anftstsapcl2 # nc_QAS_AERS (ocf::heartbeat:azure-lb): Started anftstsapcl2 # vip_QAS_AERS (ocf::heartbeat:IPaddr2): Started anftstsapcl2
[2] 安装 SAP NetWeaver ERS。
使用虚拟主机名在第二个节点上以根用户身份安装 SAP NetWeaver ERS,其中该主机名映射到适用于 ERS 的负载均衡器前端配置的 IP 地址,例如 anftstsapers、192.168.14.10,以及用于负载均衡器探测的实例编号(例如 01)。
可以使用
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=<virtual_hostname>
如果安装过程无法在 /usr/sap/QAS/ERS01 中创建子文件夹,请尝试设置 ERS01 文件夹的所有者和组,然后重试。
sudo chown qaadm /usr/sap/QAS/ERS01 sudo chgrp sapsys /usr/sap/QAS/ERS01
[1] 调整 ASCS/SCS 和 ERS 实例配置文件。
ASCS/SCS 配置文件
sudo vi /sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh # 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/QAS/profile/QAS_ERS01_anftstsapers # 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] 配置“保持连接”。
SAP NetWeaver 应用程序服务器和 ASCS/SCS 之间的通信是通过软件负载均衡器进行路由的。 负载均衡器在可配置的超时之后将断开非活动连接。 若要防止此操作,请在 SAP NetWeaver ASCS/SCS 配置文件中设置参数(如果使用 ENSA1),并在所有 SAP 服务器上为 ENSA1/ENSA2 更改 Linux 系统
keepalive
设置。 有关详细信息,请参阅 SAP 说明 1410736。# Change the Linux system configuration sudo sysctl net.ipv4.tcp_keepalive_time=300
[A] 更新
/usr/sap/sapservices
文件。要防止
sapinit
启动脚本启动实例,必须从/usr/sap/sapservices
文件中注释掉由 Pacemaker 管理的所有实例。sudo vi /usr/sap/sapservices # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ASCS node. You should comment out the line(s). # LD_LIBRARY_PATH=/usr/sap/QAS/ASCS00/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/QAS/ASCS00/exe/sapstartsrv pf=/usr/sap/QAS/SYS/profile/QAS_ASCS00_anftstsapvh -D -u qasadm # systemctl --no-ask-password start SAPQAS_00 # sapstartsrv pf=/usr/sap/QAS/SYS/profile/QAS_ASCS00_anftstsapvh # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ASCS node. You should comment out the line(s). # LD_LIBRARY_PATH=/usr/sap/QAS/ERS01/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/QAS/ERS01/exe/sapstartsrv pf=/usr/sap/QAS/ERS01/profile/QAS_ERS01_anftstsapers -D -u qasadm # systemctl --no-ask-password start SAPQAS_01 # sapstartsrv pf=/usr/sap/QAS/ERS01/profile/QAS_ERS01_anftstsapers
重要
借助基于 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 群集资源。
根据是运行 ENSA1 还是 ENSA2 系统,选择相应的选项卡来定义资源。 SAP 在 SAP NetWeaver 7.52 中引入了对 ENSA2 的支持,包括复制。 从 ABAP 平台 1809 开始,默认会安装 ENSA2。 用于 ENSA2 支持。 有关排队服务器 2 的支持,请参阅 SAP 说明 2630416。
如果使用排队服务器 2 体系结构 (ENSA2),则安装资源代理 resource-agents-sap-4.1.1-12.el7.x86_64 或更新版本,并按此处所示定义资源:
sudo pcs property set maintenance-mode=true # If using NFSv3 sudo pcs resource create rsc_sap_QAS_ASCS00 SAPInstance \ InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \ 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-QAS_ASCS # If using NFSv4.1 sudo pcs resource create rsc_sap_QAS_ASCS00 SAPInstance \ InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \ op monitor interval=20 on-fail=restart timeout=105 \ op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-QAS_ASCS sudo pcs resource meta g-QAS_ASCS resource-stickiness=3000 # If using NFSv3 sudo pcs resource create rsc_sap_QAS_ERS01 SAPInstance \ InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" \ 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-QAS_AERS # If using NFSv4.1 sudo pcs resource create rsc_sap_QAS_ERS01 SAPInstance \ InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" \ AUTOMATIC_RECOVER=false IS_ERS=true \ op monitor interval=20 on-fail=restart timeout=105 op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-QAS_AERS sudo pcs constraint colocation add g-QAS_AERS with g-QAS_ASCS -5000 sudo pcs constraint location rsc_sap_QAS_ASCS00 rule score=2000 runs_ers_QAS eq 1 sudo pcs constraint order start g-QAS_ASCS then stop g-QAS_AERS kind=Optional symmetrical=false sudo pcs node unstandby anftstsapcl1 sudo pcs property set maintenance-mode=false
如果要从旧版本升级并切换到排队服务器 2,请参阅 SAP 说明 2641322。
注意
由于特定于协议的暂停(与 NFSv4.1 续租相关),因此需要采用在使用 NFSv4.1 时建议的更高超时。 有关详细信息,请参阅 NetApp 中的 NFS 最佳做法。 前述配置中的超时只是示例,可能需要根据特定的 SAP 设置进行调整。
确保群集状态正常,并且所有资源都已启动。 资源在哪个节点上运行并不重要。
sudo pcs status # Online: [ anftstsapcl1 anftstsapcl2 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started anftstsapcl2 # Resource Group: g-QAS_ASCS # fs_QAS_ASCS (ocf::heartbeat:Filesystem): Started anftstsapcl2 # nc_QAS_ASCS (ocf::heartbeat:azure-lb): Started anftstsapcl2 # vip_QAS_ASCS (ocf::heartbeat:IPaddr2): Started anftstsapcl2 # rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance): Started anftstsapcl2 # Resource Group: g-QAS_AERS # fs_QAS_AERS (ocf::heartbeat:Filesystem): Started anftstsapcl1 # nc_QAS_AERS (ocf::heartbeat:azure-lb): Started anftstsapcl1 # vip_QAS_AERS (ocf::heartbeat:IPaddr2): Started anftstsapcl1 # rsc_sap_QAS_ERS01 (ocf::heartbeat:SAPInstance): Started anftstsapcl1
[1] 运行以下步骤来配置
priority-fencing-delay
(仅适用于 pacemaker-2.0.4-6.el8 或更高版本)。注意
如果你有双节点群集,则可以选择配置
priority-fencing-delay
群集属性。 当发生脑裂情况时,此属性会在隔离具有较高总资源优先级的节点时引入更高的延迟。 有关详细信息,请参阅 Pacemaker 是否可以隔离运行最少资源的群集节点?。属性
priority-fencing-delay
适用于 pacemaker-2.0.4-6.el8 或更高版本。 如果要在现有群集上设置priority-fencing-delay
,请确保清除隔离设备中的pcmk_delay_max
设置。sudo pcs resource defaults update priority=1 sudo pcs resource update rsc_sap_QAS_ASCS00 meta priority=10 sudo pcs property set priority-fencing-delay=15s
[A] 在两个节点上为 ASCS 和 ERS 添加防火墙规则。
# Probe Port of ASCS sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp # Probe Port of ERS sudo firewall-cmd --zone=public --add-port={62101,3201,3301,50113,50114,50116}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62101,3201,3301,50113,50114,50116}/tcp
SAP NetWeaver 应用程序服务器准备
某些数据库要求在应用程序服务器上运行数据库实例安装。 请准备好应用程序服务器 VM,使之能够在这些场合下使用。
以下步骤假定在与 ASCS/SCS 和 HANA 服务器不同的服务器上安装应用程序服务器。 否则,则无需进行某些步骤(如配置主机名解析)。
以下各项带有任一前缀:
- [A]:适用于 PAS 和 AAS
- [P]:仅适用于 PAS
- [S]:仅适用于 AAS
[A] 设置主机名解析。
可以使用 DNS 服务器,或修改所有节点上的
/etc/hosts
文件。 此示例演示如何使用/etc/hosts
文件。 请替换以下命令中的 IP 地址和主机名:sudo vi /etc/hosts
将以下行插入
/etc/hosts
中。 根据环境更改 IP 地址和主机名。# IP address of the load balancer frontend configuration for SAP NetWeaver ASCS 192.168.14.9 anftstsapvh # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS ERS 192.168.14.10 anftstsapers 192.168.14.7 anftstsapa01 192.168.14.8 anftstsapa02
[A] 创建
sapmnt
目录。sudo mkdir -p /sapmnt/QAS sudo mkdir -p /usr/sap/trans sudo chattr +i /sapmnt/QAS sudo chattr +i /usr/sap/trans
[A] 安装 NFS 客户端和其他要求。
sudo yum -y install nfs-utils uuidd
[A] 添加装载条目。
如果使用 NFSv3:
sudo vi /etc/fstab # Add the following lines to fstab, save and exit 192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3 192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
如果使用 NFSv4.1:
sudo vi /etc/fstab # Add the following lines to fstab, save and exit 192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys 192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
装载新共享。
sudo mount -a
[P] 创建并装载 PAS 目录。
如果使用 NFSv3:
sudo mkdir -p /usr/sap/QAS/D02 sudo chattr +i /usr/sap/QAS/D02 sudo vi /etc/fstab # Add the following line to fstab 92.168.24.5:/sapQAS/usrsapQASpas /usr/sap/QAS/D02 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3 # Mount sudo mount -a
如果使用 NFSv4.1:
sudo mkdir -p /usr/sap/QAS/D02 sudo chattr +i /usr/sap/QAS/D02 sudo vi /etc/fstab # Add the following line to fstab 92.168.24.5:/sapQAS/usrsapQASpas /usr/sap/QAS/D02 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys # Mount sudo mount -a
[S] 创建并装载 AAS 目录。
如果使用 NFSv3:
sudo mkdir -p /usr/sap/QAS/D03 sudo chattr +i /usr/sap/QAS/D03 sudo vi /etc/fstab # Add the following line to fstab 92.168.24.5:/sapQAS/usrsapQASaas /usr/sap/QAS/D03 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3 # Mount sudo mount -a
如果使用 NFSv4.1:
sudo mkdir -p /usr/sap/QAS/D03 sudo chattr +i /usr/sap/QAS/D03 sudo vi /etc/fstab # Add the following line to fstab 92.168.24.5:/sapQAS/usrsapQASaas /usr/sap/QAS/D03 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys # Mount sudo mount -a
[A] 配置 SWAP 文件。
sudo vi /etc/waagent.conf # 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 VM 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
重启代理以激活更改。
sudo service waagent restart
安装数据库
在此示例中,SAP NetWeaver 安装在 SAP HANA 上。 可以使用每个受支持的数据库完成此安装。 有关如何在 Azure 中安装 SAP HANA 的详细信息,请参阅 Red Hat Enterprise Linux 上 Azure VM 的 SAP HANA 的高可用性。 有关支持的数据库列表,请参阅 SAP 说明 1928533。
运行 SAP 数据库实例安装。
使用虚拟主机名以根用户身份安装 SAP NetWeaver 数据库实例,其中的主机名映射到适用于数据库的负载均衡器前端配置的 IP 地址。
可以使用
sapinst
参数SAPINST_REMOTE_ACCESS_USER
来允许非 root 用户连接到sapinst
。sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
SAP NetWeaver 应用程序服务器安装
请按照这些步骤安装 SAP 应用程序服务器。
准备应用程序服务器。
遵循前面 SAP NetWeaver 应用程序服务器准备一节中的步骤准备应用程序服务器。
安装 SAP NetWeaver 应用程序服务器。
安装主服务器或其他的 SAP NetWeaver 应用程序服务器。
可以使用
sapinst
参数SAPINST_REMOTE_ACCESS_USER
来允许非 root 用户连接到sapinst
。sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
更新 SAP HANA 安全存储。
更新 SAP HANA 安全存储以指向 SAP HANA 系统复制设置的虚拟名称。
运行以下命令将条目列为 <sapsid>adm。
hdbuserstore List
所有条目都应列出,且类似于:
DATA FILE : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.DAT KEY FILE : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.KEY KEY DEFAULT ENV : 192.168.14.4:30313 USER: SAPABAP1 DATABASE: QAS
输出显示,默认条目的 IP 地址正在指向 VM 而不是负载均衡器的 IP 地址。 需要更改此条目,使其指向负载均衡器的虚拟主机名。 请确保使用相同端口(上一个输出中为“30313”)和数据库名称(上一个输出中为“QAS”)。
su - qasadm hdbuserstore SET DEFAULT qasdb:30313@QAS SAPABAP1 <password of ABAP schema>
测试群集设
全面测试 Pacemaker 群集。 有关详细信息,请参阅执行典型的故障转移测试。
后续步骤
- 若要部署 PAS 和 AAS 实例与 RHEL 上的 SAP NetWeaver HA 群集一起部署的成本优化方案,请参阅在 RHEL 上使用 SAP ASCS/SCS 高可用性 VM 安装 SAP 对话实例。
- 请参阅适用于 SAP 应用程序多 SID 的 RHEL 上 Azure VM 中的 SAP NW 的 HA 指南。
- 请参阅适用于 SAP 的 Azure 虚拟机规划和实施。
- 请参阅适用于 SAP 的 Azure 虚拟机部署。
- 请参阅适用于 SAP 的 Azure 虚拟机 DBMS 部署。
- 若要了解如何为 Azure 上的 SAP HANA(大型实例)建立 HA 并规划灾难恢复,请参阅 Azure 上的 SAP HANA(大型实例)的高可用性和灾难恢复。
- 若要了解如何为 Azure 虚拟机上的 SAP HANA 建立 HA 并规划灾难恢复,请参阅 Azure 虚拟机上的 SAP HANA 的高可用性。