diff options
author | Kaleb S. KEITHLEY <kkeithle@redhat.com> | 2015-06-16 09:33:48 -0400 |
---|---|---|
committer | Niels de Vos <ndevos@redhat.com> | 2015-06-19 01:25:46 -0700 |
commit | 46bf15e897ee9711835af211c19351a9920d490b (patch) | |
tree | 6abf2a4abe8a78d459d5359ade492b6c44cce135 | |
parent | 4442449f1436e47c84c55c3f0d8f1a8b248db4b6 (diff) |
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>
-rw-r--r-- | extras/ganesha/ocf/ganesha_grace | 12 | ||||
-rw-r--r-- | extras/ganesha/ocf/ganesha_mon | 12 | ||||
-rwxr-xr-x | extras/ganesha/scripts/ganesha-ha.sh | 25 |
3 files changed, 35 insertions, 14 deletions
diff --git a/extras/ganesha/ocf/ganesha_grace b/extras/ganesha/ocf/ganesha_grace index dceaccf5e77..75ec16c0fd1 100644 --- a/extras/ganesha/ocf/ganesha_grace +++ b/extras/ganesha/ocf/ganesha_grace @@ -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? diff --git a/extras/ganesha/ocf/ganesha_mon b/extras/ganesha/ocf/ganesha_mon index 47943f8a577..c8e7de9c45e 100644 --- a/extras/ganesha/ocf/ganesha_mon +++ b/extras/ganesha/ocf/ganesha_mon @@ -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 diff --git a/extras/ganesha/scripts/ganesha-ha.sh b/extras/ganesha/scripts/ganesha-ha.sh index fc2a00980c1..02bca6e84da 100755 --- a/extras/ganesha/scripts/ganesha-ha.sh +++ b/extras/ganesha/scripts/ganesha-ha.sh @@ -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 |