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

使用 Azure 文件存储上的 NFS 在 SUSE Linux Enterprise Server 上的 Azure VM 实现 SAP NetWeaver 高可用性

本文介绍如何使用 Azure 文件存储上的 NFS 部署和配置 VM、安装群集框架和安装 HA SAP NetWeaver 系统。 示例配置使用在 SUSE Linux Enterprise Server (SLES) 上运行的 VM。

对于 SLES for SAP Applications 15 的新实施,建议在简单的装载配置中部署 SAP ASCS/ERS 的高可用性。 本文中介绍的基于 SAP 中心服务目录的群集控制文件系统的经典 Pacemaker 配置仍受支持

先决条件

概述

若要部署 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
主应用程序服务器 (PAS) 02
其他应用程序服务器 (AAS) 03
SAP 系统标识符 NW1

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

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

准备基础结构

SAP 实例的资源代理包含在 SUSE Linux Enterprise Server for SAP Applications 中。 可在 Azure 市场中找到 SUSE Linux Enterprise Server for SAP Applications 12/15 的映像。 可使用该映像来部署新的 VM。

通过 Azure 门户手动部署 Linux VM

本文档假定你已部署 Azure 虚拟网络资源组和子网。

使用 SLES for SAP Applications 映像部署虚拟机。 选择 SAP 系统支持的、合适的 SLES 映像版本。 可以通过任何一个可用性选项(虚拟机规模集、可用性区域或可用性集)来部署 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 命令。

注意

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

重要

  • 不要在放置于 Azure 负载均衡器之后的 Azure VM 上启用 TCP 时间戳。 启用 TCP 时间戳将导致运行状况探测失败。 将 net.ipv4.tcp_timestamps 参数设置为 0。 有关详细信息,请参阅负载均衡器运行状况探测
  • 为防止 saptune 将手动设置的 net.ipv4.tcp_timestamps 值从 0 更改回 1,应将 saptune 版本更新为 3.1.1 或更高版本。 有关更多详细信息,请参阅 saptune 3.1.1 – 我是否需要更新?

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

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

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

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

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

  1. 部署名为 sapafsnfs 的文件存储帐户。 在本例,我们使用 ZRS。 如果你不熟悉该过程,请参阅 Azure 门户的创建存储帐户
  2. 在“基本”选项卡中,使用以下设置
    1. 输入 sapafsnfs 作为存储帐户名称。
    2. 对于“性能”,请选择“高级” 。
    3. 对于“高级帐户类型”,请选择“FileStorage” 。
    4. 对于“复制”,请选择“区域冗余(ZRS)”。
  3. 选择“下一步”。
  4. 在“高级”选项卡中,取消选择“REST API 操作要求安全传输” 。 如果未取消选择此选项,则无法将 NFS 共享装载到 VM。 装载操作将超时。
  5. 选择下一步
  6. 在“网络”部分,配置以下设置
    1. 在“网络连接”下,为“连接方法”选择“专用终结点”。
    2. 在“专用终结点”下,选择“添加专用终结点” 。
  7. 在“创建专用终结点”窗格中,选择你的订阅、资源组和位置 。 对于“名称”,请输入 sapafsnfs_pe。 对于“存储子资源”,请选择“文件” 。 在“网络”下,对于“虚拟网络”选择要使用的 VNet 和子网 。 同样,可使用 SAP VM 所在的 VNet,也可使用对等互连的 VNet。 在“专用 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 文件存储上的性能问题,请参阅排查 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
  • 建议在 SLES 15 SP2 或更高版本上进行部署,以便从 NFS 客户端改进中受益。
  • 使用专用终结点。 如果发生区域性故障(不太可能发生此情况),NFS 会话会自动重定向到运行正常的区域。 你不需要在 VM 上重新装载 NFS 共享。
  • 如果要跨可用性区域部署 VM,请在支持 ZRS 的 Azure 区域中使用带 ZRS 的存储帐户
  • 目前,Azure 文件存储不支持对灾难恢复方案使用自动跨区域复制。

设置 (A)SCS

接下来,你将做好准备并安装 SAP ASCS 和 ERS 实例。

创建 Pacemaker 群集

按照在 Azure 中的 SUSE Linux Enterprise Server 上设置 Pacemaker 中的步骤,为 SAP (A)SCS 创建一个基本 Pacemaker 群集。

安装

以下各项带有前缀 [A] - 适用于所有节点、[1] - 仅适用于节点 1,或 [2] - 仅适用于节点 2 。

  1. [A] 安装最新版本的 SUSE 连接器

    sudo zypper install sap-suse-cluster-connector
    

    注意

    sap-suse-cluster-connector 的版本 3.1.1 中已修复在主机名中使用破折号引起的已知问题。 如果使用主机名中带有破折号的群集节点,请确保至少使用包 sap-suse-cluster-connector 的版本 3.1.1。 否则群集无法正常使用。

    请确保安装 SAP SUSE 群集连接器的新版本。 旧版本称为 sap_suse_cluster_connector,新版本称为 sap-suse-cluster-connector

  2. [A] 更新 SAP 资源代理

    使用本文中所述的新配置需要安装资源代理包的一个修补程序。 可以通过以下命令检查是否已安装了修补程序

    sudo grep 'parameter name="IS_ERS"' /usr/lib/ocf/resource.d/heartbeat/SAPInstance
    

    输出应类似于

    <parameter name="IS_ERS" unique="0" required="0">;
    

    如果 grep 命令未找到 IS_ERS 参数,则需要安装 SUSE 下载页上列出的修补程序

  3. [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
    
  4. [1] 在 NFS 共享上创建 SAP 目录。
    临时装载 NFS 共享 sapnw1(其中一个 VM),并创建将用作嵌套装载点的 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
    

准备 SAP Netweaver 安装

  1. [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
    
  2. [A] 装载将不由 Pacemaker 群集控制的文件系统。

    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 
    
  3. [A] 配置交换文件

    sudo vi /etc/waagent.conf
    
    # Check if property ResourceDisk.Format is already set to y and if not, set it
    ResourceDisk.Format=y
    
    # Set the property ResourceDisk.EnableSwap to y
    # Create and use swapfile on resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with property ResourceDisk.SwapSizeMB
    # The free space of resource disk varies by virtual machine size. Make sure that you do not set a value that is too big. You can check the SWAP space with command swapon
    # Size of the swapfile.
    ResourceDisk.SwapSizeMB=2000
    

    重新启动代理以激活更改

    sudo service waagent restart
    

安装 SAP NetWeaver ASCS/ERS

  1. [1] 为 ASCS 实例创建虚拟 IP 资源和运行状况探测

    重要

    建议使用 azure-lb 资源代理,它是 resource-agents 包的一部分,具有以下包版本要求:

    • 对于 SLES 12 SP4/SP5,版本必须至少为 resource-agents-4.3.018.a7fb5035-3.30.1。
    • 对于 SLES 15 及更高版本,版本必须至少为 resource-agents-4.3.0184.6ee15eb2-4.13.1。
    sudo crm node standby sap-cl2
    sudo crm configure primitive fs_NW1_ASCS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1ascs' directory='/usr/sap/NW1/ASCS00' fstype='nfs' options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    sudo crm configure primitive vip_NW1_ASCS IPaddr2 \
      params ip=10.90.90.10 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ASCS azure-lb port=62000 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ASCS fs_NW1_ASCS nc_NW1_ASCS vip_NW1_ASCS \
      meta resource-stickiness=3000
    

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

    sudo crm_mon -r
    # Node sap-cl2: standby
    # Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): 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
    
    
  2. [1] 安装 SAP NetWeaver ASCS

    使用虚拟主机名在第一个节点上以 root 身份安装 SAP NetWeaver ASCS,其中该主机名映射到适用于 ASCS 的负载均衡器前端配置的 IP 地址(例如 sapascs、10.90.90.10)以及用于负载均衡器探测的实例编号(例如 00)

    可以使用 sapinst 参数 SAPINST_REMOTE_ACCESS_USER 允许非根用户连接到 sapinst。 可以使用参数 SAPINST_USE_HOSTNAME,以通过使用虚拟主机名安装 SAP。

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=<virtual_hostname>
    

    如果安装过程无法在 /usr/sap/NW1/ASCS00 中创建子文件夹,请尝试设置 ASCS00 文件夹的所有者和组,然后重试。

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

    sudo crm node online sap-cl2
    sudo crm node standby sap-cl1
    sudo crm configure primitive fs_NW1_ERS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1ers' directory='/usr/sap/NW1/ERS01' fstype='nfs' options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    sudo crm configure primitive vip_NW1_ERS IPaddr2 \
      params ip=10.90.90.9 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ERS azure-lb port=62101 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ERS fs_NW1_ERS nc_NW1_ERS vip_NW1_ERS
    

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

    sudo crm_mon -r
    
    # Node sap-cl1: standby
    # Online: [ sap-cl2 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): 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_ERS
    #      fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started sap-cl2 
    #      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ERS  (ocf::heartbeat:IPaddr2):     Started sap-cl2
    
  4. [2] 安装 SAP Netweaver ERS

    使用的虚拟主机名在第二个节点上以 root 身份安装 SAP NetWeaver ERS,其中该主机名映射到适用于 ERS 的负载均衡器前端配置的 IP 地址(例如 sapers、10.90.90.9)以及用于负载均衡器探测的实例编号(例如 01) 。

    可以使用 sapinst 参数 SAPINST_REMOTE_ACCESS_USER 允许非根用户连接到 sapinst。 可以使用参数 SAPINST_USE_HOSTNAME,以通过使用虚拟主机名安装 SAP。

    <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    注意

    使用 SWPM SP 20 PL 05 或更高版本。 较低版本不会正确设置权限,安装将失败。

    如果安装过程无法在 /usr/sap/NW1/ERS01 中创建子文件夹,请尝试设置 ERS01 文件夹的所有者和组,然后重试 。

    chown nw1adm /usr/sap/NW1/ERS01
    chgrp sapsys /usr/sap/NW1/ERS01
    
  5. [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 following lines
    service/halib = $(DIR_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
    # 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)
    
    # Add the following lines
    service/halib = $(DIR_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
    # remove Autostart from ERS profile
    # Autostart = 1
    
  6. [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
    
  7. [A] 在安装后配置 SAP 用户

    # Add sidadm to the haclient group
    sudo usermod -aG haclient nw1adm
    
  8. [1] 将 ASCS 和 ERS SAP 服务添加到 sapservice 文件

    将 ASCS 服务入口添加到第二个节点,并将 ERS 服务入口复制到第一个节点。

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh sap-cl2 "cat >>/usr/sap/sapservices"
    sudo ssh sap-cl2 "cat /usr/sap/sapservices" | grep ERS01 | sudo tee -a /usr/sap/sapservices
    
  9. [A] 禁用 ASCS 和 ERS ​​SAP 实例的 systemd 服务。 仅当 SAP 启动框架由 systemd 管理(如 SAP 说明 3115048 中描述的那样)时,此步骤才适用

    注意

    使用 SLES 群集配置来管理 SAP ASCS 和 SAP ERS ​​之类的 SAP 实例时,需要进行额外的修改以将群集与基于 systemd 的原生 SAP 启动框架集成。 这可以确保维护过程不会损害群集稳定性。 按照 SAP 说明 3115048 安装 SAP 启动框架或将其切换到启用 systemd 的设置后,应该为 ASCS 和 ERS ​​SAP 实例禁用 systemd 服务。

    # Stop ASCS and ERS instances using <sid>adm
    sapcontrol -nr 00 -function Stop
    sapcontrol -nr 00 -function StopService
    
    sapcontrol -nr 01 -function Stop
    sapcontrol -nr 01 -function StopService
    
    # Execute below command on VM where you have performed ASCS instance installation (e.g. sap-cl1)
    sudo systemctl disable SAPNW1_00
    # Execute below command on VM where you have performed ERS instance installation (e.g. sap-cl2)
    sudo systemctl disable SAPNW1_01
    
  10. [1] 创建 SAP 群集资源

    根据是运行 ENSA1 还是 ENSA2 系统,选择相应的选项卡来定义资源。 SAP 在 SAP NetWeaver 7.52 中引入了对 ENSA2 的支持,包括复制。 从 ABAP 平台 1809 开始,默认会安装 ENSA2。 有关 ENSA2 支持,请参阅 SAP 说明 2630416

    sudo crm configure property maintenance-mode="true"
    
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
     operations \$id=rsc_sap_NW1_ASCS00-operations \
     op monitor interval=11 timeout=60 on-fail=restart \
     params InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     AUTOMATIC_RECOVER=false \
     meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    sudo crm configure primitive rsc_sap_NW1_ERS01 SAPInstance \
     operations \$id=rsc_sap_NW1_ERS01-operations \
     op monitor interval=11 timeout=60 on-fail=restart \
     params InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" AUTOMATIC_RECOVER=false IS_ERS=true \
     meta priority=1000
    
    sudo crm configure modgroup g-NW1_ASCS add rsc_sap_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ERS add rsc_sap_NW1_ERS01
    
    sudo crm configure colocation col_sap_NW1_no_both -5000: g-NW1_ERS g-NW1_ASCS
    sudo crm configure location loc_sap_NW1_failover_to_ers rsc_sap_NW1_ASCS00 rule 2000: runs_ers_NW1 eq 1
    sudo crm configure order ord_sap_NW1_first_start_ascs Optional: rsc_sap_NW1_ASCS00:start rsc_sap_NW1_ERS01:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online sap-cl1
    sudo crm configure property maintenance-mode="false"
    

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

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

sudo crm_mon -r
# Full list of resources:
# 
# stonith-sbd     (stonith:external/sbd): Started sap-cl2
#  Resource Group: g-NW1_ASCS
#      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
#      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
#      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
#      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
#  Resource Group: g-NW1_ERS
#      fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started sap-cl2
#      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
#      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started sap-cl2
#      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1

SAP NetWeaver 应用程序服务器准备

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

以下步骤假定在与 ASCS/SCS 和 HANA 服务器不同的服务器上安装应用程序服务器。 否则,则无需进行以下某些步骤(如配置主机名解析)。

以下各项带有前缀 [A] - 适用于 PAS 和 AAS、 [P] - 仅适用于 PAS 或 [S] - 仅适用于 AAS。

  1. [A] 配置操作系统

    减小脏缓存的大小。 有关详细信息,请参阅 RAM 较大的 SLES 11/12 服务器的写入性能低

    sudo vi /etc/sysctl.conf
    # Change/set the following settings
    vm.dirty_bytes = 629145600
    vm.dirty_background_bytes = 314572800
    
  2. [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
    
  3. [A] 创建 sapmnt 目录

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  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] 配置交换文件

    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 的详细信息,请参阅 Azure 虚拟机 (VM) 上的 SAP HANA 高可用性。 有关支持的数据库列表,请参阅 SAP 说明 1928533

使用映射到适用于数据库的负载均衡器前端配置的 IP 地址的虚拟主机名以 root 身份安装 SAP NetWeaver 数据库实例。
可以使用 sapinst 参数 SAPINST_REMOTE_ACCESS_USER 允许非根用户连接到 sapinst。

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 允许非根用户连接到 sapinst。

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

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

    运行以下命令列出条目

    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 群集。 执行典型的故障转移测试

后续步骤