diff options
Diffstat (limited to 'extras/hook-scripts/start/post/S29CTDBsetup.sh')
| -rwxr-xr-x[-rw-r--r--] | extras/hook-scripts/start/post/S29CTDBsetup.sh | 77 |
1 files changed, 42 insertions, 35 deletions
diff --git a/extras/hook-scripts/start/post/S29CTDBsetup.sh b/extras/hook-scripts/start/post/S29CTDBsetup.sh index 2567cf8307e..69a0d89a3eb 100644..100755 --- a/extras/hook-scripts/start/post/S29CTDBsetup.sh +++ b/extras/hook-scripts/start/post/S29CTDBsetup.sh @@ -1,18 +1,22 @@ #! /bin/bash -# RHS-2.0 only +# # - The script mounts the 'meta-vol' on start 'event' on a known # directory (eg. /gluster/lock) -# - Adds the necessary configuration changes for ctdb in smb.conf and -# restarts smb service. # - P.S: There are other 'tasks' that need to be done outside this script # to get CTDB based failover up and running. -SMB_CONF=/etc/samba/smb.conf - CTDB_MNT=/gluster/lock +# Make sure ping-timeout is not default for CTDB volume +PING_TIMEOUT_SECS=10 PROGNAME="ctdb" -OPTSPEC="volname:" +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) @@ -21,7 +25,7 @@ VOL= META="all" function parse_args () { - ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@) + ARGS=$(getopt -o '' -l $OPTSPEC -n $PROGNAME -- "$@") eval set -- "$ARGS" while true; do @@ -29,49 +33,52 @@ function parse_args () { --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 - ;; - + shift + break + ;; esac shift done } -function add_glusterfs_ctdb_options () { - PAT="Share Definitions" - GLUSTER_CTDB_CONFIG="# ctdb config for glusterfs\n\tclustering = yes\n\tidmap backend = tdb2\n" - exists=`grep "clustering = yes" "$SMB_CONF"` - if [ "$exists" == "" ] - then - sed -i /"$PAT"/i\ "$GLUSTER_CTDB_CONFIG" "$SMB_CONF" - fi -} - function add_fstab_entry () { volname=$1 mntpt=$2 - mntent="`hostname`:/$volname $mntpt glusterfs defaults,transport=tcp 0 0" - exists=`grep "$mntent" /etc/fstab` + mntopts="${MNTOPTS}" + + mntent="${HOSTNAME}:/${volname} ${mntpt} glusterfs ${mntopts} 0 0" + exists=`grep "${mntpt}" /etc/fstab` if [ "$exists" == "" ] then - echo "$mntent" >> /etc/fstab + echo "${mntent}" >> /etc/fstab fi } -parse_args $@ +parse_args "$@" if [ "$META" = "$VOL" ] then - #expects ctdb service to manage smb - service smb stop - add_glusterfs_ctdb_options - mkdir -p $CTDB_MNT - sleep 5 - mount -t glusterfs `hostname`:$VOL "$CTDB_MNT" && \ - add_fstab_entry $VOL $CTDB_MNT - chkconfig ctdb on + 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 |
