Recent changes to crmsh package can result in unsupported configuration of SAPStartSrv resource Agent in a SAP NetWeaver HA cluster
This document (000021423) is provided subject to the disclaimer at the end of this document.
Environment
SUSE Linux Enterprise Server 15 SP5
SUSE Linux Enterprise Server for SAP Applications 15 SP4
SUSE Linux Enterprise Server for SAP Applications 15 SP5
SUSE Linux Enterprise High Availability Extension (HAE) 15 SP4
SUSE Linux Enterprise High Availability Extension (HAE) 15 SP5
Situation
Prior to the change, the following command (using SAP Instance name HA1 as an example):
crm configure primitive rsc_SAPStartSrv_HA1 ocf:suse:SAPStartSrv params InstanceName=HA1
Would result in the following primitive resource definition in the cluster:
primitive rsc_SAPStartSrv_HA1 ocf:suse:SAPStartSrv \
params InstanceName=HA1
But since the change in behavior, the same command above will now result in the following primiitve definition:
primitive rsc_SAPStartSrv_HA1 ocf:suse:SAPStartSrv \
params InstanceName=HA1 \
op monitor timeout=20s interval=120s \
op start timeout=60s interval=0s \
op stop timeout=60s interval=0
The start and stop operations are inconsequential, but the monitor operation definition should not be there and is unsupported by SUSE for the SAPStartSrv resource agent. In fact, the man page ocf_suse_SAPStartSrv(7) states:
monitor
The SAPStartSrv resource must by intention not define a monitor operation. This is, because the failing
sapstartsrv must never force a SAPInstance restart. That would happen because the two resources
reside in one resource group.
SUSE's Best Practices Guides for creating and configuring SAP NetWeaver HA clusters do not use the "crm configure primitive..." command to create the resource primitive definitions. Instead they recommend creating a text file with the exact syntax needed for the resource definitions and then running "crm configure load update <text-file-name>", which results in the exact primitive definition that is in the text file being loaded into the cluster configuration, without adding operations that were not defined in the text file.
It has come to SUSE's attention that some customers have been using the "crm primitive configure..." command to create their cluster primitive resource definitions, and at least in the case of the SAPStartSrv resource, that will now result in a monitor being defined for that resource, which leaves the cluster in an unsupported state from SUSE Support's point of view.
Resolution
This has been addressed by the crmsh update SUSE-RU-2024:3735-1 update. To install the patch, please see the instructions inside the patch information.
Cause
Additional Information
Previous solution:
If you have been creating cluster primitive resource definitions using the "crm configure primitive..." command to configure SAP NetWeaver HA clusters while running on SLES 15 SP5 or SLES 15 SP4 with crmsh version 4.4.0+20220708.6ed6b56f-150400.3.3.1 or higher, then check the configuration of the SAPStartSrv resource primitives, and if there is a monitor operation defined, remove the monitor operation. SUSE recommends also removing the start and stop operations as well, but they are not as critical as the monitor operation.
For the example configuration below:
primitive rsc_SAPStartSrv_HA1 ocf:suse:SAPStartSrv \
params InstanceName=HA1 \
op monitor timeout=20s interval=120s \
op start timeout=60s interval=0s \
op stop timeout=60s interval=0
Run the command below to get the names of the SAPStartSrv resources defined in the cluster:
crm configure show type:primitive | grep SAPStartSrv | awk '{print $2}'
This should return two resource names, one for the SAPStartSrv resource associated with the ASCS SAP Instance and one for the SAPStartSrv resource associated with the ERS SAP Instance.
Next, run the command below once for each of the resource names returned from the command above (the editing interface is the same as the vi/vim text editor):
crm configure edit <resource-name>
And manually remove the monitor, stop and start lines, and also remove the trailing backslash (\) character at the end of the "params InstanceName=HA1 \" line, so that it looks like this:
primitive rsc_SAPStartSrv_HA1 ocf:suse:SAPStartSrv \
params InstanceName=HA1
Then save the changes and exit.
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
- Document ID:000021423
- Creation Date: 10-Apr-2024
- Modified Date:21-Oct-2024
-
- SUSE Linux Enterprise High Availability Extension
- SUSE Linux Enterprise Server for SAP Applications
For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com