Monday, 28 September 2026

Create PR - Git hub commands

 This is a step-by-step guide for contributing changes to Sachin Sant's repository using the fork-and-pull-request model.

Repository URLs

Original Repository (Upstream)

https://github.ibm.com/ssant/resource-estimator

My Fork

https://github.ibm.com/sachin-pb/resource-estimator


One-Time Setup

1. Fork the Repository

Fork the upstream repository:

ssant/resource-estimator

to your GitHub Enterprise account:

sachin-pb/resource-estimator


2. Clone Your Fork

git clone git@github.ibm.com:sachin-pb/resource-estimator.git

cd resource-estimator


3. Configure Git Identity

git config --global user.name "Sachin P Bappalige"

git config --global user.email "sachinpb@linux.ibm.com"

Verify:

git config --list | grep user

Expected:

user.name=Sachin P Bappalige

user.email=sachinpb@linux.ibm.com


4. Add Upstream Repository

Verify existing remotes:

git remote -v

Add upstream:

git remote add upstream git@github.ibm.com:ssant/resource-estimator.git

Verify:

git remote -v

Expected:

origin    git@github.ibm.com:sachin-pb/resource-estimator.git

upstream  git@github.ibm.com:ssant/resource-estimator.git


Sync with Upstream

Fetch the latest changes from the upstream repository:

git fetch upstream

Fetch a specific branch:

git fetch upstream program


Create Local Tracking Branch

git checkout -b program upstream/program

Verify:

git branch

Expected:

* program


Make Changes

Edit the required file:

vi README.md

Review changes:

git status

git diff


Stage Changes

git add README.md

Verify:

git status

Expected:

Changes to be committed:

    modified: README.md


Commit Changes

Create a signed-off commit:

git commit -s

Example commit message:

Usage error correction to README.md


Push Changes to Your Fork

Push the branch to your fork:

git push origin program


Modify the Last Commit (Optional)

If you need to make additional changes after committing:

vi README.md

git add README.md

git commit --amend

Force-push the updated commit:

git push -f origin program


Create a Pull Request

After pushing successfully, create a Pull Request from:

sachin-pb/program

        →

ssant/program

Example Pull Request:

https://github.ibm.com/ssant/resource-estimator/pull/1


Useful Verification Commands

Check Current Branch

git branch

Check Repository Status

git status

View Changes

git diff

View Commit History

git log --oneline

View Remotes

git remote -v

Verify GitHub Authentication

ssh -T git@github.ibm.com

Expected:

Hi sachin-pb! You've successfully authenticated.


Quick Reference

git clone git@github.ibm.com:sachin-pb/resource-estimator.git

cd resource-estimator


git config --global user.name "Sachin P Bappalige"

git config --global user.email "sachinpb@linux.ibm.com"


git remote add upstream git@github.ibm.com:ssant/resource-estimator.git


git fetch upstream

git checkout -b program upstream/program


vi README.md


git status

git diff


git add README.md

git commit -s


git push origin program


# If additional changes are needed

vi README.md

git add README.md

git commit --amend

git push -f origin program


# Create Pull Request

# sachin-pb/program -> ssant/program


Thursday, 16 December 2021

OpenVPN 2.x auto setup on Linux -RHEL8

 OpenVPN open source OpenVPN CLI program

The open source project client program can also connect to the Access Server. The package is available in most distributions and is known simply as openvpn. It supports the option to connect to multiple OpenVPN servers simultaneously, and it comes with a service component that can automatically and silently start any auto-login profiles it finds in the /etc/openvpn folder, even before a user has logged in. This service component can be set to automatically start at boot time with the tools available in your Linux distribution if supported. On Ubuntu and Debian, when you install the openvpn package, it is automatically configured to start at boot time.


To install the OpenVPN client on Linux, it is possible in many cases to just use the version that is in the software repository for the Linux distribution itself. If you run into any connectivity problems when using outdated software, it may be due to a possible lack of support for higher TLS versions in older versions of OpenVPN. Follow the instructions found on the open source openvpn community wiki if you wish to install the OpenVPN client on your Linux system.


After installing, you will need a connection profile. This is a file generated by your OpenVPN Access Server installation for your specific user account. It contains the required certificates and connection settings. Go to the Client web interface of your Access Server (the main address, not the /admin portion). Log in with your user credentials. You will be shown a list of files available to you for download. Pick the user-locked profile or the auto-login profile, and you will be sent a client.ovpn file. Save this file to your Linux operating system somewhere. OpenVPN Access Server supports server-locked, user-locked, and auto-login profiles, but the OpenVPN command line client is only able to connect with user-locked or auto-login connection profiles.


We are assuming you are going to start the connection through either the command line as a root user, or via the service daemon. If you want unprivileged users to be able to make a connection, take a look at the community wiki for more information on how to implement that. Here we are going to focus on the simplest implementation; run the connection as root user directly, or via the service daemon.


Start a connection with an auto-login profile manually:

Start a connection with an auto-login profile manually:


openvpn --config client.ovpn

Start a connection with a user-locked profile manually:


openvpn --config client.ovpn --auth-user-pass

If you use Google Authenticator or another extra factor authentication, add the auth-retry parameter:


openvpn --config client.ovpn --auth-user-pass --auth-retry interact

To start an auto-login connection via the service daemon, place client.ovpn in /etc/openvpn/ and rename the file. It must end with .conf as file extension. Ensure the service daemon is enabled to run after a reboot, and then simply reboot the system. The auto-login type profile will be picked up automatically and the connection will start itself. You can verify this by checking the output of the ifconfig command; you should see a tun0 network adapter in the list.


[root@openvpn]# systemctl enable openvpn@pok_zone10015-onsite

Created symlink from /etc/systemd/system/multi-user.target.wants/openvpn@pok_zone10015-onsite.service to /usr/lib/systemd/system/openvpn@.service.

[root@openvpn]# systemctl stop openvpn@pok_zone10015-onsite

[root@ openvpn]# systemctl start openvpn@pok_zone10015-onsite

Enter Auth Username: sachin@yahoo.com

Enter Auth Password: ********************

[root@ openvpn]#



[root@openvpn]# systemctl enable openvpn@pok_zone10015-onsite

Created symlink from /etc/systemd/system/multi-user.target.wants/openvpn@pok_zone10015-onsite.service to /usr/lib/systemd/system/openvpn@.service.

[root@ibmgpu07]# systemctl stop openvpn@pok_zone10015-onsite


[root@ibmgpu07 openvpn]# shutdown -r now

login as: root

root@ibmgpu07.eng.platformlab.ibm.com's password:

Last login: Mon Sep  6 06:47:18 2021 from 9.195.45.219

[root@ibmgpu07 ~]# systemctl status openvpn@pok_zone10015-onsite

● openvpn@pok_zone10015-onsite.service - OpenVPN Robust And Highly Flexible Tunneling Application On pok_zone10015/onsite

   Loaded: loaded (/usr/lib/systemd/system/openvpn@.service; enabled; vendor preset: disabled)

   Active: active (running) since Mon 2021-09-06 07:55:40 EDT; 14min ago

 Main PID: 2398 (openvpn)

   Status: "Initialization Sequence Completed"

   CGroup: /system.slice/system-openvpn.slice/openvpn@pok_zone10015-onsite.service

           └─2398 /usr/sbin/openvpn --cd /etc/openvpn/ --config pok_zone10015-onsite.conf


Sep 06 07:55:42 ibmgpu07 openvpn[2398]: Mon Sep  6 07:55:42 2021 Outgoing Data Channel: Using 160 bit message hash 'SHA1' for HMAC authentication

Sep 06 07:55:42 ibmgpu07 openvpn[2398]: Mon Sep  6 07:55:42 2021 Incoming Data Channel: Using 160 bit message hash 'SHA1' for HMAC authentication

Sep 06 07:55:42 ibmgpu07 openvpn[2398]: Mon Sep  6 07:55:42 2021 ROUTE_GATEWAY 9.21.55.2/255.255.255.0 IFACE=eno1 HWADDR=40:f2:e9:03:2c:0a

Sep 06 07:55:42 ibmgpu07 openvpn[2398]: Mon Sep  6 07:55:42 2021 TUN/TAP device tun0 opened

Sep 06 07:55:42 ibmgpu07 openvpn[2398]: Mon Sep  6 07:55:42 2021 TUN/TAP TX queue length set to 100

Sep 06 07:55:42 ibmgpu07 openvpn[2398]: Mon Sep  6 07:55:42 2021 /sbin/ip link set dev tun0 up mtu 1500

Sep 06 07:55:42 ibmgpu07 openvpn[2398]: Mon Sep  6 07:55:42 2021 /sbin/ip addr add dev tun0 10.255.15.2/24 broadcast 10.255.15.255

Sep 06 07:55:42 ibmgpu07 openvpn[2398]: Mon Sep  6 07:55:42 2021 /sbin/ip route add 10.20.160.0/22 via 10.255.15.1

Sep 06 07:55:42 ibmgpu07 openvpn[2398]: Mon Sep  6 07:55:42 2021 WARNING: this configuration may cache passwords in memory -- use the auth-nocach...vent this

Sep 06 07:55:42 ibmgpu07 openvpn[2398]: Mon Sep  6 07:55:42 2021 Initialization Sequence Completed

Hint: Some lines were ellipsized, use -l to show in full.

[root@ibmgpu07 ~]# ps -ef | grep openvpn

root      2398     1  0 07:55 ?        00:00:00 /usr/sbin/openvpn --cd /etc/openvpn/ --config pok_zone10015-onsite.conf

root      3894  3698  0 08:10 pts/0    00:00:00 grep --color=auto openvpn

[root@ibmgpu07 ~]# ip a | grep tun

9: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100

    inet 10.255.15.2/24 brd 10.255.15.255 scope global tun0

[root@ibmgpu07 ~]#

==========================

Reference:

https://openvpn.net/vpn-server-resources/connecting-to-access-server-with-linux/

https://forums.openvpn.net/viewtopic.php?t=27419

https://openvpn.net/blog/openvpn-3-linux-and-auth-user-pass/

Bash : Select the column from list_file , decorate with double quotes at both side and put comma at the end of each line , concatenate


#!/bin/bash

## declare an array variable

declare -a arr=("Bcast" "Allreduce" "Reduce" "Allgather" "Allgatherv" "Allgatherv_int" "Scatter" "Scatterv" "Scatterv_int" "Gather" "Gatherv" "Gatherv_int" "Barrier" "Alltoall" "Alltoallv" "Alltoallv_int" "Scan" "Reduce_scatter" )

## now loop through the above array

j=0

echo "[collectives-smpi]" >> collectives.ini

for i in "${arr[@]}"

do

   echo "$i"

   ALGO=${i^^}

   ALL=$(awk "/^$j;/ "'{ print $0 }' OR=' ' all-coll.txt | cut -d ';' -f 3 |  awk '{ print "\""$0"\""}' | sed '$!s/$/,/' | awk '//' ORS=' ')

   echo "ALL_$ALGO=$ALL" >> collectives.ini

   ((j=j+1))

   echo "value of j is $j"

done

#----------------------------------------------------------------------

NOTE: You can also use 

   ALL_$i=$(awk '/^$i/' OR=' ' ${_TEST_DIR}/all-coll.txt | cut -d ';' -f 3 | sed -e 's/^\|$/"/g' | sed '$!s/$/,/' | tr -d '\n')

#----------------------------------------------------------------------

[Test get: fvt_bigMPI]


module = Copytree

copytree_directory = &getenv("fvt_bigMPI_src")


#----------------------------------------------------------------------

[Test build: fvt_bigMPI]


test_get = fvt_bigMPI


save_stdout_on_success = 1

merge_stdout_stderr = 1


module = Shell

shell_build_command = <<EOT

make compile

make generate

cp BigMPI/test/all-coll.txt $GLOBAL_SCRATCH/

declare -a arr=("Bcast" "Allreduce" "Reduce" "Allgather" "Allgatherv" "Allgatherv_int" "Scatter" "Scatterv" "Scatterv_int" "Gather" "Gatherv" "Gatherv_int" "Barrier" "Alltoall" "Alltoallv" "Alltoallv_int" "Scan" "Reduce_scatter" )

j=0

for i in "${arr[@]}"

do

   ALGO=${i^^}

   ALL=$(awk "/^$j;/ "'{ print $0 }' OR=' ' $GLOBAL_SCRATCH/all-coll.txt | cut -d ';' -f 3 | sed -e 's/^\|$/"/g' | sed '$!s/$/,/' | awk '//' ORS=' ')

   echo "ALL_$ALGO=$ALL" >> $GLOBAL_SCRATCH/collectives/collectives.ini

   ((j=j+1))

done

EOT

===============

 cat $MTT_CONF/collectives/collectives.ini

[collectives-smpi]

ALL_BCAST="EXT:Broadcast:EXT:EXT", "I0:2-nary:P2P:P2P", "I0:2-nomial:P2P:P2P", "I0:3-nary:P2P:P2P", "I0:3-nomial:P2P:P2P", "I0:4-nary:P2P:P2P", "I0:4-nomial:P2P:P2P", "I0:HybridBinomial:SHMEM:P2P", "I0:HybridMultiColor:Shmem:P2P", "I0:MultiColor:P2P:P2P", "I0:SequenceBased_Binomial:P2P:P2P"

ALL_ALLREDUCE="EXT:Allreduce:EXT:EXT", "I0:Binomial:P2P:P2P", "I0:HybridBinomial4:SHMEM:P2P", "I0:HybridBinomial:SHMEM:P2P", "I0:HybridMultiColor:SHMEM:P2P", "I0:MultiColor:P2P:P2P", "I0:MultinomialRadix4:P2P:P2P", "I0:MultinomialRadix8:P2P:P2P", "I0:SequenceBased_Binomial4:P2P:P2P", "I0:SequenceBased_Binomial:P2P:P2P", "I0:SequenceBased_Tree4:P2P:P2P", "I0:SequenceBased_Tree:P2P:P2P"

ALL_REDUCE="EXT:Reduce:EXT:EXT", "I0:HybridAsyncBinomial4:Shmem:P2P", "I0:HybridAsyncBinomial:Shmem:P2P", "I0:HybridMultiColor:SHMEM:P2P", "I0:MultiColor:P2P:P2P", "I0:SequenceBased_Binomial4:P2P:P2P", "I0:SequenceBased_Binomial:P2P:P2P", "I0:SequenceBased_Tree4:P2P:P2P", "I0:SequenceBased_Tree:P2P:P2P"

ALL_ALLGATHER="EXT:Allgather:EXT:EXT", "I0:Binomial:P2P:P2P", "I0:Flat:P2P:P2P", "I0:HybridFlat:Shmem:P2P", "I0:Ring:P2P:P2P"

ALL_ALLGATHERV="EXT:Allgatherv:EXT:EXT", "I0:HybridFlat:Shmem:P2P", "I0:Ring:P2P:P2P"

ALL_ALLGATHERV_INT="EXT:Allgatherv_int:EXT:EXT", "I0:HybridFlat:Shmem:P2P", "I0:Ring:P2P:P2P"

ALL_SCATTER="EXT:Scatter:EXT:EXT", "I0:Flat:P2P:P2P", "I0:ScatterMulticolorBcast:P2P:P2P"

ALL_SCATTERV="EXT:Scatterv:EXT:EXT", "I0:ScattervMulticolorBcast:P2P:P2P", "I0:SoftwareTree:P2P:P2P"

ALL_SCATTERV_INT="EXT:Scatterv_int:EXT:EXT", "I0:ScattervintMulticolorBcast:P2P:P2P", "I0:SoftwareTree:P2P:P2P"

ALL_GATHER="EXT:Gather:EXT:EXT", "I0:AsyncFlat:P2P:P2P", "I0:Binomial:P2P:P2P", "I0:Flat:P2P:P2P", "I0:HybridFlat:SHMEM:P2P"

ALL_GATHERV="EXT:Gatherv:EXT:EXT", "I0:FlatTree:P2P:P2P", "I0:HybridFlat:SHMEM:P2P"

ALL_GATHERV_INT="EXT:Gatherv_int:EXT:EXT", "I0:FlatTree:P2P:P2P", "I0:HybridFlat:SHMEM:P2P"

ALL_BARRIER="EXT:Barrier:EXT:EXT", "I0:Binomial4:P2P:P2P", "I0:Binomial:P2P:P2P", "I0:HybridBinomial:SHMEM:P2P", "I0:MultiLeaderBarrier:P2P:P2P"

ALL_ALLTOALL="EXT:Alltoall:EXT:EXT", "I0:Bruck:P2P:P2P", "I0:M2MComposite:P2P:P2P"

ALL_ALLTOALLV="EXT:Alltoallv:EXT:EXT", "I0:M2MComposite:P2P:P2P"

ALL_ALLTOALLV_INT="EXT:Alltoallv_int:EXT:EXT", "I0:M2MComposite:P2P:P2P"

ALL_SCAN="EXT:Scan:EXT:EXT", "I0:Binomial:P2P:P2P"

ALL_REDUCE_SCATTER="EXT:Reduce_scatter:EXT:EXT", "I0:Hybrid_Sequence_Tree_On_Allreduce:P2P:P2P", "I0:Sequence_Tree:P2P:P2P", "I0:Sequence_Tree_On_Allreduce:P2P:P2P" 

Friday, 24 April 2020

Spectrum Scale: How to set systemd to auto start GPFS daemons after reboot

GPFS comes with a systemd unit file (/usr/lpp/mmfs/lib/systemd/gpfs.service) that comes with the RPMs by default.

systemctl status gpfs.service


[root@IBMPOWER_HOST1 ~]#  mmgetstate -a

 Node number  Node name        GPFS state
-------------------------------------------
       1      IBMPOWER_HOST1        active
       2      IBMPOWER_HOST2        active
       3      IBMPOWER_HOST3        active
[root@IBMPOWER_HOST1 ~]# systemctl status gpfs.service
● gpfs.service - General Parallel File System
   Loaded: loaded (/usr/lib/systemd/system/gpfs.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-04-19 00:39:51 EDT; 5 days ago
  Process: 65927 ExecStart=/usr/lpp/mmfs/bin/mmremote startSubsys systemd $STARTSUBSYS_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 65959 (runmmfs)
    Tasks: 689
   Memory: 1.0G
   CGroup: /system.slice/gpfs.service
           ├─65959 /usr/lpp/mmfs/bin/mmksh /usr/lpp/mmfs/bin/runmmfs
           └─66297 /usr/lpp/mmfs/bin/mmfsd

Apr 19 00:39:51 IBMPOWER_HOST1 systemd[1]: Started General Parallel File System.
Apr 19 00:39:55 IBMPOWER_HOST1 mmfs[66297]: [N] CCR: failed to connect to node 9.114.75.217:1191 (sock 53 err 79)
Apr 19 00:39:56 IBMPOWER_HOST1 mmfs[66297]: [N] Connecting to 9.114.75.217 IBMPOWER_HOST3 <c0p0>
Apr 19 00:39:56 IBMPOWER_HOST1 mmfs[66297]: [N] This node (9.114.75.216 (IBMPOWER_HOST1)) is now Cluster Manager for SMPICI_gpfs.IBMPOWER_HOST1.
Apr 19 00:39:56 IBMPOWER_HOST1 mmfs[66297]: [N] mmfsd ready
Apr 19 00:39:57 IBMPOWER_HOST1 mmfs[66297]: [N] Node 9.114.75.217 (IBMPOWER_HOST3) appointed as manager for gpfs_fs.
Apr 20 16:08:19 IBMPOWER_HOST1 mmfs[66297]: [N] Node 9.114.75.215 (IBMPOWER_HOST2) lease renewal is overdue. Pinging to check if it is alive
Apr 20 18:23:10 IBMPOWER_HOST1 mmfs[66297]: [N] Node 9.114.75.217 (IBMPOWER_HOST3) lease renewal is overdue. Pinging to check if it is alive
Apr 20 20:25:15 IBMPOWER_HOST1 mmfs[66297]: [N] Node 9.114.75.217 (IBMPOWER_HOST3) lease renewal is overdue. Pinging to check if it is alive
Apr 20 22:46:10 IBMPOWER_HOST1 mmfs[66297]: [N] Node 9.114.75.217 (IBMPOWER_HOST3) lease renewal is overdue. Pinging to check if it is alive
[root@IBMPOWER_HOST1 ~]#


[root@IBMPOWER_HOST1 ~]# systemctl is-active gpfs.service
active
[root@IBMPOWER_HOST1 ~]# systemctl is-enabled gpfs.service
disabled
[root@IBMPOWER_HOST1 ~]#
[root@IBMPOWER_HOST1 ~]# systemctl is-failed gpfs.service
active
[root@IBMPOWER_HOST1 ~]#



This will return active if it is running properly or failed if an error occurred.
If the unit was intentionally stopped, it may return unknown or inactive


---------------------------------

[root@IBMPOWER_HOST1 ~]# rm -rf /etc/systemd/system/multi-user.target.wants/gpfs.service
[root@IBMPOWER_HOST1 ~]# systemctl enable  gpfs.service
Created symlink from /etc/systemd/system/multi-user.target.wants/gpfs.service to /usr/lib/systemd/system/gpfs.service.
[root@IBMPOWER_HOST1 ~]# ls -alsrt /etc/systemd/system/multi-user.target.wants/gpfs.service
0 lrwxrwxrwx 1 root root 36 Apr 24 03:41 /etc/systemd/system/multi-user.target.wants/gpfs.service -> /usr/lib/systemd/system/gpfs.service
[root@IBMPOWER_HOST1 ~]#

This will create a symbolic link from the system’s copy of the service file (usually in /lib/systemd/system or /etc/systemd/system)
into the location on disk where systemd looks for autostart files (usually /etc/systemd/system/some_target.target.wants.


--------------------------------------------
[root@IBMPOWER_HOST1 ~]# systemctl enable  gpfs.service
Created symlink from /etc/systemd/system/multi-user.target.wants/gpfs.service to /usr/lib/systemd/system/gpfs.service.
[root@IBMPOWER_HOST1 ~]#

[root@IBMPOWER_HOST1 ~]# systemctl enable  gpfs.service
Created symlink from /etc/systemd/system/multi-user.target.wants/gpfs.service to /usr/lib/systemd/system/gpfs.service.
[root@IBMPOWER_HOST1 ~]# ls -alsrt /etc/systemd/system/multi-user.target.wants/gpfs.service
0 lrwxrwxrwx 1 root root 36 Apr 24 03:41 /etc/systemd/system/multi-user.target.wants/gpfs.service -> /usr/lib/systemd/system/gpfs.service
[root@IBMPOWER_HOST1 ~]#


Lets check the status

[root@IBMPOWER_HOST1 ~]# systemctl status gpfs.service
● gpfs.service - General Parallel File System
   Loaded: loaded (/usr/lib/systemd/system/gpfs.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-04-24 03:35:55 EDT; 10min ago
 Main PID: 59025 (runmmfs)
   CGroup: /system.slice/gpfs.service
           ├─59025 /usr/lpp/mmfs/bin/mmksh /usr/lpp/mmfs/bin/runmmfs
           └─59548 /usr/lpp/mmfs/bin/mmfsd

Apr 24 03:35:55 IBMPOWER_HOST1 systemd[1]: Starting General Parallel File System...
Apr 24 03:35:55 IBMPOWER_HOST1 systemd[1]: Can't open PID file /var/mmfs/gen/runmmfsPid (yet?) after start: No such file or directory
Apr 24 03:35:55 IBMPOWER_HOST1 systemd[1]: Started General Parallel File System.
Apr 24 03:36:00 IBMPOWER_HOST1 mmfs[59548]: [N] Connecting to 9.114.75.215 IBMPOWER_HOST2 <c0p2>
Apr 24 03:36:00 IBMPOWER_HOST1 mmfs[59548]: [N] mmfsd ready
Apr 24 03:36:01 IBMPOWER_HOST1 mmfs[59548]: [N] Connecting to 9.114.75.217 IBMPOWER_HOST3 <c0n0>
[root@IBMPOWER_HOST1 ~]#




[root@IBMPOWER_HOST1 ~]#
[root@IBMPOWER_HOST1 ~]#  mmgetstate -a

 Node number  Node name        GPFS state
-------------------------------------------
       1      IBMPOWER_HOST1        active
       2      IBMPOWER_HOST2        active
       3      IBMPOWER_HOST3        active
[root@IBMPOWER_HOST1 ~]#
[root@IBMPOWER_HOST1 ~]# systemctl is-enabled gpfs.service
enabled
[root@IBMPOWER_HOST1 ~]#


How to auto mount the filesystem when GPFS daemon starts - if you have not done at installation 


export PATH=$PATH:/usr/lpp/mmfs/bin

[root@IBMPOWER_HOST1 ~]#  mmgetstate -a

 Node number  Node name        GPFS state
-------------------------------------------
       1      IBMPOWER_HOST1        active
       2      IBMPOWER_HOST2        active
       3      IBMPOWER_HOST3        active
[root@IBMPOWER_HOST1 ~]# mmchfs gpfs_fs -A yes
mmchfs: Propagating the cluster configuration data to all
  affected nodes.  This is an asynchronous process.
[root@IBMPOWER_HOST1 ~]#

-A {yes | no | automount}
    Indicates when the file system is to be mounted:

    yes
        When the GPFS daemon starts.


Verify:

[root@IBMPOWER_HOST1 ~]# mmlsfs gpfs_fs  -A
flag                value                    description
------------------- ------------------------ -----------------------------------
 -A                 yes                      Automatic mount option
[root@IBMPOWER_HOST1 ~]#

How to Auto-load and auto-mount Spectrum scale in simple steps ?

[root@IBMPOWER_HOST1 ~]# mmchconfig autoload=yes
mmchconfig: Command successfully completed
mmchconfig: Propagating the cluster configuration data to all
  affected nodes.  This is an asynchronous process.
[root@IBMPOWER_HOST1 ~]#



 Reference:
https://www.ibm.com/support/knowledgecenter/STXKQY_5.0.4/com.ibm.spectrum.scale.v5r04.doc/bl1adm_mmchfs.htm
https://www.ibm.com/support/knowledgecenter/en/SSCKLT_2.0.0/UG/sec_ug_starting_scale_in_system_file.html