Ceph删除一个OSD

时间:2022-01-01 02:26:15
CentOS7环境下的Ceph,删除一个OSD步骤:


1、把 OSD 踢出集群(管理节点上执行)
[dgb@ceph-admin ~]$ceph osd out 6
删除 OSD 前,它通常是 up 且 in 的,要先把它踢出集群,以使 Ceph 启动重新均衡、把数据拷贝到其他 OSD

2、观察数据迁移(管理节点上查看)
[dgb@ceph-admin ~]$ceph -w
osd会立即重新平衡
2017-04-17 13:44:00.811494 mon.0 [INF] pgmap v52399: 112 pgs: 1 active+remapped, 111 active+clean; 1588 bytes data, 19100 MB used, 99020 MB / 115 GB avail; 0 B/s, 16 objects/s recovering
2017-04-17 13:44:01.839354 mon.0 [INF] pgmap v52400: 112 pgs: 1 active+remapped, 111 active+clean; 1588 bytes data, 19100 MB used, 99019 MB / 115 GB avail
2017-04-17 13:44:03.861768 mon.0 [INF] pgmap v52401: 112 pgs: 1 active+remapped, 111 active+clean; 1588 bytes data, 19100 MB used, 99019 MB / 115 GB avail

3、然后停止相关的OSD
需要登录到对应的服务器去
然后执行:
[dgb@ceph2 ~]$ sudo systemctl stop ceph-osd@6

查看当前osd.6的应该是down的状态,如果不是是删除不了的
[dgb@ceph-admin ~]$ceph osd tree
[dgb@ceph-admin ~]$ ceph osd tree
ID WEIGHT  TYPE NAME      UP/DOWN REWEIGHT PRIMARY-AFFINITY 
-1 0.43896 root default                                     
-2 0.01949     host ceph1                                   
 5 0.01949         osd.5       up  1.00000          1.00000 
-3       0     host ceph2                                   
-4 0.01949     host ceph3                                   
 4 0.01949         osd.4       up  1.00000          1.00000 
-5 0.20000     host ceph4                                   
 1 0.20000         osd.1       up  1.00000          1.00000 
-6 0.20000     host ceph5                                   
 0 0.20000         osd.0       up  1.00000          1.00000 
 2       0 osd.2             down        0          1.00000 
 6       0 osd.6             down        0          1.00000

4、删除 OSD
4.1、删除 CRUSH 图的对应 OSD 条目,它就不再接收数据了。你也可以反编译 CRUSH 图、删除 device 列表条目、
删除对应的 host 桶条目或删除 host 桶(如果它在 CRUSH 图里,而且你想删除主机),重编译 CRUSH 图并应用它;
[dgb@ceph-admin ~]$ ceph osd crush remove osd.6
removed item id 6 name 'osd.6' from crush map

4.2、删除 OSD 认证密钥
[dgb@ceph-admin ~]$ ceph auth del osd.6
updated

4.3、删除 OSD
[dgb@ceph-admin ~]$ ceph osd rm 6
removed osd.6

5、登录到保存 ceph.conf 主拷贝的主机。

ssh {admin-host}
cd /etc/ceph
vim ceph.conf
从 ceph.conf 配置文件里删除对应条目。


[osd.6]
        host = ceph2


6、从保存 ceph.conf 主拷贝的主机,把更新过的 ceph.conf 拷贝到集群其他主机的 /etc/ceph 目录下。