89 lines
2.0 KiB
Bash
89 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
INITDIR=/etc/init.d
|
|
LOGFILE=/var/log/ceph/ceph-init.log
|
|
CEPH_FILE=/var/run/.ceph_started
|
|
|
|
# Get our nodetype
|
|
. /etc/platform/platform.conf
|
|
|
|
# Exit immediately if ceph not configured (i.e. no mon in the config file)
|
|
if ! grep -q "mon\." /etc/ceph/ceph.conf
|
|
then
|
|
exit 0
|
|
fi
|
|
|
|
logecho ()
|
|
{
|
|
echo $1
|
|
date >> ${LOGFILE}
|
|
echo $1 >> ${LOGFILE}
|
|
}
|
|
|
|
start ()
|
|
{
|
|
SERVICES=""
|
|
if [[ "$system_type" == "All-in-one" ]] && [[ "$system_mode" == "duplex" ]]; then
|
|
# In an AIO-DX configuration SM manages the floating MON and OSDs. Here
|
|
# we defer starting OSDs directly via the init script to allow SM to
|
|
# start them at the appropriate time. This will eliminate a race between
|
|
# MTC and SM starting OSDs simultaneously. Continue to start MON/MDS
|
|
# service here so that MDS is operational after the monitor is up.
|
|
SERVICES="mon mds"
|
|
fi
|
|
|
|
logecho "Starting ceph ${SERVICES} services..."
|
|
${INITDIR}/ceph start ${SERVICES} >> ${LOGFILE} 2>&1
|
|
RC=$?
|
|
|
|
if [ ! -f ${CEPH_FILE} ]; then
|
|
touch ${CEPH_FILE}
|
|
fi
|
|
}
|
|
|
|
stop ()
|
|
{
|
|
if [[ "$system_type" == "All-in-one" ]] && [[ "$system_mode" == "simplex" ]]; then
|
|
logecho "Ceph services will continue to run on node"
|
|
exit 0
|
|
fi
|
|
|
|
logecho "Stopping ceph services..."
|
|
|
|
if [ -f ${CEPH_FILE} ]; then
|
|
rm -f ${CEPH_FILE}
|
|
fi
|
|
|
|
${INITDIR}/ceph stop >> ${LOGFILE} 2>&1
|
|
RC=$?
|
|
}
|
|
|
|
# If system is an AIO the mtcClient will run this script twice
|
|
# from 2 locations and this generates some errors.
|
|
# So we have to exit the script if is called
|
|
# from /etc/services.d/worker in order to be executed once
|
|
if [[ "$system_type" == "All-in-one" ]]; then
|
|
dir_path=$(dirname "$(realpath $0)")
|
|
if [[ "$dir_path" == "/etc/services.d/worker" ]]; then
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
RC=0
|
|
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
logecho "RC was: $RC"
|
|
exit $RC
|