diff options
Diffstat (limited to 'extras/hook-scripts/start/post/S29CTDBsetup.sh')
| -rwxr-xr-x | extras/hook-scripts/start/post/S29CTDBsetup.sh | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/extras/hook-scripts/start/post/S29CTDBsetup.sh b/extras/hook-scripts/start/post/S29CTDBsetup.sh new file mode 100755 index 00000000000..69a0d89a3eb --- /dev/null +++ b/extras/hook-scripts/start/post/S29CTDBsetup.sh @@ -0,0 +1,84 @@ +#! /bin/bash +# +# - The script mounts the 'meta-vol' on start 'event' on a known +# directory (eg. /gluster/lock) +# - P.S: There are other 'tasks' that need to be done outside this script +# to get CTDB based failover up and running. + +CTDB_MNT=/gluster/lock +# Make sure ping-timeout is not default for CTDB volume +PING_TIMEOUT_SECS=10 +PROGNAME="ctdb" +OPTSPEC="volname:,gd-workdir:,version:,volume-op:,first:" +HOSTNAME=`hostname` +MNTOPTS="_netdev,transport=tcp,xlator-option=*client*.ping-timeout=${PING_TIMEOUT_SECS}" +VOL= +GLUSTERD_WORKDIR= +VERSION= +VOLUME_OP= +FIRST= +# $META is the volume that will be used by CTDB as a shared filesystem. +# It is not desirable to use this volume for storing 'data' as well. +# META is set to 'all' (viz. a keyword and hence not a legal volume name) +# to prevent the script from running for volumes it was not intended. +# User needs to set META to the volume that serves CTDB lockfile. +META="all" + +function parse_args () { + ARGS=$(getopt -o '' -l $OPTSPEC -n $PROGNAME -- "$@") + eval set -- "$ARGS" + + while true; do + case $1 in + --volname) + shift + VOL=$1 + ;; + --gd-workdir) + shift + GLUSTERD_WORKDIR=$1 + ;; + --version) + shift + VERSION=$1 + ;; + --volume-op) + shift + VOLUME_OP=$1 + ;; + --first) + shift + FIRST=$1 + ;; + *) + shift + break + ;; + esac + + shift + done +} + +function add_fstab_entry () { + volname=$1 + mntpt=$2 + mntopts="${MNTOPTS}" + + mntent="${HOSTNAME}:/${volname} ${mntpt} glusterfs ${mntopts} 0 0" + exists=`grep "${mntpt}" /etc/fstab` + if [ "$exists" == "" ] + then + echo "${mntent}" >> /etc/fstab + fi +} + +parse_args "$@" +if [ "$META" = "$VOL" ] +then + mkdir -p $CTDB_MNT + sleep 5 + mount -t glusterfs -o${MNTOPTS} ${HOSTNAME}:/$VOL "$CTDB_MNT" && \ + add_fstab_entry $VOL $CTDB_MNT + chkconfig ctdb on +fi |
