glusterfs/extras/mount-shared-storage.sh
Josiah f4497ee445 Update mount-shared-storage.sh to automatically include all enabled glusterfs mounts in fstab
Currently the mount-shared-storage.sh script requires manual entry of each volume and mount point. There is a TODO item from Bug 1452527 to automatically pull the list of glusterfs mounts from the /etc/fstab file, validate that they are mounted, or attempt to mount them. This is to complete that TODO item.

The extras/mount-shared-storage.sh file has been updated to read only active glusterfs mounts from the /etc/fstab file, verify if they are mounted, and attemt to mount them if they are not. It will exit with a status 0 if successfully mounted or status 1 if any of the mounts fail.

This method will allow the standard method of mounts in /etc/fstab to be utilized and will ensure they are monted following system reboots.

This can be tested by creating a volume, mounting it using the /etc/fstab method, and rebooting the server. Output will be similar to this:
Jun 29 19:09:38 localhost systemd[1]: Starting Mount glusterfs sharedstorage...
Jun 29 19:09:43 localhost mount-shared-storage.sh[4096]: /mnt/mount1 has been mounted
Jun 29 19:09:48 localhost mount-shared-storage.sh[4096]: /mnt/mount2 has been mounted
Jun 29 19:09:48 localhost systemd[1]: Started Mount glusterfs sharedstorage.

Multiple fixes based on code review suggestions and spellcheck

Removed spaces in grep for glusterfs as tabs are valid as well

Added tab as an IFS field separator for the lines read from /etc/fstab

Increased sleep time to 10 seconds before mount validation

Changed mount check to use “mountpoint -q”

Change-Id: Ib90c99ced8f7aefc8dbe87340afc73a28f6195e7
fixes: bz#1596789
Signed-off-by: Josiah <josiahp@gmail.com>
2018-07-10 19:38:48 +00:00

40 lines
916 B
Bash
Executable File

#!/bin/bash
#Post reboot there is a chance in which mounting of shared storage will fail
#This will impact starting of features like NFS-Ganesha. So this script will
#try to mount the shared storage if it fails
exitStatus=0
while IFS= read -r glm
do
IFS=$' \t' read -r -a arr <<< "$glm"
#Validate storage type is glusterfs
if [ "${arr[2]}" == "glusterfs" ]
then
#check whether shared storage is mounted
#if it is mounted then mountpoint -q will return a 0 success code
if mountpoint -q "${arr[1]}"
then
echo "${arr[1]} is already mounted"
continue
fi
mount -t glusterfs "${arr[0]}" "${arr[1]}"
#wait for few seconds
sleep 10
#recheck mount got succeed
if mountpoint -q "${arr[1]}"
then
echo "${arr[1]} has been mounted"
continue
else
echo "${arr[1]} failed to mount"
exitStatus=1
fi
fi
done <<< "$(sed '/^#/ d' </etc/fstab | grep 'glusterfs')"
exit $exitStatus