Skip to content

Commit eb0cee9

Browse files
committed
split osd disk task to osd disk create and osd disk activiate
Signed-off-by: Huamin Chen <[email protected]>
1 parent dcd8d4b commit eb0cee9

File tree

1 file changed

+21
-19
lines changed

1 file changed

+21
-19
lines changed

entrypoint.sh

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,9 @@ function start_osd {
158158
activate)
159159
osd_activate
160160
;;
161+
prepare)
162+
osd_disk_prepare
163+
;;
161164
*)
162165
if [[ ! -d /var/lib/ceph/osd || -n "$(find /var/lib/ceph/osd -prune -empty)" ]]; then
163166
echo "No bootstrapped OSDs found; trying ceph-disk"
@@ -245,11 +248,11 @@ function osd_directory {
245248

246249
}
247250

248-
#################
249-
# OSD_CEPH_DISK #
250-
#################
251+
#########################
252+
# OSD_CEPH_DISK_PREPARE #
253+
#########################
251254

252-
function osd_disk {
255+
function osd_disk_prepare {
253256
if [[ -z "${OSD_DEVICE}" ]];then
254257
echo "ERROR- You must provide a device to build your OSD ie: /dev/sdb"
255258
exit 1
@@ -279,20 +282,15 @@ function osd_disk {
279282
else
280283
ceph-disk -v prepare ${OSD_DEVICE}
281284
fi
285+
}
282286

283-
ceph-disk -v activate ${OSD_DEVICE}1
284-
OSD_ID=$(cat /var/lib/ceph/osd/$(ls -ltr /var/lib/ceph/osd/ | tail -n1 | awk -v pattern="$CLUSTER" '$0 ~ pattern {print $9}')/whoami)
285-
OSD_WEIGHT=$(df -P -k /var/lib/ceph/osd/${CLUSTER}-$OSD_ID/ | tail -1 | awk '{ d= $2/1073741824 ; r = sprintf("%.2f", d); print r }')
286-
ceph ${CEPH_OPTS} --name=osd.${OSD_ID} --keyring=/var/lib/ceph/osd/${CLUSTER}-${OSD_ID}/keyring osd crush create-or-move -- ${OSD_ID} ${OSD_WEIGHT} ${CRUSH_LOCATION}
287+
#################
288+
# OSD_CEPH_DISK #
289+
#################
287290

288-
# ceph-disk activiate has exec'ed /usr/bin/ceph-osd ${CEPH_OPTS} -f -d -i ${OSD_ID}
289-
# wait till ceph-osd exit
290-
OSD_PID=$(ps -ef |grep ceph-osd |grep osd.${OSD_ID} |awk '{print $2}')
291-
if [ ! -z ${OSD_ID} ]; then
292-
while [ -e /proc/${OSD_PID} ]; do sleep 1;done
293-
else
294-
exec /usr/bin/ceph-osd ${CEPH_OPTS} -f -d -i ${OSD_ID}
295-
fi
291+
function osd_disk {
292+
osd_disk_prepare
293+
osd_activate
296294
}
297295

298296

@@ -305,7 +303,7 @@ function osd_activate {
305303
echo "ERROR- You must provide a device to build your OSD ie: /dev/sdb"
306304
exit 1
307305
fi
308-
306+
timeout 10 bash -c "while [ ! -e ${OSD_DEVICE}1 ]; do sleep 1; done"
309307
mkdir -p /var/lib/ceph/osd
310308
ceph-disk -v activate ${OSD_DEVICE}1
311309
OSD_ID=$(cat /var/lib/ceph/osd/$(ls -ltr /var/lib/ceph/osd/ | tail -n1 | awk -v pattern="$CLUSTER" '$0 ~ pattern {print $9}')/whoami)
@@ -475,6 +473,10 @@ case "$CEPH_DAEMON" in
475473
OSD_TYPE="disk"
476474
start_osd
477475
;;
476+
osd_ceph_disk_prepare)
477+
OSD_TYPE="prepare"
478+
start_osd
479+
;;
478480
osd_ceph_disk_activate)
479481
OSD_TYPE="activate"
480482
start_osd
@@ -489,8 +491,8 @@ case "$CEPH_DAEMON" in
489491
if [ ! -n "$CEPH_DAEMON" ]; then
490492
echo "ERROR- One of CEPH_DAEMON or a daemon parameter must be defined as the name "
491493
echo "of the daemon you want to deploy."
492-
echo "Valid values for CEPH_DAEMON are MON, OSD, OSD_DIRECTORY, OSD_CEPH_DISK, OSD_CEPH_DISK_ACTIVATE, MDS, RGW, RESTAPI"
493-
echo "Valid values for the daemon parameter are mon, osd, osd_directory, osd_ceph_disk, osd_ceph_disk_activate, mds, rgw, restapi"
494+
echo "Valid values for CEPH_DAEMON are MON, OSD, OSD_DIRECTORY, OSD_CEPH_DISK, OSD_CEPH_DISK_PREPARE, OSD_CEPH_DISK_ACTIVATE, MDS, RGW, RESTAPI"
495+
echo "Valid values for the daemon parameter are mon, osd, osd_directory, osd_ceph_disk, osd_ceph_disk_prepare, osd_ceph_disk_activate, mds, rgw, restapi"
494496
exit 1
495497
fi
496498
;;

0 commit comments

Comments
 (0)