blob: 69a0d89a3eb640f58ed87f0b67d32d4820dff601 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
|