]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
vstart: set up and run ceph-mgr
authorJohn Spray <john.spray@redhat.com>
Wed, 25 May 2016 18:43:03 +0000 (19:43 +0100)
committerJohn Spray <john.spray@redhat.com>
Thu, 29 Sep 2016 16:26:53 +0000 (17:26 +0100)
Signed-off-by: John Spray <john.spray@redhat.com>
src/stop.sh
src/vstart.sh

index e7f62caf5eefcb907c95cd6a44a9e5dd1e288457..4082cfdcbe0c368031034ab8648ce6dc961e9f97 100755 (executable)
@@ -39,6 +39,7 @@ stop_all=1
 stop_mon=0
 stop_mds=0
 stop_osd=0
+stop_mgr=0
 stop_rgw=0
 
 while [ $# -ge 1 ]; do
@@ -87,7 +88,7 @@ if [ $stop_all -eq 1 ]; then
         fi
     fi
 
-    for p in ceph-mon ceph-mds ceph-osd radosgw lt-radosgw apache2 ; do
+    for p in ceph-mon ceph-mds ceph-osd ceph-mgr radosgw lt-radosgw apache2 ; do
         for try in 0 1 1 1 1 ; do
             if ! pkill -u $MYUID $p ; then
                 break
@@ -103,5 +104,6 @@ else
     [ $stop_mon -eq 1 ] && do_killall ceph-mon
     [ $stop_mds -eq 1 ] && do_killall ceph-mds
     [ $stop_osd -eq 1 ] && do_killall ceph-osd
+    [ $stop_mgr -eq 1 ] && do_killall ceph-mgr
     [ $stop_rgw -eq 1 ] && do_killall radosgw lt-radosgw apache2
 fi
index 53166c2e269c72ffff533249a363394a7c477063..90626afc6c54ce023cf5e44e95df74845181fe11 100755 (executable)
@@ -21,6 +21,7 @@ if [ -e CMakeCache.txt ]; then
   # Out of tree build, learn source location from CMakeCache.txt
   CEPH_ROOT=`grep ceph_SOURCE_DIR CMakeCache.txt | cut -d "=" -f 2`
   CEPH_BUILD_DIR=`pwd`
+  [ -z "$MGR_PYTHON_PATH" ] && MGR_PYTHON_PATH=$CEPH_ROOT/src/pybind/mgr
 fi
 
 # use CEPH_BUILD_ROOT to vstart from a 'make install' 
@@ -52,12 +53,14 @@ export DYLD_LIBRARY_PATH=$CEPH_LIB:$DYLD_LIBRARY_PATH
 [ -z "$CEPH_NUM_MON" ] && CEPH_NUM_MON="$MON"
 [ -z "$CEPH_NUM_OSD" ] && CEPH_NUM_OSD="$OSD"
 [ -z "$CEPH_NUM_MDS" ] && CEPH_NUM_MDS="$MDS"
+[ -z "$CEPH_NUM_MGR" ] && CEPH_NUM_MGR="$MGR"
 [ -z "$CEPH_NUM_FS"  ] && CEPH_NUM_FS="$FS"
 [ -z "$CEPH_NUM_RGW" ] && CEPH_NUM_RGW="$RGW"
 
 [ -z "$CEPH_NUM_MON" ] && CEPH_NUM_MON=3
 [ -z "$CEPH_NUM_OSD" ] && CEPH_NUM_OSD=3
 [ -z "$CEPH_NUM_MDS" ] && CEPH_NUM_MDS=3
+[ -z "$CEPH_NUM_MGR" ] && CEPH_NUM_MGR=0
 [ -z "$CEPH_NUM_FS"  ] && CEPH_NUM_FS=1
 [ -z "$CEPH_MAX_MDS" ] && CEPH_MAX_MDS=1
 [ -z "$CEPH_NUM_RGW" ] && CEPH_NUM_RGW=1
@@ -283,6 +286,8 @@ if [ "$overwrite_conf" -eq 0 ]; then
         CEPH_NUM_OSD="$OSD"
     MDS=`$CEPH_BIN/ceph-conf -c $conf_fn --name $VSTART_SEC num_mds 2>/dev/null` && \
         CEPH_NUM_MDS="$MDS"
+    MGR=`$CEPH_BIN/ceph-conf -c $conf_fn --name $VSTART_SEC num_mgr 2>/dev/null` && \
+        CEPH_NUM_MGR="$MGR"
     RGW=`$CEPH_BIN/ceph-conf -c $conf_fn --name $VSTART_SEC num_rgw 2>/dev/null` && \
         CEPH_NUM_RGW="$RGW"
 else
@@ -370,9 +375,14 @@ else
         debug mds = 20
         debug auth = 20
         debug monc = 20
+        debug mgrc = 20
         mds debug scatterstat = true
         mds verify scatter = true
         mds log max segments = 2'
+    CMGRDEBUG='
+        debug ms = 1
+        debug monc = 20
+        debug mgr = 20'
 fi
 
 if [ -n "$MON_ADDR" ]; then
@@ -474,6 +484,7 @@ if [ "$start_mon" -eq 1 ]; then
         num mon = $CEPH_NUM_MON
         num osd = $CEPH_NUM_OSD
         num mds = $CEPH_NUM_MDS
+        num mgr = $CEPH_NUM_MGR
         num rgw = $CEPH_NUM_RGW
 
 [global]
@@ -532,6 +543,12 @@ $CMDSDEBUG
         mds root ino uid = `id -u`
         mds root ino gid = `id -g`
 $extra_conf
+[mgr]
+        mgr data = $CEPH_DEV_DIR/mgr.\$id
+        mgr module path = $MGR_PYTHON_PATH
+$DAEMONOPTS
+$CMGRDEBUG
+$extra_conf
 [osd]
 $DAEMONOPTS
         osd_check_max_object_name_len_on_startup = false
@@ -646,7 +663,7 @@ EOF
 
            key_fn=$CEPH_DEV_DIR/osd$osd/keyring
            echo adding osd$osd key to auth repository
-           ceph_adm -i "$key_fn" auth add osd.$osd osd "allow *" mon "allow profile osd"
+           ceph_adm -i "$key_fn" auth add osd.$osd osd "allow *" mon "allow profile osd" mgr "allow"
        fi
        echo start osd$osd
        run 'osd' $SUDO $CEPH_BIN/ceph-osd -i $osd $ARGS $COSD_ARGS
@@ -701,12 +718,12 @@ EOF
 EOF
            fi
            prun $SUDO "$CEPH_BIN/ceph-authtool" --create-keyring --gen-key --name="mds.$name" "$key_fn"
-           ceph_adm -i "$key_fn" auth add "mds.$name" mon 'allow profile mds' osd 'allow *' mds 'allow'
+           ceph_adm -i "$key_fn" auth add "mds.$name" mon 'allow profile mds' osd 'allow *' mds 'allow' mgr 'allow'
            if [ "$standby" -eq 1 ]; then
                        prun $SUDO "$CEPH_BIN/ceph-authtool" --create-keyring --gen-key --name="mds.${name}s" \
                                "$CEPH_DEV_DIR/mds.${name}s/keyring"
                        ceph_adm -i "$CEPH_DEV_DIR/mds.${name}s/keyring" auth add "mds.${name}s" \
-                               mon 'allow *' osd 'allow *' mds 'allow'
+                               mon 'allow *' osd 'allow *' mds 'allow' mgr 'allow'
            fi
 
        fi
@@ -725,6 +742,30 @@ EOF
     done
 fi
 
+if [ "$CEPH_NUM_MGR" -gt 0 ]; then
+    mgr=0
+    for name in x y z a b c d e f g h i j k l m n o p
+    do
+        if [ "$new" -eq 1 ]; then
+            mkdir -p $CEPH_DEV_DIR/mgr.$name
+            key_fn=$CEPH_DEV_DIR/mgr.$name/keyring
+            $SUDO $CEPH_BIN/ceph-authtool --create-keyring --gen-key --name=mgr.$name $key_fn
+            ceph_adm -i $key_fn auth add mgr.$name mon 'allow *'
+        fi
+
+        cat <<EOF >> $conf_fn
+[mgr.$name]
+
+EOF
+
+        echo "Starting mgr.${name}"
+        run 'mgr' $CEPH_BIN/ceph-mgr -i $name
+
+        mgr=$(($mgr + 1))
+        [ $mgr -eq $CEPH_NUM_MGR ] && break
+    done
+fi
+
 if [ "$ec" -eq 1 ]; then
     ceph_adm <<EOF
 osd erasure-code-profile set ec-profile m=2 k=2