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