ocf_suse_SAPHanaTopology(7)
π ocf_suse_SAPHanaTopology(7) β the SAPHanaTopology glow-up bestie edition β¨
okay so real talk, this is the manual page for ocf_suse_SAPHanaTopology, and she is that girl. let's get into it π
πΈ NAME πΈ
SAPHanaTopology β she helps you manage two SAP HANA databases with system replication. two. databases. with replication. iconic behavior honestly π«Ά
β¨ SYNOPSIS β¨
SAPHanaTopology [start | stop | status | monitor | meta-data |
validate-all | reload | methods | usage ]
like, pick one of these and she'll do the thing. no cap π
π¦ DESCRIPTION π¦
So SAPHanaTopology is a resource agent (RA for short, iykyk) that analyzes the SAP HANA topology and "sends" all her findings via cluster information base (CIB) attributes out to every node in the cluster. like a group chat but for cluster nodes, honestly π±β¨ Then the SAPHanaController RA picks those attributes up and uses them to control the SAP HANA databases. Also β and this is lowkey important β SAPHanaTopology starts and monitors the local saphostagent.
She uses the following interfaces provided by SAP:
landscapeHostConfiguration.pyokay solandscapeHostConfiguration.pyhas some detailed output about HANA system status and node roles. for our monitor, the overall status is what's relevant. this overall status is reported by the return code of the script:0: Internal Fatal,1: ERROR,2: WARNING,3: INFO (e.g. host auto-failover happened),4: OK. TheSAPHanaTopologyresource agent will interpret return code0as FATAL,1as NOT-RUNNING (or ERROR) and return codes2+3+4as RUNNING. FATAL means the status can not be determined, bestie, like at all πSAPHanaTopologyscans the output oflandscapeHostConfiguration.pyto identify the roles of the cluster node. "Roles" means configured and current role of the nameserver as well as the indexserver. both. of them. πhdbnsutilthe interfacehdbnsutilis used to check the "topology" of the system replication as well as the current configuration (primary/secondary) of a SAP HANA database. a second task of the interface is the posibility to run a system replication takeover (sr_takeover) or to register a former primary to a newer one (sr_register). in scale-out setups,hdbnsutilsometimes might take some time π΄ βSAPHanaTopologyuses only task one.SAPHanaControlleris using all three tasks. overachiever fr fr πsaphostctrlthe interfacesaphostctrluses the functionListInstancesto figure out the virtual host name of the SAP HANA instance. this is typically the hostname used during the HANA installation. cute, right? π
β οΈ okay bestie, gentle heads-up: please notice that the method to "send" the findings via the node status attributes might change in a next version. so please do not think about those attributes as an "API". also do not adjust those automatically set node attributes manulally in normal operation β like, hands off the auto-set attributes, she's got it π. Names and semantics of the attributes can change in next versions.
Please see also the REQUIREMENTS section below. yes, it's down there, keep scrolling π
π SUPPORTED PARAMETERS π
This resource agent supports the following parameters:
SIDβ SAP System Identifier. Has to be same on both instances. Example"SID=SLE". both instances, okay? both. πInstanceNumberβ Number of the SAP HANA database. For system replication alsoInstance Number+1is blocked. Example"InstanceNumber=00".HANA_CALL_TIMEOUTβ Define timeout how long a call to HANA to receive information can take. This could be e.g.landscapeHostConfiguration.py. there are some specific calls to HANA which have their own timeout values. for example thesr_takeovercommand does not timeout (inf) β like, she waits forever, no thoughts head empty π. If the timeout is reached, the return code will be124. If you increase the timeouts for HANA calls you should also adjust the operation timeouts of your Linux cluster resources. (Optional. Default value:120.)
π SUPPORTED PROPERTIES π
hana_${sid}_glob_filterβ Global cluster propertyhana_${sid}_glob_filter. This property defines which messages are logged by the RA. It should only be set if requested by support engineers. The default is sufficient for normal operation. like unplugging stuff and seeing if it works β don't, unless support said so π Message Types:[ act | dbg | dec | flow | top ]- ACT: Action.
start,stop,sr_takeoverand others. See also section SUPPORTED ACTIONS. - DBG: Debugging info. Usually not needed at customer site. See SUSE TID
7022678for maximum RA tracing. - DEC: Decision taken by the RA.
- FLOW: Function calls and the respective return codes.
- TOP: Topology. Messages related to HANA SR topology, like site name and remote site.
- ACT: Action.
Optional, advanced. Default value: ra-act-dec-lpa.
π¦ SUPPORTED ACTIONS π¦
This resource agent supports the following actions (operations):
startβ Sets the status of the clone to "started". Suggested minimum timeout:600. πͺstopβ Sets the status of the clone to "stopped". Suggested minimum timeout:300.statusβ Reports whether the HANA instance is running. Suggested minimum timeout:60.monitorβ Analyses the nodes HANA roles and landscape status. Suggested minimum timeout:600. Suggested interval:50. πvalidate-allβ Reports whether the parameters are valid. Suggested minimum timeout:5.meta-dataβ Retrieves resource agent metadata (internal use only). Suggested minimum timeout:5.methodsβ Reports which methods (operations) the resource agent supports. Suggested minimum timeout:5.reloadβ Changes parameters without forcing a recover of the resource. Suggested minimum timeout:5. glow-up without the downtime, we love her β¨
π RETURN CODES π
The return codes are defined by the OCF cluster framework. Please refer to the OCF definition on the website mentioned below.
In addition return code 124 is used if HANA_CALL_TIMEOUT has been exceeded. that's the timeout one, remember her? β°
π EXAMPLES π
- Example configuration of
SAPHanaTopologyresource for HANA scale-up. In addition, aSAPHanaControllerresource is needed to make this work. TheSAPHanaTopologymonitoring intervall should be shorter than the one of thatSAPHanaController. shorter, okay? like a quick little vibe check before the big one π«Ά
primitive rsc_SAPHanaTop_SLE_HDB00 ocf:suse:SAPHanaTopology \
op start interval="0" timeout="600" \
op stop interval="0" timeout="300" \
op monitor interval="50" timeout="600" \
params SID="SLE" InstanceNumber="00"
clone cln_SAPHanaTop_SLE_HDB00 rsc_SAPHanaTop_SLE_HDB00 \
meta clone-node-max="1" interleave="true"
- Example configuration of
SAPHanaTopologyresource for HANA scale-out. The HANA consists of two sites with five nodes each. An additional cluster node is used as majority maker for split brain situations. In addition, aSAPHanaControllerresource is needed to make this work. TheSAPHanaTopologymonitoring intervall should be shorter than the one of thatSAPHanaController. yes she's saying it again, it's important π’
primitive rsc_SAPHanaTop_SLE_HDB00 ocf:suse:SAPHanaTopology \
op start interval="0" timeout="600" \
op stop interval="0" timeout="300" \
op monitor interval="50" timeout="600" \
params SID="SLE" InstanceNumber="00"
clone cln_SAPHanaTop_SLE_HDB00 rsc_SAPHanaTop_SLE_HDB00 \
meta clone-node-max="1" interleave="true"
location SAPHanaTop_not_on_majority_maker cln_SAPHanaTop_SLE_HDB00
-inf: vm-majority
order SAPHanaTop_first Optional: cln_SAPHanaTop_SLE_HDB00
mst_SAPHanaCon_SLE_HDB00
- Showing the current
SAPHanaTopologyresource configuration on scale-up. The primitive is"rsc_SAPHanaTop_SLE_HDB00"and clone is"cln_SAPHanaTop_SLE_HDB00". The constraintsΒ΄ names are starting with"SAPHanaTop". detective mode: activated π
# crm configure show | grep SAPHanaTop
# crm configure show rsc_SAPHanaTop_SLE_HDB00
# crm configure show cln_SAPHanaTop_SLE_HDB00
# crm configure show SAPHanaTop_first
- Showing HANA call timeouts.
# grep -a SAPHanaTop.*lssRc=124 /var/log/messages
- Correlating
SAPHanaTopologysyslog entry with HANA nameserver trace entry. matching puzzle pieces fr π§©
# grep "SAPHanaTop.*16933.*monitor_clone" /var/log/messages | awk
'{print $1,$3,$7,$11,$12,$13}'
# su - hxeadm
~> cdtrace
~> grep "2023-11-01.*parent.*16933" nameserver_*trc | awk '{print
$2,$3,$22,$23,$24,$25}'
~> exit
π FILES π
/usr/lib/ocf/resource.d/suse/SAPHanaControllerβ the controller resource agent/usr/lib/ocf/resource.d/suse/SAPHanaTopologyβ the topology resource agent (hi, that's her π)/usr/lib/ocf/resource.d/suse/SAPHanaFilesystemβ the filesystem monitoring resource agent/usr/lib/SAPHanaSR-angi/β directory with function libraries$HA_RSCTMP/SAPHana/SAPTopologyON.$SIDβ the RA's status file (subject to change) π yes, subject to change, don't get attached/usr/sap/$SID/$InstanceName/exeβ default path forDIR_EXECUTABLE/usr/sap/$SID/SYS/profileβ default path forDIR_PROFILE
π₯ REQUIREMENTS π₯
For the current version of the SAPHanaTopology resource agent that comes with the software package SAPHanaSR-angi, the support is limited to the scenarios and parameters described in the respective manual page SAPHanaSR-angi(7) and its references. so like, stay in your lane and it's all good π
π SEE ALSO π
ocf_suse_SAPHanaController(7)ocf_suse_SAPHanaFilesystem(7)SAPHanaSR-showAttr(8)crm(8)SAPHanaSR-angi(7)SAPHanaSR(7)SAPHanaSR-ScaleOut(7)https://documentation.suse.com/sbp/sap/http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/s-ocf-return-codes.htmlhttp://scn.sap.com/docs/DOC-60334http://scn.sap.com/community/hana-in-memory/blog/2015/12/14/sap-hana-sps-11-whats-new-ha-and-dr--by-the-sap-hana-academy
π AUTHORS π
F.Herschel, L.Pinne. (legends, honestly π«‘)
πΈ COPYRIGHT πΈ
- (c) 2014 SUSE Linux Products GmbH, Germany.
- (c) 2015-2017 SUSE Linux GmbH, Germany.
- (c) 2018-2026 SUSE LLC
SAPHanaTopology comes with ABSOLUTELY NO WARRANTY. For details see the GNU General Public License at http://www.gnu.org/licenses/gpl.html. absolutely no warranty bestie, she said what she said π€
π and that's the whole page! this edition was dated 09 Oct 2025, from the ocf_suse_SAPHanaTopology(7) manual β go forth and cluster responsibly, mwah! π§β¨π
π¦ where this page comes from
- opensuse-leap 16.0: SAPHanaSR-angi 1.3.4-160000.1.1 Β· GPL-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms