common-ha: cluster setup issues on RHEL7
* use --name on RHEL7 (later versions of pcs drop --name) we guessed wrong and did not get the version that dropped use of --name option * more robust config file param parsing for n/v with ""s in the value after not sourcing the config file * pid file fix. RHEL6 init.d adds -p /var/run/ganesha.nfsd.pid to cmdline options. RHEL7 systemd does not, so defaults to /var/run/ganesha.pid. Change-Id: I575aa13c98f05523cca10c55f2c387200bad3f93 BUG: 1229948 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/11257 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: soumya k <skoduri@redhat.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Meghana M <mmadhusu@redhat.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
This commit is contained in:
parent
4442449f14
commit
46bf15e897
@ -88,14 +88,22 @@ ganesha_grace_start()
|
||||
local resourcename=""
|
||||
local deadserver=""
|
||||
local tmpIFS=${IFS}
|
||||
local pid_file="/var/run/ganesha.nfsd.pid"
|
||||
|
||||
# RHEL6 /etc/init.d/nfs-ganesha adds "-p /var/run/ganesha.nfsd.pid"
|
||||
# RHEL7 systemd does not. Would be nicer if all distros used the
|
||||
# same pid file.
|
||||
if [ -e /usr/lib/systemd/system/nfs-ganesha.service ]; then
|
||||
pid_file="/var/run/ganesha.pid"
|
||||
fi
|
||||
|
||||
# logger "ganesha_grace_start()"
|
||||
# we're here because somewhere in the cluster one or more
|
||||
# of the ganesha.nfsds have died, triggering a floating IP
|
||||
# address to move. Resource constraint location rules ensure
|
||||
# that this is invoked before the floating IP is moved.
|
||||
if [ -e /var/run/ganesha.nfsd.pid -a \
|
||||
-d /proc/$(cat /var/run/ganesha.nfsd.pid) ]; then
|
||||
if [ -e ${pid_file} -a \
|
||||
-d /proc/$(cat ${pid_file} ) ]; then
|
||||
# my ganesha.nfsd is still running
|
||||
# find out which one died?
|
||||
|
||||
|
@ -97,9 +97,17 @@ ganesha_mon_stop()
|
||||
ganesha_mon_monitor()
|
||||
{
|
||||
local short_host=$(hostname -s)
|
||||
local pid_file="/var/run/ganesha.nfsd.pid"
|
||||
|
||||
if [ -e /var/run/ganesha.nfsd.pid -a \
|
||||
-d /proc/$(cat /var/run/ganesha.nfsd.pid) ]; then
|
||||
# RHEL6 /etc/init.d/nfs-ganesha adds -p /var/run/ganesha.nfsd.pid
|
||||
# RHEL7 systemd does not. Would be nice if all distros used the
|
||||
# same pid file.
|
||||
if [ -e /usr/lib/systemd/system/nfs-ganesha.service ]; then
|
||||
pid_file="/var/run/ganesha.pid"
|
||||
fi
|
||||
|
||||
if [ -e ${pid_file} -a \
|
||||
-d /proc/$(cat ${pid_file} ) ]; then
|
||||
( pcs resource delete ${short_host}-dead_ip-1 > /dev/null 2>&1 )
|
||||
|
||||
attrd_updater -n ganesha-active -v 1
|
||||
|
@ -22,11 +22,13 @@
|
||||
|
||||
HA_NUM_SERVERS=0
|
||||
HA_SERVERS=""
|
||||
HA_CONFDIR=""
|
||||
HA_CONFDIR="/etc/ganesha"
|
||||
HA_VOL_NAME="gluster_shared_storage"
|
||||
HA_VOL_MNT="/var/run/gluster/shared_storage"
|
||||
SERVICE_MAN="DISTRO_NOT_FOUND"
|
||||
CONF=$(cat /etc/sysconfig/ganesha | grep "CONFFILE" | cut -f 2 -d "=")
|
||||
cfgline=$(grep ^CONFFILE= /etc/sysconfig/ganesha)
|
||||
eval $(echo ${cfgline} | grep -F CONFFILE=)
|
||||
GANESHA_CONF=${CONFFILE:-/etc/ganesha/ganesha.conf}
|
||||
|
||||
RHEL6_PCS_CNAME_OPTION="--name"
|
||||
|
||||
@ -236,7 +238,7 @@ cleanup_ganesha_config ()
|
||||
rm -rf ${HA_CONFDIR}/.export_added
|
||||
rm -rf /etc/cluster/cluster.conf*
|
||||
rm -rf /var/lib/pacemaker/cib/*
|
||||
sed -r -i -e '/^%include[[:space:]]+".+\.conf"$/d' $CONF
|
||||
sed -r -i -e '/^%include[[:space:]]+".+\.conf"$/d' ${GANESHA_CONF}
|
||||
}
|
||||
|
||||
do_create_virt_ip_constraints()
|
||||
@ -740,15 +742,18 @@ main()
|
||||
local node=""
|
||||
local vip=""
|
||||
|
||||
ha_name=$(grep ^HA_NAME= ${ha_conf} | cut -d = -f 2)
|
||||
HA_NAME=${ha_name//\"/}
|
||||
ha_vol_server=$(grep ^HA_VOL_SERVER= ${ha_conf} | cut -d = -f 2)
|
||||
HA_VOL_SERVER=${ha_vol_server//\"/}
|
||||
ha_cluster_nodes=$(grep ^HA_CLUSTER_NODES= ${ha_conf} | cut -d = -f 2)
|
||||
HA_CLUSTER_NODES=${ha_cluster_nodes//\"/}
|
||||
# ignore any comment lines
|
||||
cfgline=$(grep ^HA_NAME= ${ha_conf})
|
||||
eval $(echo ${cfgline} | grep -F HA_NAME=)
|
||||
cfgline=$(grep ^HA_VOL_SERVER= ${ha_conf})
|
||||
eval $(echo ${cfgline} | grep -F HA_VOL_SERVER=)
|
||||
cfgline=$(grep ^HA_CLUSTER_NODES= ${ha_conf})
|
||||
eval $(echo ${cfgline} | grep -F HA_CLUSTER_NODES=)
|
||||
|
||||
# we'll pretend that nobody ever edits /etc/os-release
|
||||
if [ -e /etc/os-release ]; then
|
||||
RHEL6_PCS_CNAME_OPTION=""
|
||||
eval $(grep -F "REDHAT_SUPPORT_PRODUCT=" /etc/os-release)
|
||||
[ "$REDHAT_SUPPORT_PRODUCT" == "Fedora" ] && RHEL6_PCS_CNAME_OPTION=""
|
||||
fi
|
||||
|
||||
case "${cmd}" in
|
||||
|
Loading…
x
Reference in New Issue
Block a user