Project

General

Profile

Bug #8860

Updated by Alfredo Deza over 9 years ago

ceph-disk and the init script in some places ignores the custom cluster name 

 <pre> 
 Hi, we found some bugs when cluster name is not ‘ceph' in version 0.80.1, 
 ----- 
 diff --git a/src/ceph-disk b/src/ceph-disk 
 index f79e341..153e344 100755 
 --- a/src/ceph-disk 
 +++ b/src/ceph-disk 
 @@ -1611,6 +1611,8 @@ def start_daemon( 
                  [ 
                      svc, 
                      'ceph', 
 +                      '-c', 
 +                      '/etc/ceph/{cluster}.conf'.format(cluster=cluster), 
                      'start', 
                      'osd.{osd_id}'.format(osd_id=osd_id), 
                      ], 
 diff --git a/src/ceph_common.sh b/src/ceph_common.sh 
 index 01781b7..8d14a3c 100644 
 --- a/src/ceph_common.sh 
 +++ b/src/ceph_common.sh 
 @@ -49,13 +49,13 @@ check_host() { 
      get_conf user "" "user" 

      #echo host for $name is $host, i am $hostname 
 - 
 -      if [ -e "/var/lib/ceph/$type/ceph-$id/upstart" ]; then 
 +      cluster=$1 
 +      if [ -e "/var/lib/ceph/$type/$cluster-$id/upstart" ]; then 
         return 1 
      fi 

      # sysvinit managed instance in standard location? 
 -      if [ -e "/var/lib/ceph/$type/ceph-$id/sysvinit" ]; then 
 +      if [ -e "/var/lib/ceph/$type/$cluster-$id/sysvinit" ]; then 
         host="$hostname" 
         echo "=== $type.$id === " 
         return 0 
 diff --git a/src/init-ceph.in b/src/init-ceph.in 
 index 846bd57..24c52d9 100644 
 --- a/src/init-ceph.in 
 +++ b/src/init-ceph.in 
 @@ -189,7 +189,7 @@ for name in $what; do 
      num=$id 
      name="$type.$id" 

 -      check_host || continue 
 +      check_host $cluster|| continue 

      binary="$BINDIR/ceph-$type" 
      cmd="$binary -i $id" 
 @@ -231,7 +231,7 @@ for name in $what; do 
      cmd="$cmd -c $conf" 

      if echo $name | grep -q ^osd; then 
 -         get_conf osd_data "/var/lib/ceph/osd/ceph-$id" "osd data" 
 +         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 
 @@ -323,7 +323,7 @@ for name in $what; do 
                 if [ "${update_crush:-1}" = "1" -o "${update_crush:-1}" = "true" ]; then 
                     # update location in crush 
                     get_conf osd_location_hook "$BINDIR/ceph-crush-location" "osd crush location hook" 
 -                     osd_location=`$osd_location_hook --cluster ceph --id $id --type osd` 
 +                     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("%.2f",$2/1073741824) }')" 
                     get_conf osd_keyring "$osd_data/keyring" "keyring" 
 @@ -354,7 +354,7 @@ for name in $what; do 
                 get_conf mon_data "/var/lib/ceph/mon/ceph-$id" "mon data" 
                 if [ "$mon_data" = "/var/lib/ceph/mon/ceph-$id" -a "$asok" = "/var/run/ceph/ceph-mon.$id.asok" ]; then 
                     echo Starting ceph-create-keys on $host... 
 -                     cmd2="$SBINDIR/ceph-create-keys -i $id 2> /dev/null &" 
 +                     cmd2="$SBINDIR/ceph-create-keys --cluster $cluster -i $id 2> /dev/null &" 
                     do_cmd "$cmd2" 
                 fi 
             fi 

 ----------- 
 </pre>

Back