1. 程式人生 > >ceph 更換故障硬碟過程

ceph 更換故障硬碟過程

ceph 更換磁碟過程:

1.找出故障的磁碟
[[email protected] ~]# ceph osd map kube rbd_id.test-02.img
故障前:
osdmap e62 pool 'kube' (2) object 'rbd_id.test-02.img' -> pg 2.26004a5e (2.5e) -> up ([1,2,0], p1) acting ([1,2,0], p1)
    pgs:     128 active+clean


故障後:
osdmap e64 pool 'kube' (2) object 'rbd_id.test-02.img' -> pg 2.26004a5e (2.5e) -> up ([2,0], p2) acting ([2,0], p2)
    pgs:     7/39 objects degraded (17.949%)
             97 active+undersized+degraded
             31 active+clean
超過時間,自動在其他osd中生成新的副本:
osdmap e66 pool 'kube' (2) object 'rbd_id.test-02.img' -> pg 2.26004a5e (2.5e) -> up ([2,0,3], p2) acting ([2,0,3], p2)
    pgs:     128 active+clean


其他:
    osd: 6 osds: 5 up, 5 in
    pgs:     13/39 objects degraded (33.333%)
             128 active+undersized+degraded
osdmap e85 pool 'kube' (2) object 'rbd_id.test-02.img' -> pg 2.26004a5e (2.5e) -> up ([1,0], p1) acting ([1,0], p1)
表示,要求副本3個,但是機架只有2個,再增加一臺機器,就可以解決(即使osd 超過3個也不能解決這個問題)。


2.找出該磁碟對應的OSD ID
[
[email protected]
~]# ceph osd tree
ID CLASS WEIGHT  TYPE NAME          STATUS REWEIGHT PRI-AFF
 3   hdd 0.00769         osd.3          up  1.00000 1.00000
...
3.設定osd離開叢集:
ceph osd out 3
ceph osd stat
4 osds: 4 up, 3 in; 132 remapped pgs


4.停止osd:
systemctl stop [email protected]
該osd狀態變為down
ceph osd tree
3   hdd 0.00769         osd.3        down        0 1.00000


5.將刪除的OSD從crush map中刪除
ceph osd crush remove osd.3
此時使用ceph osd tree 已經看不到 osd.3


6.清除到OSD的認證金鑰
ceph auth del osd.3


7.在OSD Map中清除OSD
  ceph osd rm 3




8.檢視sdd是否還掛載系統中:
df
/dev/sdd1                  98944    5444    93500    6% /var/lib/ceph/osd/ceph-3
如果有,就要取消掛載:
umount /dev/sdd1


9.增加新磁碟
如果磁碟以前曾經使用過,先要初始化磁碟:
dd if=/dev/zero of=/dev/sdd bs=1M count=100  
parted -s /dev/sdd mklabel GPT
增加osd:
ceph-deploy osd prepare consul-02:sdd
檢視狀態,確認磁碟增加成功了:
ceph osd tree :
 3   hdd 0.00769         osd.3          up  1.00000 1.00000


其他:
ceph osd set noout
ceph osd unset noout