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)
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 節點替換