SAPStartSrv_u...rom_Filesystem(7)

πŸ“¦ version 0.9.6+git.1791548114.2a86b96, in opensuse-leap 16.0

🌸 NAME 🌸

okay bestie, welcome to SAPStartSrv_upgrade_from_Filesystem(7) β€” the manual page whose whole personality is upgrade from Filesystem to SAPStartSrv. πŸ’…

  • SAPStartSrv_upgrade_from_Filesystem β€” upgrade from Filesystem to SAPStartSrv.

πŸ’– DESCRIPTION πŸ’–

πŸ’« What is the upgrade about? πŸ’«

So the whole plot here is upgrading an HA cluster for SAP central service instances from the Filesystem resource based setup to the simple-mount setup. Iconic, honestly. ✨

Instead of having the cluster manage filesystems per SAP instance, the simple-mount setup uses statically mounted filesystems. These filesystems are mounted at all nodes at system boot, backed by central NFS shares. Also peep manual page SAPStartSrv_upgrade_from_Filesystem_disk(7) if shared disks are used, iykyk. 🫢

The cluster controls the start and stop of the SAP start framework of each SAP instance and controls and monitors the SAP instances. See manual page ocf_suse_SAPStartSrv(7) for details. Main character cluster behavior, no cap. πŸ‘‘

The upgrade procedure depends on an initial setup as described in setup guides and manual pages. See REQUIREMENTS below and manual page ocf_suse_SAPStartSrv(7). The procedure does not necessarily need downtime for the SAP central service instances, if planned and executed carefully. Nevertheless, it should be done under friendly conditions. Like, be nice to your cluster, bestie. 🌸

πŸ› οΈ What will be changed? πŸ› οΈ

This will be changed:

  • a. Two systemd services sapping and sappong will be enabled. πŸ’…
  • b. The SAP instance working directories for enqueue service (ASCS or SCS) and enqueue replicator (ERS) will be added to fstab on both cluster nodes, and mounted statically. πŸŽ€
  • c. The Filesystem resources for ASCS and ERS will be removed from CIB.
  • d. Instead, SAPStartSrv resources for ASCS and ERS will be added to the CIB.

The resulting setup will have two statically mounted directories, each backed by one NFS share β€” one per SAP instance (f.e. ASCS00, ERS10). In addition it will have the SYS directory on local disk. This is slightly different from the original simple-mount layout, where all three directories are provided as part of one single SAP system directory (/usr/sap/$SID/), backed by one common NFS share. It's giving "same vibe, different layout" and we respect it. πŸ¦‹

πŸ‘€ How does the upgrade procedure look like at a glance? πŸ‘€

The upgrade procedure consists of ten steps:

  1. Step 1 β€” Checking for clean state and collecting information.
  2. Step 2 β€” Setting cluster in maintenance and saving old CIB.
  3. Step 3 β€” Updating resource agents and enabling systemd services.
  4. Step 4 β€” Adapting fstab and mounting SAP instance directories.
  5. Step 5 β€” Adding SAPStartSrv resources to CIB.
  6. Step 6 β€” Adapting SAPInstance resources in CIB.
  7. Step 7 β€” Removing Filesystem resources from CIB.
  8. Step 8 β€” Getting cluster out of maintenance and saving new CIB.
  9. Step 9 β€” Checking for clean state.
  10. Step 10 β€” Testing the ERS instance (optional).

Detailed examples for this steps are given in the EXAMPLES section below.

Linux cluster and SAP central services (ASCS) are kept running. However, resource management is disabled and the system goes thru fragile states during the upgrade. Heads up bestie: fragile states are literally the vibe check we do not want to linger in. πŸ’€

πŸŽ’ What needs to be prepared upfront? πŸŽ’

First, make yourself familiar with concepts, components and configuration of the simple-mount HA scenario for SAP central services. Refresh your knowledge of the Filesystem resource based HA scenario. Study era, basically. πŸ“šβœ¨

Next, the following information needs to be collected and documented before upgrading a cluster:

  1. Names of cluster nodes
  2. Names of SAP instance directories
  3. Names of NFS server and shares for the SAP instance directories, mount options
  4. Names of SAP instance profiles
  5. Names of Filesystem resources and resource groups
  6. Status of packages and update repository
  7. Deviation of configuration from setup guide, if existing
  8. Matching with REQUIREMENTS section below

Finally, prepare config templates with correct values for the given cluster. Ideally also all needed commands are prepared in detail. Prep is self-care, fr fr. πŸ«ΆπŸ’–


✨ EXAMPLES ✨

πŸ“ Collecting information for one node, to be prepared upfront. πŸ“

This information should be collected before starting the upgrade. It should be done for each cluster node. See also SAPStartSrv_maintenance_examples(7).

In this example, it is node node1, SAP system EN2, instance ASCS00, instance profile EN2_ASCS00_node12as, NFS server 192.168.1.1, share /export/EN2/usr-sap/ASCS00, mount options defaults, service pack 15-SP7, resource-agents version 4.13.0, sapstartsrv-resouce-agents version 0.9.6.

For this parameters, the respective values have to be collected on the actual cluster and documented.

Output is shown for each command.

1. Names of cluster nodes

node1:~ # crm configure show type:node

node 1: node1
node 2: node2

2. Names of SAP instance directories

3. Names of NFS server and shares for the SAP instance directories, mount options

node1:~ # mount | awk '$5=="nfs" {print $1,$3}'

192.168.1.1:/export/node12/EN2/sapmnt-EN2 /sapmnt/EN2
192.168.1.1:/export/node12/EN2/usr-sap-EN2/ASCS00 /usr/sap/EN2/ASCS00
node1:~ # crm configure show type:primitive |\
 grep "primitive.*Filesystem"

primitive rsc_fs_EN2_ASCS00 Filesystem \
primitive rsc_fs_EN2_ERS10 Filesystem \
node1:~ # crm configure show rsc_fs_EN2_ASCS00 | grep "params"

params device="192.168.1.1:/export/EN2/usr-sap/ASCS00" \
 directory="/usr/sap/EN2/ASCS00" fstype=nfs \
node1:~ # ls -l /usr/sap/EN2/SYS/ | awk '{print $9,$11}'

exe
gen
global /sapmnt/EN2/global
profile /sapmnt/EN2/profile
src

4. Names of SAP instance profiles

node1:~ # crm configure show type:primitive |\
 grep "InstanceName="

params InstanceName=EN2_ASCS00_node12as \
 START_PROFILE="/sapmnt/EN2/profile/EN2_ASCS00_node12as" \
 AUTOMATIC_RECOVER=False MINIMAL_PROBE=true \
params InstanceName=EN2_ERS10_node12er \
 START_PROFILE="/sapmnt/EN2/profile/EN2_ERS10_node12er" \
 AUTOMATIC_RECOVER=False IS_ERS=True MINIMAL_PROBE=true \

5. Names of Filesystem resources and resource groups

node1:~ # crm configure show type:primitive |\
 grep "primitive.*Filesystem"

primitive rsc_fs_EN2_ASCS00 Filesystem \
primitive rsc_fs_EN2_ERS10 Filesystem \
node1:~ # crm configure show type:group | grep group

group grp_EN2_ASCS00 rsc_vip_EN2_ASCS00 \
 rsc_fs_EN2_ASCS00 rsc_SAPInstance_EN2_ASCS00 \
group grp_EN2_ERS10 rsc_vip_EN2_ERS10 \
 rsc_fs_EN2_ERS10 rsc_SAPInstance_EN2_ERS10 \

6. Status of packages and update repository

node1:~ # rpm -q sapstartsrv-resource-agents resource-agents

resource-agents-4.13.0+git6.ae50f94f-150700.7.3.1.x86_64
sapstartsrv-resource-
agents-0.9.6+git.1787302020.9a26c72-150700.11.1.noarch
node1:~ # zypper se --details sapstartsrv-resource-agents resource-
agents |\
 grep -v srcpackage

 ...
i+ | resource-agents             ...| 4.13.0...| SLE-Product-
HA...SP7-Updates
i+ | sapstartsrv-resource-agents ...| 0.9.6+...| SLE-Module-
SAP...SP7-Updates
 ...
node1:~ # zypper up -y -D sapstartsrv-resource-agents resource-agents

 ...
The following packages are going to be upgraded:
  resource-agents sapstartsrv-resource-agents
 ...

Okay so we’re mid-checklist and the vibe is β€œdocument everything”. Here’s the parameter list the original is hinting at β€” same names, same empty Value(s) energy:

  • Names of cluster nodes β€” Value(s): (blank)
  • NFS server β€” Value(s): (blank)
  • NFS mount options β€” Value(s): (blank)
  • ASCS NFS share β€” Value(s): (blank)
  • ERS NFS share β€” Value(s): (blank)
  • ASCS SAP instance directory β€” Value(s): (blank)
  • ERS SAP instance directory β€” Value(s): (blank)
  • ASCS SAP instance profile β€” Value(s): (blank)
  • ERS SAP instance profile β€” Value(s): (blank)
  • ASCS Filesystem resource β€” Value(s): (blank)
  • ERS Filesystem resource β€” Value(s): (blank)
  • ASCS resource group β€” Value(s): (blank)
  • ERS resource group β€” Value(s): (blank)
A table might be useful for documenting the needed parameters.

Now the actual steps, bestie. Buckle up, this is a whole ritual πŸ’…

  • Installing software package sapstartsrv-resource-agents. β€” To be done on one node for both nodes before the upgrade. Example nodes are node1, node2.
node1:~ # zypper in -y sapstartsrv-resource-agents
node1:~ # rpm -q sapstartsrv-resource-agents

node1:~ # ssh node2 "zypper in -y sapstartsrv-resource-agents"
node1:~ # ssh node2 "rpm -q sapstartsrv-resource-agents"
  • Step 1 - Checking for clean state and collecting information. β€” This should be done before the upgrade procedure will be started and and after it has been done. Yes, the double β€œand” is literally in there, bestie. See also SAPStartSrv_maintenance_examples(7). To be done on one node for both nodes. Example nodes are node1 and node2, SAP system is EN2.
node1:~ # zypper up -y -D sapstartsrv-resource-agents resource-agents
node1:~ # mount | awk '$5=="nfs" {print $1,$3}'
node1:~ # ls -l /usr/sap/EN2/SYS/ | awk '{print $9,$11}'

node1:~ # ssh node2 "zypper up -y -D sapstartsrv-resource-agents resource-agents"
node1:~ # ssh node2 "mount" | awk '$5=="nfs" {print $1,$3}'
node1:~ # ssh node2 "ls -l /usr/sap/EN2/SYS/" | awk '{print $9,$11}'

node1:~ # cs_show_ensa_status
node1:~ # ssh node2 "cs_show_ensa_status"
  • Step 2 - Setting cluster in maintenance and saving old CIB. β€” To be done on one node for the whole cluster.
node1:~ # crm maintenance on
node1:~ # crm_mon -1r | grep "Resource management"
node1:~ # crm configure show > /root/crm.filesystem.backup
node1:~ # crm configure property stop-orphan-resources=false
node1:~ # crm configure show cib-bootstrap-options |\
  grep stop-orphan-resources
  • Step 3 - Updating resource agents and enabling systemd services. β€” To be done on one node for both nodes. Example nodes are node1 and node2.
node1:~ # zypper up sapstartsrv-resource-agents resource-agents
node1:~ # rpm -q sapstartsrv-resource-agents resource-agents
node1:~ # systemctl enable --now sapping sappong
node1:~ # systemctl status sapping sappong |\
  grep "Loaded:.*enabled"

node1:~ # ssh node2 "zypper up sapstartsrv-resource-agents resource-agents"
node1:~ # ssh node2 "rpm -q sapstartsrv-resource-agents resource-agents"
node1:~ # ssh node2 "systemctl enable --now sapping sappong"
node1:~ # ssh node2 "systemctl status sapping sappong" |\
  grep "Loaded:.*enabled"
  • Step 4 - Adapting fstab and mounting SAP instance directories. β€” To be done on one node for both nodes. Example nodes are node1 and node2, SAP system EN2, SAP instance ASCS00 and ERS2, Filesystem resources rsc_fs_EN2_ASCS00 and rsc_fs_EN2_ERS10, NFS server 192.168.1.1, NFS shares /export/EN2/usr-sap/ASCS00 and /export/EN2/usr-sap/ERS10, mount options defaults.
node1:~ # crm configure show type:primitive | grep "primitive.*Filesystem"
node1:~ # crm configure show rsc_fs_EN2_ASCS00 | grep "params"
node1:~ # crm configure show rsc_fs_EN2_ERS10 | grep "params"
node1:~ # > /root/fstab.simple-mount
node1:~ # echo "192.168.1.1:/export/EN2/usr-sap/ASCS00 /usr/sap/EN2/ASCS00 nfs defaults 0 0" \
  >> /root/fstab.simple-mount
node1:~ # echo "192.168.1.1:/export/EN2/usr-sap/ERS10 /usr/sap/EN2/ERS10 nfs defaults 0 0" \
  >> /root/fstab.simple-mount
node1:~ # cp /etc/fstab /root/fstab.backup
node1:~ # cat /root/fstab.simple-mount >> /etc/fstab
node1:~ # tail -2 /etc/fstab
node1:~ # mount /usr/sap/EN2/ASCS00 ; mount /usr/sap/EN2/ERS10
node1:~ # mount | awk '$5=="nfs" {print $1,$3}'

node1:~ # scp /root/fstab.simple-mount node2:/root/fstab.simple-mount
node1:~ # ssh node2 "cp /etc/fstab /root/fstab.backup"
node1:~ # ssh node2 "cat /root/fstab.simple-mount >> /etc/fstab"
node1:~ # ssh node2 "tail -2 /etc/fstab"
node1:~ # ssh node2 "mount /usr/sap/EN2/ASCS00 ; mount /usr/sap/EN2/ERS10"
node1:~ # ssh node2 "mount" | awk '$5=="nfs" {print $1,$3}'
  • Step 5 - Adding SAPStartSrv resources to CIB. β€” To be done on one node for the whole cluster. Example node is node1, SAP system EN2, SAP instances ASCS00 and ERS10, instance profiles EN2_ASCS00_node12as and EN2_ERS10_node12er, resource names rsc_SAPStartSrv_EN2_ASCS00 and rsc_SAPStartSrv_EN2_ERS10.
node1:~ # crm configure show type:primitive | grep "InstanceName="
node1:~ # echo "primitive rsc_SAPStartSrv_EN2_ASCS00 ocf:suse:SAPStartSrv \
  params InstanceName=EN2_ASCS00_node12as" |\
  crm configure load update -
node1:~ # echo "primitive rsc_SAPStartSrv_EN2_ERS10 ocf:suse:SAPStartSrv \
  params InstanceName=EN2_ERS10_node12er" |\
  crm configure load update -
node1:~ # crm configure show rsc_SAPStartSrv_EN2_ASCS00
node1:~ # crm configure show rsc_SAPStartSrv_EN2_ERS10

node1:~ # crm configure show type:group | grep group
node1:~ # crm configure show grp_EN2_ASCS00 > /root/crm.grp_EN2_ASCS00
node1:~ # sed -e s/rsc_fs_EN2_ASCS00/rsc_SAPStartSrv_EN2_ASCS00/g \
  -i /root/crm.grp_EN2_ASCS00
node1:~ # crm configure load update /root/crm.grp_EN2_ASCS00
node1:~ # crm configure show grp_EN2_ERS10 > /root/crm.grp_EN2_ERS10
node1:~ # sed -e s/rsc_fs_EN2_ERS10/rsc_SAPStartSrv_EN2_ERS10/g \
  -i /root/crm.grp_EN2_ERS10
node1:~ # crm configure load update /root/crm.grp_EN2_ERS10
node1:~ # crm configure show type:group
  • Step 6 - Adapting SAPInstance resources in CIB. β€” To be done on one node for the whole cluster. Example resources are rsc_SAPInstance_EN2_ASCS00 and rsc_SAPInstance_EN2_ERS10.
node1:~ # crm configure show type:primitive | grep "primitive.*SAPInstance"
node1:~ # crm resource param rsc_SAPInstance_EN2_ASCS00 set MINIMAL_PROBE true
node1:~ # crm resource param rsc_SAPInstance_EN2_ERS10 set MINIMAL_PROBE true
node1:~ # crm configure show type:primitive | grep MINIMAL_PROBE
  • Step 7 -Removing Filesystem resources from CIB. β€” To be done on one node for the whole cluster. Example node is node1, SAP system EN2, SAP instances ASCS00 and ERS10, Filesystem resources rsc_fs_EN2_ASCS00 and rsc_fs_EN2_ERS10.
node1:~ # crm configure show type:primitive | grep "primitive.*Filesystem"
node1:~ # cibadmin --delete --xpath "//primitive[@id='rsc_fs_EN2_ERS10']"
node1:~ # cibadmin --delete --xpath "//primitive[@id='rsc_fs_EN2_ASCS00']"
node1:~ # crm configure show type:primitive | grep "primitive.*Filesystem"
  • Step 8 - Getting cluster out of maintenance and saving new CIB.

...and you do this on one node for the whole cluster, bestie, no need to run around πŸ’…

node1:~ # crm configure property stop-orphan-resources=true
node1:~ # crm configure show cib-bootstrap-options |\
 grep stop-orphan-resources
node1:~ # crm resource refresh ; cs_wait_for_idle -s 3
node1:~ # crm_mon -1r --exclude=summary
node1:~ # crm configure show > /root/crm.simple-mount.backup
node1:~ # crm maintenance off
node1:~ # cs_show_ensa_status
node1:~ # ssh node2 "cs_show_ensa_status"

🧚 Step 9 β€” vibe check: is the state actually clean?

Honestly just look back at the example above, at "Step 1 - Checking for clean state and collecting information."</p> β€” same energy, same checks, no notes ✨

πŸ¦‹ Step 10 β€” testing the ERS instance (optional, but like… iconic)

This test is the "can the cluster actually move it?" moment β€” it might be done after the upgrade procedure has been completed. It shows whether the cluster can move the ERS instance to node1 and back to node2. Meanwhile the ASCS instance just keeps running, unbothered, main character energy πŸ‘‘

Again: to be done on one node for the whole cluster.

In this example the ERS is initially running on node2, just so you know the starting vibe.

node1:~ # crm_mon -1r --exclude=summary
node1:~ # ssh node2 "crm cluster stop && systemctl reboot"
node1:~ # watch -n9 "crm_mon -1r --exclude=summary"

node1:~ # ping node2

node1:~ # ssh node2 "systemctl status sapping sappong" |\
 grep "Loaded:.*enabled"
node1:~ # ssh node2 "mount" | awk '$5=="nfs" {print $1,$3}'
node1:~ # crm cluster start --all
node1:~ # watch -n9 "crm_mon -1r --exclude=summary"

🌸 FILES 🌸

  • /etc/fstab β€” the filesystem table, for statically mounted NFS shares. yep, that one 🫢
  • /usr/sap/$SID/$Instance/ β€” SAP instance directories, f.e. /usr/sap/EN2/ASCS00/
  • /usr/sap/$SID/SYS/ β€” the SAP system central local directory
  • /sapmnt/$SID/ β€” the SAP system central shared NFS directory

πŸ’– REQUIREMENTS πŸ’–

Like, read these before you touch anything, fr fr:

  • Packages sapstartsrv-resource-agents 0.9.6 and resource-agents 4.13.0, or newer. Don't be out here on old packages 😭
  • OS, Linux cluster and SAP instances all match the requirements for both the Filesystem resource based setup and the simple-mount setup.
  • The resource configuration matches a documented setup. Even if the general upgrade procedure is expected to work for customised configuration, details might need special treatment β€” so like, heads up πŸ’€
  • The SAP instance directories (/usr/sap/$SID/$InstanceName/) are provided on NFS shares. If your instance directories are backed by shared disks, you'll need additional steps and services downtime. That is out of scope for the procedure at hand. See manual page SAPStartSrv_upgrade_from_Filesystem_disk(7) if shared disks are your situation.
  • The whole upgrade procedure is tested carefully and documented in detail before being applied on production. Do not skip this. I'm so serious πŸ™ˆ
  • Linux cluster, SAP instances and enqueue replication are all in sane state before the upgrade. All cluster nodes online. Everyone present and accounted for πŸŽ€
  • The SAP instances are idle during the upgrade. No other changes on OS, cluster, SAP instances or infrastructure are done in parallel to the upgrade. No multitasking, bestie, it's not the vibe.
  • Password-less login for user root between cluster nodes. An upgrade is possible without it, but would need adapted commands β€” so, your call ✨
  • Only one SAP system (SID) per cluster. Only the ASCS and ERS instances. No dialog, diagnostic agent, webdispatcher, or other instances on the cluster nodes. An upgrade is possible with multiple SIDs or additional instances, but would need adapted commands.
  • Two nodes per cluster. An upgrade is possible with three nodes, but would need additional commands.
  • Linux cluster, SAP instances and enqueue replication are checked and in sane state before being set back into production. Final vibe check, non-negotiable πŸ’…

πŸ”₯ 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 whole thing β€” go straight to the source, iykyk 🫢


🌈 SEE ALSO 🌈

ocf_suse_SAPStartSrv(7) , ocf_heartbeat_Filesystem(7) , SAPStartSrv_basic_cluster(7) , sapping(7) , SAPStartSrv_upgrade_from_Filesystem_disk(7) , crm(8) , cibadmin(8) , crm_mon(8) , cs_show_ensa_status(8) , fstab(5) , mount(8) , awk(1) , sed(1) , zypper(8) ,

(Yes, there's a trailing comma in the original. We respect it. Periodt.)


πŸ‘‘ AUTHORS πŸ‘‘

F.Herschel, L.Pinne


(c) 2026 SUSE LLC

SAPStartSrv comes with ABSOLUTELY NO WARRANTY. For details see the GNU General Public License at http://www.gnu.org/licenses/gpl.html


okay that's the whole page, we ate and left no crumbs πŸ“ This lil beauty is SAPStartSrv_u...rom_Filesystem(7) and it's dated 26 Sep 2026 β€” so fresh, so documented, so yours. bye bestie, go do a clean upgrade πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from