@@ -158,6 +158,9 @@ function start_osd {
158
158
activate)
159
159
osd_activate
160
160
;;
161
+ prepare)
162
+ osd_disk_prepare
163
+ ;;
161
164
* )
162
165
if [[ ! -d /var/lib/ceph/osd || -n " $( find /var/lib/ceph/osd -prune -empty) " ]]; then
163
166
echo " No bootstrapped OSDs found; trying ceph-disk"
@@ -245,11 +248,11 @@ function osd_directory {
245
248
246
249
}
247
250
248
- # ################
249
- # OSD_CEPH_DISK #
250
- # ################
251
+ # ########################
252
+ # OSD_CEPH_DISK_PREPARE #
253
+ # ########################
251
254
252
- function osd_disk {
255
+ function osd_disk_prepare {
253
256
if [[ -z " ${OSD_DEVICE} " ]]; then
254
257
echo " ERROR- You must provide a device to build your OSD ie: /dev/sdb"
255
258
exit 1
@@ -279,20 +282,15 @@ function osd_disk {
279
282
else
280
283
ceph-disk -v prepare ${OSD_DEVICE}
281
284
fi
285
+ }
282
286
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
+ # ################
287
290
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
296
294
}
297
295
298
296
@@ -305,7 +303,7 @@ function osd_activate {
305
303
echo " ERROR- You must provide a device to build your OSD ie: /dev/sdb"
306
304
exit 1
307
305
fi
308
-
306
+ timeout 10 bash -c " while [ ! -e ${OSD_DEVICE} 1 ]; do sleep 1; done "
309
307
mkdir -p /var/lib/ceph/osd
310
308
ceph-disk -v activate ${OSD_DEVICE} 1
311
309
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
475
473
OSD_TYPE=" disk"
476
474
start_osd
477
475
;;
476
+ osd_ceph_disk_prepare)
477
+ OSD_TYPE=" prepare"
478
+ start_osd
479
+ ;;
478
480
osd_ceph_disk_activate)
479
481
OSD_TYPE=" activate"
480
482
start_osd
@@ -489,8 +491,8 @@ case "$CEPH_DAEMON" in
489
491
if [ ! -n " $CEPH_DAEMON " ]; then
490
492
echo " ERROR- One of CEPH_DAEMON or a daemon parameter must be defined as the name "
491
493
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"
494
496
exit 1
495
497
fi
496
498
;;
0 commit comments