From: Sage Weil Date: Wed, 22 May 2013 16:47:29 +0000 (-0700) Subject: sysvinit: fix osd weight calculation on remote hosts X-Git-Tag: v0.63~10^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d81d0ea5c442699570bd93a90bea0d97a288a1e9;p=ceph.git sysvinit: fix osd weight calculation on remote hosts We need to do df on the remote host, not locally. Simlarly, the ceph command uses the osd key, which exists remotely; run it there. Signed-off-by: Sage Weil --- diff --git a/src/init-ceph.in b/src/init-ceph.in index 65e93974283d..88fe6eb7d367 100644 --- a/src/init-ceph.in +++ b/src/init-ceph.in @@ -310,19 +310,20 @@ for name in $what; do # command line, ceph.conf can override what it wants get_conf osd_location "" "osd crush location" get_conf osd_weight "" "osd crush initial weight" - defaultweight=`df $osd_data/. | tail -1 | awk '{ d= $2/1073741824 ; r = sprintf("%.2f", d); print r }'` + defaultweight="$(do_cmd "df $osd_data/. | tail -1 | awk '{ d= \$2/1073741824 ; r = sprintf(\"%.2f\", d); print r }'")" + get_conf osd_keyring "$osd_data/keyring" "keyring" - $BINDIR/ceph \ - --name="osd.$id" \ - --keyring="$osd_keyring" \ + do_cmd "$BINDIR/ceph \ + --name=osd.$id \ + --keyring=$osd_keyring \ osd crush create-or-move \ -- \ - "$id" \ - "${osd_weight:-${defaultweight:-1}}" \ + $id \ + ${osd_weight:-${defaultweight:-1}} \ root=default \ - host="$host" \ + host=$host \ $osd_location \ - || : + || :" fi fi