中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

一種提高云存儲(chǔ)中小文件存儲(chǔ)效率的方案

2019-02-26    來源:多智時(shí)代

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

    實(shí)驗(yàn)結(jié)果表明,在不影響存儲(chǔ)系統(tǒng)運(yùn)行狀況的基礎(chǔ)上,該方案提高了HDFS(Hadoop distributed file system)是一種具有高度容錯(cuò)性質(zhì)的分布式文件系統(tǒng)模型,可以部署在支持JAVA運(yùn)行環(huán)境的普通機(jī)器或虛擬機(jī)上,能夠提供高吞吐量的數(shù)據(jù)訪問,非常適合部署云存儲(chǔ)平臺(tái)。

    HDFS采用主從式架構(gòu)設(shè)計(jì)模式(master/slavearchitecture),一個(gè)名稱節(jié)點(diǎn)(NameNode)和若干數(shù)據(jù)節(jié)點(diǎn)(DataNode)構(gòu)成HDFS集群。HDFS的這種單名稱節(jié)點(diǎn)的設(shè)計(jì)極大地簡化了文件系統(tǒng)的結(jié)構(gòu),然而也因此引發(fā)了HDFS的小文件存儲(chǔ)效率低的問題。因?yàn)镠DFS中的每個(gè)目錄和文件的元數(shù)據(jù)信息都存放在名稱節(jié)點(diǎn)的內(nèi)存中,如果系統(tǒng)中存在大量的小文件(指那些比HDFS數(shù)據(jù)塊(默認(rèn)為64MB)d,得多的文件),則無疑會(huì)降低整個(gè)存儲(chǔ)系統(tǒng)的存儲(chǔ)效率和存儲(chǔ)能力。

    在各種存儲(chǔ)系統(tǒng)中,存在大量這樣的小文件。美國西北太平洋國家實(shí)驗(yàn)室2007年的一份研究報(bào)告表明,他們系統(tǒng)中有1 200萬個(gè)文件,其中94%的文件小于64 MB,58%的小于64 kB。在一些具體的科研計(jì)算環(huán)境中,也存在大量的小文件,例如,在某些生物學(xué)計(jì)算中可能會(huì)產(chǎn)生3 000萬個(gè)文件,而其平均大小只有190 kB。

    解決基于HDFS的存儲(chǔ)系統(tǒng)中小文件存儲(chǔ)效率問題的主流思想是將小文件合并或組合為大文件,目前主要的方法分為2種,一種是利用Hadoop歸檔(Hadoop archive,HAR)等技術(shù)實(shí)現(xiàn)小文件合并的方法,另一種則是針對(duì)具體的應(yīng)用而提出的文件組合方法。

    Mackey等利用HAR技術(shù)實(shí)現(xiàn)小文件的合并,從而提高了HDFS中元數(shù)據(jù)的存儲(chǔ)效率。Liu等結(jié)合WebGIS應(yīng)用,以Hadoop為存儲(chǔ)平臺(tái)開發(fā)了HDWebGIS原型系統(tǒng);結(jié)合WebGIS訪問模式的特點(diǎn),將小文件組合為大文件并為其建立全局索引,從而提高了小文件存儲(chǔ)效率。Dong等[4]針對(duì)BlueSky系統(tǒng)中PPT課件的存儲(chǔ)問題,提出了將小文件合并到大文件中并結(jié)合預(yù)取機(jī)制來提高系統(tǒng)存儲(chǔ)和訪問小文件的效率的方法。劉立坤等對(duì)分布式存儲(chǔ)系統(tǒng)中小文件的并發(fā)訪問進(jìn)行了優(yōu)化。

    以上的研究工作都是基于文件的合并或組合來解決小文件存儲(chǔ)效率不高的問題,然而還存在以下2個(gè)問題:第一,作為一個(gè)完整的系統(tǒng),在提高小文件存儲(chǔ)效率的同時(shí),也應(yīng)該考慮到系統(tǒng)的負(fù)載狀況,因?yàn)椴还苁俏募喜⑦是文件組合,對(duì)HDFS而言都是一個(gè)額外的操作;第二,未對(duì)小文件合并規(guī)模進(jìn)行研究,即尚未確定多少個(gè)小文件合并為一個(gè)大文件可以使系統(tǒng)性能達(dá)到最優(yōu)。

    基于以上兩點(diǎn),本文提出了一個(gè)面向HDFS的云存儲(chǔ)系統(tǒng)中小文件存儲(chǔ)效率的優(yōu)化方案:采用序列文件技術(shù)將小文件合并為大文件,結(jié)合多屬性決策理論和實(shí)驗(yàn)得出合并文件的最優(yōu)方式,通過基于層次分析法(analytic hierarchy process,AHP)的系統(tǒng)負(fù)載預(yù)測(cè)算法實(shí)現(xiàn)系統(tǒng)的負(fù)載均衡。

    1 小文件存儲(chǔ)效率優(yōu)化方案設(shè)計(jì)

    在構(gòu)建的云存儲(chǔ)系統(tǒng)中,采用多叉樹的結(jié)構(gòu)來構(gòu)建文件索引。用戶將文件上傳到云存儲(chǔ)系統(tǒng)后,系統(tǒng)會(huì)自動(dòng)根據(jù)用戶文件的組織形式建立對(duì)應(yīng)的多叉樹索引。

    1.1序列文件合并技術(shù)

    序列文件(SequenceFile)是HDFS提供的一種二進(jìn)制文件技術(shù),這種二進(jìn)制文件直接將對(duì)序列化到文件,文件序列化時(shí)可實(shí)現(xiàn)基于記錄或數(shù)據(jù)塊的壓縮。在云存儲(chǔ)系統(tǒng)中,對(duì)二進(jìn)制文件采用SequenceFile技術(shù)將小文件合并為大文件,以小文件的索引號(hào)為key、內(nèi)容為value的形式進(jìn)行合并,合并的同時(shí)實(shí)現(xiàn)基于數(shù)據(jù)塊的壓縮,這樣,在節(jié)省名稱節(jié)點(diǎn)內(nèi)存空間的同時(shí)也節(jié)省了數(shù)據(jù)節(jié)點(diǎn)的磁盤空間。

    1.2小文件存儲(chǔ)效率優(yōu)化方案

    在基于HDFS的云存儲(chǔ)系統(tǒng)中,小文件存儲(chǔ)效率優(yōu)化方案如圖1所示。為提高對(duì)小文件的處理效率,系統(tǒng)為每個(gè)用戶建立了3種隊(duì)列:第1種為序列文件隊(duì)列(SequenceFile queue,SFQ),第2種為序列文件操作隊(duì)列(SequenceFile operation queue,SFOQ),第3種為備用隊(duì)列(Backup queue,BQ)。其中,SFQ用于小文件的合并,SFOQ用于對(duì)合并后小文件的操作,BQ用于操作的小文件數(shù)超過SFQ或SFOQ長度的情況。3種隊(duì)列的長度一致,可通過實(shí)驗(yàn)得出隊(duì)列長度的最優(yōu)值。下面介紹具體的處理流程。

    一種提高云存儲(chǔ)中小文件存儲(chǔ)效率的方案

      圖1 小文件存儲(chǔ)效率優(yōu)化方案

    如圖1所示,用戶將本地的文件上傳至云存儲(chǔ)服務(wù)器(過程1),然后服務(wù)器開始對(duì)該文件的類型進(jìn)行判斷(過程2),如果是小文件,將該文件的索引號(hào)放入SFQ中(過程3)。當(dāng)SFQ滿時(shí),將發(fā)送“隊(duì)列滿”信號(hào)(QF)給控制器,如圖中虛線口所示,而當(dāng)定時(shí)器到定時(shí)點(diǎn)時(shí),將發(fā)送“時(shí)間到”信號(hào)(TU)給控制器,如虛線b所示。接收到QF或者TU信號(hào)后,控制器開始讀取SFQ的相關(guān)信息(過程4.1),對(duì)系統(tǒng)負(fù)載進(jìn)行計(jì)算(過程4.2)(具體算法在第2節(jié)中介紹),并據(jù)此決定是否進(jìn)行小文件的合并(過程5)。文件合并后完成小文件與大文件之間的映射(過程6)控制器的具體處理邏輯如圖2所示。

    當(dāng)控制器接收到信號(hào)時(shí),首先判斷信號(hào)類型,如果是QF,則調(diào)用基于AHP的系統(tǒng)負(fù)載預(yù)測(cè)算法計(jì)算系統(tǒng)負(fù)載。如果得到的系統(tǒng)負(fù)載低于系統(tǒng)設(shè)定的閾值,則開始合并文件(包括SFQ和BQ),并取消系統(tǒng)中的TU信號(hào);如果系統(tǒng)負(fù)載大于系統(tǒng)設(shè)定的閾值,則進(jìn)一步判斷BQ的數(shù)量,若BQ數(shù)量小于某個(gè)值(例如3),則新建BQ,將SFQ轉(zhuǎn)移到BQ中并推遲合并操作(系統(tǒng)中設(shè)定推遲的時(shí)間為30 min),設(shè)定TU信號(hào),若BQ數(shù)量大于3,則將BQ中的小文件進(jìn)行合并,取消系統(tǒng)中的TU信號(hào)。

    一種提高云存儲(chǔ)中小文件存儲(chǔ)效率的方案

    圖2 控制器控制邏輯

    如果接收到的是TU信號(hào),計(jì)算系統(tǒng)負(fù)載并判斷是否大于系統(tǒng)設(shè)定的閾值。若負(fù)載大于閾值,則推遲合并操作并設(shè)定TU信號(hào);若負(fù)載小于閾值,則合并BQ中的小文件,取消系統(tǒng)中的其他TU信號(hào)。

    2 基于AHP的系統(tǒng)負(fù)載預(yù)測(cè)算法

    系統(tǒng)負(fù)載預(yù)測(cè)通常定義為基于CPU利用率、內(nèi)存利用率、帶寬利用率和系統(tǒng)平均吞吐量等系統(tǒng)屬性對(duì)系統(tǒng)運(yùn)行狀態(tài)進(jìn)行的多屬性決策。

    層次分析法(AHP)E7]是美國運(yùn)籌學(xué)家托馬斯薩迪提出的一種層次權(quán)重決策分析方法,是對(duì)定性問題進(jìn)行定量分析的一種簡便、靈活而又實(shí)用的多準(zhǔn)則決策方法。

    負(fù)載計(jì)算得到的是一個(gè)即時(shí)值或歷史值,即只能夠得到當(dāng)前或以前時(shí)刻的系統(tǒng)負(fù)載,然而對(duì)小文件的操作是在系統(tǒng)負(fù)載計(jì)算之后,因此需要根據(jù)系統(tǒng)負(fù)載的歷史信息來推測(cè)下一時(shí)刻的系統(tǒng)負(fù)載;诖,本文設(shè)計(jì)了基于AHP的系統(tǒng)負(fù)載預(yù)測(cè)算法。該算法通過獲取系統(tǒng)屬性的歷史信息,經(jīng)過2次AHP分析,最終可得到系統(tǒng)負(fù)載的預(yù)測(cè)值。

    算法依據(jù)系統(tǒng)屬性的重要性,將每個(gè)時(shí)刻的系統(tǒng)負(fù)載屬性值經(jīng)過AHP分析融合為單一的決策屬性值,然后依據(jù)決策屬性值的時(shí)間重要性,經(jīng)過第二次AHP分析最終得到下一時(shí)刻的系統(tǒng)負(fù)載值。具體步驟如下。

    一種提高云存儲(chǔ)中小文件存儲(chǔ)效率的方案

    通過本文提出的這一算法,可以實(shí)現(xiàn)對(duì)系統(tǒng)負(fù)載的預(yù)測(cè),從而將對(duì)小文件的操作控制在某個(gè)能夠均衡系統(tǒng)負(fù)載的時(shí)刻進(jìn)行

    3 實(shí)驗(yàn)

    為提高小文件的操作效率,系統(tǒng)為每個(gè)用戶建立了SFQ和SFOQ。在這一節(jié)中,將通過實(shí)驗(yàn)研究SFQ長度對(duì)云存儲(chǔ)系統(tǒng)的影響,選取讀取文件時(shí)間、合并文件時(shí)間和節(jié)省的內(nèi)存空間作為參考指標(biāo),以得到小文件合并的最優(yōu)方式。

    在基于HDFS的云存儲(chǔ)系統(tǒng)中,對(duì)文件的操作主要有上傳、下載、讀取等。合并操作對(duì)上傳沒有影響,下載的核心操作也是讀取,因此選取讀取文件時(shí)間作為參考指標(biāo)。提高名稱節(jié)點(diǎn)內(nèi)存利用率是本文的主要工作,因此將通過合并文件節(jié)省的內(nèi)存空間作為參考指標(biāo)之一。合并文件的效率是影響存儲(chǔ)系統(tǒng)性能的一個(gè)重要因素,故也將合并文件時(shí)間作為參考指標(biāo)。

    3.1實(shí)驗(yàn)方案與實(shí)驗(yàn)結(jié)果

    我們將通過3個(gè)實(shí)驗(yàn)分別獲取在SequenceFile中讀取小文件的平均時(shí)間、合并文件的平均時(shí)間以及合并所能節(jié)省的內(nèi)存空間等指標(biāo)值,并通過AHP分析數(shù)據(jù),得出SFQ長度與系統(tǒng)性能的關(guān)系。6臺(tái)Dell服務(wù)器構(gòu)成云存儲(chǔ)環(huán)境,服務(wù)器的配置均為CPU 8 Intel Xeon 2。13 GHz,內(nèi)存8 GB,硬盤500 GB,操作系統(tǒng)均為Ubuntu Server 9。04,Hadoop版本為0.20.0.

    實(shí)驗(yàn)1統(tǒng)計(jì)合并文件的平均時(shí)間(t1)。按照SFQ長度分別為100、200、300、400、500、600、700、800、900、1 000合并小文件50次,并且在不同的時(shí)段重復(fù)這樣的實(shí)驗(yàn)10次。統(tǒng)計(jì)這10種情況下合并文件所需時(shí)間的平均值,最終得到合并文件的時(shí)間,結(jié)果如圖3所示。

    一種提高云存儲(chǔ)中小文件存儲(chǔ)效率的方案

    圖3 合并文件的平均時(shí)間

    實(shí)驗(yàn)2統(tǒng)計(jì)讀取小文件的平均時(shí)間(t2)。小文件合并為SequenceFile之后,讀取小文件的時(shí)間主要分為在SequenceFile中查找小文件的時(shí)間和獲取小文件內(nèi)容的時(shí)間2部分,因此,小文件合并之后讀取文件的時(shí)間與該文件在SequenceFile中所處的位置有關(guān)。HDFS提供的API中采用順序查找算法進(jìn)行文件查找,因此讀取的文件在SequenceFile中位置越靠后所需的時(shí)間越長。在實(shí)驗(yàn)l中得到的10個(gè)大文件中以10為步長讀取小文件,獲取其平均時(shí)間作為讀取該大文件中小文件的平均時(shí)間,實(shí)驗(yàn)結(jié)果如圖4所示。

    實(shí)驗(yàn)3統(tǒng)計(jì)合并10 000個(gè)小文件節(jié)省的內(nèi)存空間。將10 000個(gè)小文件上傳到云存儲(chǔ)系統(tǒng),統(tǒng)計(jì)其占用名稱節(jié)點(diǎn)的內(nèi)存空間,然后分別按照SFQ長度為100、200、300、400、500、600、700、800、900、1 000進(jìn)行合并,獲取合并后占用名稱節(jié)點(diǎn)的內(nèi)存空間,兩者之差即為合并操作所節(jié)省的內(nèi)存空間,實(shí)驗(yàn)結(jié)果如圖5所示。

    一種提高云存儲(chǔ)中小文件存儲(chǔ)效率的方案

    圖4 讀取小文件的平均時(shí)間

    一種提高云存儲(chǔ)中小文件存儲(chǔ)效率的方案

    圖5 節(jié)省的內(nèi)存空間

    3.2實(shí)驗(yàn)結(jié)果分析

    3.2.1數(shù)據(jù)標(biāo)準(zhǔn)化將實(shí)驗(yàn)指標(biāo)轉(zhuǎn)化為逆指標(biāo)(越小越好的指標(biāo)),分別利用Min-Max方法和Z-Score方法對(duì)轉(zhuǎn)化為逆指標(biāo)的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化睜9I,結(jié)果如圖6、圖7所示。

    一種提高云存儲(chǔ)中小文件存儲(chǔ)效率的方案

    圖6 Min-Max法的標(biāo)準(zhǔn)化數(shù)據(jù)

    一種提高云存儲(chǔ)中小文件存儲(chǔ)效率的方案

    圖7 Z-Score法的標(biāo)準(zhǔn)化數(shù)據(jù)

    3.2.2系統(tǒng)性能決策值計(jì)算利用AHP進(jìn)行權(quán)重計(jì)算。由于讀取文件是最頻繁的操作,因此認(rèn)定讀取文件時(shí)間為3個(gè)指標(biāo)中最重要的,節(jié)省的內(nèi)存空間其次。據(jù)此,計(jì)算3個(gè)指標(biāo)的權(quán)重如表2所示。

    表2權(quán)重

    將標(biāo)準(zhǔn)化的數(shù)據(jù)與相應(yīng)的權(quán)重相乘之后相加,得到系統(tǒng)性能決策值,如圖8所示。

    一種提高云存儲(chǔ)中小文件存儲(chǔ)效率的方案

    圖8分析結(jié)果

    3.2.3結(jié)果分析從圖8可以看到,兩種數(shù)據(jù)標(biāo)準(zhǔn)化方法都反映出一個(gè)規(guī)律,即在本文的實(shí)驗(yàn)環(huán)境中,性能決策值隨著SFQ長度的增大呈現(xiàn)一種類似開口向上的拋物線狀變化,并且在SFQ長度為400時(shí)取得最小值。由于我們采用了逆指標(biāo)進(jìn)行計(jì)算,因此當(dāng)性能決策值最小時(shí),表示系統(tǒng)性能達(dá)到了最優(yōu)。由此可以得出結(jié)論:在本文的云存儲(chǔ)環(huán)境中,SFQ長度取400是小文件合并的最優(yōu)方式;根據(jù)基于AHP的系統(tǒng)負(fù)載預(yù)測(cè)算法對(duì)系統(tǒng)運(yùn)行狀況監(jiān)控的結(jié)果,可以得到小文件合并的最佳時(shí)間。

    通過實(shí)驗(yàn)可知,小文件合并的規(guī)模越大,名稱節(jié)點(diǎn)消耗的內(nèi)存空間將越少,與此同時(shí),對(duì)小文件的操作(讀取、刪除等)以及合并文件所花費(fèi)的時(shí)間代價(jià)也將越大。在其他基于HDFS的存儲(chǔ)系統(tǒng)中采用本文的方案進(jìn)行分析和部署,都可在時(shí)間消耗和內(nèi)存利用率之間實(shí)現(xiàn)一種最優(yōu)平衡,實(shí)現(xiàn)在小文件存儲(chǔ)效率提高的同時(shí)不影響系統(tǒng)性能的目標(biāo)。

    4 結(jié)語

    本文針對(duì)基于HDFS的云存儲(chǔ)系統(tǒng)中小文件存儲(chǔ)效率不高的問題,提出了一套完整的解決方案。在該方案中,采用SequenceFile技術(shù)將小文件以隊(duì)列的形式合并為大文件,從而實(shí)現(xiàn)了節(jié)省名稱節(jié)點(diǎn)所占內(nèi)存空間的目的,同時(shí)也實(shí)現(xiàn)了對(duì)合并之后的小文件的透明操作。在確定影響隊(duì)列長度的指標(biāo)之后,通過實(shí)驗(yàn)獲取指標(biāo)值,采用數(shù)據(jù)標(biāo)準(zhǔn)化方法和三標(biāo)度層次分析法確定隊(duì)列長度的最優(yōu)值,使得小文件的合并能在合并時(shí)間、文件操作時(shí)間和節(jié)省內(nèi)存空間之間達(dá)到一種平衡。基于負(fù)載均衡的目的,本文設(shè)計(jì)了基于AHP的負(fù)載預(yù)測(cè)算法對(duì)系統(tǒng)負(fù)載進(jìn)行預(yù)測(cè)。

    在以后的工作中,我們將從以下兩個(gè)方面來進(jìn)行改進(jìn):①將小文件的合并以及小文件的讀取改進(jìn)為Map-Reduce任務(wù),從而提高操作的效率;②對(duì)SequenceFile中的小文件查找算法進(jìn)行改進(jìn),提高小文件查找效率。

在不久的將來,云計(jì)算一定會(huì)徹底走入我們的生活,有興趣入行未來前沿產(chǎn)業(yè)的朋友,可以收藏云計(jì)算,及時(shí)獲取人工智能、大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)的前沿資訊和基礎(chǔ)知識(shí),讓我們一起攜手,引領(lǐng)人工智能的未來!

標(biāo)簽: 大數(shù)據(jù) 服務(wù)器 云存儲(chǔ)服務(wù)器 云計(jì)算

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:云計(jì)算環(huán)境下安全服務(wù)的思考與探索

下一篇:云計(jì)算所需的獨(dú)特安全保護(hù)措施