我閱讀了Ceph的官方文檔,其中說起了Ceph對硬件資源的需求,在《Learning Ceph》一書中也一樣說起。我在此處作一個簡要歸納。 Ceph主要包含以下幾個組件:算法
討論的重點也是各組件對CPU以及內存的依賴程度。服務器
MON MON負責管理CRUSHMAP,並非CPU密集型,對內存依賴大,由於要實現數據的快速訪問。CPU能夠配置不高,可是內存要足量,每一個進程實例1GB內存。性能
OSD OSD運行着rados服務,經過CRUSH算法計算對象的位置,要管理數據及其副本,須要合理數量的CPU。 OSD數據對內存的依賴程度不是特別大,正常狀況下每一個進程實例500MB便可。 在不正常的狀況下(數據遷移恢復等),每一個進程實例,每1TB數據就要對應1GB內存。因此內存仍是多多益善,個人OSD進程在運行時,通常。操作系統
MDS 元數據服務器服務於CephFS,是一個CPU密集型進程,佔用的CPU資源不少,因此須要給MDS配備性能強勁的CPU才行。對內存需求也大,由於須要實現數據的快速訪問;每一個進程實例1GB內存。對象
還有一些影響存儲性能的因素,大量的讀寫請求,對於單個磁盤驅動器而言,會影響性能;不一樣的文件系統,也會影響系統性能; 這裏談談磁盤驅動器的選型;進程
我在系統使用的過程當中,發現各組件對內存的佔用狀況: osd: 2G左右,偶合會飈到7G; mon: 目前700M左右,曾經飆到過8G,還致使系統內存不足,後來我逐一重啓了下mon進程; rgw: 目前佔用的內存20G;內存
機械磁盤:資源
SSD磁盤: 使用SSD能夠有效的提高系統性能,可是在決定使用SSD以前,須要考慮幾個問題: 對於寫性能要求高的狀況,要購買合適的SSD,有些便宜的SSD,可能寫性能還不如好的機械硬盤; 順序寫:當你把一塊SSD做爲多個磁盤的journal時,有可能幾個OSD同時寫journal,而寫journal是順序寫,因此須要關注順序寫性能; 注意分區對齊;文檔
網卡: 至少2個1Gbps的網卡,一個用於public network,用於和系統的使用者交互;一個用於cluster network,用於數據副本的拷貝,recovery, backfill等之用。get
參考文檔: http://docs.ceph.com/docs/master/start/hardware-recommendations/