共計 2647 個字符,預計需要花費 7 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章主要介紹了 ceph 中如何刪除和添加 osd 節點,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
在 ceph 中,數據是以 PG 為單位保存在 osd 中的,一般情況下一個 osd 會對應一塊磁盤,在 osd 節點掛掉的情況下,如果 osd 數據盤沒有損壞,可以利用 osd 數據盤對數據進行恢復
現在的情況如下所示,將 osd2 節點的 osd.8 和 osd.9 都停掉了,相當于 osd2 節點已經掛掉
集群的健康狀況如下:
1 將 osd.8,osd.9 從 crush 中刪除,并刪除對應的 osd, 和 auth,host
ceph osd crush rm osd.8
ceph osd crush rm osd.9
ceph osd rm 8
ceph osd rm 9
ceph auth del osd.8
ceph auth del osd.9
ceph osd crush rm osd2
將故障節點和 osd 從集群中刪除后,新的集群如下圖所示
2 新建 osd2 節點
并將數據盤掛載到新的 osd2 節點,并重建 osd
2.1 掛載數據盤到臨時目錄
將數據盤掛載到 /var/lib/ceph/osd/tmp/mnt 目錄下,目錄不存在就新建一個
mkdir /var/lib/ceph/tmp/mnt
mount /dev/sdb1 /var/lib/ceph/tmp/mnt
讀取 /var/lib/ceph/tmp/mnt 目錄下的 fsid,whoami 文件,即該磁盤對應的 osd 的 uuid 和 osd-num
cat fsid whoami
f187533d-d3cd-4e40-8416-a93c9080876c
8
2.2 重建 osd
讀取到 fsid, 和 osd-num 后,可以利用這些信息重建 osd, 需要讀取 /etc/ceph.conf 文件,保證這個文件存在并且和集群中的該文件保持一致
ceph osd create f187533d-d3cd-4e40-8416-a93c9080876c 8
如果出現如圖所示的錯誤提示,說明沒有找到 keyring 文件,這是集群之間的認證文件
2017-10-16 16:47:15.681089 7f84f1a80700 -1 auth: unable to find a keyring on /etc/ceph/ceph.client.admin.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin: (2) No such file or directory
2017-10-16 16:47:15.681315 7f84f1a80700 -1 monclient(hunting): ERROR: missing keyring, cannot use cephx for authentication
2017-10-16 16:47:15.681404 7f84f1a80700 0 librados: client.admin initialization error (2) No such file or directory
Error connecting to cluster: ObjectNotFound
可以從集群的其他節點(主節點的 /etc/ceph 目錄下)上將該文件復制一份過來,放到 /etc/ceph 目錄下
scp ceph.client.admin.keyring osd2:/etc/ceph
再次創建 osd
ceph osd create f187533d-d3cd-4e40-8416-a93c9080876c 8
返回8說明創建成功
新建 osd 掛載點
mkdir /var/lib/ceph/osd/ceph-8
卸載臨時掛載目錄
umount /var/lib/ceph/tmp/mnt
掛載數據盤到 osd 目錄
mount /dev/sdb1 /var/lib/ceph/osd/ceph-8
注冊此 OSD 的密鑰
ceph auth add osd.8 osd allow * mon allow rwx -i /var/lib/ceph/osd/ceph-8/keyring
added key for osd.8
3 加入集群
將新的節點加入 crushmap
ceph osd crush add-bucket osd2 host
將該接點放到 default 根下
ceph osd crush move osd2 root=default
osd 加入 crushmap
ceph osd crush add osd.8 0.00980 host=osd2
這里給 osd.8 的權重是 0.00980,該值和集群中其他 osd 保持已知,權重不一致可能會導致 pg 的狀態一直處于 unclean
現在 osd 已經在集群中了, 加入集群的 osd 就可以接收數據了
root@mon1:/etc/ceph# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.05878 root default
-2 0.01959 host osd1
1 0.00980 osd.1 up 1.00000 1.00000
3 0.00980 osd.3 up 1.00000 1.00000
-5 0.01959 host osd3
4 0.00980 osd.4 up 1.00000 1.00000
5 0.00980 osd.5 up 1.00000 1.00000
-3 0.01959 host osd2
9 0.00980 osd.9 up 1.00000 1.00000
8 0.00980 osd.8 down 0 1.00000
現在 osd.8 還處于 down 狀態,因為 osd.8 的進程還沒有啟動
啟動進程
systemctl start ceph-osd@8
現在集群的健康狀況和 osd 分布狀況,如下圖
上圖所示,說明 osd 節點恢復成功。
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“ceph 中如何刪除和添加 osd 節點”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!