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 目录下。