🔹Storage
[Ceph] Storage Cluster 초기화 방법
terranbin
2024. 3. 10. 16:06
728x90
SMALL
ceph version : 17.2.6
1. OSD 삭제
# osd 상태 확인 명령어
ceph osd status
ceph orch ps --daemon_type osd --refresh
# Alias 설정
TARGET_OSD_ID="0"
#EXAMPLE (ceph osd status 에서 ID 값 입력)
TARGET_HOST_NAME=$(ceph orch ps --daemon_type osd --format json| jq -r '.[] | select(.daemon_id == '\""$TARGET_OSD_ID"\"') | .hostname')
TARGET_DAEMON_NAME=$(ceph orch ps --daemon_type osd --format json | jq -r '.[] | select(.daemon_id == '\""$TARGET_OSD_ID"\"') | .daemon_name')
TARGET_OSD_DEV_PATH=$(ceph device ls-by-host "${TARGET_HOST_NAME}" --format json | jq -r '.[] | select(.daemons[] | contains('\""${TARGET_DAEMON_NAME}"\"')) | .location[] | .dev')
SERVICE_NAME=$(ceph orch ls --service_type osd --format json | jq -c '.[] | select(.spec.data_devices.paths != null) | select(.spec.data_devices.paths[] | contains('\""${TARGET_OSD_DEV_PATH}"\"')) | select(.placement.hosts != null) | select(.placement.hosts[] | contains('\""${TARGET_HOST_NAME}"\"'))' | jq -r '.service_name')
# Alias 확인
echo $TARGET_HOST_NAME
echo $TARGET_OSD_DEV_PATH
echo $TARGET_DAEMON_NAME
echo $SERVICE_NAME
# osd 완전 삭제
ceph orch rm "${SERVICE_NAME}" --force
sleep 15
ceph osd down "$TARGET_OSD_ID"
sleep 15
ceph osd purge "$TARGET_OSD_ID" --force --yes-i-really-mean-it
sleep 15
ceph orch daemon rm "${TARGET_DAEMON_NAME}" --force
모든 osd 를 삭제한 뒤, 다음 단계인 Host 삭제 진행
2. Host 삭제
# Host 상태 확인 명령어
ceph orch host ls
# Alias 설정
HOST="node3" #EXAMPLE
# Host 삭제
ceph orch host drain ${HOST} # Drain 이 모두 정상적으로 될 때까지 기다리는 것이 좋습니다. (약 30초 정도?)
sleep 60
ceph orch host rm ${HOST} --force
다만, admin label 이 있는 Host 삭제 시에는,
drain 부분에서 force 명령어를 붙이셔야 합니다
3. Ceph Cluster 자체 삭제
$ cephadm rm-cluster --fsid $(cephadm ls | jq -r '.[0].fsid') --force
$ cephadm ls
[]
4. 잔해물 제거
# 설정 파일 삭제
rm -rf /etc/ceph
rm -rf /var/lib/ceph*
rm -rf /etc/systemd/system/ceph* # Service files
# osd 가 깔려있던 disk 포맷
ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove %
rm -rf /dev/ceph-*
LIST