一種模擬云存儲(chǔ)設(shè)備的虛擬文件系統(tǒng)設(shè)計(jì)方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及計(jì)算機(jī)集群NAS存儲(chǔ)領(lǐng)域,特別涉及一種利用有限存儲(chǔ)設(shè)備模擬大規(guī)模云存儲(chǔ)集群的設(shè)備的方法?!?br>背景技術(shù):
】[0002]隨著互聯(lián)網(wǎng)時(shí)代的到來(lái),全世界各行各業(yè)每天都產(chǎn)生了大量的數(shù)據(jù),包括個(gè)人的數(shù)據(jù)也產(chǎn)生了爆炸性的增長(zhǎng),為了收集管理這些數(shù)據(jù),一些大的互聯(lián)網(wǎng)企業(yè)或者其他產(chǎn)生大量數(shù)據(jù)的公司都建立了公共的或者私有的數(shù)據(jù)中心,傳統(tǒng)的存儲(chǔ)模式已經(jīng)不能滿足數(shù)據(jù)爆炸性的增長(zhǎng),并且每個(gè)企業(yè)建立一個(gè)數(shù)據(jù)中心將產(chǎn)生極大的資源浪費(fèi),云存儲(chǔ)技術(shù)在這個(gè)背景下應(yīng)運(yùn)而生。[0003]云存儲(chǔ)是在云計(jì)算概念上延伸和發(fā)展出來(lái)的一個(gè)新的概念,是一種新興的網(wǎng)絡(luò)存儲(chǔ)技術(shù),是指通過(guò)集群應(yīng)用、網(wǎng)絡(luò)技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲(chǔ)設(shè)備通過(guò)應(yīng)用軟件集合起來(lái)協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問(wèn)功能的一個(gè)系統(tǒng)。目前比較主流的存儲(chǔ)供應(yīng)商都在該領(lǐng)域投入了巨大的人力物力。[0004]在研發(fā)的過(guò)程中不可避免的需要存儲(chǔ)集群環(huán)境去進(jìn)行測(cè)試和調(diào)試,但是要想用真實(shí)的物理設(shè)備區(qū)搭建集群,將是一筆非常大的開銷,而且如果集群非常龐大,整個(gè)調(diào)試開發(fā)周期將很長(zhǎng)。【
發(fā)明內(nèi)容】[0005]為了解決上述技術(shù)問(wèn)題,本發(fā)明在linuxext3文件系統(tǒng)的基礎(chǔ)上進(jìn)行改造升級(jí),將其在塊設(shè)備上的物理存儲(chǔ)結(jié)構(gòu)重新規(guī)劃,使其在開始寫入的時(shí)候在配置閾值范圍內(nèi)與普通的文件系統(tǒng)一樣,當(dāng)超過(guò)配置閥值的時(shí)候只寫入元數(shù)據(jù)信息,并不寫入數(shù)據(jù)信息。由于一個(gè)Inode數(shù)據(jù)所占空間為256字節(jié),這樣就可以再很小的設(shè)備內(nèi)部模擬出超大的設(shè)備。[0006]為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種模擬云存儲(chǔ)設(shè)備的虛擬文件系統(tǒng)實(shí)現(xiàn)方法,包括:擴(kuò)展數(shù)據(jù)存儲(chǔ)的物理結(jié)構(gòu);根據(jù)文件掛載時(shí)傳入的參數(shù),計(jì)算擴(kuò)展區(qū)域的大小以及配置閾值;比較所述文件與配置閾值的大小,根據(jù)比較結(jié)果只寫入元數(shù)據(jù)而不存儲(chǔ)實(shí)際數(shù)據(jù)。[0007]進(jìn)一步地,所述擴(kuò)展為以Iinux的ext3文件系統(tǒng)為基礎(chǔ),在塊組內(nèi)添加擴(kuò)展索引節(jié)點(diǎn)位圖EIB和擴(kuò)展索引節(jié)點(diǎn)表EIT。[0008]進(jìn)一步地,所述EIB和EIT分別位于索引節(jié)點(diǎn)位圖和索引節(jié)點(diǎn)表之后。[0009]進(jìn)一步地,所述參數(shù)為要模擬的文件數(shù)量上限N或者實(shí)際物理塊設(shè)備的百分比P。[0010]進(jìn)一步地,如果文件系統(tǒng)選項(xiàng)內(nèi)傳入的參數(shù)為要模擬的文件數(shù)量上限N,則通過(guò)以下公式計(jì)算EIB和EIT的大小:[0011]size(EIT)=N*size(inode)/size(block);[0012]size(EIB)=N/8/size(block);[0013]如果文件系統(tǒng)選項(xiàng)內(nèi)傳入的參數(shù)為實(shí)際物理塊設(shè)備百分比P,則通過(guò)以下公式計(jì)算EIB和EIT的大小:[0014]Extent_itsize=size(普通塊)*P;[0015]size(EIT)=Extent_itsize/size(block);[0016]size(EIB)=Extent_itsize/size(inode)/8/size(block)。[0017]進(jìn)一步地,所述配置閾值為size(普通塊)-size(EIB)-size(EIT)。[0018]進(jìn)一步地,當(dāng)文件超過(guò)配置閾值大小時(shí),寫入的文件的inode寫入擴(kuò)展索引節(jié)點(diǎn)表,只記載元數(shù)據(jù)而不存儲(chǔ)實(shí)際數(shù)據(jù)。[0019]進(jìn)一步地,在inode中寫入自定義屬性來(lái)確定是否是虛擬文件。【附圖說(shuō)明】[0020]附圖用來(lái)提供對(duì)本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說(shuō)明書的一部分,與本申請(qǐng)的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對(duì)本發(fā)明技術(shù)方案的限制。[0021]圖1示出了根據(jù)本發(fā)明的一實(shí)施例的模擬云存儲(chǔ)設(shè)備的虛擬文件系統(tǒng)塊設(shè)備物理結(jié)構(gòu)布局?!揪唧w實(shí)施方式】[0022]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。[0023]本發(fā)明設(shè)計(jì)了一種模擬云存儲(chǔ)設(shè)備的虛擬文件系統(tǒng)的一種實(shí)現(xiàn)方法,以Linux的ext3文件系統(tǒng)為基礎(chǔ),擴(kuò)展其數(shù)據(jù)存儲(chǔ)的物理結(jié)構(gòu),根據(jù)文件掛載時(shí)傳入的參數(shù),計(jì)算相關(guān)的配置閾值,使其在開始寫入的時(shí)候在配置閾值范圍內(nèi)與普通的文件系統(tǒng)一樣,當(dāng)超過(guò)配置閥值的時(shí)候只寫入元數(shù)據(jù)信息,并不寫入數(shù)據(jù)信息,從而利用有限的物理設(shè)備模擬出龐大的存儲(chǔ)容量。[0024]ext3文件系統(tǒng)將磁盤分區(qū)劃分成多個(gè)塊組(Blockgroup),若干個(gè)相鄰的塊(Block)組成一個(gè)塊組,每個(gè)塊組大小相同。從結(jié)構(gòu)上看,塊組由超級(jí)塊(Superblock)、組描述符表(Groupdescriptortable)、塊位圖(Blockbitmap)、索引節(jié)點(diǎn)位圖(Inodebitmap)、索引節(jié)點(diǎn)表(Inodetable)、多個(gè)數(shù)據(jù)塊(Datablocks)構(gòu)成。[0025]參考附圖1,本發(fā)明以Linux的ext3文件系統(tǒng)為基礎(chǔ),對(duì)其在磁盤上的存儲(chǔ)結(jié)構(gòu)進(jìn)行改造,在塊組內(nèi)添加擴(kuò)展索引節(jié)點(diǎn)位圖EIB(extentinodebitmap)和擴(kuò)展索引節(jié)點(diǎn)表EIT(extentinodetable),并且EIB和EIT分別位于索引節(jié)點(diǎn)位圖和索引節(jié)點(diǎn)表之后。[0026]在創(chuàng)建文件系統(tǒng)的時(shí)候文件系統(tǒng)選項(xiàng)內(nèi)傳入要模擬的文件數(shù)量上限N(N存在上限)或者實(shí)際物理塊設(shè)備的百分比P(0〈P<I),之后根據(jù)傳入的不同參數(shù)計(jì)算EIB的大小和EIT的大小,之后按照計(jì)算結(jié)果初始化元數(shù)據(jù)區(qū)域。擴(kuò)展區(qū)域大小計(jì)算方式如下:[0027]如果文件系統(tǒng)選項(xiàng)內(nèi)傳入的參數(shù)為要模擬的文件數(shù)量上限N,則通過(guò)以下公式計(jì)算EIB和EIT的大小:[0028]size(EIT)=N*size(inode)/size(block);[0029]size(EIB)=N/8/size(block)。[0030]如果文件系統(tǒng)選項(xiàng)內(nèi)傳入的參數(shù)為實(shí)際物理塊設(shè)備百分比P,則通過(guò)以下公式計(jì)算EIB和EIT的大小:[0031]Extent_itsize=size(普通塊)*P;[0032]size(EIT)=Extent_itsize/size(block);[0033]size(EIB)=Extent_itsize/size(inode)/8/size(block)。[0034]根據(jù)上述所計(jì)算的擴(kuò)展區(qū)域的大小,計(jì)算配置閾值,所述配置閾值為size(普通塊)-size(EIB)-size(EIT)。[0035]在掛載文件系統(tǒng)下寫數(shù)據(jù),當(dāng)文件超過(guò)配置閾值大小時(shí),之后寫入的文件的inode全部寫入擴(kuò)展索引節(jié)點(diǎn)表,所有的文件只記載元數(shù)據(jù)而不存儲(chǔ)實(shí)際數(shù)據(jù),并且在inode中寫入自定義屬性來(lái)確定是否是虛擬文件。否則,按常規(guī)方式寫數(shù)據(jù)。[0036]通過(guò)以上方法可以將小容量的設(shè)備模擬出超大規(guī)模的集群,可達(dá)PB級(jí),來(lái)測(cè)試云存儲(chǔ)系統(tǒng)的功能完備性和系統(tǒng)穩(wěn)定性。但是該文件系統(tǒng)無(wú)法測(cè)試數(shù)據(jù)讀寫性能,但是可以用于文件系統(tǒng)元數(shù)據(jù)讀寫的評(píng)估測(cè)試。[0037]在示例性實(shí)施例中,還提供了一種包括指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器,上述指令可由一裝置的處理器執(zhí)行以完成上述方法。例如,所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是R0M、隨機(jī)存取存儲(chǔ)器(RAM)、CD-R0M、磁帶、軟盤和光數(shù)據(jù)存儲(chǔ)設(shè)備等。[0038]雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)?!局鳈?quán)項(xiàng)】1.一種模擬云存儲(chǔ)設(shè)備的虛擬文件系統(tǒng)的方法,其特征在于,包括:擴(kuò)展數(shù)據(jù)存儲(chǔ)的物理結(jié)構(gòu);根據(jù)文件掛載時(shí)傳入的參數(shù),計(jì)算擴(kuò)展區(qū)域的大小以及配置閾值;比較所述文件與配置閾值的大小,根據(jù)比較結(jié)果只寫入元數(shù)據(jù)而不存儲(chǔ)實(shí)際數(shù)據(jù)。2.如權(quán)利要求1所述的方法,其特征在于,所述擴(kuò)展為以Iinux的ext3文件系統(tǒng)為基礎(chǔ),在塊組內(nèi)添加擴(kuò)展索引節(jié)點(diǎn)位圖EIB和擴(kuò)展索引節(jié)點(diǎn)表EIT。3.如權(quán)利要2所述的方法,其特征在于,所述EIB和EIT分別位于索引節(jié)點(diǎn)位圖和索引節(jié)點(diǎn)表之后。4.如權(quán)利要I所述的方法,其特征在于,所述參數(shù)為要模擬的文件數(shù)量上限N或者實(shí)際物理塊設(shè)備的百分比P。5.如權(quán)利要4所述的方法,其特征在于,如果文件系統(tǒng)選項(xiàng)內(nèi)傳入的參數(shù)為要模擬的文件數(shù)量上限N,則通過(guò)以下公式計(jì)算EIB和EIT的大小:size(EIT)=N*size(inode)/size(block);size(EIB)=N/8/size(block);如果文件系統(tǒng)選項(xiàng)內(nèi)傳入的參數(shù)為實(shí)際物理塊設(shè)備百分比P,則通過(guò)以下公式計(jì)算EIB和EIT的大小:Extent_itsize=size(普通塊)*P;size(EIT)=Extent_itsize/size(block);size(EIB)=Extent_itsize/size(inode)/8/size(block)。6.如權(quán)利2所述的方法,其特征在于,所述配置閾值為size(普通塊)-size(EIB)-size(EIT)。7.如權(quán)I所述的方法,其特征在于,所述比較所述文件與配置閾值的大小,根據(jù)比較結(jié)果只寫入元數(shù)據(jù)而不存儲(chǔ)實(shí)際數(shù)據(jù)是指:當(dāng)文件超過(guò)配置閾值大小時(shí),寫入的文件的inode寫入擴(kuò)展索引節(jié)點(diǎn)表,只記載元數(shù)據(jù)而不存儲(chǔ)實(shí)際數(shù)據(jù)。8.如權(quán)7所述的方法,其特征在于,進(jìn)一步包括在inode中寫入自定義屬性來(lái)確定是否是虛擬文件。9.一種模擬云存儲(chǔ)設(shè)備的虛擬文件系統(tǒng)的裝置,其特征在于,包括:用于擴(kuò)展數(shù)據(jù)存儲(chǔ)的物理結(jié)構(gòu)裝置;用于根據(jù)文件掛載時(shí)傳入的參數(shù),計(jì)算擴(kuò)展區(qū)域的大小以及配置閾值的裝置;用于比較所述文件與配置閾值的大小,根據(jù)比較結(jié)果只寫入元數(shù)據(jù)而不存儲(chǔ)實(shí)際數(shù)據(jù)的裝置。10.一種模擬云存儲(chǔ)設(shè)備的虛擬文件系統(tǒng)的裝置,其特征在于,包括:處理器;用于存儲(chǔ)所述處理器的可執(zhí)行指令的存儲(chǔ)器;其中,所述處理器被配置為:擴(kuò)展數(shù)據(jù)存儲(chǔ)的物理結(jié)構(gòu);根據(jù)文件掛載時(shí)傳入的參數(shù),計(jì)算擴(kuò)展區(qū)域的大小以及配置閾值;比較所述文件與配置閾值的大小,根據(jù)比較結(jié)果只寫入元數(shù)據(jù)而不存儲(chǔ)實(shí)際數(shù)據(jù)?!緦@勘景l(fā)明設(shè)計(jì)了一種模擬云存儲(chǔ)設(shè)備的虛擬文件系統(tǒng)的實(shí)現(xiàn)方法,以Linux的ext3文件系統(tǒng)為基礎(chǔ),擴(kuò)展其數(shù)據(jù)存儲(chǔ)的物理結(jié)構(gòu),根據(jù)文件掛載時(shí)傳入的參數(shù),計(jì)算相關(guān)的配置閾值,使其在開始寫入的時(shí)候在配置閾值范圍內(nèi)與普通的文件系統(tǒng)一樣,當(dāng)超過(guò)配置閥值的時(shí)候只寫入元數(shù)據(jù)信息,并不寫入數(shù)據(jù)信息,從而利用有限的物理設(shè)備模擬出龐大的存儲(chǔ)容量?!綢PC分類】G06F17/30【公開號(hào)】CN105224607【申請(qǐng)?zhí)枴緾N201510561398【發(fā)明人】李杰【申請(qǐng)人】浪潮(北京)電子信息產(chǎn)業(yè)有限公司【公開日】2016年1月6日【申請(qǐng)日】2015年9月6日