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>