愛數(shù)的備份引擎歷經(jīng)了Turtle引擎、Hercules引擎,現(xiàn)已經(jīng)發(fā)展到第三代引擎---FAST引擎,如引擎名字一樣,我們在著手架構(gòu)和實(shí)現(xiàn)此引擎時,就希望能夠在性能上有所突破。但在現(xiàn)階段無新的理論基礎(chǔ)以及新算法的誕生,如果希望引擎能夠在備份恢復(fù)性能上取得新的突破,只能寄希望于引擎架構(gòu)上的突破,這也是FAST引擎最鮮明的技術(shù)特點(diǎn),在此文章中,將把FAST引擎的關(guān)鍵組件之一:OFS存儲引擎進(jìn)行初步的介紹。
一、把握趨勢的關(guān)鍵點(diǎn)
當(dāng)Oracle的埃里森鄭重的發(fā)誓,Exadata 將會是Oracle最成功的產(chǎn)品,業(yè)界還對此不置可否。在完成對Sun公司的收購后,短短一年時間,Oracle就取得了近80%的增長速度,而取得此佳績最關(guān)鍵的產(chǎn)品線,正是Exadata2,這款集成Oracle數(shù)據(jù)庫、Sun服務(wù)器和存儲的OLTP專用服務(wù)器,幫助用戶在更低總體投資成本下獲得了不凡的性能。
Exadata的成功,不僅僅體現(xiàn)了Oracle并購上的整合能力,更重要反應(yīng)中大型系統(tǒng)通過集成技術(shù)架構(gòu)獲得更好投資回報(bào)率的技術(shù)趨勢。通過集成技術(shù)架構(gòu),不僅僅可以保證系統(tǒng)的每一個組件(硬件模塊和軟件模塊)的運(yùn)行效率得到充分發(fā)揮,而且針對特定應(yīng)用,進(jìn)行系統(tǒng)的專用優(yōu)化,從而取得了顯著的性能突破。
二、OFS 是集成技術(shù)架構(gòu)的產(chǎn)物
Object File System(簡稱OFS) 作為FAST引擎的存儲系統(tǒng),它是一個運(yùn)行在用戶態(tài)的文件系統(tǒng),以對象為存儲粒度,以 GNS(Global Namespace) 為命名路徑,采用樹狀結(jié)構(gòu)索引,可支持全局范圍內(nèi)對象按類別和時間點(diǎn)進(jìn)行存儲,并且內(nèi)置重復(fù)數(shù)據(jù)刪除、集群式、分布式存儲、數(shù)據(jù)生命周期管理等一系列現(xiàn)代文件系統(tǒng)所具有的技術(shù)特點(diǎn)。
之所以說OFS是集成技術(shù)架構(gòu)的產(chǎn)物,在開始設(shè)計(jì)第三代備份恢復(fù)引擎FAST之前,不僅僅集成技術(shù)架構(gòu)已經(jīng)成為業(yè)內(nèi)普遍采用的架構(gòu),而且根據(jù)愛數(shù)的業(yè)務(wù)戰(zhàn)略規(guī)劃,也需要滿足如下兩個關(guān)鍵需求:
性能目標(biāo):伴隨著用戶數(shù)據(jù)量的快速膨脹,F(xiàn)AST引擎作為數(shù)據(jù)調(diào)度的關(guān)鍵組件,要能夠滿足PB級的數(shù)據(jù)傳輸和存儲性能目標(biāo),而FAST引擎的性能關(guān)鍵部件正是后端的存儲系統(tǒng)。
應(yīng)用環(huán)境:第三代引擎FAST不僅僅要滿足愛數(shù)在備份容災(zāi)業(yè)務(wù)領(lǐng)域的技術(shù)需求,還需要滿足歸檔、非結(jié)構(gòu)化文檔存儲的業(yè)務(wù)技術(shù)需求,即FAST引擎本身是一個集成應(yīng)用的引擎,將用于備份容災(zāi)、數(shù)據(jù)歸檔、非結(jié)構(gòu)化文檔存儲等。
正因?yàn)槿缟系囊恍┍尘埃麄€OFS是作為一個專用的存儲引擎與FAST集成,通過集成技術(shù)架構(gòu)實(shí)現(xiàn)備份容災(zāi)、數(shù)據(jù)歸檔、非結(jié)構(gòu)化文檔存儲等應(yīng)用領(lǐng)域的存儲需求,并且通過與FAST集成,在Cache、Scale-out橫向擴(kuò)展等性能優(yōu)化上將進(jìn)行應(yīng)用整合,從而通過更小的付出獲得更優(yōu)的性能目標(biāo)。
三、OFS的主要特點(diǎn)和設(shè)計(jì)目標(biāo)
1)用戶態(tài)文件系統(tǒng)
有別于傳統(tǒng)文件系統(tǒng),OFS是駐足在已有文件系統(tǒng)之上的 用戶態(tài)文件系統(tǒng) ,并且采用專用API訪問,不支持POSIX或Windows FS等標(biāo)準(zhǔn)訪問接口。此技術(shù)方案可保證OFS具有更強(qiáng)移植性(操作系統(tǒng)無關(guān))、簡化開發(fā)和維護(hù)難度、便于跨網(wǎng)絡(luò)和分布式擴(kuò)展,以及基于雙C技術(shù)(Cluster和Cache)來不斷優(yōu)化性能等。
2)全局對象存儲
OFS適用于網(wǎng)絡(luò)存儲,它以GNS作為對象路徑,可保存來自于全局網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)集中存儲,例如備份、歸檔、共享等數(shù)據(jù)集中存儲應(yīng)用,并且以對象作為存儲粒度,可支持文件、郵件、數(shù)據(jù)庫、表、設(shè)備等各類結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)對象的存儲。
GNS是全局名字空間 (Global Namespace),它用于在全局范圍標(biāo)識一個對象的名稱,這個名稱可以在全局范圍內(nèi)唯一代表此對象。傳統(tǒng)的命名規(guī)則,通常是單系統(tǒng)(一臺計(jì)算機(jī)或服務(wù)器)范圍的,這種情況下實(shí)現(xiàn)集中備份、歸檔、文檔管理等,將面臨著名稱沖突,不同平臺、不同協(xié)議命名規(guī)則的差異,對于一些非文件數(shù)據(jù)對象,又面臨著沒有可參考的命名規(guī)則,正因?yàn)橹T多缺點(diǎn),在整個引擎的設(shè)計(jì)中,引進(jìn)GNS,如下圖所示,通過GNS,可以將不同平臺、不同協(xié)議、不同類型的數(shù)據(jù)對象命名統(tǒng)一,并且保證在全局范圍內(nèi)可唯一標(biāo)識。
3)永遠(yuǎn)一致的文件系統(tǒng)
OFS采用全Journal 算法,任何時刻文件系統(tǒng)均處于一致性的狀態(tài),即使遇到非正常斷電或不正常關(guān)機(jī)后,也不需執(zhí)行硬盤檢查,即可在復(fù)電后2分鐘內(nèi)迅速提供服務(wù)。