1. 程式人生 > >Openstack使用ceph要註意幾個問題

Openstack使用ceph要註意幾個問題

openstack ceph 問題

據社區統計,現在Openstack落地項目使用ceph分布式存儲的比例已經超過一半,也就是說Openstack使用的後臺存儲大部分都是ceph,為什麽大家都使用ceph作為後端存儲,是因為ceph作為Openstack的存儲是有優勢的,這裏不展開講,我覺得一個大優勢是ceph幾乎整合了所有的存儲需求,可以給Openstack的glance、nova、cinder等組件提供統一的存儲解決方案。但是在具體使用過程當中,有一些問題需要註意。

1、ceph的核心組件monitor 和 osd 需要重點考慮。monitor容忍同時發生故障的節點數是這樣的:

技術分享圖片

ceph的mon能夠正常情況需要保證當前剩余的mon的個數需要大於總mon個數的一半,所以,一般來說mon節點數都是奇數個,比如1,3,5,7.... ,並且,要註意,在運行過程中,要保證過半數量的mon節點運行正常,比如你有3個mon節點,那麽,只能允許你有1個mon發生故障,這和你的數據副本有幾份沒有關系。當超過1半的mon節點發生故障,你的整個ceph存儲集群將不能寫入數據,這一點需要註意。

2、在動態調整OSD磁盤的時候,需要註意crush策略,默認情況下,如果使用kolla進行自動部署,osd的crush分布策略中的權重都是一樣的,如果OSD磁盤容量大小不一致,那麽就需要手動去調整這個weight權重,具體調整方法這裏不具體描述。

3、ceph存儲集群作為一個整體的系統,雖然本身有容錯機制,比如多個mon,每個pool可以設置多個數據副本,但是也不能排除整個ceph集群發生不可恢復故障的可能性,比如多個服務器的物理損壞或者是不可恢復的多mon節點故障或者誤操作等等。因此,考慮另外單獨建立一套備份的ceph存儲集群是必要的,備份的ceph集群我個人認為pool的數據副本可以是1最多2,mon節點可以單節點或3節點。

4、雖然ceph存儲集群有容災特性,但是對於服務器的重啟和關閉也要持謹慎態度,因為ceph是動態分布存儲,mon節點會實時監控osd的健康狀態,如果發現osd不可用,他會根據相應的crush裏的weight權重將故障osd上的數據副本重新分布到其他正常osd上面,以保證規定的數據副本,這樣的數據動態平衡會占用整個集群的網絡CPU內存資源,所以任何有計劃的物理設備調整都要事先準備好相應的方案,比如計劃內關閉物理設備,可以關閉ceph集群的數據重平衡:

#ceph osd set noout

5、對於系統正常穩定運行,預防非常重要,對於整個ceph存儲集群,需要搭建監控系統實時監控,這樣,可以及時發現單個偶發的故障,做到防微杜漸,不至於小問題積累,最後導致影響全局性的故障。具體的監控方法和工具這裏不展開描述。


後面如果有機會,我會對ceph集群的備份和ceph的監控展開描述。


Openstack使用ceph要註意幾個問題