SAPHanaSR-ScaleOut-XSA(7)
π NAME π
SAPHanaSR-ScaleOut-XSA β no cap, this is the page about automating SAP HANA system replication for standalone XSA setups. Like, the whole vibe. π¦
β¨ DESCRIPTION β¨
Okay bestie, gather round, because this manual page is your whole guide to setting up and managing the automation of SAP HANA system replication (SR) in scale-out setups that have a standalone eXtended application Services Advanced (XSA) server in the mix. π
Heads up though: this page is specifically the standalone-XSA flavour. If you're running some other scale-out scenario, go read SAPHanaSR-ScaleOut(7) instead β that's your girl for the general case. π
So what even is SAP HANA XSA? It's a platform for developing and executing micro-service oriented applications. That's the whole thing. Iconic, honestly. β¨
πΈ the actual setup, iykyk πΈ
The scale-out standalone XSA scenario is two nodes per site. Two. Per site. Let that sink in. π«Ά
- One node runs the HANA master namesever and an indexserver.
- The other node runs an HANA nameserver slave and the standalone XSA server β but no indexserver. Not a single one. π
HANA system replication is set up between the two sites, and on top of that, the XSA Filesystem Storage (fss) is shared across the sites. Yes, across. Both of them. π₯
π and the cluster resource config? π
Here's the tea: the cluster resource configuration for HANA scale-out with standalone XSA is almost the same as the scale-out ERP scenario, progressive variant. Almost. The differences are, currently:
- β an additional
IPaddr2resource for the primary XSA worker - β an additional
SAPHanaFilesystemresource for the XSA fss directory (this one's optional) - β no 3rd replication site connected. At all. Not invited. π
π§ where to get the real details π§
For the full picture, go read up on all of these β they're literally right there waiting for you:
SAPHanaController-scale-out(7)ocf_suse_SAPHanaTopology(7)ocf_suse_SAPHanaFilesystem(7)susHanaSR.py(7)susChkSrv.py(7)susTkOver.py(7)SAPHanaSR-alert-fencing(8)SAPHanaSR-hookHelper(8)SAPHanaSR-ScaleOut_basic_cluster(7)
β¦and also peep the IPaddr2 example further down this page. π
β¨ EXAMPLES β¨
π Example one: the whole setup, big picture
So like, this is the overview for setting up SAP HANA with standalone XSA and system replication. Read it like a vibe check before you commit, bestie.
On all cluster nodes the OS, filesystem, etc. is already installed and configured appropriately for an HANA scale-out scenario. Installation sources for SAP HANA and XSA are prepared. HANA at both sites will be installed using the same wildcard IP address for XSA, so they must not run as primary in parallel. site1 will become primary, site2 will become secondary β and that happens after the final test (step 5.9).
The installation procedure looks like this, and yes, I'm giving you the full list because you deserve the full list:
1.1collect information and prepare parameter sheet1.2provide wildcard DNS entry for the XSA IP address1.3export share with XSA fss directory on NFS server1.4prepare/etc/fstabonnode12andnode222.1set XSA IP address onnode122.2install HANA with XSA onsite1withnode11(master/worker) andnode12(xs_worker)2.3disable XSA and back-up XSA fss onnode122.4change fss to NFS inxscontroller.inionsite12.5create mountpoint for fss share and mount fss from NFS onnode122.6restore XSA fss and enable XSA onnode122.7stop HANA onsite12.8remove XSA IP address fromnode123.1set XSA IP address onnode223.2install HANA with XSA onsite2withnode21(master/worker) andnode22(xs_worker)3.3disable XSA and back-up XSA fss onnode223.4change fss to NFS inxscontroller.inionsite23.5create mountpoint for fss share and mount fss from NFS onnode223.6restore XSA fss and enable XSA onnode223.7copy XSA ssfs keystore fromsite2tosite13.8copy HANA ssfs keystore fromsite2tosite13.9back-up HANA onnode213.10enable HANA system replication onnode214.1register HANAsite1as secondary tonode214.2start HANA onsite15.1check everything is fine atsite1andsite25.2stop HANA atsite25.3remove XSA IP address fromnode225.4do manual takeover atsite15.6set XSA IP address onnode125.7register HANAsite2as secondary tonode115.8start HANA onsite25.9check everything is fine atsite1andsite2
Detailed examples for most of the steps are given below. π
π¦ XSA fss entry in /etc/fstab
Needs to be done before the NFS share with XSA fss is mounted locally. This filesystem is needed on both XSA standalone nodes β not on the HANA master nodes.
The correct mount options are depending on the NFS server. However, client-side write caching has to be disabled. The path has to match fss_storage_path in xscontroller.ini. Since the fss directory is mounted below /hana/shared, which also comes from outside, the fss entry should follow later.
nfs1:/s/ha1/xsfss /hana/shared/HA1/xs/controller_data/xsfss nfs4
rw,noac,sync,default 0 0
Note: The NFS share might be monitored, but not mounted/umounted by the HA cluster. See ocf_suse_SAPHanaFilesystem(7) for details.
π§ Adapting the XSA fss entry in xscontroller.ini
Needs to be adapted after XSA fss has been backed-up and before fss will be restored. Example SID is HA1, directory is xsfss.
# cat /hana/shared/HA1/global/hdb/custom/config/xscontroller.ini
...
[fss]
fss_storage_path = /hana/shared/HA1/xs/controller_data/xsfss
πΈ Creating the local mountpoint for XSA fss and mounting it from remote NFS
Needs to be done at both sites before restoring the fss. As above, SID is HA1 and directory is xsfss.
# mkdir /hana/shared/HA1/xs/controller_data/xsfss
# mount /hana/shared/HA1/xs/controller_data/xsfss
# chown ha1adm:sapsys /hana/shared/HA1/xs/controller_data/xsfss
π Copying the XSA secure keystore from primary site to secondary
Needs to be done before registering the secondary site. Primary site is site2, secondary site is site1, SID is HA1.
# cd /hana/shared/HA1/global/xsa/security/
# md5sum ssfs/*/*
# rsync -va ssfs node11:$PWD/
# ssh node11 "md5sum $PWD/ssfs/*/*"
β Copying the HANA secure keystore from primary site to secondary
Needs to be done before registering the secondary site. Secondary site node is node11, SID is HA1.
# cd /usr/sap/HA1/SYS/global/security/rsecssfs
# md5sum */*
# rsync -va * node11:$PWD/
# ssh node11 "md5sum $PWD/*/*"
π Disabling XSA and backing up the fss
Needs to be done at both sites before changing the fss from local to NFS. SID is HA1.
# su - ha1adm -c "XSA disable; XSA backup-fss"
π Restoring the fss and enabling XSA
Needs to be done at both sites after the fss has been changed from local to NFS. SID is HA1.
Make sure not both active XSA sites will access the shared fss directory at the same time. π Like, genuinely, do not do that.
# su - ha1adm -c "XSA restore-fss; XSA enable"
π Stopping HANA, including XSA
Needs to be done at the site that should become secondary, before the fss at the other site is changed from local to NFS. SID is HA1, instance number is 00.
# su - ha1adm
~> sapcontrol -nr 00 -function StopSystem
~> sapcontrol -nr 00 -function WaitforStopped 30 60
~> sapcontrol -nr 00 -function GetSystemInstanceList
π Backing up HANA and enabling system replication as primary site
Needs to be done at the future primary site, before registering the other site as secondary. SID is HA1, primary site is site2, instance number is 00.
# su - ha1adm
~> hdbsql -i 00 -u SYSTEM -d SYSTEMDB \
"BACKUP DATA FOR FULL SYSTEM USING FILE ('backup')"
~> hdbnsutil -sr_enable --name=site2
π₯ Registering and starting HANA as secondary site
SID is HA1, secondary site is site1, primary master is node21, instance number is 00. Needs primary site up and running β no shortcuts, bestie.
# su - ha1adm
~> hdbnsutil -sr_register --name=site1 \
--remoteHost=node21 --remoteInstance=00 \
--replicationMode=sync --operationMode=logreplay
~> sapcontrol -nr 00 -function StartSystem
~> sapcontrol -nr 00 -function WaitforStarted 30 60
~> sapcontrol -nr 00 -function GetSystemInstanceList
π Checking that HANA database and XSA are fine
Should be done at both sites β before anything will be done, and after having done anything on HANA database and XSA. SID is HA1, instance number is 00.
# su - ha1adm
~> hdbnsutil -sr_state
~> sapcontrol -nr 00 -function GetSystemInstanceList
~> cdpy; python landscapeHostConfiguration.py
~> cdpy; python systemReplicationStatus.py
~> XSA info
Note: Older HANA versions do not support systemReplicationStatus.py at secondary site. π
π«Ά Manual takeover for HANA database and XSA, without the Linux cluster
A manual takeover should be done for testing the HANA database and XSA setup, before integrating with the Linux cluster.
Once HANA database and XSA are controlled by the Linux cluster, the cluster resource has to be set into maintenance before doing a manual takeover. See SAPHanaSR_maintenance_examples(7).
If there is no Linux cluster, a manual takeover can be done by following this procedure:
- On both sites: Check everything is fine.
- On primary site: Stop HANA database and XSA (
sapcontrol ... StopSystem). - On primary site: Remove XSA IP address from XSA node and remove HANA IP address from HANA master node.
- On secondary site: Set XSA IP address on XSA node and set HANA IP address on HANA master node.
- On secondary site: Do takeover (
hdbnsutil -sr_takeover). - On new primary site: Check everything is fine.
- On former primary site: Register as new secondary and start (
hdbnsutil -sr_register ... ; sapcontrol ... StartSystem). - On both sites: Check everything is fine.
π¦ IPaddr2 resource for primary XSA
Needs to run together with the primary XSA services. Is used by xscontroller for connecting internally, and is used by external clients. Thus this IP address needs to be resolved as wildcard DNS entry.
The shown location constraint works for setups with two nodes per site. Example SID is HA1, instance number is 00, IP address is 192.168.178.188.
primitive rsc_ip_HA1_XSA00 IPaddr2 \
op monitor interval=20s timeout=20s \
params ip=192.168.178.188
location loc_ip_HA1_XSA00 \
rsc_ip_HA1_XSA00 \
rule 2000: master-rsc_SAPHanaCon_HA1_HDB00 eq 101
See also ocf_hearbeat_IPAddr(2) and SAPHanaSR-ScaleOut_basic_cluster(7).
π Alternative IPaddr2 resource for HANA primary master
Alternative resource configuration for the HANA primary master virtual IP address. Instead of following the SAPHanaController resource PROMOTED role by colocation rule, the IPaddr2 resource follows the node score by location rule directly. Example SID is HA1, instance number is 00, IP address is 192.168.178.1.
Note: Understand the impact before trying. For real, for real. π
primitive rsc_ip_HA1_HDB00 IPaddr2 \
op monitor interval=10s timeout=20s \
params ip=192.168.178.1
location loc_ip_HA1_HDB00 \
rsc_ip_HA1_HDB00 \
rule 2000: master-rsc_SAPHanaCon_HA1_HDB00 eq 150
See also ocf_hearbeat_IPAddr(2) and SAPHanaSR-ScaleOut_basic_cluster(7).
π SAPHanaFilesystem resource for the shared XSA fss
Optional resource to check the NFS sharing XSA fss across sites. The HANA consists of two sites with two nodes each. An additional cluster node is used as majority maker for split brain situations. One filesystem holds the XSA fss, provided by an NFS server and shared across sites. On both XSA worker nodes the NFS share is mounted statically. The SAPHanaFilesystem RA is used for monitoring that filesystem, but not for mounting/umounting. SID is HA1, instance number is 00, shared directory is /hana/shared/HA1/xs/controller_data/xsfss as defined in /etc/fstab, cluster nodes without fss are nodeMM, node11 and node21.
primitive rsc_SAPHanaFil_HA1_XSA00 ocf:suse:SAPHanaFilesystem \
op start interval="0" timeout="10" \
op stop interval="0" timeout="20" on-fail="fence" \
op monitor interval="120" timeout="180" \
params SID="HA1" InstanceNumber="00"\
DIRECTORY="/hana/shared/HA1/xs/controller_data/xsfss"
clone cln_SAPHanaFil_HA1_XSA00 rsc_SAPHanaFil_HA1_XSA00 \
meta clone-node-max="1" interleave="true"
location SAPHanaFil_XSA_not_nodeMM cln_SAPHanaFil_HA1_XSA00 -inf:
nodeMM
location SAPHanaFil_XSA_not_node11 cln_SAPHanaFil_HA1_XSA00 -inf:
node11
location SAPHanaFil_XSA_not_node21 cln_SAPHanaFil_HA1_XSA00 -inf:
node21
See also ocf_suse_SAPHanaFilesystem(7).
π FILES π
/hana/shared/$SID/global/hdb/custom/config/xscontroller.iniβ the XSA controller config file. that's literally where the controller reads its settings from, bestie./hana/shared/$SID/xs/controller_data/fss/β the default Filesystem Storage directory (yes,fss, we been knew π )./hana/shared/$SID/global/xsa/security/ssfs/β the XSA secure keystore directory. keep it safe, keep it secret π«Ά/usr/sap/$SID/SYS/global/security/rsecssfs/β the HANA database secure keystore directory (different keystore, different directory, don't mix them up, i beg of you)./etc/passwd,/etc/groupsβ the local users and groups definition files./etc/fstabβ static information about the filesystems.
β¨ REQUIREMENTS β¨ (read these, fr fr)
- SAPHanaSR-angi version 1.3 or later π
- SAP HANA 2.0 SPS07 rev.79.
- Currently two nodes per site are supported. One HANA master/worker and one standalone XSA worker. that's the whole squad, no plus-ones π
- The SAP HANA XSA service is installed for hostname based routing. This needs DNS wildcard support at the DNS server side β so go make friends with your DNS admin π¦
- Both sites use the same XSA default domain and API URL.
- The XSA service IP address is configured as a cluster resource and is moved together with the primary XSA. it travels with its girl, periodt.
- A highly available NFS service provides the shared XSA Filesystem Storage (
fss) directory across sites. Thefssis configured identically on both sites β mirror, not matching-ish πΈ - Linux user
<sid>admhas the same UID and GIDs on all cluster nodes. consistency is the vibe check π₯ - Linux user
<sid>admhas sudo permission ALL for Linux users<sid>xsaandsap<sid>xsa. - The XSA secure keystore (
ssfs) is copied from primary to secondary site. - SAP HANA host auto-failover is not supported. nope. not a thing here. π«
- Multi-target or multi-tier system replication is not supported for continous operation. However, it might be enabled temporarily for a specific purpose β in that case, the XSA Filesystem Storage has to be transfered as well. don't forget the fss, please, i'm begging π
SAPHanaControllerrelies on HANA landscape status. Takeover will not be initiated for landscape status 2, 3 and 4. SeeSAPHanaController-scale-out(7).- When recovering the
srHookattribute from the cache file at cluster start,SAPHanaControllerrelies on HANA landscape status at both sites going to okay before system replication status. This is not guaranteed for the standalone XSA. So, any maintrenance procedure needs to take care for that. lowkey a trap, so read it twice π - The
sapcontrolfunctionWaitforStoppedmight return befor the XSA is stopped completely. Thus the landscape status needs to be checked explicitely. like, actually check it. don't trust the return. - The XSA scenario should be configured as progressive variant. See
SAPHanaSR-angi-scenarios(7). - For requirements of the overall scale-out setup, see also the REQUIREMENTS section in
SAPHanaSR-ScaleOut(7). - For requirements of SAP HANA XSA, please refer to the SAP product documentation. go straight to the source, bestie π
π BUGS π
In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. that's the magic component name β screenshot it, tattoo it, whatever works π«Ά
π SEE ALSO π
the whole friend group:
SAPHanaSR-angi(7) , SAPHanaSR-ScaleOut(7) , SAPHanaSR-angi-scenarios(7) , SAPHanaController-scale-out(7) , ocf_suse_SAPHanaFilesystem(7) , susChkSrv.py(7) , SAPHanaSR-alert-fencing(7) , SAPHanaSR_maintenance_examples(7) , fstab(5) , nfs(5) ,
and the SAP Notes hall of fame π:
1999880- FAQ: SAP HANA System Replication1999997- FAQ: SAP HANA Memory2183363- Configuration of SAP HANA internal network2243019- Providing SSL certificates for domains defined in SAP HANA extended application services, advanced model2243156- Secure user setup for SAP HANA extended application services, advanced model2245631- Domains and routing configuration for SAP HANA extended application services, advanced model2303772- SAP HANA XS Advanced Model SPS12 Release Note2300936- Failover & High Availability with SAP HANA extended application services, advanced model2300937- Backup and restore for SAP HANA extended application services, advanced model then notice XSA can't start up with error:2300943- Enabling JDBC SSL encryption for SAP HANA extended application services, advanced model2507070- Multiple XSA Systems on the same host2509043- Standard Sizing Profiles for SAP HANA extended application services, advanced model2511224- How to activate a XSA technical user2564474- Installation of SAP HANA XS Advanced Runtime fails with error "Assigning Additional Roles to the Local Host failed".2596466- FAQ: SAP HANA XS Advanced Information published on SAP2741459- VA32 dump: DBSQL_DUPLICATE_KEY_ERROR2749450- XSA technical user is frequently locked - authentication failed2752384- HANA XS Advanced does not start - Unable to read the SID from the SL config store - authentication failed2866031- Web IDE fails to start with "Request to UAA failed: certificate has expired"2949526- XS controller is crashing with OutOfMemory Error3014176- Applying System Size Dependent Resource Limits During Installation or Upgrade3083089- Java heap space: failed to allocate. XSA execution agent error3110553- XSA Installation failed due to diserver can't start up3114270- How to change the port used by existing application on XSA(XS advanced)3224631- Hana is unavailable with message: "process is terminating, because lockfile '/usr/sap/.../../../lock/hdbindexserver@....pid' is missing/wrong."3234663- XSA can't start up after system refresh due to error "Unable to locate XSA persistence within tenant db '<DB name>'"3335637- Installation of SAP HANA XS Advanced Runtime stucks in adding the role xs_worker3380973- Resolving Port Conflicts with SAP HANA XS Advanced3433435- How to check XSA memory settings3449644- Not able to change the XSA default_domain with xscontroller.ini3601962- xscontroller crashes with an out-of-memory error when restaging many applications in parallel
π AUTHORS π
A.Briel, F.Herschel, L.Pinne. legends, honestly π
π COPYRIGHT π
(c) 2025-2026 SUSE LLC
The package SAPHanaSR-angi comes with ABSOLUTELY NO WARRANTY. For details see the GNU General Public License at http://www.gnu.org/licenses/gpl.html
okay so that "ABSOLUTELY NO WARRANTY" is in all caps for a reason β it means what it says, no cap π
and that's the whole page, bestie, you made it to the end π¦β¨ this was the SAPHanaSR-ScaleOut-XSA(7) manual, dated 10 Jun 2026 β go forth and keep those XSA keystores copied ππΈπ«Ά π
π¦ 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