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

使用适用于 SAP 应用程序的 Azure NetApp 文件实现 Red Hat Enterprise Linux 上的 SAP NetWeaver 的 Azure 虚拟机高可用性

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

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

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

概述

SAP Netweaver 中心服务的高可用性 (HA) 需要共享存储。 当前,若要在 Red Hat Linux 上实现该目标,需要构建单独的高可用性 GlusterFS 群集。

现在,可以使用部署在 Azure NetApp 文件上的共享存储来实现 SAP Netweaver HA。 通过将 Azure NetApp 文件用于共享存储,无需额外的 GlusterFS 群集。 SAP Netweaver 中心服务 (ASCS/SCS) 的 HA 仍需要 Pacemaker。

SAP NetWeaver 高可用性概述

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

  • 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 NetApp 文件资源和 VM(将装载 Azure NetApp 文件资源)必须部署在同一 Azure 虚拟网络或对等 Azure 虚拟网络中。

  1. 按照创建 NetApp 帐户的说明,在选定的 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、/usrsapqas/usrsapQASsys 等。

    1. 卷 sapQAS (nfs://192.168.24.5/usrsapqas/sapmntQAS)
    2. 卷 sap QAS (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/usrsapQASpas)
    7. 卷 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 高可用性体系结构上的 SAP Netweaver 时,请注意以下重要注意事项:

  • 最小容量池为 4 TiB。 容量池大小可以以 1 TiB 增量进行增加。
  • 最小卷大小为 100 GiB
  • Azure NetApp 文件和所有虚拟机(将装载 Azure NetApp 文件卷)必须位于同一 Azure 虚拟网络中或同一区域中的对等虚拟网络中。 现在支持通过同一区域中的 VNET 对等互连进行 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 应用程序服务器)支持这两种协议。

设置 (A)SCS

在此示例中,资源是通过 Azure 门户手动部署的。

通过 Azure 门户手动部署 Linux

首先,需要创建 Azure NetApp 文件卷。 部署 VM。 之后,创建一个负载均衡器并使用后端池中的虚拟机。

  1. 创建负载均衡器(内部,标准):
    1. 创建前端 IP 地址
      1. ASCS 的 IP 地址 192.168.14.9
        1. 打开负载均衡器,选择前端 IP 池,并单击“添加”
        2. 输入新前端 IP 池的名称(例如,“frontend.QAS.ASCS”)
        3. 将“分配”设置为“静态”并输入 IP 地址(例如,“192.168.14.9”)
        4. 单击“确定”
      2. ASCS ERS 的 IP 地址 192.168.14.10
        • 重复上述“a”下的步骤,为 ERS 创建 IP 地址(例如,“192.168.14.10”和“frontend.QAS.ERS”)
    2. 创建后端池
      1. 打开负载均衡器,单击后端池,并单击“添加”
      2. 输入新后端池的名称(例如,“backend.QAS”)
      3. 单击“添加虚拟机”。
      4. 选择“虚拟机”。
      5. 选择 (A)SCS 群集的虚拟机及其 IP 地址。
      6. 单击“添加”
    3. 创建运行状况探测
      1. ASCS 的端口 62000
        1. 打开负载均衡器,选择运行状况探测,并单击“添加”
        2. 输入新运行状况探测的名称(例如,“health.QAS.ASCS”)
        3. 选择 TCP 作为协议,选择端口 62000,将“间隔”保留为 5,将“不正常阈值”保留为 2
        4. 单击“确定”
      2. ASCS ERS 的端口 62101
        • 重复上述“c”下的步骤,为 ERS 创建运行状况探测(例如,62101 和“health.QAS.ERS”)
    4. 负载均衡规则
      1. ASCS 的负载均衡规则
        1. 打开负载均衡器,选择“负载均衡规则”,然后单击“添加”
        2. 输入新负载均衡器规则的名称(例如,“lb.QAS.ASCS”)
        3. 选择先前创建的 ASCS 的前端 IP 地址、后端池和运行状况探测(例如,“frontend.QAS.ASCS”、“backend.QAS”和“health.QAS.ASCS”)
        4. 选择“HA 端口”
        5. 确保启用浮动 IP
        6. 单击“确定”
        • 重复上述步骤,为 ERS 创建负载均衡规则(例如,“lb.QAS.ERS”)
  2. 或者,只有当方案需要(内部的)基本负载均衡器时,才应改为执行以下配置步骤来创建基本负载均衡器:
    1. 创建前端 IP 地址

      1. ASCS 的 IP 地址 192.168.14.9
        1. 打开负载均衡器,选择前端 IP 池,并单击“添加”
        2. 输入新前端 IP 池的名称(例如,“frontend.QAS.ASCS”)
        3. 将“分配”设置为“静态”并输入 IP 地址(例如,“192.168.14.9”)
        4. 单击“确定”
      2. ASCS ERS 的 IP 地址 192.168.14.10
        • 重复上述“a”下的步骤,为 ERS 创建 IP 地址(例如,“192.168.14.10”和“frontend.QAS.ERS”)
    2. 创建后端池

      1. 打开负载均衡器,单击后端池,并单击“添加”
      2. 输入新后端池的名称(例如,“backend.QAS”)
      3. 单击“添加虚拟机”。
      4. 选择先前为 ASCS 创建的可用性集
      5. 选择 (A)SCS 群集的虚拟机
      6. 单击“确定”
    3. 创建运行状况探测

      1. ASCS 的端口 62000
        1. 打开负载均衡器,选择运行状况探测,并单击“添加”
        2. 输入新运行状况探测的名称(例如,“health.QAS.ASCS”)
        3. 选择 TCP 作为协议,选择端口 62000,将“间隔”保留为 5,将“不正常阈值”保留为 2
        4. 单击“确定”
      2. ASCS ERS 的端口 62101
        • 重复上述“c”下的步骤,为 ERS 创建运行状况探测(例如,62101 和“health.QAS.ERS”)
    4. 负载均衡规则

      1. ASCS 的 3200 TCP
        1. 打开负载均衡器,选择“负载均衡规则”,然后单击“添加”
        2. 输入新负载均衡器规则的名称(例如,“lb.QAS.ASCS.3200”)
        3. 选择先前创建的 ASCS 的前端 IP 地址、后端池和运行状况探测(例如,“frontend.QAS.ASCS”)
        4. 将协议保留为“TCP”,输入端口 3200
        5. 将空闲超时增大到 30 分钟
        6. 确保启用浮动 IP
        7. 单击“确定”
      2. ASCS 的其他端口
        • 针对 ASCS 的端口 3600、3900、8100、50013、50014、50016 和 TCP 重复上述“d”下的步骤
      3. ASCS ERS 的其他端口
        • 针对 ASCS ERS 的端口 3201、3301、50113、50114、50116 和 TCP 重复上述“d”下的步骤

      重要

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

      注意

      如果没有公共 IP 地址的 VM 被放在内部(无公共 IP 地址)标准 Azure 负载均衡器的后端池中,就不会有出站 Internet 连接,除非执行额外的配置来允许路由到公共终结点。 有关如何实现出站连接的详细信息,请参阅 SAP 高可用性方案中使用 Azure 标准负载均衡器的虚拟机的公共终结点连接

      重要

      请勿在放置于 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
     
  2. [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
     

    有关如何更改 nfs4_disable_idmapping 参数的详细信息,请参阅 https://access.redhat.com/solutions/1749883

创建 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 目录。
    在其中一个 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,vers=3,tcp 192.168.24.5:/sapQAS /saptmp
     # If using NFSv4.1
     sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=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,vers=3
     192.168.24.5:/sapQAS/usrsapQASsys /usr/sap/QAS/SYS nfs rw,hard,rsize=65536,wsize=65536,vers=3
     192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,vers=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,vers=4.1,sec=sys
     192.168.24.5:/sapQAS/usrsapQASsys /usr/sap/QAS/SYS nfs rw,hard,rsize=65536,wsize=65536,vers=4.1,sec=sys
     192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,vers=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] 配置交换文件

    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 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
    

    重新启动代理以激活更改

    sudo service waagent restart
    
  8. [A] RHEL 配置

    按照 SAP 说明 2002167 中的说明配置 RHEL

安装 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,vers=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)的虚拟主机名,在第一个节点上以 root 身份安装 SAP NetWeaver ASCS。

    可以使用 sapinst 参数 SAPINST_REMOTE_ACCESS_USER 允许非根用户连接到 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,vers=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)的虚拟主机名,在第二个节点上以 root 身份安装 SAP NetWeaver ERS。

    可以使用 sapinst 参数 SAPINST_REMOTE_ACCESS_USER 允许非根用户连接到 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] 配置 Keep Alive

    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
    
  8. [A] 更新 /usr/sap/sapservices 文件

    要防止 sapinit 启动脚本启动实例,必须从 /usr/sap/sapservices 文件中注释掉由 Pacemaker 管理的所有实例。

    sudo vi /usr/sap/sapservices
    
    # On the node where you installed the ASCS, comment out the following line
    # 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
    
    # On the node where you installed the ERS, comment out the following line
    # 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
    
  9. [1] 创建 SAP 群集资源

    如果使用排队服务器 1 体系结构 (ENSA1),请按如下所示定义资源:

     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
    

    从 SAP NW 7.52 开始,SAP 引入了对排队服务器 2 的支持,包括复制。 从 ABAP 平台 1809 开始,系统将默认安装排队服务器 2。 有关排队服务器 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 \
    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 \
    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 resource meta rsc_sap_QAS_ERS01  resource-stickiness=3000
    
    sudo pcs constraint colocation add g-QAS_AERS with g-QAS_ASCS -5000
    sudo pcs constraint order start g-QAS_ASCS then start g-QAS_AERS kind=Optional symmetrical=false
    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. [A] 在两个节点上添加 ASCS 和 ERS 的防火墙规则在两个节点上添加 ASCS 和 ERS 的防火墙规则。

    # Probe Port of ASCS
    sudo firewall-cmd --zone=public --add-port=62000/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=62000/tcp
    sudo firewall-cmd --zone=public --add-port=3200/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=3200/tcp
    sudo firewall-cmd --zone=public --add-port=3600/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=3600/tcp
    sudo firewall-cmd --zone=public --add-port=3900/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=3900/tcp
    sudo firewall-cmd --zone=public --add-port=8100/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=8100/tcp
    sudo firewall-cmd --zone=public --add-port=50013/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=50013/tcp
    sudo firewall-cmd --zone=public --add-port=50014/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=50014/tcp
    sudo firewall-cmd --zone=public --add-port=50016/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=50016/tcp
    # Probe Port of ERS
    sudo firewall-cmd --zone=public --add-port=62101/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=62101/tcp
    sudo firewall-cmd --zone=public --add-port=3201/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=3201/tcp
    sudo firewall-cmd --zone=public --add-port=3301/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=3301/tcp
    sudo firewall-cmd --zone=public --add-port=50113/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=50113/tcp
    sudo firewall-cmd --zone=public --add-port=50114/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=50114/tcp
    sudo firewall-cmd --zone=public --add-port=50116/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=50116/tcp
    

SAP NetWeaver 应用程序服务器准备

某些数据库要求在应用程序服务器上执行数据库实例安装。 请准备好应用程序服务器虚拟机,使之能够在这些场合下使用。

以下步骤假定在与 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 目录创建 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,vers=3
    192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,vers=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,vers=4.1,sec=sys
    192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,vers=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,vers=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,vers=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,vers=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,vers=4.1,sec=sys
    
    # Mount
    sudo mount -a
    
  7. [A] 配置交换文件

    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 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
    

    重新启动代理以激活更改

    sudo service waagent restart
    

安装数据库

在此示例中,SAP NetWeaver 安装在 SAP HANA 上。 可以使用每个受支持的数据库完成此安装。 有关如何在 Azure 中安装 SAP HANA 的详细信息,请参阅 Red Hat Enterprise Linux 上 Azure VM 的 SAP HANA 的高可用性。 有关支持的数据库列表,请参阅 SAP 说明 1928533

  1. 运行 SAP 数据库实例安装

    使用映射到适用于数据库的负载均衡器前端配置的 IP 地址的虚拟主机名以 root 身份安装 SAP NetWeaver 数据库实例。

    可以使用 sapinst 参数 SAPINST_REMOTE_ACCESS_USER 允许非根用户连接到 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 允许非根用户连接到 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 地址正在指向虚拟机而不是负载均衡器的 IP 地址。 需将此条目更改为指向负载均衡器的虚拟主机名。 请确保使用相同的端口(上述输出中为“30313”)和数据库名称(上述输出中为“QAS”)!

    su - qasadm
    hdbuserstore SET DEFAULT qasdb:30313@QAS SAPABAP1 <password of ABAP schema>
    

测试群集设

  1. 手动迁移 ASCS 实例

    开始测试之前的资源状态:

     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
         rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
     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
         rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    

    运行以下命令作为根,迁移 ASCS 实例。

    [root@anftstsapcl1 ~]# pcs resource move rsc_sap_QAS_ASCS00
    
    [root@anftstsapcl1 ~]# pcs resource clear rsc_sap_QAS_ASCS00
    
    # Remove failed actions for the ERS that occurred as part of the migration
    [root@anftstsapcl1 ~]# pcs resource cleanup rsc_sap_QAS_ERS01
    

    测试之后的资源状态:

    rsc_st_azure    (stonith:fence_azure_arm):      Started anftstsapcl1
     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
    
  2. 模拟节点故障

    开始测试之前的资源状态:

    rsc_st_azure    (stonith:fence_azure_arm):      Started anftstsapcl1
     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
    

    在其中运行 ASCS 实例的节点上运行以下命令作为根

    [root@anftstsapcl2 ~]# echo b > /proc/sysrq-trigger
    

    节点再次启动后的状态应类似如下所示。

    Online: [ anftstsapcl1 anftstsapcl2 ]
    
    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
         rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
     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
         rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    
    Failed Actions:
    * rsc_sap_QAS_ERS01_monitor_11000 on anftstsapcl1 'not running' (7): call=45, status=complete, exitreason='',
    

    使用以下命令清除失败的资源。

    [root@anftstsapcl1 ~]# pcs resource cleanup rsc_sap_QAS_ERS01
    

    测试之后的资源状态:

    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
         rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
     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
         rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    
  3. 终止消息服务器进程

    开始测试之前的资源状态:

    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
         rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
     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
         rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    

    运行以下命令作为根,确定消息服务器的进程并将其终止。

    [root@anftstsapcl1 ~]# pgrep -f ms.sapQAS | xargs kill -9
    

    如果仅终止消息服务器一次,则 sapstart 会重启它。 如果经常终止消息服务器,Pacemaker 会最终将 ASCS 实例移动到另一个节点。 运行以下命令作为根,清除测试后的 ASCS 和 ERS 实例的资源状态。

    [root@anftstsapcl1 ~]# pcs resource cleanup rsc_sap_QAS_ASCS00
    [root@anftstsapcl1 ~]# pcs resource cleanup rsc_sap_QAS_ERS01
    

    测试之后的资源状态:

    rsc_st_azure    (stonith:fence_azure_arm):      Started anftstsapcl1
     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
    
  4. 终止排队服务器进程

    开始测试之前的资源状态:

    rsc_st_azure    (stonith:fence_azure_arm):      Started anftstsapcl1
     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
    

    在运行 ASCS 实例的节点上,运行以下命令作为根,以终止排队服务器。

    #If using ENSA1
    [root@anftstsapcl2 ~]# pgrep -f en.sapQAS | xargs kill -9
    #If using ENSA2
    [root@anftstsapcl2 ~]# pgrep -f enq.sapQAS | xargs kill -9
    

    在使用 ENSA1 的情况下,ASCS 实例应会立即故障转移到另一个节点。 ASCS 实例启动后,ERS 实例也会进行故障转移。 运行以下命令作为根,清除测试后的 ASCS 和 ERS 实例的资源状态。

    [root@anftstsapcl2 ~]# pcs resource cleanup rsc_sap_QAS_ASCS00
    [root@anftstsapcl2 ~]# pcs resource cleanup rsc_sap_QAS_ERS01
    

    测试之后的资源状态:

    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
         rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
     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
         rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    
  5. 终止排队复制服务器进程

    开始测试之前的资源状态:

    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
         rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
     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
         rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    

    在运行 ERS 实例的节点上,运行以下命令作为根,以终止排队复制服务器。

    #If using ENSA1
    [root@anftstsapcl2 ~]# pgrep -f er.sapQAS | xargs kill -9
    #If using ENSA2
    [root@anftstsapcl2 ~]# pgrep -f enqr.sapQAS | xargs kill -9
    

    如果仅运行该命令一次,则 sapstart 会重启该进程。 如果经常运行此命令,则 sapstart 不会重启该进程,并且资源会处于停止状态。 运行以下命令作为根,清除测试后的 ERS 实例的资源状态。

    [root@anftstsapcl2 ~]# pcs resource cleanup rsc_sap_QAS_ERS01
    

    测试之后的资源状态:

    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
         rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
     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
         rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    
  6. 终止排队 sapstartsrv 进程

    开始测试之前的资源状态:

    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
         rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
     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
         rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    

    在运行 ASCS 的节点上运行以下命令作为根。

    [root@anftstsapcl1 ~]# pgrep -fl ASCS00.*sapstartsrv
    # 59545 sapstartsrv
    
    [root@anftstsapcl1 ~]# kill -9 59545
    

    作为监视的一部分,应始终由 Pacemaker 资源代理重新启动 sapstartsrv 进程。 测试之后的资源状态:

    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
         rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
     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
         rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    

后续步骤