ceph中如何删除和添加osd节点

51次阅读
没有评论

共计 2647 个字符,预计需要花费 7 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍了 ceph 中如何删除和添加 osd 节点,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

在 ceph 中,数据是以 PG 为单位保存在 osd 中的,一般情况下一个 osd 会对应一块磁盘,在 osd 节点挂掉的情况下,如果 osd 数据盘没有损坏,可以利用 osd 数据盘对数据进行恢复
现在的情况如下所示,将 osd2 节点的 osd.8 和 osd.9 都停掉了,相当于 osd2 节点已经挂掉

集群的健康状况如下:

1 将 osd.8,osd.9 从 crush 中删除,并删除对应的 osd, 和 auth,host
ceph osd crush rm osd.8 
ceph osd crush rm osd.9
ceph osd rm 8 
ceph osd rm 9
ceph auth del osd.8
ceph auth del osd.9
ceph osd crush rm osd2
将故障节点和 osd 从集群中删除后,新的集群如下图所示

2 新建 osd2 节点
并将数据盘挂载到新的 osd2 节点,并重建 osd
2.1 挂载数据盘到临时目录
将数据盘挂载到 /var/lib/ceph/osd/tmp/mnt 目录下,目录不存在就新建一个
mkdir /var/lib/ceph/tmp/mnt
mount /dev/sdb1 /var/lib/ceph/tmp/mnt
读取 /var/lib/ceph/tmp/mnt 目录下的 fsid,whoami 文件,即该磁盘对应的 osd 的 uuid 和 osd-num
cat fsid whoami 
f187533d-d3cd-4e40-8416-a93c9080876c
8
2.2 重建 osd
读取到 fsid, 和 osd-num 后,可以利用这些信息重建 osd, 需要读取 /etc/ceph.conf 文件,保证这个文件存在并且和集群中的该文件保持一致
ceph  osd  create f187533d-d3cd-4e40-8416-a93c9080876c 8
如果出现如图所示的错误提示,说明没有找到 keyring 文件,这是集群之间的认证文件
2017-10-16 16:47:15.681089 7f84f1a80700 -1 auth: unable to find a keyring on /etc/ceph/ceph.client.admin.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin: (2) No such file or directory
2017-10-16 16:47:15.681315 7f84f1a80700 -1 monclient(hunting): ERROR: missing keyring, cannot use cephx for authentication
2017-10-16 16:47:15.681404 7f84f1a80700  0 librados: client.admin initialization error (2) No such file or directory
Error connecting to cluster: ObjectNotFound

可以从集群的其他节点(主节点的 /etc/ceph 目录下)上将该文件复制一份过来,放到 /etc/ceph 目录下
scp ceph.client.admin.keyring osd2:/etc/ceph
再次创建 osd
ceph  osd  create f187533d-d3cd-4e40-8416-a93c9080876c 8
返回8说明创建成功
新建 osd 挂载点
mkdir /var/lib/ceph/osd/ceph-8
卸载临时挂载目录
umount /var/lib/ceph/tmp/mnt
挂载数据盘到 osd 目录
mount /dev/sdb1 /var/lib/ceph/osd/ceph-8
注册此 OSD 的密钥
ceph auth add osd.8 osd allow * mon allow rwx -i /var/lib/ceph/osd/ceph-8/keyring 
added key for osd.8
3 加入集群
将新的节点加入 crushmap
ceph osd crush add-bucket osd2 host
将该接点放到 default 根下
ceph osd crush move osd2 root=default
osd 加入 crushmap
ceph osd crush add osd.8 0.00980 host=osd2
这里给 osd.8 的权重是 0.00980,该值和集群中其他 osd 保持已知,权重不一致可能会导致 pg 的状态一直处于 unclean
现在 osd 已经在集群中了, 加入集群的 osd 就可以接收数据了
root@mon1:/etc/ceph# ceph osd tree
ID WEIGHT  TYPE NAME     UP/DOWN REWEIGHT PRIMARY-AFFINITY 
-1 0.05878 root default                                   
-2 0.01959     host osd1                                   
 1 0.00980         osd.1      up  1.00000          1.00000 
 3 0.00980         osd.3      up  1.00000          1.00000 
-5 0.01959     host osd3                                   
 4 0.00980         osd.4      up  1.00000          1.00000 
 5 0.00980         osd.5      up  1.00000          1.00000 
-3 0.01959     host osd2                                   
 9 0.00980         osd.9      up  1.00000          1.00000 
 8 0.00980         osd.8    down        0          1.00000 

现在 osd.8 还处于 down 状态,因为 osd.8 的进程还没有启动
启动进程
systemctl start ceph-osd@8
现在集群的健康状况和 osd 分布状况,如下图

上图所示,说明 osd 节点恢复成功。

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“ceph 中如何删除和添加 osd 节点”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-07发表,共计2647字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)