你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 SAP 应用程序的 Azure NetApp 文档,适用于 RHEL 上的 SAP NetWeaver 的 Azure 虚拟机 HA

本文介绍如何部署虚拟机(VM)、配置 VM、安装群集框架,以及使用 Azure NetApp 文档 安装高可用性 SAP NetWeaver 7.50 系统。 在示例配置和安装命令中,ASCS 实例为数字 00,ERS 实例为 01,主应用程序实例 (PAS) 为 02,应用程序实例 (AAS) 为 03。 使用 SAP 系统 ID QAS。

文本不会详细介绍数据库层。

先决条件

请先阅读以下 SAP 说明和文档:

概述

SAP NetWeaver 中央服务的高可用性(HA)需要共享存储。 在 Red Hat Linux 上实现 HA 之前,必须构建单独的高可用性 GlusterFS 群集。

现在,可以使用部署在 Azure NetApp 文档 上的共享存储来实现 SAP NetWeaver HA。 对共享存储使用Azure NetApp 文档无需更多 GlusterFS 群集。 SAP NetWeaver 中心服务的 HA(ASCS/SCS)仍需要 Pacemaker。

Diagram that shows SAP NetWeaver high-availability overview.

SAP NetWeaver ASCS、SAP NetWeaver SCS、SAP NetWeaver ERS 和 SAP HANA 数据库使用虚拟主机名和虚拟 IP 地址。 在 Azure 上,需要负载均衡器才能使用虚拟 IP 地址。 建议使用 Azure 负载均衡器 Standard。 此处的配置显示了一个负载均衡器,其中包含:

  • ASCS 的前端 IP 地址 192.168.14.9。
  • 适用于 ERS 的前端 IP 地址 192.168.14.10。
  • ASCS 的探测端口 62000。
  • ERS 的探测端口 62101。

设置 Azure NetApp 文件基础结构

SAP NetWeaver 要求对传输和配置文件目录使用共享存储。 在继续设置 Azure NetApp 文件基础结构之前,请先通过 Azure NetApp 文件文档熟悉该基础结构。 检查所选的 Azure 区域是否提供 Azure NetApp 文件。 有关按 Azure 区域Azure NetApp 文档的可用性,请参阅 Azure 区域Azure NetApp 文档可用性。

Azure NetApp 文档在多个区域中可用Azure 区域

部署 Azure NetApp 文件资源

这些步骤假定已部署 Azure 虚拟网络。 必须在同一 Azure 虚拟网络或对等 Azure 虚拟网络中部署Azure NetApp 文档资源的Azure NetApp 文档资源和 VM。

  1. 按照说明创建Azure NetApp 文档帐户,在所选的 Azure 区域中创建Azure NetApp 文档帐户

  2. 按照有关如何设置Azure NetApp 文档容量池的说明设置Azure NetApp 文档容量池。 本文中介绍的 SAP NetWeaver 体系结构使用单个 Azure NetApp 文件容量池、高级 SKU。 建议为 Azure 上的 SAP NetWeaver 应用程序工作负荷Azure NetApp 文档 高级版 SKU。

  3. 按照有关如何将子网委托给Azure NetApp 文档的说明中所述,将子网委托给Azure NetApp 文档

  4. 按照说明为Azure NetApp 文档创建卷,部署Azure NetApp 文档卷。 将卷部署在指定的 Azure NetApp 文件子网中。 将自动分配 Azure NetApp 卷的 IP 地址。 Azure NetApp 文档资源和 Azure VM 必须位于同一 Azure 虚拟网络或对等互连的 Azure 虚拟网络中。 在此示例中,我们使用两个Azure NetApp 文档卷:sapQAS 和 transSAP。 装载到相应装入点的文件路径为 /usrsapqas/sapmntQAS 和 /usrsap qas/usrsapQASsys。

    1. 卷 sapQAS (nfs://192.168.24.5/usrsapqas/sapmntQAS
    2. 卷 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASascs)
    3. 卷 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASsys)
    4. 卷 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASers)
    5. 卷 transSAP (nfs://192.168.24.4/transSAP)
    6. 卷 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQAS pas
    7. 卷 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASaas)

在此示例中,我们为所有 SAP NetWeaver 文件系统使用了Azure NetApp 文档来演示如何使用Azure NetApp 文档。 不需要通过 NFS 装载的 SAP 文件系统也可以部署为 Azure 磁盘存储。 在此示例中,a-e 必须位于 Azure NetApp 文档 和 f-g 上(即 /usr/sap/QAS/D02 和 /usr/sap/QAS/D03)可以部署为 Azure 磁盘存储。

重要注意事项

考虑在 RHEL HA 体系结构上为 SAP NetWeaver Azure NetApp 文档时,请注意以下重要注意事项:

  • 最小容量池为 4 TiB。 可以增加 1 TiB 增量的容量池大小。
  • 最小卷大小为 100 GiB。
  • Azure NetApp 文档和将装载Azure NetApp 文档卷的所有 VM 必须位于同一 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 系统设置标准负载均衡器。 在设置负载均衡器期间,请考虑以下几点。

  1. 前端 IP 配置: 创建两个前端 IP,一个用于 ASCS,另一个用于 ERS。 选择与 ASCS/ERS 虚拟机相同的虚拟网络和子网。
  2. 后端池: 创建后端池并添加 ASCS 和 ERS VM。
  3. 入站规则: 创建两个负载均衡规则,一个用于 ASCS,另一个用于 ERS。 对两个负载均衡规则执行相同步骤。
    • 前端 IP 地址:选择前端 IP
    • 后端池:选择后端池
    • 检查“高可用性端口”
    • 协议:TCP
    • 运行状况探测:使用以下详细信息创建运行状况探测(适用于 ASCS 或 ERS)
      • 协议:TCP
      • 端口:[例如:620<实例-否。> 对于 ASCS,621<实例否> 。对于 ERS]
      • 间隔:5
      • 探测阈值:2
    • 空闲超时 (分钟):30
    • 选中“启用浮动 IP”

注意

不会遵循运行状况探测配置属性 numberOfProbes(在门户中也称为“运行不正常阈值”)。 因此,若要控制连续探测成功或失败的次数,请将属性“probeThreshold”设置为 2。 目前无法使用 Azure 门户 设置此属性,因此请使用 Azure CLIPowerShell 命令。

重要

负载均衡方案中的 NIC 辅助 IP 配置不支持浮动 IP。 有关详细信息,请参阅Azure 负载均衡器限制。 如果需要 VM 的更多 IP 地址,请部署第二个 NIC。

注意

当没有公共 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 上执行配置。

  1. 验证 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。

  1. [A] 验证 nfs4_disable_idmapping。 它应设置为 Y。若要创建所在的 nfs4_disable_idmapping 目录结构,请运行装载命令。 由于为内核和驱动程序保留访问权限,因此无法手动创建目录 /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
  1. [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
    
  2. [1] 在 Azure NetApp 文件卷中创建 SAP 目录。 暂时将Azure NetApp 文档卷装载到其中一个 VM 上,并创建 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
    
  3. [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
    
  4. [A] 安装 NFS 客户端和其他要求。

    sudo yum -y install nfs-utils resource-agents resource-agents-sap
    
  5. [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.
    
  6. [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  
    
  7. [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
    
  8. [A] 执行 RHEL OS 配置。

    根据 RHEL 版本,执行 SAP 说明200216727729993108316中提及的配置。

安装 SAP NetWeaver ASCS/ERS

  1. [1] 配置群集默认属性。

    pcs resource defaults resource-stickiness=1
    pcs resource defaults migration-threshold=3
    
  2. [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
    
  3. [1] 安装 SAP NetWeaver ASCS。

    使用映射到 ASCS 的负载均衡器前端配置的 IP 地址(例如,anftstsapvh、192.168.14.9)和用于探测负载均衡器的实例编号(例如 00)将 SAP NetWeaver ASCS 安装为第一个节点上的根。

    可以使用 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
    
  4. [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
    
  5. [2] 安装 SAP NetWeaver ERS。

    使用映射到 ERS 的负载均衡器前端配置的 IP 地址(例如,anftstsapers、192.168.14.10)和用于探测负载均衡器的实例编号(例如 01)将 SAP NetWeaver ERS 安装为第二个节点上的根目录。

    可以使用 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
    
  6. [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
      
  7. [A] 配置“保持连接”

    SAP NetWeaver 应用程序服务器和 ASCS/SCS 之间的通信是通过软件负载均衡器进行路由的。 负载均衡器在可配置的超时之后将断开非活动连接。 若要防止此操作,请使用 ENSA1 在 SAP NetWeaver ASCS/SCS 配置文件中设置参数,并在 ENSA1/ENSA2 的所有 SAP 服务器上更改 Linux 系统 keepalive 设置。 有关详细信息,请参阅 SAP 说明 1410736

    # Change the Linux system configuration
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  8. [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 中提到的步骤。

  9. [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
    
  10. [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
    
  11. [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
  1. [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
    
  2. [A] 创建 sapmnt 目录。

    sudo mkdir -p /sapmnt/QAS
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/QAS
    sudo chattr +i /usr/sap/trans
    
  3. [A] 安装 NFS 客户端和其他要求。

    sudo yum -y install nfs-utils uuidd
    
  4. [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
    
  5. [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
    
  6. [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
    
  7. [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 数据库实例安装。

    使用映射到数据库的负载均衡器前端配置的 IP 地址的虚拟主机名,将 SAP NetWeaver 数据库实例安装为根。

    可以使用 sapinst 参数 SAPINST_REMOTE_ACCESS_USER 来允许非 root 用户连接到 sapinst

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    

SAP NetWeaver 应用程序服务器安装

请按照这些步骤安装 SAP 应用程序服务器。

  1. 准备应用程序服务器。

    遵循前面 SAP NetWeaver 应用程序服务器准备一节中的步骤准备应用程序服务器。

  2. 安装 SAP NetWeaver 应用程序服务器。

    安装主服务器或其他的 SAP NetWeaver 应用程序服务器。

    可以使用 sapinst 参数 SAPINST_REMOTE_ACCESS_USER 来允许非 root 用户连接到 sapinst

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. 更新 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 群集。 有关详细信息,请参阅执行典型的故障转移测试

后续步骤