Rook Ceph OSD異常,格式化osd硬盤重新掛載


 

今天突然一個osd節點pod一直無法正常運行,查看logs后發現報出的錯誤信息沒辦法判斷是出了什么問題,在網絡上搜索也沒有找到解決辦法,無奈之下只能決定格式化osd節點硬盤,重新加載試試。

1、進入rook ceph toolbox工具pod

kubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l "app=rook-ceph-tools" -o jsonpath='{.items[0].metadata.name}') bash

2、命名用ceph命令查詢並刪除osd

#查詢狀態,找到要移除的osd id
ceph osd status
#標記移除的osd
ceph osd out osd.1
ceph osd purge 1 --yes-i-really-mean-it
ceph osd crush remove osd.1
ceph auth rm osd.1
ceph osd rm osd.1 

3、刪除相關osd節點的deployment

kubectl delete deploy rook-ceph-osd-1 -n rook-ceph

4、登錄要刪除osd所在的服務器,格式化osd硬盤

安裝sgdisk命令,yum install -y gdisk

#檢查硬盤路徑
fdisk -l
#刪除硬盤分區信息
DISK="/dev/sdb"
sgdisk --zap-all $DISK
#清理硬盤數據(hdd硬盤使用dd,ssd硬盤使用blkdiscard,二選一)
dd if=/dev/zero of="$DISK" bs=1M count=100 oflag=direct,dsync
blkdiscard $DISK
#刪除原osd的lvm信息(如果單個節點有多個osd,那么就不能用*拼配模糊刪除,而根據lsblk -f查詢出明確的lv映射信息再具體刪除,參照第5項操作)
ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove %
rm -rf /dev/ceph-*
#重啟,sgdisk –zzap-all需要重啟后才生效
reboot

報錯錯誤:cannot open /dev/sdb: Device or resource busy

5、手動查看並刪除原osd創建的lvm信息(可選,根據第4步執行情況決定),否則格式化時會報 cannot open /dev/sdb: Device or resource busy 異常

復制代碼
#查看lvm設備信息
dmsetup ls;
#刪除ceph osd lvm映射關系
dmsetup remove ceph--5a4cb4bb--70b3--40bd--9da7--09d4f264a513-osd-xxxxxxxxx
#移動lv
lvremove /dev/mapper/ceph--5a4cb4bb--70b3--40bd--9da7--09d4f264a513-osd—xxxxxxxxx
#刪除相關文件
rm –rf /dev/ceph--5a4cb4bb--70b3--40bd--9da7--09d4f264a513
復制代碼

5、重啟ceph operator調度,使檢測到格式化后的osd硬盤,osd啟動后ceph集群會自動平衡數據

kubectl rollout restart deploy rook-ceph-operator -n rook-ceph

注:如果新osd pod無法執行起來可以通過查詢osd prepare日志找問題

kubectl -n rook-ceph logs rook-ceph-osd-prepare-node1-fvmrp provision

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM