ceph 更换故障硬盘过程

ceph 更换磁盘过程:

1.找出故障的磁盘
[root@etcd-host2 ~]# 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
[root@consul-02 ~]# 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 ceph-osd@3
该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

你可能感兴趣的:(ceph)