7.4. 配置基于 systemd 的 SAP 启动框架
systemd 集成是作为 SAP Kernel Release 788 的默认配置。在 HA 环境中,您必须应用额外的修改来集成集群设置中涉及的不同 systemd 服务。
先决条件
- 您已在现有集群节点上配置了基于 systemd 的 SAP 启动框架。否则跳过此配置。
流程
注册 ASCS 实例。在新节点上以 root 用户身份运行以下命令,以创建 systemd 集成:
[root]# export LD_LIBRARY_PATH=/usr/sap/<SID>/ASCS<instance>/exe && \ /usr/sap/<SID>/ASCS<instance>/exe/sapstartsrv \ pf=/usr/sap/<SID>/SYS/profile/<SID>_ASCS<instance>_<ascs_virtual_hostname> \ -reg该命令为所选实例配置文件执行
sapstartsrv服务,并在当前系统上注册实例服务。它为实例服务创建 systemd 单元(如果它不存在),并更新本地/usr/sap/sapservices文件。-
将
<SID> 替换为您的 ASCS 实例 SID,例如S4H。 -
将
<instance> 替换为您的 ASCS 实例编号,例如20。 -
将
<ascs_virtual_hostname> 替换为 ASCS 实例的虚拟主机名,例如s4hascs。
-
将
通过为 ERS 配置集重复第 1 步来注册 ERS 实例:
[root]# export LD_LIBRARY_PATH=/usr/sap/<SID>/ERS<instance>/exe && \ /usr/sap/<SID>/ERS<instance>/exe/sapstartsrv \ pf=/usr/sap/<SID>/SYS/profile/<SID>_ERS<instance>_<ers_virtual_hostname> \ -reg可选:为相应的应用服务器配置文件重复第 1 步来注册任何 PAS 或 AAS 实例。如果您还没有在这个集群中配置 PAS 或 AAS 实例,请跳过这一步:
[root]# export LD_LIBRARY_PATH=/usr/sap/<SID>/D<instance>/exe && \ /usr/sap/<SID>/D<instance>/exe/sapstartsrv \ pf=/usr/sap/<SID>/SYS/profile/<SID>_D<instance>_<as_virtual_hostname> \ -reg禁用集群管理的 ASCS、ERS 和任何其他应用程序实例服务:
[root]# systemctl disable SAP<SID>_<instance>.service Removed "/etc/systemd/system/multi-user.target.wants/SAP<SID>_<instance>.service".使用 ASCS 实例编号运行此项,再使用 ERS 实例编号重复该命令。
可选:对 PAS 或 AAS 实例服务重复相同。
为 ASCS、ERS 和集群管理的任何其他应用实例服务创建 systemd 置入目录:
[root]# mkdir /etc/systemd/system/SAP<SID>_<instance>.service.d使用 ASCS 实例编号运行此项,再使用 ERS 实例编号重复该命令。
可选:使用 PAS 或 AAS 实例号重复。
在新目录中为实例创建置入文件:
[root]# cat << EOF > /etc/systemd/system/SAP<SID>_<instance>.service.d/HA.conf [Service] Restart=no EOF使用 ASCS 实例编号运行此项,再使用 ERS 实例编号重复该命令。
可选:使用 PAS 或 AAS 实例号重复。
重新载入 systemd 单元以激活 drop-in 配置:
[root]# systemctl daemon-reload
验证
检查所有实例都有实例 systemd 单元,并在新节点上禁用它们:
[root]# systemctl list-unit-files SAPS4H* UNIT FILE STATE PRESET SAPS4H_20.service disabled disabled SAPS4H_29.service disabled disabled可选:当您配置了应用程序服务器实例时,PAS 或 AAS 实例服务文件也会列在所有验证步骤中。
检查
sapservices文件是否包含每个集群节点上每个实例的条目:[root]# cat /usr/sap/sapservices systemctl --no-ask-password start SAPS4H_20 # sapstartsrv pf=/sapmnt/S4H/profile/S4H_ASCS20_s4hascs systemctl --no-ask-password start SAPS4H_29 # sapstartsrv pf=/sapmnt/S4H/profile/S4H_ERS29_s4hers检查所有 systemd 配置覆盖是否存在:
[root]# systemd-delta | grep SAP ... [EXTENDED] /etc/systemd/system/SAPS4H_20.service/etc/systemd/system/SAPS4H_20.service.d/HA.conf [EXTENDED] /etc/systemd/system/SAPS4H_29.service /etc/systemd/system/SAPS4H_29.service.d/HA.conf