1. 程式人生 > >osd 節點替換

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 (暫停後整個集群不再接收數據)

[root@admin ~]# ceph osd pause

再次開啟osd (開啟後再次接收數據)

[root@admin ~]# ceph osd unpause

unset pauserd,pausewr

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


本文出自 “讓我men共同成長” 博客,轉載請與作者聯系!

osd 節點替換