Ceph后端ObjectStore存儲(chǔ)引擎實(shí)現(xiàn)和發(fā)展_第1頁(yè)
Ceph后端ObjectStore存儲(chǔ)引擎實(shí)現(xiàn)和發(fā)展_第2頁(yè)
Ceph后端ObjectStore存儲(chǔ)引擎實(shí)現(xiàn)和發(fā)展_第3頁(yè)
Ceph后端ObjectStore存儲(chǔ)引擎實(shí)現(xiàn)和發(fā)展_第4頁(yè)
Ceph后端ObjectStore存儲(chǔ)引擎實(shí)現(xiàn)和發(fā)展_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、 Ceph后端ObjectStore存儲(chǔ)引擎實(shí)現(xiàn)和發(fā)展 Ceph作為一個(gè)高可用和強(qiáng)一致性的軟件定義存儲(chǔ)產(chǎn)品,目前在各行各業(yè)得到普遍應(yīng)用,關(guān)于Ceph架構(gòu)分析請(qǐng)參閱文章Ceph存儲(chǔ)架構(gòu)深度分析。今天我們主要Ceph后端存儲(chǔ)引擎ObjectStore的實(shí)現(xiàn)方式和發(fā)展歷程。Ceph后端支持多種存儲(chǔ)引擎,以插件式的方式來進(jìn)行管理,目前支持Filestore,Keyvalue Store,Memstore,NewStore以及最新的Bluestore,目前默認(rèn)使用的Filestore。 ObjectStore層封裝了下層存儲(chǔ)引擎的所有IO操作,向上層提供對(duì)象(object)、事務(wù)(Transaction

2、)語(yǔ)義的接口。MemStore為基于內(nèi)存的實(shí)現(xiàn);KeyValue Store主要基于KV數(shù)據(jù)庫(kù)(如leveldb, RocksDB等)實(shí)現(xiàn)接口功能。 FileStore是Ceph目前默認(rèn)的存儲(chǔ)引擎(也是目前使用最多的存儲(chǔ)引擎),其事務(wù)實(shí)現(xiàn)基于Journal機(jī)制;除了支持事務(wù)特性(consistency、atomic等)外,Journal還可將多個(gè)小IO寫合并為順序?qū)慗ournal來提升性能。 ObjectStore接口分主要為三部分,第一部分是Object的讀寫操作,類似于POSIX的部分接口,第二部分是Object的屬性(xattr)讀寫操作,這類操作的特征是KV對(duì)并且與某一個(gè)Object關(guān)

3、聯(lián)。第三部分是關(guān)聯(lián)Object的KV操作(在Ceph中稱為omap)。ObjectStore后端存儲(chǔ)引擎之FileStore 目前ObjectStore的主要實(shí)現(xiàn)是FileStore,利用文件系統(tǒng)的POSIX接口實(shí)現(xiàn)ObjectStore API。每個(gè)Object在FileStore層會(huì)被看成是一個(gè)文件,Object的屬性(xattr)會(huì)利用文件的xattr屬性存取,因?yàn)橛行┪募到y(tǒng)(如Ext4)對(duì)xattr的長(zhǎng)度有限制,因此超出長(zhǎng)度的Metadata會(huì)被存儲(chǔ)在DBObjectMap里。而Object的KV關(guān)系則直接利用DBObjectMap實(shí)現(xiàn)。 但是FileStore存在一些問題,例如Jo

4、urnal機(jī)制使一次寫請(qǐng)求在OSD端變?yōu)閮纱螌懖僮?同步寫Journal,異步寫入Object);通過SSD用作Journal以解耦Journal和object寫操作的相互影響;寫入的每個(gè)Object都一一對(duì)應(yīng)OSD本地文件系統(tǒng)的一個(gè)物理文件,對(duì)于大量小Object存儲(chǔ)場(chǎng)景,OSD端無法緩存本地所有文件的元數(shù)據(jù),使讀寫操作可能需要多次本地IO,系統(tǒng)性能差等。ObjectStore后端存儲(chǔ)引擎之NewStore 為了解決上述問題,Ceph引入新的存儲(chǔ)引擎NewStore(又被稱為Key File Store),其關(guān)鍵結(jié)構(gòu)如下圖所示: NewStore解耦Object與本地物理文件間的一一對(duì)應(yīng)關(guān)系

5、,通過索引結(jié)構(gòu)(上圖中ONode)在Object和本地物理文件建立映射關(guān)系,并使用KV數(shù)據(jù)庫(kù)存儲(chǔ)索引數(shù)據(jù);在保證事務(wù)特性的同時(shí),對(duì)于Object的操作無需Journal支持;在KV數(shù)據(jù)庫(kù)上層建立Onode數(shù)據(jù)cache以加速讀取操作;單個(gè)Object可以有多個(gè)fragement文件,多個(gè)Object也可共存于一個(gè)fragement文件,更加靈活。ObjectStore后端存儲(chǔ)引擎之BlueStore NewStore使用RocksDB存儲(chǔ)Ceph日志,同時(shí)Ceph的真正數(shù)據(jù)對(duì)象存儲(chǔ)在文件系統(tǒng)中。如今有了BlueStore技術(shù),數(shù)據(jù)對(duì)象可以無需任何文件系統(tǒng)的接口而直接存儲(chǔ)在物理塊設(shè)備上。 Blu

6、eStore初衷就是為了減少寫放大,并針對(duì)SSD做優(yōu)化,而且直接管理裸盤,從理論上進(jìn)一步規(guī)避文件系統(tǒng)如ext4、xfs等部分的開銷,BlueStore是一個(gè)全新的 OSD存儲(chǔ)后端,采用塊設(shè)備提示存儲(chǔ)性能;Bluestore整體架構(gòu)如下。 BlueStore直接管理裸設(shè)備,拋棄了本地文件系統(tǒng),BlockDevice實(shí)現(xiàn)在用戶態(tài)下直接對(duì)裸設(shè)備進(jìn)行I/O操作。既然是直接管理裸設(shè)備就必然需要進(jìn)行裸設(shè)備的空間管理,對(duì)應(yīng)的就是Allocator,目前支持Stupid Allocator和Bitmap Allocator兩種分配器。 相關(guān)的元數(shù)據(jù)以KV的形式保存到KV數(shù)據(jù)庫(kù)里,默認(rèn)使用的是RocksDB,R

7、ocksDB本身雖然是基于文件系統(tǒng),不能直接操作裸設(shè)備,但是RocksDB可將系統(tǒng)相關(guān)的處理抽象成Env,用戶可用實(shí)現(xiàn)相應(yīng)的接口來操作。RocksDB默認(rèn)的Env是PosixEnv,直接對(duì)接本地文件系統(tǒng)。為此Bluestore實(shí)現(xiàn)了一個(gè)BlueRocksEnv來為RocksDB提供底層系統(tǒng)的封裝,實(shí)現(xiàn)了一個(gè)小的文件系統(tǒng)BlueFS對(duì)接BlueRocksEnv,在系統(tǒng)啟動(dòng)掛載這個(gè)文件系統(tǒng)的時(shí)候?qū)⑺械脑獢?shù)據(jù)都加載到內(nèi)存中,BluesFS的數(shù)據(jù)和日志文件都通過BlockDevice保存到裸設(shè)備上,BlueFS和BlueStore可以共享裸設(shè)備,也可以分別指定不同的設(shè)備。 在之前的存儲(chǔ)引擎Files

8、tore里,對(duì)象的表現(xiàn)形式是對(duì)應(yīng)到文件系統(tǒng)里的文件,默認(rèn)4MB大小的文件,但是在目前最新的ObjectStore實(shí)現(xiàn)Bluestore里,已經(jīng)沒有傳統(tǒng)的文件系統(tǒng),而是自己管理裸盤,需要管理對(duì)象Onode常駐內(nèi)存的數(shù)據(jù)結(jié)構(gòu),持久化的時(shí)候會(huì)以KV的形式存到RocksDB里。 簡(jiǎn)單總結(jié)一下,F(xiàn)ileStore是目前默認(rèn)的存儲(chǔ)引擎,基于POSIX接口實(shí)現(xiàn)ObjectStore API,對(duì)象跟文件對(duì)應(yīng),對(duì)象屬性與磁盤本地文件系統(tǒng)屬性匹配存在限制;NewStore解耦Object與本地物理文件間的對(duì)應(yīng)關(guān)系,通過KV數(shù)據(jù)庫(kù)、索引技術(shù)優(yōu)化日志操作,我們認(rèn)為NewStore =RocksDB +Object Files。BlueStore可以使數(shù)據(jù)對(duì)象可以無需任何文件系統(tǒng)的接口而直接存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論