關於在已有的Ceph集羣中添加monitor的方法以下:
node
一、爲新建的monitor建立其工做目錄。工具
#mkdir -p /var/lib/ceph/mon/ceph-b
spa
#mkdir -p /var/lib/ceph/mon/ceph-c
進程
二、建立一個臨時目錄,用於保存當前集羣中的monitor map和monitor keyring。
rem
#mkdir -p /tmp/mon-tmp
get
三、從當前ceph集羣中獲取monitor的keyring。it
#ceph auth get mon. -o /tmp/mon-tmp/mon.keyring
io
四、從當前ceph集羣中獲取monitor的monmap。集羣
#ceph mon getmap -o /tmp/mon-tmp/mon.monmap
登錄
五、初始化新建的monitor工做目錄。
#ceph-mon -i b --mkfs --monmap /tmp/mon-tmp/mon.monmap --keyring /tmp/mon-tmp/mon.keyring
#ceph-mon -i c --mkfs --monmap /tmp/mon-tmp/mon.monmap --keyring /tmp/mon-tmp/mon.keyring
六、將新建的montiors添加到ceph.conf中
[mon.b]
host = node2
mon addr = 192.168.0.36:6789
[mon.c]
host = node2
mon addr = 192.168.0.36:6790
七、經過命令啓動新建的monitors。
#/etc/init.d/ceph start mon.b
#/etc/init.d/ceph start mon.c
此時使用集羣狀態查看命令#ceph -s能夠看到monmap多了2個。
關於在已有的Ceph集羣中刪除monitor的方法以下:
對於當前狀態是HEALTH_OK狀況下刪除monitor的方法相對比較簡單,具體步驟以下:
一、中止待刪除的monitor進程,即:
#/etc/init.d/ceph -a stop mon.c #此步驟只是中止了monitor進程,可是並無影響集羣中的monmap
二、從集羣中刪除monitor。
#ceph mon remove c #此步驟將monitor c從集羣中刪除
三、從ceph.conf文件中刪除指定的monitor。
對於當前狀態是非HEALTH_OK狀況下刪除monitor則須要更多的步驟,具體步驟以下:
一、中止集羣中全部的monitor,即:
#/etc/init.d/ceph -a stop mon
二、登陸到未刪除的monitor節點上,以後獲取集羣的monmap信息,即:
#ceph-mon -i a --extract-monmap /tmp/monmap
三、查看當前集羣的monitor map信息。
#monmaptool --print /tmp/monmap #此時會看到集羣中正在使用的monmap信息
四、從monmap中刪除指定的monitor,即:
#monmaptool /tmp/monmap --rm c #從集羣中的monmap中刪除monitor c
五、更新集羣中的monmap,即:
#ceph-mon -i a --inject-monmap /tmp/monmap
六、刪除ceph.conf文件中關於已刪除monitor的信息。
七、從新啓動集羣中的monitors。
#/etc/init.d/ceph -a start mon
此時再用集羣狀態查看工具#ceph -s查看時,其輸出的結果中osdmap項比以前少了一個。