Ceph分布式存儲(chǔ)平臺(tái)指南_第1頁(yè)
Ceph分布式存儲(chǔ)平臺(tái)指南_第2頁(yè)
Ceph分布式存儲(chǔ)平臺(tái)指南_第3頁(yè)
Ceph分布式存儲(chǔ)平臺(tái)指南_第4頁(yè)
Ceph分布式存儲(chǔ)平臺(tái)指南_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 Page * MERGEFORMAT 18Ceph分布式存儲(chǔ)平臺(tái)指南為什么需要關(guān)注Ceph在目前開源世界里多樣的存儲(chǔ)項(xiàng)目中,不同的項(xiàng)目都有側(cè)重點(diǎn),而它們最終都是要為企業(yè)的IT基礎(chǔ)設(shè)施服務(wù)。那么企業(yè)IT基礎(chǔ)設(shè)施經(jīng)理們到底需要怎么樣的存儲(chǔ),它們的需求得到滿足了嗎?作者嘗試根據(jù)對(duì)企業(yè)級(jí)存儲(chǔ)產(chǎn)品的調(diào)研歸納出如下圖。圖一從上圖我們可以了解到存儲(chǔ)接口需求、擴(kuò)展、運(yùn)維和成本構(gòu)成了企業(yè)級(jí)存儲(chǔ)產(chǎn)品的四大中心。幾乎所有的存儲(chǔ)產(chǎn)品包括硬件(存儲(chǔ)一體機(jī),SAN)和軟件都致力于在這個(gè)方面強(qiáng)調(diào)自己的優(yōu)勢(shì),它們或者考慮成本,或者強(qiáng)調(diào)擴(kuò)展性。那么我們來(lái)看Ceph它是如何定位自己的。圖二Ceph通過(guò)其三大存儲(chǔ)接口滿足了企業(yè)的

2、多樣需求,通過(guò)其建立之初就”大肆宣揚(yáng)”的擴(kuò)展性,通過(guò)其分布式架構(gòu)和致力于PB級(jí)規(guī)模存儲(chǔ)目標(biāo)的容錯(cuò)性建立了自己的需求矩陣。圖四上圖也是Ceph可以帶來(lái)的企業(yè)IT架構(gòu)方案的變革,在了解到Ceph提供的特性后,如何達(dá)到并實(shí)現(xiàn)是每個(gè)不熟悉Ceph的人迫切需要了解的。Ceph的架構(gòu)還是下圖這張經(jīng)典的Ceph模塊架構(gòu)圖。圖五底層是Rados,也是Ceph實(shí)現(xiàn)分布式存儲(chǔ)的根本,所有存儲(chǔ)接口都是基于Rados實(shí)現(xiàn)的。Rados本身就是一個(gè)對(duì)象存儲(chǔ)接口,它自身維護(hù)了一個(gè)集群狀態(tài)和實(shí)現(xiàn)了數(shù)據(jù)分發(fā)的要求,我們通常也講Rados稱為Ceph Cluster,因?yàn)槠渖系拇鎯?chǔ)接口如CephFS都是基于其上的接口實(shí)現(xiàn)而已。

3、為什么底層是對(duì)象存儲(chǔ)模型?與使用固定塊大小存儲(chǔ)比較,名字可以在一個(gè)扁平的命名空間里,可以采用可變的大小并且簡(jiǎn)單的API就有豐富的語(yǔ)義。與使用文件存儲(chǔ)比較,不需要難以分布的樹形層次,上傳語(yǔ)義不能跨越對(duì)象,不能并行化。RADOS的組件有哪些?OSD: 每一個(gè)disk、SSD或者RAID group或者其他一個(gè)物理存儲(chǔ)設(shè)備都成為一個(gè)OSD,主要負(fù)責(zé)存儲(chǔ)和查找對(duì)象,并且負(fù)責(zé)向該對(duì)象的復(fù)制節(jié)點(diǎn)分發(fā)和恢復(fù)。Monitor: 維護(hù)集群的成員和狀態(tài),提供強(qiáng)一致性的決策(類似于Zookeeper的作用)RADOS分發(fā)策略CRUSH算法圖六從上圖的流程中作者嘗試解讀RADOS是如何將對(duì)象分發(fā)到不同的OSD上(OS

4、D),首先需要了解Ceph定義的幾個(gè)存儲(chǔ)區(qū)域概念。Pool是一個(gè)命名空間,客戶端向RADOS上存儲(chǔ)對(duì)象時(shí)需要指定一個(gè)Pool,Pool通過(guò)配置文件定義并可以指定Pool的存儲(chǔ)OSD節(jié)點(diǎn)范圍和PG數(shù)量。PG是Pool內(nèi)部的概念,是對(duì)象和OSD的中間邏輯分層,對(duì)象首先會(huì)通過(guò)簡(jiǎn)單的Hash算法來(lái)得到其存儲(chǔ)的PG,這個(gè)PG和對(duì)象是確定的。然后每一個(gè)PG都有一個(gè)primary OSD和幾個(gè)Secondary OSD,對(duì)象會(huì)被分發(fā)都這些OSD上存儲(chǔ),而這個(gè)分發(fā)策略稱為CRUSHCeph的數(shù)據(jù)均勻分布的核心。需要注意的是整個(gè)CRUSH以上的流程實(shí)現(xiàn)都是在客戶端計(jì)算,因此客戶端本身需要保存一份Cluster

5、Map,而這是從Monitor處獲得。從這里我們也可以了解到Monitor主要職責(zé)就是負(fù)責(zé)維護(hù)這份Cluster Map并保證強(qiáng)一致性。CRUSH通過(guò)偽隨機(jī)算法來(lái)確保均勻的數(shù)據(jù)分布,它的輸入是PG,Cluster State和Policy,并且保證CRUSH的Object Name一樣的情況下,即使后兩者參數(shù)發(fā)生改變也會(huì)得到一致的讀取(注意是讀取)。并且這個(gè)CRUSH算法是可配置的,通過(guò)PG Number和Weight的指定可以得到不同的分布策略。這個(gè)可配置的分布策略讓Ceph的能力得到極大加強(qiáng)。圖七Ceph的使用場(chǎng)景Librados圖八首先回顧之前看到的整個(gè)架構(gòu)圖,在上述文中我們了解了RAD

6、OS的原理和作用,然后我們聚焦在Librados,Librados提供了對(duì)RADOS的直接訪問(wèn)。librados提供對(duì)C、C+、Java、Python、Ruby和PHP的支持。圖九librados和之后提到的RADOSGW的不同在于它是直接訪問(wèn)RADOS,沒(méi)有Http協(xié)議的負(fù)載。它支持單個(gè)單項(xiàng)的原子操作如同時(shí)更新數(shù)據(jù)和屬性、CAS操作,同時(shí)有對(duì)象粒度的快照操作。它的實(shí)現(xiàn)是基于RADOS的插件API,因此,其實(shí)際上就是在Rados上運(yùn)行的封裝庫(kù)。RadosGW圖十從上圖可以看到RadosGW位于Librados之上,它主要提供RESTful接口并且兼容S3、Swfit的接口。同時(shí)RadosGW提

7、供了Bucket的命名空間(類似于文件夾)和賬戶支持,并且具備使用記錄用于賬單目的。相對(duì)的,它增加了Http協(xié)議的負(fù)載。RadosGW可以提供將Ceph Cluster作為分布式對(duì)象存儲(chǔ)的能力,如Amazon的S3范圍,Swift等。企業(yè)也可以直接使用其作為媒體數(shù)據(jù)存儲(chǔ),分發(fā)等。RBD塊存儲(chǔ)是Ceph的另一大支撐點(diǎn),它目前可以為虛擬機(jī)和主機(jī)(Host)提供不同路徑的塊存儲(chǔ)。圖十一上圖為Ceph Cluster為虛擬機(jī)提供塊設(shè)備支持。LibRBD是基于Librados的塊設(shè)備接口實(shí)現(xiàn),主要將一個(gè)塊設(shè)備映射為不同的對(duì)象來(lái)實(shí)現(xiàn)。通過(guò)LibRBD可以創(chuàng)建一個(gè)塊設(shè)備(Container),然后通過(guò)QEM

8、U/KVM Attach到VM上。通過(guò)Container和VM的解耦使得塊設(shè)備可以被綁定到不同的VM上。圖十二上圖為Ceph Cluster為主機(jī)提供塊設(shè)備支持,通過(guò)RBD Kernel Module(rbd.ko)為主機(jī)提供塊設(shè)備。這里有一個(gè)與上述不同之處在于Librados是內(nèi)核模塊而模塊名稱為(libceph)。這是因?yàn)镽BD內(nèi)核模塊需要利用同樣位于內(nèi)核空間的Librados。從這里我們可以了解到,實(shí)際上Ceph維護(hù)了數(shù)量非常多的Library,而實(shí)際上質(zhì)量是層次不齊的,這需要了解Ceph的人去合理使用。正是因?yàn)槿绾味鄻拥腖ibrary也使得Ceph的存儲(chǔ)接口得到多樣化,而不是讓不同的存

9、儲(chǔ)接口勉強(qiáng)實(shí)現(xiàn)。不同的存儲(chǔ)接口具有完全不同的路徑。以上兩種方式都是將一個(gè)虛擬的塊設(shè)備分片存儲(chǔ)在RADOS(Ceph Cluster)中,都會(huì)利用利用數(shù)據(jù)條帶化提高數(shù)據(jù)并行傳輸,都支持塊設(shè)備的快照,COW(Copy-On-Write)克隆。最重要的是RBD還支持Live migration。目前的OpenStack,CloudStack都采用第一種方式為虛擬機(jī)提供塊設(shè)備。圖十三圖十四上述圖示也表明了在大量VM的情況下如何使得存儲(chǔ)容量利用的最小化和高效性。當(dāng)大量VM基于同一個(gè)Snapshot建立Volume時(shí),所有容量不會(huì)立即得到占用,而都是COW。這個(gè)特征也是目前眾多存儲(chǔ)廠商在VDI解決方案一直

10、強(qiáng)調(diào)的。在VDI解決方案中,存儲(chǔ)成本是最重要的一環(huán),利用Ceph通過(guò)Thin provisioning和數(shù)據(jù)并行化可以大大提高VDI方案的吸引力。目前Ceph的塊存儲(chǔ)是大力推薦并且高速開發(fā)的模塊,因?yàn)樗峁┑慕涌趯?duì)于用戶更加熟悉,并且在目前流行的OpenStack和CloudStack中可以得到廣泛接受和支持。Ceph塊存儲(chǔ)的計(jì)算和存儲(chǔ)解耦、Live migration特性、高效的快照和克隆/恢復(fù)都是引入注目的特性。CephFSCephFS是基于Rados實(shí)現(xiàn)的PB級(jí)分布式文件系統(tǒng),這里會(huì)引入一個(gè)新的組件MDS(Meta Data Server),它主要為兼容POSIX文件系統(tǒng)提供元數(shù)據(jù),如目

11、錄和文件元數(shù)據(jù)。同時(shí),MDS會(huì)將元數(shù)據(jù)也存在RADOS(Ceph Cluster)中。元數(shù)據(jù)存儲(chǔ)在RADOS中后,元數(shù)據(jù)本身也達(dá)到了并行化,大大加強(qiáng)了文件操作的速度。需要注意的是MDS并不會(huì)直接為Client提供文件數(shù)據(jù),而只是為Client提供元數(shù)據(jù)的操作。圖十五從上圖可以看到,Client當(dāng)Open一個(gè)文件時(shí),會(huì)查詢并更新MDS相應(yīng)的元數(shù)據(jù)如文件包括的對(duì)象信息,然后再根據(jù)提供的對(duì)象信息直接從RADOS(Ceph Cluster)中直接得到文件數(shù)據(jù)。圖十六CephFS既然是分布式文件系統(tǒng),當(dāng)面對(duì)不同的文件熱點(diǎn)和大小時(shí),它需要提供數(shù)據(jù)負(fù)載均衡來(lái)避免MDS的熱點(diǎn)。通過(guò)上圖我們可以看到五個(gè)MDS管

12、理著不同“面積”的目錄樹,因?yàn)椴煌募脑L問(wèn)熱點(diǎn)和大小的原因來(lái)進(jìn)行動(dòng)態(tài)調(diào)整。這里還需要介紹引入MDS帶來(lái)的好處有目錄列表操作的加快,如目錄下文件大小、數(shù)量和時(shí)間等。同時(shí),支持對(duì)文件的快照。目前CephFS有多種使用方式:1. Linux Kernel client: 使用”mount -t ceph :/ /mnt”可以直接掛載到本地并訪問(wèn)。2. ceph-fuse: 通過(guò)ceph-fuse可以從用戶態(tài)空間掛載CephFS如”ceph-fuse -m :6789 /home/username/cephfs”3. libcephfs.so: 通過(guò)libcephfs可以替代HDFS來(lái)支持不同Had

13、oop乃至HBase。Ceph的其他QoS機(jī)制: Ceph Cluster支持多種QoS配置,如集群重平衡,數(shù)據(jù)恢復(fù)的優(yōu)先級(jí)配置,避免影響正常的數(shù)據(jù)通信。Geo-replication: 基于地理位置的對(duì)象存儲(chǔ)OpenStack: Ceph目前在大力融合入OpenStack,OpenStack的所有存儲(chǔ)(除數(shù)據(jù)庫(kù)外)都可以將Ceph作為存儲(chǔ)后端。如KeyStone和Swfit可以利用RadosGW,Cinder、Glance和Nova利用RBD作為塊存儲(chǔ)。甚至所有VM的Image都存儲(chǔ)在CephFS上。目前Ceph的優(yōu)化點(diǎn)也非常多,目前Rados IO路徑過(guò)于復(fù)雜,線程管理得不到有限控制,如果在Rados上優(yōu)化Small IO的性能,Ceph Cluster的集群性能會(huì)得到極大提高。很多人也會(huì)擔(dān)心Ceph實(shí)現(xiàn)了如此多樣的存儲(chǔ)接口會(huì)不會(huì)一定降低每一個(gè)接口的性能要求。但從架構(gòu)上來(lái)說(shuō),Ceph的RADOS只是一個(gè)單純的分布式存儲(chǔ)機(jī)制,其上的接口

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論