osd 节点替换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了osd 节点替换相关的知识,希望对你有一定的参考价值。

从crushmap中删除操作


调整osd的crush weight

ceph osd crush reweight osd.0 0.1

说明:这个地方如果想慢慢的调整就分几次将crush 的weight 减低到0 ,这个过程实际上是让数据不分布在这个节点上,让数据慢慢的分布到其他节点上,直到最终为没有分布在这个osd,并且迁移完成

这个地方不光调整了osd 的crush weight ,实际上同时调整了host 的 weight ,这样会调整集群的整体的crush 分布,在osd 的crush 为0 后, 再对这个osd的任何删除相关操作都不会影响到集群的数据的分布

停止osd进程

/etc/init.d/ceph stop osd.0

停止到osd的进程,这个是通知集群这个osd进程不在了,不提供服务了,因为本身没权重,就不会影响到整体的分布,也就没有迁移

将节点状态标记为out

ceph osd out osd.0

停止到osd的进程,这个是通知集群这个osd不再映射数据了,不提供服务了,因为本身没权重,就不会影响到整体的分布,也就没有迁移

从crush中移除节点

ceph osd crush remove osd.0

这个是从crush中删除,因为已经是0了 所以没影响主机的权重,也就没有迁移了

删除节点

ceph osd rm osd.0

这个是从集群里面删除这个节点的记录

删除节点认证(不删除编号会占住)

ceph auth del osd.0

这个是从认证当中去删除这个节点的信息

 

上面操作完成之后,已经将osd从crushmap中删除了osd节点,可以通过ceph osd tree 查看对应的osd节点是否已经删除

 

添加osd到crushmap中

 

添加ceph osd,必须在ceph-deploy节点上操作(172.16.205.103)

ssh [email protected]

su - ceph

cd ceph-deploy-dir/ 在此目录下执行下面命令操作

 

准备osd节点

ceph-deploy --overwrite-conf osd prepare ser16:/var/lib/ceph/osd/ceph-77

 

激活osd节点

ceph-deploy --overwrite-conf osd activate ser16:/var/lib/ceph/osd/ceph-77

 

查看ceph osd tree 此osd77 是否状态是up,如果没有,则重启77这个osd。启动之后。然后更新crushmap即可。

【当然也可以通过手动命令将对应的osd加入到crushmap】

 

更新crushmap

更新之前,可以先暂停ceph数据写入

 

暂停osd (暂停后整个集群不再接收数据)

[[email protected] ~]# ceph osd pause

 

再次开启osd (开启后再次接收数据)

[[email protected] ~]# ceph osd unpause

unset pauserd,pausewr

 

sudo ceph osd setcrushmap -i compiled-crushmap-openstack.20161230.add.ser16.map


本文出自 “让我men共同成长” 博客,转载请与作者联系!

以上是关于osd 节点替换的主要内容,如果未能解决你的问题,请参考以下文章

bcache在ceph中的存量替代方案

CEPH之osd批量创建

JavaScript之DOM-5 增加删除和替换节点(创建节点插入节点删除和替换节点)

克隆节点,替换节点

替换元素节点replaceChild()

通过替换写入节点,将写入节点中的过程Nuke写入路径替换为实际路径