問題描述
?
在現有集群加入一個物理節點,接著再此節點創建ceph監視器、創建OSD。從宿主機系統執行ceph osd tree查看狀態,創建起來的幾個OSD狀態都正常(up),從proxmox管理界面看也是這樣。
?
突然不知道什么原因,剛加入的節點就突然不能從集群中失效了。
再進宿主機系統查OSD狀態,居然自己從up變成down。新增節點沒數據,于是就試試重啟,看能不能正常。重啟以后,網絡能通,ssh不能連接,web管理界面也不能訪問。接下來,需要先把故障節點從集群中撤離出來,恢復以后,再加入集群。
?
從集群中刪除故障節點
?
按操作順序分兩個步驟:從集群中刪除故障ceph和從集群中刪除物理節點。
?
ü? 從集群中刪除故障ceph
1.?????? 登錄集群任意物理正常節點系統,執行如下命令查看ceph osd狀態:
root@pve48:~# ceph osd tree ID CLASS WEIGHT?? TYPE NAME????? STATUS REWEIGHT PRI-AFF -1?????? ? 18.00357 root default?????????????????????????? -3??????? ? 4.91006???? host pve48???????????????????????? ?0?? ? hdd? 1.63669???????? osd.0????? up? ? 1.00000 1.00000 ?1?? ? hdd? 1.63669???????? osd.1????? up? ? 1.00000 1.00000 ?2?? ? hdd? 1.63669?????? ??osd.2????? ? up? 1.00000 1.00000 -5??????? ? 4.91006???? host pve49???????????????????????? ?3?? ? hdd? 1.63669???????? osd.3????? up? ? 1.00000 1.00000 ?4?? ? hdd? 1.63669???????? osd.4????? up? ? 1.00000 1.00000 ?5?? ? hdd? 1.63669???????? osd.5????? up? ? 1.00000 1.00000 -7??????? ? 4.91006???? host pve50???????????????????????? ?6?? ? hdd? 1.63669???????? osd.6????? up? ? 1.00000 1.00000 ?7?? ? hdd? 1.63669???????? osd.7????? up? ? 1.00000 1.00000 ?8?? ? hdd? 1.63669???????? osd.8????? up? ? 1.00000 1.00000 -9??????? ? 3.27338???? host pve51? ? ? ? ? ? ? ? ? ? ? ?? 9?????? ? ??hdd? 1.63669???????? osd.9??? down??????? 0 1.00000 10?? ? hdd? 1.63669???????? osd.10?? down??????? ? 0 1.00000 |
從輸出可知物理節點pve51的兩個OSD有問題,需要刪除。
2.?????? 離線有問題的ceph osd,執行的操作如下:
root@pve48:~# ceph osd out osd.9 osd.9 is already out. root@pve48:~# ceph osd out osd.10 osd.10 is already out. |
操作時要仔細,別把正常的osd離線了。
3.?????? 刪除已經離線osd認證信息,執行的操作如下:
root@pve48:~# ceph auth del osd.9 updated root@pve48:~# ceph auth del osd.10 updated |
?
4.?????? 徹底刪除故障osd,操作如下:
root@pve48:~# ceph osd rm 9 removed osd.9 root@pve48:~# ceph osd rm 10 removed osd.10 |
注意:此操作ceph最后一列參數與前邊的不同,是純數字格式!!!
5.?????? 查看集群osd狀態,操作如下:
root@pve48:~# ceph osd tree ID CLASS WEIGHT?? TYPE NAME????? STATUS REWEIGHT PRI-AFF -1?????? ? 18.00357 root default??????????? ? ??????????????? -3??????? ? 4.91006???? host pve48???????????????????????? ?0?? ? hdd? 1.63669???????? osd.0????? up? ? 1.00000 1.00000 ?1?? ? hdd? 1.63669???????? osd.1????? up? ? 1.00000 1.00000 ?2?? ? hdd? 1.63669???????? osd.2????? up? ? 1.00000 1.00000 -5??????? ? 4.91006???? host pve49???????????????????????? ?3?? ? hdd? 1.63669???????? osd.3????? up? ? 1.00000 1.00000 ?4?? ? hdd? 1.63669???????? osd.4????? up? ? 1.00000 1.00000 ?5?? ? hdd? 1.63669???????? osd.5????? up? ? 1.00000 1.00000 -7??????? ? 4.91006???? host pve50???????????????????????? ?6?? ? hdd? 1.63669???????? osd.6????? up? ? 1.00000 1.00000 ?7?? ? hdd? 1.63669???????? osd.7????? up? ? 1.00000 1.00000 ?8?? ? hdd? 1.63669???????? osd.8????? up? ? 1.00000 1.00000 -9??????? ? 3.27338???? host pve51??????????????? ????????? 9?????? ? ??hdd? 1.63669???????? osd.9???? DNE??????? 0???????? 10?? ? hdd? 1.63669???????? osd.10??? DNE??????? ? 0?? |
操作完成后,故障節點的osd狀態從down變成了DNE
6.?????? 刪除故障節點的ceph磁盤,操作如下:
root@pve48:~# ceph osd crush rm osd.9 removed item id 9 name 'osd.9' from crush ? map root@pve48:~# ceph osd crush rm osd.10 removed item id 10 name 'osd.10' from crush ? map |
?
7.?????? 從ceph集群中刪除物理節點,操作如下:
root@pve48:~# ceph osd crush rm? pve51 removed item id -9 name 'pve51' from crush ? map |
?
8.?????? 執行指令 ceph osd tree 查看狀態,看是否把故障節點從ceph集群清理出去。
?
ü? 從集群中刪除故障節點
?
?? 集群上的操作
登錄集群中任意正常節點,執行如下指令進行驅逐操作:
root@pve48:~# pvecm? delnode pve51 Killing ? node 4 |
?
?? 故障機恢復操作
最好全部干掉,重新安裝系統,并用新的ip地址,加入集群。