ocf_suse_SAPHanaTopology(7)

πŸ“¦ version 1.3.4, in opensuse-leap 16.0

πŸ’… 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:

  1. landscapeHostConfiguration.py okay so landscapeHostConfiguration.py has 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. The SAPHanaTopology resource agent will interpret return code 0 as FATAL, 1 as NOT-RUNNING (or ERROR) and return codes 2+3+4 as RUNNING. FATAL means the status can not be determined, bestie, like at all 😭 SAPHanaTopology scans the output of landscapeHostConfiguration.py to identify the roles of the cluster node. "Roles" means configured and current role of the nameserver as well as the indexserver. both. of them. πŸ‘‘
  2. hdbnsutil the interface hdbnsutil is 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, hdbnsutil sometimes might take some time 😴 β€” SAPHanaTopology uses only task one. SAPHanaController is using all three tasks. overachiever fr fr πŸ’…
  3. saphostctrl the interface saphostctrl uses the function ListInstances to 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 also Instance Number+1 is 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 the sr_takeover command does not timeout (inf) β€” like, she waits forever, no thoughts head empty πŸ’€. If the timeout is reached, the return code will be 124. 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 property hana_${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_takeover and others. See also section SUPPORTED ACTIONS.
    • DBG: Debugging info. Usually not needed at customer site. See SUSE TID 7022678 for 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.

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 SAPHanaTopology resource for HANA scale-up. In addition, a SAPHanaController resource is needed to make this work. The SAPHanaTopology monitoring intervall should be shorter than the one of that SAPHanaController. 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 SAPHanaTopology resource 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, a SAPHanaController resource is needed to make this work. The SAPHanaTopology monitoring intervall should be shorter than the one of that SAPHanaController. 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 SAPHanaTopology resource 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 SAPHanaTopology syslog 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 for DIR_EXECUTABLE
  • /usr/sap/$SID/SYS/profile β€” default path for DIR_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 πŸ‘‘


πŸ’– AUTHORS πŸ’–

F.Herschel, L.Pinne. (legends, honestly 🫑)


  • (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