X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fceph-osd-prestart.sh;fp=src%2Fceph%2Fsrc%2Fceph-osd-prestart.sh;h=f946bf43b305befecdbc05dec0ecadb60048d5ee;hb=812ff6ca9fcd3e629e49d4328905f33eee8ca3f5;hp=0000000000000000000000000000000000000000;hpb=15280273faafb77777eab341909a3f495cf248d9;p=stor4nfv.git diff --git a/src/ceph/src/ceph-osd-prestart.sh b/src/ceph/src/ceph-osd-prestart.sh new file mode 100644 index 0000000..f946bf4 --- /dev/null +++ b/src/ceph/src/ceph-osd-prestart.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +if [ `uname` = FreeBSD ]; then + GETOPT=/usr/local/bin/getopt +else + GETOPT=getopt +fi + +eval set -- "$(${GETOPT} -o i: --long id:,cluster: -- $@)" + +while true ; do + case "$1" in + -i|--id) id=$2; shift 2 ;; + --cluster) cluster=$2; shift 2 ;; + --) shift ; break ;; + esac +done + +if [ -z "$id" ]; then + echo "Usage: $0 [OPTIONS]" + echo "--id/-i ID set ID portion of my name" + echo "--cluster NAME set cluster name (default: ceph)" + exit 1; +fi + +data="/var/lib/ceph/osd/${cluster:-ceph}-$id" + +# assert data directory exists - see http://tracker.ceph.com/issues/17091 +if [ ! -d "$data" ]; then + echo "OSD data directory $data does not exist; bailing out." 1>&2 + exit 1 +fi + +journal="$data/journal" + +if [ -L "$journal" -a ! -e "$journal" ]; then + udevadm settle --timeout=5 || : + if [ -L "$journal" -a ! -e "$journal" ]; then + echo "ceph-osd(${cluster:-ceph}-$id): journal not present, not starting yet." 1>&2 + exit 0 + fi +fi + +# ensure ownership is correct +owner=`stat -c %U $data/.` +if [ $owner != 'ceph' -a $owner != 'root' ]; then + echo "ceph-osd data dir $data is not owned by 'ceph' or 'root'" + echo "you must 'chown -R ceph:ceph ...' or similar to fix ownership" + exit 1 +fi + +exit 0