一般(ban)來說(shuo)我(wo)們認識的(de)存(cun)儲(chu)按照存(cun)儲(chu)和(he)(he)管(guan)理(li)的(de)對(dui)象(xiang)來分的(de)話,基(ji)本上可以分為:對(dui)象(xiang)存(cun)儲(chu)、文(wen)件存(cun)儲(chu)和(he)(he)塊設備存(cun)儲(chu)。
Ceph在(zai)眾多的(de)存儲解決方案(an)(an)是為數不多的(de)在(zai)一個(ge)方案(an)(an)里面,提供了同時對上述(shu)三種(zhong)存儲支(zhi)持的(de)一個(ge)優秀的(de)開源方案(an)(an)。
Ceph是加州大學(xue)Santa Cruz分校的(de)Sage Weil(DreamHost的(de)聯合(he)創始(shi)人)專為博士論文設計的(de)新一代分布(bu)式文件(jian)系(xi)統。自2007年畢(bi)業之(zhi)后(hou),Sage開始(shi)全職投入到Ceph開 發之(zhi)中,使(shi)其(qi)能適(shi)用于生產環境(jing)。DreamHost在2012年的(de)時候也(ye)推出了基于Ceph的(de)公有(you)云對象存儲服(fu)務。一個(ge)開源軟件(jian),能正在商用,尤(you)其(qi)是作(zuo)為公有(you)云對外提供服(fu)務,是需要(yao)很大的(de)勇(yong)氣的(de)。Ceph已經集成(cheng)在了Linux內(nei)核 (2.6.34之(zhi)后(hou)) 之(zhi)中,并能很好的(de)使(shi)用在OpenStack的(de)云操作(zuo)系(xi)統。事實(shi)上OpenStack在未來的(de)版本中會(hui)全面集成(cheng)Ceph。
組件
Ceph是統(tong)一分布式(shi)存(cun)儲(chu)系統(tong),具有優(you)異的性(xing)能(neng)、可(ke)(ke)靠(kao)性(xing)、可(ke)(ke)擴展性(xing)。Ceph的底(di)層是RADOS(可(ke)(ke)靠(kao)、自(zi)動(dong)、分布式(shi)對(dui)(dui)象存(cun)儲(chu)),可(ke)(ke)以通過LIBRADOS直接(jie)(jie)訪(fang)問到RADOS的對(dui)(dui)象存(cun)儲(chu)系統(tong)。RBD(塊設備接(jie)(jie)口)、RADOS Gateway(對(dui)(dui)象存(cun)儲(chu)接(jie)(jie)口)、Ceph File System(POSIX接(jie)(jie)口)都是基于RADOS的。
![](/res/201606/15/20160615_1615611_16-1_797435_140493_0.jpg)
Ceph的(de)核心(xin)是(shi)RADOS,它是(shi)分(fen)(fen)布(bu)式對象(xiang)存(cun)儲系(xi)統,由自修復(fu)、自管理(li)、智(zhi)能的(de)存(cun)儲節(jie)點(dian)(dian)(dian)組(zu)成。RADOS作為數據(ju)持久(jiu)層,是(shi)RADOS GW、RBD、CEPH FS的(de)基(ji)礎。分(fen)(fen)布(bu)式對象(xiang)存(cun)儲的(de)基(ji)本問(wen)題是(shi)如何分(fen)(fen)布(bu)數據(ju)到(dao)成千上(shang)萬個存(cun)儲節(jie)點(dian)(dian)(dian)上(shang),RADOS的(de)核心(xin)是(shi)CRUSH(一個可擴展(zhan)的(de)偽隨機數據(ju)分(fen)(fen)布(bu)算法)。CRUSH能夠(gou)有效(xiao)(xiao)映射數據(ju)對象(xiang)到(dao)存(cun)儲節(jie)點(dian)(dian)(dian)上(shang),而且能夠(gou)處理(li)系(xi)統的(de)擴展(zhan)和硬件失效(xiao)(xiao),使得由于存(cun)儲節(jie)點(dian)(dian)(dian)的(de)添(tian)加和移除(chu)而導(dao)致的(de)數據(ju)遷移達到(dao)最(zui)小化。CRUSH算法在效(xiao)(xiao)率和擴展(zhan)性這兩個矛盾上(shang)做(zuo)了很好的(de)平衡。
RADOS 架構
RADOS系統(tong)主(zhu)要由(you)兩個部分組成(cheng):
■ 由數目可變的大規模OSDs(Object Storage Devices)組成的機群,負責存儲所有的數據;
■ 由少(shao)量監視(shi)器(Monitors)組(zu)成(cheng)的強耦合、小規(gui)模機(ji)群,負責管理這個集群的分(fen)布信(xin)息(Cluster Map),其中(zhong)(zhong)ClusterMap是整個RADOS系(xi)統(tong)的關鍵數(shu)據(ju)(ju)結構(gou),管理機(ji)群中(zhong)(zhong)的所有成(cheng)員、關系(xi)、屬性等信(xin)息以及數(shu)據(ju)(ju)的分(fen)發(fa)。
![](/res/201606/15/20160615_1615612_16-2_797435_140493_0.jpg)
對于RADOS系統,節點組織管(guan)理和(he)數據分(fen)發策略均有內部的(de)(de)監視(shi)器全權負責,所以(yi),從客戶端角度設計相對比較簡單,它(ta)給應用提(ti)供的(de)(de)僅為簡單的(de)(de)存儲(chu)接口。
Ceph現狀
Ceph項目主要貢獻者(大部(bu)分是Inktank公(gong)(gong)司(si)(si)的(de)員工,因此Ceph目前還是由Inktank公(gong)(gong)司(si)(si)掌控著)。Ceph本來(lai)就有一定的(de)影響力(源于它的(de)架(jia)構和功能),大家對(dui)它抱(bao)有很大的(de)希(xi)望(wang)。自從(cong)inktank公(gong)(gong)司(si)(si)成立之后,inktank公(gong)(gong)司(si)(si)也不斷推動Ceph與其(qi)他(ta)系統的(de)整(zheng)合(he),提高Ceph的(de)影響力,目前Ceph支(zhi)持(chi)OpenStack、CloudStack和OpenNebula這(zhe)三個最流行的(de)云計算框架(jia),以及(ji)也支(zhi)持(chi)了事實的(de)大數據標準(zhun)OpenStack。
2013年Cpeh曾經做(zuo)出(chu)了一個(ge)調差,在收到的(de)81份反饋中:
■ 有36個公司在調查Ceph中
■ 有24個公司在預生產環境使用Ceph
■ 有(you)21個(ge)公司在(zai)生產環(huan)境使用Ceph
![](/res/201606/15/20160615_1615613_16-3_797435_140493_0.jpg)
在生產環境中,已經使用的裸磁盤有1154TB,Dreamhost已經超過 3PB了(收到的反饋中并沒有DreamHost)
在預(yu)生產環(huan)境中案例中, 最大的一個環(huan)境已經達到了20PB,他被用來部(bu)署OpenStack。
未來
Ceph統一的(de)(de)架構滿足(zu)了云計算和大數據對存儲系統的(de)(de)需求。Ceph背后(hou)的(de)(de)力(li)量很大,在(zai)商業公司(si)的(de)(de)驅動下 Ceph會被集成到OpenStack、CloudStack、OpenNebula、Hadoop等優(you)秀的(de)(de)開源云計算、大數據系統中;借(jie)助(zhu)這些平臺的(de)(de)力(li)量繼續(xu)推廣Ceph。