NFS-Ganesha: Add-node and delete-node changes in HA implementation
NFS-Ganesha related config files have to be copied over to the new node and NFS-Ganesha service has to be started. Similary NFS-Ganesha service has to be stopped when a node is deleted from the HA cluster. Change-Id: Ia38e72cac86713fe23b7d1b829a256637a9ca796 BUG: 1212816 Signed-off-by: Meghana Madhusudhan <mmadhusu@redhat.com> Reviewed-on: http://review.gluster.org/10596 Reviewed-by: soumya k <skoduri@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
This commit is contained in:
parent
82684f1efe
commit
9096a79447
@ -25,10 +25,40 @@ HA_SERVERS=""
|
||||
HA_CONFDIR=""
|
||||
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 "=")
|
||||
|
||||
RHEL6_PCS_CNAME_OPTION="--name"
|
||||
|
||||
determine_service_manager () {
|
||||
|
||||
if [ -e "/usr/bin/systemctl" ];
|
||||
then
|
||||
SERVICE_MAN="/usr/bin/systemctl"
|
||||
elif [ -e "/sbin/invoke-rc.d" ];
|
||||
then
|
||||
SERVICE_MAN="/sbin/invoke-rc.d"
|
||||
elif [ -e "/sbin/service" ];
|
||||
then
|
||||
SERVICE_MAN="/sbin/service"
|
||||
fi
|
||||
if [ "$SERVICE_MAN" == "DISTRO_NOT_FOUND" ]
|
||||
then
|
||||
echo "Service manager not recognized, exiting"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
manage_service ()
|
||||
{
|
||||
if [ "$SERVICE_MAN" == "/usr/sbin/systemctl" ]
|
||||
then
|
||||
$SERVICE_MAN $1 nfs-ganesha
|
||||
else
|
||||
$SERVICE_MAN nfs-ganesha $1
|
||||
fi
|
||||
}
|
||||
|
||||
check_cluster_exists()
|
||||
{
|
||||
local name=${1}
|
||||
@ -151,6 +181,13 @@ setup_copy_config()
|
||||
fi
|
||||
}
|
||||
|
||||
copy_export_config ()
|
||||
{
|
||||
. /etc/ganesha/ganesha.conf
|
||||
scp $HA_VOL_SERVER:/etc/ganesha.conf ${1}:/etc/ganesha/
|
||||
scp -r $HA_VOL_SERVER:$2/exports/ ${1}:${2}/
|
||||
}
|
||||
|
||||
|
||||
teardown_cluster()
|
||||
{
|
||||
@ -746,9 +783,9 @@ main()
|
||||
node=${1}; shift
|
||||
vip=${1}; shift
|
||||
|
||||
logger "adding ${node} with ${vip} to ${HA_NAME}"
|
||||
logger "adding ${node} with ${vip} to ${HA_NAME}"
|
||||
|
||||
determine_servers "add"
|
||||
determine_servers "add"
|
||||
|
||||
pcs cluster node add ${node}
|
||||
if [ $? -ne 0 ]; then
|
||||
@ -760,6 +797,12 @@ main()
|
||||
setup_state_volume ${node}
|
||||
|
||||
setup_copy_config ${node}
|
||||
|
||||
copy_export_config ${node} ${HA_CONFDIR}
|
||||
|
||||
determine_service_manager
|
||||
|
||||
manage_service "start"
|
||||
;;
|
||||
|
||||
delete | --delete)
|
||||
@ -779,6 +822,12 @@ main()
|
||||
# TODO: delete node's directory in shared state
|
||||
|
||||
teardown_clean_etccluster ${node}
|
||||
|
||||
determine_service_manager
|
||||
|
||||
manage-service "stop"
|
||||
|
||||
cleanup_ganesha_config ${HA_CONFDIR}
|
||||
;;
|
||||
|
||||
status | --status)
|
||||
@ -788,10 +837,17 @@ main()
|
||||
refresh-config | --refresh-config)
|
||||
;;
|
||||
|
||||
*)
|
||||
help | --help)
|
||||
echo "Usage : add|delete|status"
|
||||
echo "Add-node : ganesha-ha.sh --add <HA_CONF_DIR> \
|
||||
<NODE-IP/HOSTNAME> <NODE-VIP>"
|
||||
echo "Delete-node: ganesha-ha.sh --delete <HA_CONF_DIR> \
|
||||
<NODE-IP/HOSTNAME>"
|
||||
;;
|
||||
*)
|
||||
# setup and teardown are not intended to be used by a
|
||||
# casual user
|
||||
logger "Usage: ganesha-ha.sh setup|teardown|add|delete|status"
|
||||
logger "Usage: ganesha-ha.sh add|delete|status"
|
||||
;;
|
||||
|
||||
esac
|
||||
|
Loading…
x
Reference in New Issue
Block a user