你当前正在访问 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 配置仍受支持。
先决条件
- Azure 文件存储文档。
- SAP 说明 1928533,其中包含:
- SAP 软件部署支持的 Azure VM 大小的列表。
- Azure VM 大小的重要容量信息。
- 支持的 SAP 软件、操作系统 (OS) 和数据库组合。
- Microsoft Azure 上 Windows 和 Linux 所需的 SAP 内核版本。
- SAP 说明 2015553 列出了在 Azure 中 SAP 支持的 SAP 软件部署的先决条件。
- SAP 说明 2205917 包含适用于 SUSE Linux Enterprise Server for SAP Applications 的推荐 OS 设置。
- SAP 说明 2178632 包含为 Azure 中的 SAP 报告的所有监控指标的详细信息。
- SAP 说明 2191498 包含 Azure 中的 Linux 所需的 SAP 主机代理版本。
- SAP 说明 2243692 包含 Azure 中的 Linux 上的 SAP 许可的相关信息。
- SAP 说明 1984787 包含有关 SUSE Linux Enterprise Server 12 的一般信息。
- SAP 说明 2578899 包含有关 SUSE Linux Enterprise Server 15 的一般信息
- SAP 说明 1999351 包含适用于 SAP 的 Azure 增强型监视扩展的其他故障排除信息。
- SAP Community WIKI 包含适用于 Linux 的所有必需 SAP 说明。
- 适用于 Linux 上的 SAP 的 Azure 虚拟机规划和实施。
- 适用于 Linux 上的 SAP 的 Azure 虚拟机部署。
- 适用于 Linux 上的 SAP 的 Azure 虚拟机 DBMS 部署。
- SUSE SAP HA 最佳做法指南。 指南包含在本地设置 Netweaver HA 和 SAP HANA 系统复制所需的所有信息。 请使用上述指南作为常规基准。 它们提供更多详细信息。
- SUSE 高可用性扩展发行说明。
概述
若要部署 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 |
此图显示了一个典型的 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 系统设置标准负载均衡器。 在设置负载均衡器期间,请考虑以下几点。
- 前端 IP 配置:创建两个前端 IP,一个用于 ASCS,另一个用于 ERS。 选择与你的 ASCS/ERS 虚拟机相同的虚拟网络和子网。
- 后端池:创建后端池并添加 ASCS 和 ERS VM。
- 入站规则:创建两个负载均衡规则,一个用于 ASCS,另一个用于 ERS。 对两个负载均衡规则执行相同步骤。
- 前端 IP 地址:选择前端 IP
- 后端池:选择后端池
- 检查“高可用性端口”
- 协议:TCP
- 运行状况探测:创建具有以下详细信息的运行状况探测(适用于 ASCS 或 ERS)
- 协议:TCP
- 端口:[例如:对于 ASCS,为 620<Instance-no.>;对于 ERS,为 621<Instance-no.>]
- 间隔: 5
- 探测阈值: 2
- 空闲超时 (分钟):30
- 选中“启用浮动 IP”
注意
不会遵循运行状况探测配置属性 numberOfProbes(在门户中也称为“运行不正常阈值”)。 因此,要控制成功或失败的连续探测数量,请将属性“probeThreshold”设置为 2。 当前无法使用 Azure 门户设置此属性,请使用 Azure CLI 或 PowerShell 命令。
注意
如果没有公共 IP 地址的 VM 被放在内部(无公共 IP 地址)标准 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 区域提供两种冗余选项:
- 本地冗余存储 (LRS),它提供本地区域内同步数据复制。
- 区域冗余存储 (ZRS),它跨地区中的三个可用性区域同步复制数据。
检查所选的 Azure 区域是否向 Azure 文件存储上的 NFS 4.1 提供适当的冗余。 在“高级文件存储”下查看按 Azure 区域显示的 Azure 文件存储可用性。 如果 ZRS 对你的方案有帮助,请验证你所在的 Azure 区域是否支持使用 ZRS 的高级文件共享。
建议通过 Azure 专用终结点访问 Azure 存储帐户。 请确保在同一 Azure VNet 或对等互连的 Azure VNet 中部署 Azure 文件存储帐户终结点和 VM(需要在这里装载 NFS 共享)。
- 部署名为
sapafsnfs
的文件存储帐户。 在本例,我们使用 ZRS。 如果你不熟悉该过程,请参阅 Azure 门户的创建存储帐户。 - 在“基本”选项卡中,使用以下设置:
- 输入
sapafsnfs
作为存储帐户名称。 - 对于“性能”,请选择“高级” 。
- 对于“高级帐户类型”,请选择“FileStorage” 。
- 对于“复制”,请选择“区域冗余(ZRS)”。
- 输入
- 选择“下一步”。
- 在“高级”选项卡中,取消选择“REST API 操作要求安全传输” 。 如果未取消选择此选项,则无法将 NFS 共享装载到 VM。 装载操作将超时。
- 选择下一步。
- 在“网络”部分,配置以下设置:
- 在“网络连接”下,为“连接方法”选择“专用终结点”。
- 在“专用终结点”下,选择“添加专用终结点” 。
- 在“创建专用终结点”窗格中,选择你的订阅、资源组和位置 。
对于“名称”,请输入
sapafsnfs_pe
。 对于“存储子资源”,请选择“文件” 。 在“网络”下,对于“虚拟网络”选择要使用的 VNet 和子网 。 同样,可使用 SAP VM 所在的 VNet,也可使用对等互连的 VNet。 在“专用 DNS 集成”下,对于“与专用 DNS 区域集成”,接受默认选项“是” 。 请确保选择专用 DNS 区域。 选择“确定”。 - 还是在“网络”选项卡下,选择“下一步” 。
- 在“数据保护”选项卡上,保留所有默认设置。
- 选择“查看 + 创建”,验证你的配置。
- 等待验证完成。 解决所有问题,然后再继续。
- 在“查看 + 创建”选项卡上,选择“创建”。
接下来,在创建的存储帐户中部署 NFS 共享。 在此示例中,有两个数据集快照 - sapnw1
和 saptrans
。
登录 Azure 门户。
选择或搜索存储帐户。
在“存储帐户”页上,选择“sapafsnfs” 。
在 sapafsnfs 的资源菜单中,选择“数据存储”下的“文件共享” 。
在“文件共享”页上,选择“文件共享” 。
- 输入
sapnw1
和saptrans
作为名称。 - 选择适当的共享大小。 例如,128 GB。 考虑共享上存储的数据大小、IOPS 和吞吐量要求。 有关详细信息,请参阅 Azure 文件共享目标。
- 选择“NFS”作为协议。
- 选择“无根 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 。
[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。
[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 下载页上列出的修补程序
[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
[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 安装
[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
[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
[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] 为 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
[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
[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
[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
[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
[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
[A] 在安装后配置 SAP 用户
# Add sidadm to the haclient group sudo usermod -aG haclient nw1adm
[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
[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
[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。
[A] 配置操作系统
减小脏缓存的大小。 有关详细信息,请参阅 RAM 较大的 SLES 11/12 服务器的写入性能低。
sudo vi /etc/sysctl.conf # Change/set the following settings vm.dirty_bytes = 629145600 vm.dirty_background_bytes = 314572800
[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
[A] 创建 sapmnt 目录
sudo mkdir -p /sapmnt/NW1 sudo mkdir -p /usr/sap/trans sudo chattr +i /sapmnt/NW1 sudo chattr +i /usr/sap/trans
[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
[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 应用程序服务器。
[A] 准备应用程序服务器 按照上述 SAP NetWeaver 应用程序服务器准备一章中的步骤来准备应用程序服务器。
[A] 安装 SAP NetWeaver 应用程序服务器。
安装主服务器或其他的 SAP NetWeaver 应用程序服务器。可以使用 sapinst 参数 SAPINST_REMOTE_ACCESS_USER 允许非根用户连接到 sapinst。
sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
[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,而不是指向负载均衡器。 请更改此设置,使其指向负载均衡器的虚拟主机名。 请确保使用相同的端口和数据库名称。 例如,在示例输出中为
30313
和NW1
。su - nw1adm hdbuserstore SET DEFAULT nw1db:30313@NW1 SAPABAP1 <password of ABAP schema>
测试群集设置
全面测试 Pacemaker 群集。 执行典型的故障转移测试。
后续步骤
- 适用于 SAP 应用程序多 SID 的 SLES 上 Azure VM 中的 SAP NW 的 HA 指南
- 适用于 SAP 的 Azure 虚拟机规划和实施
- 适用于 SAP 的 Azure 虚拟机部署
- 适用于 SAP 的 Azure 虚拟机 DBMS 部署
- 若要了解如何在 Azure VM 上建立 SAP HANA 高可用性以及规划灾难恢复,请参阅 Azure 虚拟机 (VM) 上的 SAP HANA 高可用性