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

使用 Azure 文件存储上的 NFS 在 RHEL 的 Azure VM 上实现 SAP NetWeaver 的高可用性

本文介绍如何使用 Azure 文件存储上的 NFS 部署和配置虚拟机 (VM)、安装群集框架,以及安装高可用性 (HA) SAP NetWeaver 系统。 示例配置使用在 Red Hat Enterprise Linux (RHEL) 运行的 VM。

先决条件

概述

若要部署 SAP NetWeaver 应用程序层,需要在环境中使用共享目录(例如 /sapmnt/SID/usr/sap/trans)。 此外,在部署 HA SAP 系统时,需要保护和提供高可用性文件系统,例如 /sapmnt/SID/usr/sap/SID/ASCS

现在,可将这些文件系统放在 Azure 文件存储上的 NFS 上。 Azure 文件存储上的 NFS 是一种高可用性存储解决方案。 此解决方案提供同步区域冗余存储 (ZRS),适用于跨可用性区域部署的 SAP ASCS/ERS 实例。 仍然需要 Pacemaker 群集来保护单一故障点组件,例如 SAP NetWeaver 中心服务 (ASCS/SCS)。

示例配置和安装命令使用以下实例编号:

实例名称 实例编号
ABAP SAP 中心服务 (ASCS) 00
ERS 01
ABAP SAP 中心服务 (ASCS) 02
其他应用程序服务器 (AAS) 03
SAP 系统标识符 NW1

Diagram that shows SAP NetWeaver high availability with NFS on Azure Files.

此图显示了一个典型的 SAP NetWeaver HA 体系结构。 “sapmnt”和“saptrans”文件系统部署在 Azure 文件存储上的 NFS 共享上。 SAP 中心服务受 Pacemaker 群集保护。 群集 VM 位于 Azure 负载均衡器的实例后面。 NFS 共享通过专用终结点装载。

准备基础结构

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
      • 端口:[例如:对于 ASCS,为 620<Instance-no.>;对于 ERS,为 621<Instance-no.>]
      • 间隔: 5
      • 探测阈值: 2
    • 空闲超时 (分钟):30
    • 选中“启用浮动 IP”

注意

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

重要

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

注意

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

重要

请勿在放置于负载均衡器之后的 Azure VM 上启用 TCP 时间戳。 启用 TCP 时间戳会导致运行状况探测失败。 将参数 net.ipv4.tcp_timestamps 设置为 0。 有关详细信息,请参阅负载均衡器运行状况探测

部署 Azure 文件存储帐户和 NFS 共享

Azure 文件存储上的 NFS 在 Azure 文件存储高级存储上运行。 设置 Azure 文件存储上的 NFS 之前,请查看如何创建 NFS 共享

Azure 区域提供两种冗余选项:

检查所选的 Azure 区域是否向 Azure 文件存储上的 NFS 4.1 提供适当的冗余。 在“高级文件存储”下查看按 Azure 区域显示的 Azure 文件存储可用性。 如果 ZRS 对你的方案有帮助,请验证你所在的 Azure 区域是否支持使用 ZRS 的高级文件共享

建议通过 Azure 专用终结点访问 Azure 存储帐户。 确保在同一 Azure 虚拟网络或对等互连的 Azure 虚拟网络中部署 Azure 文件存储帐户终结点和 VM(需要在其中装载 NFS 共享)。

  1. 部署名为 sapafsnfs 的 Azure 文件存储的存储帐户。 在本例,我们使用 ZRS。 如果你不熟悉该过程,请参阅 Azure 门户的创建存储帐户

  2. 在“基本信息”选项卡上使用以下设置:

    1. 输入 sapafsnfs 作为存储帐户名称。
    2. 对于“性能”,请选择“高级” 。
    3. 对于“高级帐户类型”,请选择“FileStorage” 。
    4. 对于“复制”,请选择“区域冗余(ZRS)”
  3. 选择下一步

  4. 在“高级”选项卡中,清除“REST API 操作要求安全传输”。 如果不清除此选项,则无法将 NFS 共享装载到 VM。 装载操作将超时。

  5. 选择“下一步”。

  6. 在“网络”部分,配置以下设置:

    1. 在“网络连接”下,为“连接方法”选择“专用终结点”。
    2. 在“专用终结点”下,选择“添加专用终结点” 。
  7. 在“创建专用终结点”窗格中,选择你的订阅、资源组和位置。 对于“名称”,请输入 sapafsnfs_pe。 对于“存储子资源”,请选择“文件” 。 在“网络”下,为“虚拟网络”选择要使用的虚拟网络和子网。 同样,可以使用 SAP VM 所在的虚拟网络或对等互连的虚拟网络。 在“专用 DNS 集成”下,对于“与专用 DNS 区域集成”,接受默认选项“是” 。 请确保选择专用 DNS 区域。 选择“确定”。

  8. 还是在“网络”选项卡下,选择“下一步” 。

  9. 在“数据保护”选项卡上,保留所有默认设置。

  10. 选择“查看 + 创建”,验证你的配置。

  11. 等待验证完成。 解决所有问题,然后再继续。

  12. 在“查看 + 创建”选项卡上,选择“创建”。

接下来,在创建的存储帐户中部署 NFS 共享。 在此示例中,有两个数据集快照 - sapnw1saptrans

  1. 登录 Azure 门户
  2. 选择或搜索存储帐户。
  3. 在“存储帐户”页上,选择“sapafsnfs” 。
  4. 在 sapafsnfs 的资源菜单中的“数据存储”下,选择“文件共享”
  5. 在“文件共享”页上,选择“文件共享” 。
    1. 输入 sapnw1saptrans 作为名称。
    2. 选择适当的共享大小。 例如,128 GB。 考虑共享上存储的数据大小、IOPS 和吞吐量要求。 有关详细信息,请参阅 Azure 文件共享目标
    3. 选择“NFS”作为协议。
    4. 选择“无根 Squash”。 否则,在 VM 上装载共享时,将看不到文件所有者或组。

重要

上述共享大小只是一个示例。 请确保适当调整共享大小。 请根据共享上存储的数据大小,以及 IOPS 和吞吐量要求来调整大小。 有关详细信息,请参阅 Azure 文件共享目标

无需通过 NFS 装载的 SAP 文件系统也可部署在 Azure 磁盘存储上。 在本例中,可在 Azure 磁盘存储上 部署 /usr/sap/NW1/D02/usr/sap/NW1/D03

有关 Azure 文件存储上的 NFS 共享的重要注意事项

规划使用 Azure 文件存储上的 NFS 进行部署时,请注意以下要点:

  • 共享大小不低于 100 GiB。 只需为预配共享的容量付费。
  • 请根据容量要求和 IOPS 及吞吐量要求调整 NFS 共享的大小。 有关详细信息,请参阅 Azure 文件共享目标
  • 测试工作负载以验证大小调整情况,并确保它满足性能目标。 若要了解如何排查 Azure 文件存储上的 NFS 的性能问题,请参阅排查 Azure 文件共享性能问题
  • 对于 SAP J2EE 系统,不支持在 Azure 文件存储上的 NFS 上放置 /usr/sap/<SID>/J<nr>
  • 如果 SAP 系统的批处理作业负载过高,则可能会有几百万个作业日志。 如果 SAP 批处理作业日志存储在文件系统中,请特别注意 sapmnt 共享的大小。 自 SAP_BASIS 7.52 起,批处理作业日志的默认行为是存储到数据库中。 有关详细信息,请参阅数据库中的作业日志
  • 为每个 SAP 系统部署一个单独的 sapmnt 共享。
  • 请勿将 sapmnt 共享用于任何其他活动,例如接口或 saptrans
  • 请勿将 saptrans 共享用于任何其他活动,例如接口或 sapmnt
  • 不要在单个存储帐户合并过多 SAP 系统的共享。 还要注意存储帐户性能缩放目标。 此外,请注意不要超出存储帐户的限制。
  • 通常,不要在单个存储帐户中合并 5 个以上 SAP 系统的共享。 此准则有助于避免超出存储帐户限制并简化性能分析。
  • 在一般情况下,对于同一存储帐户中的非生产型和生产型 SAP 系统,请避免混合放置共享,例如 sapmnt
  • 建议在 RHEL 8.4 或更高版本上进行部署,以便从 NFS 客户端改进中受益。
  • 使用专用终结点。 如果发生区域性故障(不太可能发生此情况),NFS 会话会自动重定向到运行正常的区域。 你不需要在 VM 上重新装载 NFS 共享。
  • 如果要跨可用性区域部署 VM,请在支持 ZRS 的 Azure 区域中使用带 ZRS 的存储帐户
  • 目前,Azure 文件存储不支持对灾难恢复方案使用自动跨区域复制。

设置 (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
     10.90.90.7    sap-cl1
     # IP address of cluster node 2
     10.90.90.8     sap-cl2
     # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
     10.90.90.10   sapascs
     # IP address of the load balancer frontend configuration for SAP Netweaver ERS
     10.90.90.9    sapers
    
  2. [A] 安装 NFS 客户端和其他要求。

    sudo yum -y install nfs-utils resource-agents resource-agents-sap
    
  3. [1] 在 NFS 共享上创建 SAP 目录。
    在其中一个 VM 上临时装载 NFS 共享 sapnw1,并创建将用作嵌套装入点的 SAP 目录

    # mount temporarily the volume
    sudo mkdir -p /saptmp
    sudo mount -t nfs sapnfs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys
    # create the SAP directories
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1ascs
    sudo mkdir -p usrsapNW1ers
    sudo mkdir -p usrsapNW1sys
    # unmount the volume and delete the temporary directory
    cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  4. [A] 创建共享目录。

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    sudo mkdir -p /usr/sap/NW1/SYS
    sudo mkdir -p /usr/sap/NW1/ASCS00
    sudo mkdir -p /usr/sap/NW1/ERS01
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    sudo chattr +i /usr/sap/NW1/SYS
    sudo chattr +i /usr/sap/NW1/ASCS00
    sudo chattr +i /usr/sap/NW1/ERS01
    
  5. [A] 检查 resource-agents-sap 的版本。

    请确保已安装的 resource-agents-sap 包的版本至少为 3.9.5-124.el7

    sudo yum info resource-agents-sap
    
  6. [A] 添加装载条目。

    vi /etc/fstab
    # Add the following lines to fstab, save and exit
    sapnfs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1sys/ /usr/sap/NW1/SYS  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    
    # Mount the file systems
    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 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。

    配置 RHEL,如 RHEL 7.x 的 SAP 说明 2002167、RHEL 8.x 的 SAP 说明 2772999、RHEL 9.x 的 SAP 说明 3108316 中所述。

安装 SAP NetWeaver ASCS/ERS

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

    # If using RHEL 7.x
    pcs resource defaults resource-stickiness=1
    pcs resource defaults migration-threshold=3
    # If using RHEL 8.x or later
    pcs resource defaults update resource-stickiness=1
    pcs resource defaults update migration-threshold=3
    
  2. [1] 为 ASCS 实例创建虚拟 IP 资源和运行状况探测。

    sudo pcs node standby sap-cl2
    
    sudo pcs resource create fs_NW1_ASCS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1ascs' \
      directory='/usr/sap/NW1/ASCS00' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
      --group g-NW1_ASCS
    
    sudo pcs resource create vip_NW1_ASCS IPaddr2 \
      ip=10.90.90.10 \
      --group g-NW1_ASCS
    
    sudo pcs resource create nc_NW1_ASCS azure-lb port=62000 \
      --group g-NW1_ASCS
    

    确保群集状态正常,并且所有资源都已启动。 资源在哪个节点上运行并不重要。

    sudo pcs status
    
    # Node sap-cl2: standby
    # Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1 
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    
  3. [1] 安装 SAP NetWeaver ASCS。

    使用虚拟主机名在第一个节点上以 root 身份安装 SAP NetWeaver ASCS,其中该主机名映射到适用于 ASCS 的负载均衡器前端配置的 IP 地址(例如 sapascs 和 10.90.90.10)以及用于负载均衡器探测的实例编号(例如 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/NW1/ASCS00 中创建子文件夹,请尝试设置 ASCS00 文件夹的所有者和组,然后重试。

    sudo chown nw1adm /usr/sap/NW1/ASCS00
    sudo chgrp sapsys /usr/sap/NW1/ASCS00
    
  4. [1] 为 ERS 实例创建虚拟 IP 资源和运行状况探测。

    sudo pcs node unstandby sap-cl2
    sudo pcs node standby sap-cl1
    
    sudo pcs resource create fs_NW1_AERS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1ers' \
      directory='/usr/sap/NW1/ERS01' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW1_AERS
    
    sudo pcs resource create vip_NW1_AERS IPaddr2 \
      ip=10.90.90.9 \
     --group g-NW1_AERS
    
    sudo pcs resource create nc_NW1_AERS azure-lb port=62101 \
     --group g-NW1_AERS
    

    确保群集状态正常,并且所有资源都已启动。 资源在哪个节点上运行并不重要。

    sudo pcs status
    
    # Node sap-cl1: standby
    # Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    
  5. [2] 安装 SAP NetWeaver ERS。

    使用虚拟主机名在第二个节点上以 root 身份安装 SAP NetWeaver ERS,其中该主机名映射到适用于 ERS 的负载均衡器前端配置的 IP 地址(例如 sapers 和 10.90.90.9)以及用于负载均衡器探测的实例编号(例如 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/NW1/ERS01 中创建子文件夹,请尝试设置 ERS01 文件夹的所有者和组,然后重试 。

    sudo chown qaadm /usr/sap/NW1/ERS01
    sudo chgrp sapsys /usr/sap/NW1/ERS01
    
  6. [1] 调整 ASCS/SCS 和 ERS 实例配置文件

    • ASCS/SCS 配置文件:

      sudo vi /sapmnt/NW1/profile/NW1_ASCS00_sapascs
      
      # 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/NW1/profile/NW1_ERS01_sapers
      
      # 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 之间的通信是通过软件负载均衡器进行路由的。 负载均衡器在可配置的超时之后将断开非活动连接。 若要防止此操作,请在 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
    
    # 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/NW1/ASCS00/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW1/ASCS00/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ASCS00_sapascs -D -u nw1adm
    # systemctl --no-ask-password start SAPNW1_00 # sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ASCS00_sapascs
    
    # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ERS node. You should comment out the line(s). 
    # LD_LIBRARY_PATH=/usr/sap/NW1/ERS01/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW1/ERS01/exe/sapstartsrv pf=/usr/sap/NW1/ERS01/profile/NW1_ERS01_sapers -D -u nw1adm
    # systemctl --no-ask-password start SAPNW1_00 # sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ERS01_sapers
    

    重要

    借助基于 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
    
    sudo pcs resource create rsc_sap_NW1_ASCS00 SAPInstance \
     InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     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-NW1_ASCS
    
    sudo pcs resource meta g-NW1_ASCS resource-stickiness=3000
    
    sudo pcs resource create rsc_sap_NW1_ERS01 SAPInstance \
     InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     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-NW1_AERS
    
    sudo pcs constraint colocation add g-NW1_AERS with g-NW1_ASCS -5000
    sudo pcs constraint location rsc_sap_NW1_ASCS00 rule score=2000 runs_ers_NW1 eq 1
    sudo pcs constraint order start g-NW1_ASCS then stop g-NW1_AERS kind=Optional symmetrical=false
    
    sudo pcs node unstandby sap-cl1
    sudo pcs property set maintenance-mode=false
    

    如果要从旧版本升级并切换到排队服务器 2,请参阅 SAP 说明 2641322

    注意

    前述配置中的超时只是示例,可能需要根据特定的 SAP 设置进行调整。

    确保群集状态正常,并且所有资源都已启动。 资源在哪个节点上运行并不重要。

    sudo pcs status
    
    # Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    
  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_NW1_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 地址和主机名。

    10.90.90.7    sap-cl1
    10.90.90.8    sap-cl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    10.90.90.10   sapascs
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    10.90.90.9    sapers
    10.90.90.12   sapa01
    10.90.90.13   sapa02
    
  2. [A] 创建 sapmnt 目录。

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

    sudo yum -y install nfs-utils uuidd
    
  4. [A] 添加装载条目。

    vi /etc/fstab
    # Add the following lines to fstab, save and exit
    sapnfs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    
    # Mount the file systems
    mount -a 
    
  5. [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 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

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

可以使用 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

SAP NetWeaver 应用程序服务器安装

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

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

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

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

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

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

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [A] 更新 SAP HANA 安全存储。

    更新 SAP HANA 安全存储以指向 SAP HANA 系统复制设置的虚拟名称。

    运行以下命令将条目列为 <sapsid>adm

    hdbuserstore List
    

    所有条目都应列出,且类似于:

    DATA FILE       : /home/nw1adm/.hdb/sapa01/SSFS_HDB.DAT
    KEY FILE        : /home/nw1adm/.hdb/sapa01/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 10.90.90.5:30313
      USER: SAPABAP1
      DATABASE: NW1
    

    在此示例中,默认入口点的 IP 地址指向 VM,而不是指向负载均衡器。 请更改此设置,使其指向负载均衡器的虚拟主机名。 请确保使用相同的端口和数据库名称。 例如,使用示例输出中的 30313NW1

    su - nw1adm
    hdbuserstore SET DEFAULT nw1db:30313@NW1 SAPABAP1 <password of ABAP schema>
    

测试群集设置

全面测试 Pacemaker 群集。 有关详细信息,请参阅执行典型的故障转移测试

后续步骤