一種以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及服務(wù)器數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,特別涉及一種以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]這是一個(gè)數(shù)據(jù)爆炸的時(shí)代,2013年,僅云存儲(chǔ)提供商就已經(jīng)交付了超過百億億字節(jié)的數(shù)據(jù),這也預(yù)示著全新的存儲(chǔ)時(shí)代到來,而且傳統(tǒng)存儲(chǔ)企業(yè)的業(yè)務(wù)模型也發(fā)生了巨大變革。
[0003]在各種應(yīng)用系統(tǒng)的存儲(chǔ)設(shè)備上,信息正以數(shù)據(jù)存儲(chǔ)的方式高速增長著,不斷推進(jìn)著全球信息化的進(jìn)程。隨之而來的是海量信息存儲(chǔ)的需求不斷增加。雖然文件服務(wù)器和數(shù)據(jù)庫服務(wù)器的存儲(chǔ)容量在不斷擴(kuò)充,可還是會(huì)碰到空間雖在成倍增長,用戶仍會(huì)抱怨容量不足的情況,也正是用戶對(duì)存儲(chǔ)空間需求的不斷增加,推動(dòng)海量信息存儲(chǔ)技術(shù)的不斷變化。
[0004]收集和存儲(chǔ)大型數(shù)據(jù)集對(duì)于任何規(guī)模的企業(yè)都讓人生畏,而且訪問、組織和分析非結(jié)構(gòu)化數(shù)據(jù)給企業(yè)造成了大量新的挑戰(zhàn)。對(duì)象存儲(chǔ)可以通過讓企業(yè)整合元數(shù)據(jù)到其非結(jié)構(gòu)化數(shù)據(jù)中消除代價(jià)昂貴的步驟。目前處理海量數(shù)據(jù)存儲(chǔ)的主要方式即為線性擴(kuò)展的對(duì)象存儲(chǔ),主要也是因?yàn)槠涓吡6忍幚碓獢?shù)據(jù)的能力。
[0005]當(dāng)前幾乎所有的對(duì)象存儲(chǔ)集群軟件廠商都對(duì)外提供了訪問集群的接口,但大都是容器之下即為對(duì)象的二級(jí)存儲(chǔ)模式,傳統(tǒng)用戶都比較習(xí)慣于使用文件系統(tǒng),過度到對(duì)象存儲(chǔ)上之后,對(duì)原生的兩極訪問模式不習(xí)慣,數(shù)據(jù)靈活性不高。所以在對(duì)象存儲(chǔ)的基礎(chǔ)上模擬文件系統(tǒng)的應(yīng)用方式成為一個(gè)亮點(diǎn)。
[0006]為了解決用戶對(duì)現(xiàn)有技術(shù)原生的兩極訪問模式不習(xí)慣,以及數(shù)據(jù)靈活性不高等問題,本發(fā)明提出了一種以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法。
【發(fā)明內(nèi)容】
[0007]本發(fā)明為了彌補(bǔ)現(xiàn)有技術(shù)的缺陷,提供了一種簡單有效的以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法。
[0008]本發(fā)明是通過如下技術(shù)方案實(shí)現(xiàn)的:
一種以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,其特征在于:通過Iinux提供的fuse框架建立用戶態(tài)自定義文件系統(tǒng),所述用戶態(tài)自定義文件系統(tǒng)包括Fuse框架模塊,API調(diào)用模塊,緩存構(gòu)建模塊,在文件操作函數(shù)中調(diào)用REST API與對(duì)象存儲(chǔ)集群進(jìn)行交互訪問,在內(nèi)存中保存文件系統(tǒng)的相關(guān)元數(shù)據(jù)。
[0009]所述Fuse框架模塊包括Fuse內(nèi)核模塊,Iibfuse連接庫和用戶自定義開發(fā)模塊,所述Fuse框架模塊處理在掛載目錄下操作鎖產(chǎn)生的系統(tǒng)調(diào)用,并將處理結(jié)果返回給用戶。
[0010]所述API調(diào)用模塊內(nèi)部封裝實(shí)現(xiàn)S3協(xié)議的API,其實(shí)現(xiàn)了客戶端文件系統(tǒng)與對(duì)象存儲(chǔ)集群的通信過程,所述通信過程基于Http協(xié)議,依賴性小,易于部署。
[0011]所述緩存構(gòu)建模塊負(fù)責(zé)維護(hù)文件系統(tǒng)的緩存信息,集群不記載該緩存信息,每次掛載都是實(shí)時(shí)查詢,實(shí)時(shí)構(gòu)建,實(shí)時(shí)緩存。雖然降低了實(shí)時(shí)性,但是也降低了數(shù)據(jù)維護(hù)的復(fù)雜性,提尚擴(kuò)展性。
[0012]所述相關(guān)元數(shù)據(jù)包括Inode樹,Dentry樹和superblock,所述緩存信息包括Inode, Dentry, Superblock 的緩存信息。
[0013]所述用戶態(tài)自定義文件系統(tǒng)掛載時(shí)根據(jù)對(duì)象存儲(chǔ)集群提供的用戶ID和秘鑰可以對(duì)某個(gè)bucket進(jìn)行掛載;該bucket屬于該用戶時(shí),可以在掛載目錄下進(jìn)行所有操作,該bucket不屬于該用戶時(shí),根據(jù)該用戶對(duì)該bucket的權(quán)限進(jìn)行權(quán)限校驗(yàn);系統(tǒng)用戶可以對(duì)整個(gè)集群進(jìn)行掛載,可以操作所有bucket。
[0014]本發(fā)明的有益效果是:該以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,在對(duì)象存儲(chǔ)集群的訪問過程中,取代用戶使用集群提供的接口進(jìn)行二次開發(fā)訪問的方式,使用戶可以使用完全相同于文件系統(tǒng)操作的方式,更加方便地對(duì)集群進(jìn)行存入和讀取,用戶還可以進(jìn)行權(quán)限校驗(yàn)。
【附圖說明】
[0015]附圖1為本發(fā)明中海量存儲(chǔ)整體系統(tǒng)工作原理示意圖。
【具體實(shí)施方式】
[0016]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
[0017]該以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,通過Iinux提供的fuse框架建立用戶態(tài)自定義文件系統(tǒng),所述用戶態(tài)自定義文件系統(tǒng)包括Fuse框架模塊,API調(diào)用模塊,緩存構(gòu)建模塊,在文件操作函數(shù)中調(diào)用REST API與對(duì)象存儲(chǔ)集群進(jìn)行交互訪問,在內(nèi)存中保存文件系統(tǒng)的相關(guān)元數(shù)據(jù)。
[0018]所述Fuse框架模塊包括Fuse內(nèi)核模塊,Iibfuse連接庫和用戶自定義開發(fā)模塊,所述Fuse框架模塊處理在掛載目錄下操作鎖產(chǎn)生的系統(tǒng)調(diào)用,并將處理結(jié)果返回給用戶。
[0019]所述API調(diào)用模塊內(nèi)部封裝實(shí)現(xiàn)S3協(xié)議的API,其實(shí)現(xiàn)了客戶端文件系統(tǒng)與對(duì)象存儲(chǔ)集群的通信過程,所述通信過程基于Http協(xié)議,依賴性小,易于部署。
[0020]所述緩存構(gòu)建模塊負(fù)責(zé)維護(hù)文件系統(tǒng)的緩存信息,集群不記載該緩存信息,每次掛載都是實(shí)時(shí)查詢,實(shí)時(shí)構(gòu)建,實(shí)時(shí)緩存。雖然降低了實(shí)時(shí)性,但是也降低了數(shù)據(jù)維護(hù)的復(fù)雜性,提尚擴(kuò)展性。
[0021]所述相關(guān)元數(shù)據(jù)包括Inode樹,Dentry樹和superblock,所述緩存信息包括Inode, Dentry, Superblock 的緩存信息。
[0022]所述用戶態(tài)自定義文件系統(tǒng)掛載時(shí)根據(jù)對(duì)象存儲(chǔ)集群提供的用戶ID和秘鑰可以對(duì)某個(gè)bucket進(jìn)行掛載;該bucket屬于該用戶時(shí),可以在掛載目錄下進(jìn)行所有操作,該bucket不屬于該用戶時(shí),根據(jù)該用戶對(duì)該bucket的權(quán)限進(jìn)行權(quán)限校驗(yàn);系統(tǒng)用戶可以對(duì)整個(gè)集群進(jìn)行掛載,可以操作所有bucket。
[0023]本發(fā)明提出一種以文件系統(tǒng)掛載的方式訪問集群的客戶端的實(shí)現(xiàn)方法。文件系統(tǒng)用戶接口簇的內(nèi)部實(shí)現(xiàn)調(diào)用封裝好的REST API來實(shí)現(xiàn),底層基于Http協(xié)議,易部署。普通用戶掛載空間為bucket,系統(tǒng)用戶掛載空間為所有bucket。目錄層級(jí)通過bucket的過濾對(duì)象前綴來實(shí)現(xiàn)。并且提供針對(duì)用戶的bucket和object粒度的權(quán)限校驗(yàn)。
【主權(quán)項(xiàng)】
1.一種以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,其特征在于:通過Iinux提供的fuse框架建立用戶態(tài)自定義文件系統(tǒng),所述用戶態(tài)自定義文件系統(tǒng)包括Fuse框架模塊,API調(diào)用模塊,緩存構(gòu)建模塊,在文件操作函數(shù)中調(diào)用REST API與對(duì)象存儲(chǔ)集群進(jìn)行交互訪問,在內(nèi)存中保存文件系統(tǒng)的相關(guān)元數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,其特征在于:所述所述Fuse框架模塊包括Fuse內(nèi)核模塊,Iibfuse連接庫和用戶自定義開發(fā)模塊,所述Fuse框架模塊處理在掛載目錄下操作鎖產(chǎn)生的系統(tǒng)調(diào)用,并將處理結(jié)果返回給用戶。
3.根據(jù)權(quán)利要求1所述的以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,其特征在于:所述API調(diào)用模塊內(nèi)部封裝實(shí)現(xiàn)S3協(xié)議的API,其實(shí)現(xiàn)了客戶端文件系統(tǒng)與對(duì)象存儲(chǔ)集群的通信過程,所述通信過程基于Http協(xié)議。
4.根據(jù)權(quán)利要求1所述的以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,其特征在于:所述緩存構(gòu)建模塊負(fù)責(zé)維護(hù)文件系統(tǒng)的緩存信息,集群不記載該緩存信息,每次掛載都是實(shí)時(shí)查詢,實(shí)時(shí)構(gòu)建,實(shí)時(shí)緩存。
5.根據(jù)權(quán)利要求1或4所述的以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,其特征在于:所述相關(guān)元數(shù)據(jù)包括Inode樹,Dentry樹和superblock,所述緩存信息包括Inode,Dentry,Superblock的緩存信息。
6.根據(jù)權(quán)利要求1所述的以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,其特征在于:所述用戶態(tài)自定義文件系統(tǒng)掛載時(shí)根據(jù)對(duì)象存儲(chǔ)集群提供的用戶ID和秘鑰可以對(duì)某個(gè)bucket進(jìn)行掛載;該bucket屬于該用戶時(shí),可以在掛載目錄下進(jìn)行所有操作,該bucket不屬于該用戶時(shí),根據(jù)該用戶對(duì)該bucket的權(quán)限進(jìn)行權(quán)限校驗(yàn);系統(tǒng)用戶可以對(duì)整個(gè)集群進(jìn)行掛載,可以操作所有bucket。
【專利摘要】本發(fā)明特別涉及一種以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法。該以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,通過linux提供的fuse框架建立用戶態(tài)自定義文件系統(tǒng),所述用戶態(tài)自定義文件系統(tǒng)包括Fuse框架模塊,API調(diào)用模塊,緩存構(gòu)建模塊,在文件操作函數(shù)中調(diào)用REST API與對(duì)象存儲(chǔ)集群進(jìn)行交互訪問,在內(nèi)存中保存文件系統(tǒng)的相關(guān)元數(shù)據(jù)。該以文件系統(tǒng)掛載訪問對(duì)象存儲(chǔ)的實(shí)現(xiàn)方法,在對(duì)象存儲(chǔ)集群的訪問過程中,取代用戶使用集群提供的接口進(jìn)行二次開發(fā)訪問的方式,使用戶可以使用完全相同于文件系統(tǒng)操作的方式,更加方便地對(duì)集群進(jìn)行存入和讀取,用戶還可以進(jìn)行權(quán)限校驗(yàn)。
【IPC分類】H04L29-08
【公開號(hào)】CN104639658
【申請(qǐng)?zhí)枴緾N201510108165
【發(fā)明人】李 杰
【申請(qǐng)人】浪潮集團(tuán)有限公司
【公開日】2015年5月20日
【申請(qǐng)日】2015年3月12日