Created
February 7, 2017 18:48
-
-
Save dosaboy/f1402f79c7179423b6b61f233376d2e2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -eu | |
# THE FOLLOWING PROCEDURE TO REFORMAT AN OSD AND ITS JOURNAL HAS BEEN TESTED | |
# ON UBUNTU TRUSTY WITH CEPH 0.94.8-0ubuntu0.15.04.1~cloud0 FROM KILO UCA. | |
OSD_ID=48 | |
OSD=osd.$OSD_ID | |
BLK_DEV=/dev/vdb | |
JOURNAL_UUID=`cat /var/lib/ceph/osd/ceph-$OSD_ID/journal_uuid` | |
JOURNAL_PART=`sudo readlink -f /var/lib/ceph/osd/ceph-$OSD_ID/journal` | |
BASE_DEV=${JOURNAL_PART%*[0-9]} | |
PART_NUM=${JOURNAL_PART#$BASE_DEV} | |
sudo sgdisk -i $PART_NUM $BASE_DEV > /tmp/sgdisk_info.txt | |
START_SECTOR=`cat /tmp/sgdisk_info.txt | awk '/First sector/ { print $3 }'` | |
LAST_SECTOR=`cat /tmp/sgdisk_info.txt | awk '/Last sector/ { print $3 }'` | |
echo -e "\nIMPORTANT: please confirm the following is correct:" | |
cat <<- EOF | |
OSD: $OSD | |
OSD Journal: | |
UUID: $JOURNAL_UUID | |
partition: $BASE_DEV$PART_NUM | |
start sector: $START_SECTOR | |
last sector: $LAST_SECTOR | |
EOF | |
read -p "Hit [ENTER] to continue and reformat journal partition and osd device" || true | |
set -x | |
sudo ceph osd set noup | |
sudo ceph osd out $OSD | |
sudo ceph osd down $OSD | |
sudo service ceph-osd stop id=$OSD_ID | |
sudo ceph osd crush rm $OSD | |
sudo ceph auth del $OSD | |
sudo ceph osd rm $OSD | |
while true; do ps -ef| egrep -q "[/]usr/bin/ceph-osd.+-id? $OSD_ID" && echo "OSD-$OSD_ID STILL RUNNING!" && sleep 1 && continue || echo "Ok" && break; done | |
sudo dd if=/dev/zero of=$JOURNAL_PART || true | |
sudo sgdisk --delete=$PART_NUM $BASE_DEV | |
sudo partprobe | |
# NOTE: the following sector range must match that from sgdisk information above | |
sudo sgdisk --new=$PART_NUM:$START_SECTOR:$LAST_SECTOR --change-name=$PART_NUM:'ceph journal' --partition-guid=$PART_NUM:$JOURNAL_UUID --typecode=$PART_NUM:$JOURNAL_UUID --mbrtogpt -- $BASE_DEV | |
sudo partprobe | |
sudo ceph-osd -i $OSD_ID --mkjournal | |
sudo umount /var/lib/ceph/osd/ceph-$OSD_ID | |
sudo ceph-disk-prepare --zap-disk $BLK_DEV --journal-uuid $JOURNAL_UUID | |
sudo mount ${BLK_DEV}1 /var/lib/ceph/osd/ceph-$OSD_ID || true | |
sudo ceph osd in $OSD | |
sudo service ceph-osd start id=$OSD_ID || true | |
sudo ceph osd unset noup | |
sudo ceph -s |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment