X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Finit-ceph.in;fp=src%2Fceph%2Fsrc%2Finit-ceph.in;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=26704d62e67355f9ef3ce8ec575c4fed398ccb50;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/init-ceph.in b/src/ceph/src/init-ceph.in deleted file mode 100755 index 26704d6..0000000 --- a/src/ceph/src/init-ceph.in +++ /dev/null @@ -1,555 +0,0 @@ -#!/bin/sh -# Start/stop ceph daemons -# chkconfig: 2345 60 80 - -### BEGIN INIT INFO -# Provides: ceph -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Required-Start: $remote_fs $named $network $time -# Required-Stop: $remote_fs $named $network $time -# Short-Description: Start Ceph distributed file system daemons at boot time -# Description: Enable Ceph distributed file system services. -### END INIT INFO - -# TODO: on FreeBSD/OSX, use equivalent script file -if [ -e /lib/lsb/init-functions ]; then - . /lib/lsb/init-functions -fi - -if [ `dirname $0` = "." ] && [ $PWD != "/etc/init.d" ]; then - # looks like an autotools src dir build - BINDIR=. - SBINDIR=. - LIBEXECDIR=. - ETCDIR=. - ASSUME_DEV=1 -else - if [ -e CMakeCache.txt ] && [ -e bin/init-ceph ]; then - # looks like a cmake build directory - CEPH_ROOT=`grep ceph_SOURCE_DIR CMakeCache.txt | cut -d "=" -f 2` - BINDIR=bin - SBINDIR=bin - LIBEXECDIR=$CEPH_ROOT/src - ETCDIR=. - ASSUME_DEV=1 - CEPH_LIB=$CEPH_ROOT/build/lib - echo "$PYTHONPATH" | grep -q $CEPH_LIB || export PYTHONPATH=$CEPH_LIB/cython_modules/lib.2:$PYTHONPATH - echo "$LD_LIBRARY_PATH" | grep -q $CEPH_LIB || export LD_LIBRARY_PATH=$CEPH_LIB:$LD_LIBRARY_PATH - echo "$DYLD_LIBRARY_PATH" | grep -q $CEPH_LIB || export DYLD_LIBRARY_PATH=$CEPH_LIB:$DYLD_LIBRARY_PATH - else - BINDIR=@bindir@ - SBINDIR=@sbindir@ - LIBEXECDIR=@libexecdir@/ceph - ETCDIR=@sysconfdir@/ceph - ASSUME_DEV=0 - fi -fi - -if [ -n "$CEPH_BIN" ] && [ -n "$CEPH_ROOT" ] && [ -n "$CEPH_BUILD_DIR" ]; then - BINDIR=$CEPH_BIN - SBINDIR=$CEPH_ROOT/src - ETCDIR=$CEPH_BIN - LIBEXECDIR=$CEPH_ROOT/src - ASSUME_DEV=1 -fi - -if [ `uname` = FreeBSD ]; then - GETOPT=/usr/local/bin/getopt -else - GETOPT=getopt -fi - -if id ceph > /dev/null 2>&1; then - SET_CEPHUSER_ARGS=" --setuser ceph --setgroup ceph" -fi - -usage_exit() { - echo "usage: $0 [options] {start|stop|restart|condrestart} [mon|osd|mds]..." - printf "Core options:\n" - printf "\t--allhosts / -a execute (via ssh) on all hosts in conf file\n" - printf "\t--cluster [cluster name] define the cluster name\n" - printf "\t--conf / -c [conf file] use [conf file] instead of default\n" - printf "\t--help / -h show this usage message\n" - printf "\t--hostname [hostname] override hostname lookup\n" - printf "\t-m [mon addr] mon address\n" - printf "\n" - printf "Other options:\n" - printf "\t--btrfs btrfs\n" - printf "\t--nobtrfs no btrfs\n" - printf "\t--btrfsumount btrfs umount\n" - printf "\t--fsmount fsmount\n" - printf "\t--nofsmount no fsmount\n" - printf "\t--fsumount fsumount\n" - printf "\t--restart restart on core dump\n" - printf "\t--norestart do not restart on core dump\n" - printf "\t--valgrind run via valgrind\n" - printf "\t--novalgrind do not run via valgrind\n" - printf "\t--verbose / -v be verbose\n" - exit -} - -# behave if we are not completely installed (e.g., Debian "removed, -# config remains" state) -test -f $LIBEXECDIR/ceph_common.sh || exit 0 - -. $LIBEXECDIR/ceph_common.sh - -EXIT_STATUS=0 - -signal_daemon() { - name=$1 - daemon=$2 - pidfile=$3 - signal=$4 - action=$5 - [ -z "$action" ] && action="Stopping" - printf "$action Ceph $name on $host..." - do_cmd "if [ -e $pidfile ]; then - pid=\`cat $pidfile\` - if ps -p \$pid -o args= | grep -q $daemon; then - cmd=\"kill $signal \$pid\" - printf \"\$cmd...\" - \$cmd - fi - fi" - echo done -} - -daemon_is_running() { - name=$1 - daemon=$2 - daemon_id=$3 - pidfile=$4 - do_cmd "[ -e $pidfile ] || exit 1 # no pid, presumably not running - pid=\`cat $pidfile\` - ps -p \$pid -o args= | grep $daemon | grep -qwe -i.$daemon_id && exit 0 # running - exit 1 # pid is something else" "" "okfail" -} - -stop_daemon() { - name=$1 - daemon=$2 - pidfile=$3 - signal=$4 - action=$5 - [ -z "$action" ] && action="Stopping" - printf "$action Ceph $name on $host..." - do_cmd "if [ -e $pidfile ] ; then - pid=\`cat $pidfile\` - while ps -p \$pid -o args= | grep -q $daemon; do - cmd=\"kill $signal \$pid\" - printf \"\$cmd...\" - \$cmd - sleep 1 - continue - done - fi" - echo done -} - -## command line options -options= - -OPTS=$(${GETOPT} -n 'init-ceph' -o 'hvam:c:' -l 'help,verbose,valgrind,novalgrind,allhosts,restart,norestart,btrfs,nobtrfs,fsmount,nofsmount,btrfsumount,fsumount,conf:,cluster:,hostname:' -- "$@") -if [ $? != 0 ] -then - exit 1 -fi - -eval set -- "$OPTS" - -dovalgrind= -docrun= -allhosts=0 -monaddr= -dofsmount=1 -dofsumount=0 -verbose=0 -use_default_conf=1 - -## set variables like cluster or conf -[ -e /etc/sysconfig/ceph ] && . /etc/sysconfig/ceph -[ -e /etc/default/ceph ] && . /etc/default/ceph - - -while echo $1 | grep -q '^-'; do # FIXME: why not '^-'? -case $1 in - -v | --verbose) - verbose=1 - ;; - --valgrind) - dovalgrind=1 - ;; - --novalgrind) - dovalgrind=0 - ;; - --allhosts | -a) - allhosts=1; - ;; - --restart) - docrun=1 - ;; - --norestart) - docrun=0 - ;; - -h | --help) - usage_exit - ;; - -m ) - [ -z "$2" ] && usage_exit - options="$options $1" - shift - MON_ADDR=$1 - ;; - --btrfs | --fsmount) - dofsmount=1 - ;; - --nobtrfs | --nofsmount) - dofsmount=0 - ;; - --btrfsumount | --fsumount) - dofsumount=1 - ;; - --conf | -c) - [ -z "$2" ] && usage_exit - options="$options $1" - shift - use_default_conf=0 - conf=$1 - ;; - --cluster ) - [ -z "$2" ] && usage_exit - options="$options $1" - shift - cluster=$1 - ;; - --hostname ) - [ -z "$2" ] && usage_exit - options="$options $1" - shift - hostname=$1 - ;; - -- ) - shift - break - ;; - *) - echo unrecognized option \'$1\' - usage_exit - ;; -esac -options="$options $1" -shift -done - -# if `--cluster` was not passed in, fallback to looking at the config name -if [ -z "$cluster" ]; then - cluster=`echo $conf | awk -F'/' '{print $(NF)}' | cut -d'.' -f 1` -else - # if we were told to use a given cluster name then $conf needs to be updated - # but just define it if `--conf` was not specified, otherwise we would be silently - # overriding $conf even if it was defined with `--conf` - if [ $use_default_conf -eq 1 ]; then - conf="/etc/ceph/$cluster.conf" - fi -fi - - -verify_conf - -command=$1 -[ -n "$*" ] && shift - -get_local_name_list -get_name_list "$@" - -# Reverse the order if we are stopping - -if [ "$command" = "stop" -o "$command" = "onestop" ]; then - for f in $what; do - new_order="$f $new_order" - done - what="$new_order" -fi - -for name in $what; do - type=`echo $name | cut -c 1-3` # e.g. 'mon', if $item is 'mon1' - id=`echo $name | cut -c 4- | sed 's/^\\.//'` - num=$id - name="$type.$id" - - check_host $cluster || continue - - binary="$BINDIR/ceph-$type" - cmd="$binary -i $id" - if [ $ASSUME_DEV -eq 1 ]; then - cmd="PATH=$PWD:$PATH $cmd" - fi - - get_conf run_dir "/var/run/ceph" "run dir" - - get_conf pid_file "$run_dir/$type.$id.pid" "pid file" - - if [ "$command" = "start" -o "$command" = "onestart" ]; then - if [ -n "$pid_file" ]; then - do_cmd "mkdir -p "`dirname $pid_file` - cmd="$cmd --pid-file $pid_file" - fi - - get_conf log_dir "" "log dir" - [ -n "$log_dir" ] && do_cmd "mkdir -p $log_dir" - - get_conf auto_start "" "auto start" - if [ "$auto_start" = "no" ] || [ "$auto_start" = "false" ] || [ "$auto_start" = "0" ]; then - if [ -z "$@" ]; then - echo "Skipping Ceph $name on $host... auto start is disabled" - continue - fi - fi - - if daemon_is_running $name ceph-$type $id $pid_file; then - echo "Starting Ceph $name on $host...already running" - continue - fi - - get_conf copy_executable_to "" "copy executable to" - if [ -n "$copy_executable_to" ]; then - scp $binary "$host:$copy_executable_to" - binary="$copy_executable_to" - fi - fi - - # conf file - cmd="$cmd -c $conf" - - if echo $name | grep -q ^osd; then - get_conf osd_data "/var/lib/ceph/osd/$cluster-$id" "osd data" - get_conf fs_path "$osd_data" "fs path" # mount point defaults so osd data - get_conf fs_devs "" "devs" - if [ -z "$fs_devs" ]; then - # try to fallback to old keys - get_conf tmp_btrfs_devs "" "btrfs devs" - if [ -n "$tmp_btrfs_devs" ]; then - fs_devs="$tmp_btrfs_devs" - fi - fi - first_dev=`echo $fs_devs | cut '-d ' -f 1` - fi - - # do lockfile, if RH - get_conf lockfile "/var/lock/subsys/ceph" "lock file" - lockdir=`dirname $lockfile` - if [ ! -d "$lockdir" ]; then - lockfile="" - fi - - get_conf asok "$run_dir/$cluster-$type.$id.asok" "admin socket" - - case "$command" in - start|onestart) - # Increase max_open_files, if the configuration calls for it. - get_conf max_open_files "32768" "max open files" - - # build final command - wrap="" - runmode="" - runarg="" - - [ -z "$docrun" ] && get_conf_bool docrun "0" "restart on core dump" - [ "$docrun" -eq 1 ] && wrap="$BINDIR/ceph-run" - - [ -z "$dovalgrind" ] && get_conf_bool valgrind "" "valgrind" - [ -n "$valgrind" ] && wrap="$wrap valgrind $valgrind" - - [ -n "$wrap" ] && runmode="-f &" && runarg="-f" - [ -n "$max_open_files" ] && files="ulimit -n $max_open_files;" - - [ -n "$TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES" ] && tcmalloc="TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=$TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES" - - cmd="$files $tcmalloc $wrap $cmd --cluster $cluster ${SET_CEPHUSER_ARGS} $runmode" - - if [ $dofsmount -eq 1 ] && [ -n "$fs_devs" ]; then - get_conf pre_mount "true" "pre mount command" - get_conf fs_type "" "osd mkfs type" - - if [ -z "$fs_type" ]; then - # try to fallback to old keys - get_conf tmp_devs "" "btrfs devs" - if [ -n "$tmp_devs" ]; then - fs_type="btrfs" - else - echo No filesystem type defined! - exit 0 - fi - fi - - get_conf fs_opt "" "osd mount options $fs_type" - if [ -z "$fs_opt" ]; then - if [ "$fs_type" = "btrfs" ]; then - #try to fallback to old keys - get_conf fs_opt "" "btrfs options" - fi - - if [ -z "$fs_opt" ]; then - if [ "$fs_type" = "xfs" ]; then - fs_opt="rw,noatime,inode64" - else - #fallback to use at least noatime - fs_opt="rw,noatime" - fi - fi - fi - - [ -n "$fs_opt" ] && fs_opt="-o $fs_opt" - [ -n "$pre_mount" ] && do_cmd "$pre_mount" - - do_root_cmd_okfail "mkdir -p $fs_path" - if [ "$fs_type" = "btrfs" ]; then - echo Mounting Btrfs on $host:$fs_path - do_root_cmd_okfail "modprobe btrfs ; btrfs device scan || btrfsctl -a ; egrep -q '^[^ ]+ $fs_path ' /proc/mounts && umount $fs_path ; mount -t btrfs $fs_opt $first_dev $fs_path" - else - echo Mounting $fs_type on $host:$fs_path - do_root_cmd_okfail "modprobe $fs_type ; egrep -q '^[^ ]+ $fs_path ' /proc/mounts && umount $fs_path ; mount -t $fs_type $fs_opt $first_dev $fs_path" - fi - if [ "$ERR" != "0" ]; then - EXIT_STATUS=$ERR - continue - fi - fi - - if [ "$type" = "osd" ]; then - get_conf update_crush "" "osd crush update on start" - case "${update_crush:-1}" in 1|[Tt][Rr][Uu][Ee]) - # update location in crush - get_conf osd_location_hook "$BINDIR/ceph-crush-location" "osd crush location hook" - if [ ! -e "$osd_location_hook" ]; then - EXIT_STATUS=2 - continue - fi - osd_location=`$osd_location_hook --cluster $cluster --id $id --type osd` - get_conf osd_weight "" "osd crush initial weight" - defaultweight="$(df -P -k $osd_data/. | tail -1 | awk '{ print sprintf("%.4f",$2/1073741824) }')" - get_conf osd_keyring "$osd_data/keyring" "keyring" - do_cmd_okfail "timeout 30 $BINDIR/ceph -c $conf --name=osd.$id --keyring=$osd_keyring osd crush create-or-move -- $id ${osd_weight:-${defaultweight:-1}} $osd_location" - if [ "$ERR" != "0" ]; then - EXIT_STATUS=$ERR - continue - fi - esac - fi - - echo Starting Ceph $name on $host... - if [ ! -d $run_dir ]; then - # assume /var/run exists - install -d -m0770 -o ceph -g ceph /var/run/ceph - fi - get_conf pre_start_eval "" "pre start eval" - [ -n "$pre_start_eval" ] && $pre_start_eval - get_conf pre_start "" "pre start command" - get_conf post_start "" "post start command" - [ -n "$pre_start" ] && do_cmd "$pre_start" - do_cmd_okfail "$cmd" $runarg - if [ "$ERR" != "0" ]; then - EXIT_STATUS=$ERR - continue - fi - - [ -n "$post_start" ] && do_cmd "$post_start" - [ -n "$lockfile" ] && [ "$?" -eq 0 ] && touch $lockfile - ;; - - stop|onestop) - get_conf pre_stop "" "pre stop command" - get_conf post_stop "" "post stop command" - [ -n "$pre_stop" ] && do_cmd "$pre_stop" - stop_daemon $name ceph-$type $pid_file - [ -n "$pidfile" ] && rm -f $pidfile - [ -n "$asok" ] && rm -f $asok - [ -n "$post_stop" ] && do_cmd "$post_stop" - [ -n "$lockfile" ] && [ "$?" -eq 0 ] && rm -f $lockfile - if [ $dofsumount -eq 1 ] && [ -n "$fs_devs" ]; then - echo Unmounting OSD volume on $host:$fs_path - do_root_cmd "umount $fs_path || true" - fi - ;; - - status) - if daemon_is_running $name ceph-$type $id $pid_file; then - printf "$name: running " - do_cmd "$BINDIR/ceph daemon $name version 2>/dev/null" || printf unknown - printf "\n" - elif [ -e "$pid_file" ]; then - # daemon is dead, but pid file still exists - echo "$name: dead." - EXIT_STATUS=1 - else - # daemon is dead, and pid file is gone - echo "$name: not running." - EXIT_STATUS=3 - fi - ;; - - ssh) - $ssh - ;; - - forcestop) - get_conf pre_forcestop "" "pre forcestop command" - get_conf post_forcestop "" "post forcestop command" - [ -n "$pre_forcestop" ] && do_cmd "$pre_forcestop" - stop_daemon $name ceph-$type $pid_file -9 - [ -n "$post_forcestop" ] && do_cmd "$post_forcestop" - [ -n "$lockfile" ] && [ "$?" -eq 0 ] && rm -f $lockfile - ;; - - killall) - echo "killall ceph-$type on $host" - do_cmd "pkill ^ceph-$type || true" - [ -n "$lockfile" ] && [ "$?" -eq 0 ] && rm -f $lockfile - ;; - - force-reload | reload) - signal_daemon $name ceph-$type $pid_file -1 "Reloading" - ;; - - restart|onerestart) - $0 $options stop $name - $0 $options start $name - ;; - - condrestart) - if daemon_is_running $name ceph-$type $id $pid_file; then - $0 $options stop $name - $0 $options start $name - else - echo "$name: not running." - fi - ;; - - cleanlogs) - echo removing logs - [ -n "$log_dir" ] && do_cmd "rm -f $log_dir/$type.$id.*" - ;; - - cleanalllogs) - echo removing all logs - [ -n "$log_dir" ] && do_cmd "rm -f $log_dir/* || true" - ;; - - *) - usage_exit - ;; - esac -done - -# activate latent osds? -if [ "$command" = "start" -a "$BINDIR" != "." ]; then - if [ "$*" = "" ] || echo $* | grep -q ^osd\$ ; then - if [ -x $SBINDIR/ceph-disk ]; then - ceph-disk activate-all - fi - fi -fi - -exit $EXIT_STATUS