当磁盘损坏或者集群需要进行缩容时,需要对磁盘进行删除。在ceph集群中,一个osd通常是一台物理主机上的一个ceph-osd的守护进程,它运行在一个磁盘之上。如果集群有多个磁盘损坏,删除这些磁盘需要依次对这些磁盘所对应的osd进行移除。
1.删除OSD前需要先确定一下当前集群的容量状况,确保删除OSD后不会使集群达到near full比率,可以通过以下命令进行查看:
ceph osd df tree
2.定位故障osd
ceph osd tree | grep -i down
3.删除osd前,需要先把osd踢出集群,命令格式如下:
ceph osd out {osd-num}
示例如下:
假设现在需要删除的osd的num为66,命令如下:
ceph osd out osd.66
4.做完上面的操作,进入故障osd所在节点,删除前还需要先停止osd进程,命令格式如下:
systemctl stop ceph-osd@{osd-num}.service
示例如下:
systemctl stop ceph-osd@66.service
5.将osd从crush map中移除,命令格式如下:
ceph osd crush rm osd.{num}
6.从osd map里删除该osd
ceph osd rm {osd-mum}
7.删除osd认证密钥
ceph osd del osd.{mum}
8.卸载磁盘分区,并清除数据目录,命令格式如下:
umount /var/lib/ceph/osd/ceph-{osd-num}
rm -rf /var/lib/ceph/osd/ceph-{osd-num}
以下是一个可供参考的示例:
umount /var/lib/ceph/osd/ceph-66
rm -rf /var/lib/ceph/osd/ceph-66
9.重启systemd-udevd守护进程服务,直接从内核接收设备的插入、拔出、改变状态等事件,并根据这些事件的各种属性,到规则库中进行匹配,以确定触发事件的设备。被匹配成功的规则有可能提供额外的设备信息,这些信息可能会被记录到udev数据库中,也可能会被用于创建符号链接。确保磁盘分区卸载以及数据目录清除。
systemctl restart systemd-udevd.service
10.验证查看
关注公众号查看更多分享
我们都是ITer
网友评论