您好,登錄后才能下訂單哦!
小編給大家分享一下Ceph monitor故障恢復的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1 問題
一般來說,在實際運行中,ceph monitor的個數是2n+1(n>=0)個,在線上至少3個,只要正常的節點數>=n+1,ceph的paxos算法能保證系統的正常運行。所以,對于3個節點,同時只能掛掉一個。一般來說,同時掛掉2個節點的概率比較小,但是萬一掛掉2個呢?
如果ceph的monitor節點超過半數掛掉,paxos算法就無法正常進行仲裁(quorum),此時,ceph集群會阻塞對集群的操作,直到超過半數的monitor節點恢復。
If there are not enough monitors to form a quorum, the ceph command will block trying to reach the cluster. In this situation, you need to get enough ceph-mon daemons running to form a quorum before doing anything else with the cluster.
所以,
(1)如果掛掉的2個節點至少有一個可以恢復,也就是monitor的元數據還是OK的,那么只需要重啟ceph-mon進程即可。所以,對于monitor,最好運行在RAID的機器上。這樣,即使機器出現故障,恢復也比較容易。
(2)如果掛掉的2個節點的元數據都損壞了呢?出現這種情況,說明人品不行,2臺機器的RAID磁盤同時損壞,這得多背?肯定是管理員嫌工資太低,把機器砸了。如何恢復呢?
其實,也沒有其它辦法,只能想辦法將故障的節點恢復,但元數據已經損壞。幸好還有一個元數據正常的節點,通過它可以恢復。
添加monitor的步驟:
$ ceph mon getmap -o /tmp/monmap # provides fsid and existing monitor addrs
$ ceph auth export mon. -o /tmp/monkey # mon. auth key
$ ceph-mon -i newname --mkfs --monmap /tmp/monmap --keyring /tmp/monkey
所以,只要得到monmap,就可以恢復monitor了。
為了模擬,考慮2個monitor節點,掛掉一個,此時通過網絡訪問ceph的所有操作都會被阻塞,但monitor的本地socket還是可以通信的。
但是,讓人蛋疼的是通過socket不能進行monmap的導出。不過,幸好有monmaptool工具,通過它,我們可以手動生成(注意fsid):
# monmaptool --create --add vm2 172.16.213.134:6789 --add vm3 172.16.213.135:6789 --fsid eb295a51-ec22-4971-86ef-58f6d2bea3bf --clobber monmap
monmaptool: monmap file monmap
monmaptool: set fsid to eb295a51-ec22-4971-86ef-58f6d2bea3bf
monmaptool: writing epoch 0 to monmap (2 monitors)
將正常monitor節點的mon key拷貝過來:
# cat /var/lib/ceph/mon/cluster1-vm2/keyring
[mon.]
key = AQDZQ8VTAAAAABAAX9HqE0NITrUt7j1w0YadvA==
caps mon = "allow *"
然后初始化:
# ceph-mon --cluster cluster1 -i vm3 --mkfs --monmap /root/monmap --keyring /tmp/keyring
ceph-mon: set fsid to eb295a51-ec22-4971-86ef-58f6d2bea3bf
ceph-mon: created monfs at /var/lib/ceph/mon/cluster1-vm3 for mon.vm3
最后,啟動故障節點:
# ceph-mon --cluster cluster1 -i vm3 --public-addr 172.16.213.135:6789
一切OK!
以上是“Ceph monitor故障恢復的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。