一種基于緩沖區(qū)的文件存儲方法
【專利摘要】本發(fā)明涉及一種基于緩沖區(qū)的文件存儲方法,旨在解決在發(fā)生服務(wù)器故障時的文件存儲服務(wù)方面的瓶頸問題。步驟如下:建立穩(wěn)定的傳輸模型;文件按照文件名的特征映射到一個節(jié)點,在用戶下載完成并未退出系統(tǒng)時,這個客戶端上的文件作為一個文件副本源;大文件元數(shù)據(jù)管理服務(wù)器,用于存儲大文件的元數(shù)據(jù)、存儲大文件存儲服務(wù)器上大文件數(shù)據(jù)塊的映射信息和處理用戶的請求信息;緩存服務(wù)器,用于存儲小文件、小文件的元數(shù)據(jù)和緩存部分訪問量大的大文件。本發(fā)明有益的效果是:提高云服務(wù)端的文件系統(tǒng)存儲效率,加強(qiáng)文件系統(tǒng)的故障響應(yīng)及恢復(fù)速度;采用動態(tài)擴(kuò)展緩沖區(qū)的管理方法提高文件傳輸性能,降低服務(wù)器的資源消耗,保障服務(wù)安全有效的進(jìn)行。
【專利說明】
一種基于緩沖區(qū)的文件存儲方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及文件傳輸領(lǐng)域,主要是一種基于緩沖區(qū)的文件存儲方法。
【背景技術(shù)】
[0002]在世界范圍內(nèi)廣泛應(yīng)用的分布式文件系統(tǒng)有NFS,AFS和Coda,其突出特點是具有位置透明性和迀移透明性,分布式文件系統(tǒng)可以基本滿足了構(gòu)建大規(guī)模存儲系統(tǒng)的需要。分布式文件服務(wù)器具備了分布式系統(tǒng)的一些優(yōu)點,具有很高的文件訪問性能,通過冗余機(jī)制保證了系統(tǒng)可靠性,并且具有良好的可擴(kuò)展性,支持大容量的存儲。
[0003]分布式文件系統(tǒng)指在服務(wù)提供商利用多臺服務(wù)器進(jìn)行集群共同存儲數(shù)據(jù)的文件系統(tǒng),用戶在讀寫文件時需要發(fā)送請求,后臺服務(wù)器處理用戶請求并將請求結(jié)果發(fā)還給用戶,當(dāng)前使用最廣泛的分布式文件系統(tǒng)是HDFS,然而該系統(tǒng)具有兩個主要缺陷:無法高效存儲大量的小文件和只有單一命名節(jié)點進(jìn)行全局管理。
[0004]分布式文件服務(wù)器作為一個存儲系統(tǒng),包含穩(wěn)定的文件源,并包含多份文件冗余,客戶端可以從多個服務(wù)器同時下載文件的部分內(nèi)容,如果從網(wǎng)絡(luò)中接收到數(shù)據(jù)就立刻寫入磁盤,傳輸過程將會產(chǎn)生多次的磁盤讀寫操作,采用軟件緩沖區(qū)可以有效的減少對磁盤的操作,明顯提升大文件的傳輸速度。
[0005]分布式文件服務(wù)器中的緩沖區(qū)是指內(nèi)存中的一塊區(qū)域,一個緩沖區(qū)包含若干數(shù)據(jù)塊,每個塊包含一個小塊文件數(shù)據(jù)以及它在文件中的起始位置和結(jié)束位置等信息,每個塊具有存在、空閑、填充中、充滿四種狀態(tài)。對緩沖區(qū)頻繁的讀寫,需要一個高效的管理方法,以減少內(nèi)存分配與釋放造成的碎片。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決上述技術(shù)所存在的缺陷,提供一種基于緩沖區(qū)的文件存儲方法,通過配置和管理軟件緩沖區(qū),解決多線程文件傳輸帶來的磁盤讀寫和內(nèi)存分配問題。
[0007]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案:一種基于緩沖區(qū)的文件存儲方法,步驟如下:
[0008]I)建立穩(wěn)定的傳輸模型,在這個分布式文件服務(wù)器中包含穩(wěn)定的文件源,每個文件具有多個相同的文件副本的存在,且這些副本保存在多個服務(wù)器上;系統(tǒng)為客戶端提供了幾個外部接口,只要連接到其中的一臺服務(wù)器,就能訪問到系統(tǒng)中所有的文件資源,系統(tǒng)中的每一臺服務(wù)器,都具有資源定位的功能;
[0009]2)在這樣的文件存儲系統(tǒng)中,文件被保存在多個節(jié)點上,按照文件名的特征映射到一個節(jié)點,這個節(jié)點上的文件副本的服務(wù)器對多個文件副本進(jìn)行管理,當(dāng)有用戶下載該文件時,記錄這個客戶端的信息,在用戶下載完成并未退出系統(tǒng)時,這個客戶端上的文件作為一個文件副本源;
[0010]3)大文件元數(shù)據(jù)管理服務(wù)器,用于存儲大文件的元數(shù)據(jù)、存儲大文件存儲服務(wù)器上大文件數(shù)據(jù)塊的映射信息、管理大文件的命名空間和處理用戶的請求信息;緩存服務(wù)器,用于存儲小文件、小文件的元數(shù)據(jù)和緩存部分訪問量大的大文件;
[0011]4)為了提高文件存儲的效率,并不是接收到一個文件數(shù)據(jù)塊就寫磁盤,而是將文件數(shù)據(jù)塊緩存在緩沖區(qū)中,當(dāng)緩沖區(qū)中達(dá)到一定數(shù)量的塊時,再由統(tǒng)一的一個線程將緩沖區(qū)中的數(shù)據(jù)寫到磁盤中,寫磁盤線程從緩沖區(qū)中提取塊時,在已滿塊中選擇最佳的一塊,將其寫入磁盤;
[0012]5)緩存服務(wù)器中存儲部分訪問量大的大文件的存儲方式為:當(dāng)緩存服務(wù)器的緩存區(qū)空間足夠時,緩存服務(wù)器將新大文件直接添加到大文件緩存區(qū)并在元數(shù)據(jù)保存區(qū)中添加新的大文件的元數(shù)據(jù);當(dāng)緩存服務(wù)器的大文件緩存區(qū)空間不足時,若緩存服務(wù)器需要添加一個新的用戶經(jīng)常訪問的大文件,則將大文件緩存區(qū)中訪問量最低的經(jīng)常訪問大文件刪除直到空間足夠,接著將新的大文件添加進(jìn)大文件緩存區(qū)。
[0013]動態(tài)擴(kuò)展的緩沖區(qū)算法在傳輸任務(wù)開始時默認(rèn)生成數(shù)據(jù)塊的大小和數(shù)量,這兩個值在文件傳輸?shù)倪^程中會根據(jù)網(wǎng)絡(luò)速度和磁盤讀寫速度進(jìn)行動態(tài)變化,每個數(shù)據(jù)塊在默認(rèn)生成時并不分配內(nèi)存,只有在某個線程需要寫數(shù)據(jù)時才分配內(nèi)存。在沒有線程對這個塊讀寫時,這個數(shù)據(jù)塊可以作為一個新的數(shù)據(jù)塊掛載到緩沖區(qū)上,這樣減少了創(chuàng)建數(shù)據(jù)塊的內(nèi)存開銷,提高了內(nèi)存的使用率。
[0014]對于讀寫緩沖區(qū)的線程來說,理想的情況是讀寫緩沖區(qū)的速度平衡,若寫緩沖區(qū)的速度大于讀緩沖區(qū)的速度時,需要增加新的數(shù)據(jù)塊防止寫線程處于空閑等待狀態(tài)。若寫緩沖區(qū)的速度小于讀緩沖區(qū)的速度時,可以減少多余的數(shù)據(jù)塊,減少資源的消耗。
[0015]本發(fā)明有益的效果是:本發(fā)明的分布式文件系統(tǒng)將大文件和小文件分開存儲,大文件進(jìn)行分塊存儲在大文件存儲服務(wù)器上,而小文件則存儲在緩存服務(wù)器上。當(dāng)用戶需要讀寫小文件時直接訪問緩存服務(wù)器然后做出對應(yīng)操作,這樣讀寫效率遠(yuǎn)高于傳統(tǒng)的先訪問元數(shù)據(jù)管理服務(wù)器再訪問數(shù)據(jù)存儲服務(wù)器的方式。而如果用戶需要讀寫大文件先訪問大文件元數(shù)據(jù)管理服務(wù)器,在獲得位置信息后訪問對應(yīng)的大文件存儲服務(wù)器。此系統(tǒng)能有效保存大文件和小文件,并提高了文件的讀寫效率。
[0016]本發(fā)明還解決了分布式文件服務(wù)器的高性能多源分塊傳輸問題,采用動態(tài)擴(kuò)展緩沖區(qū)的管理方法提高文件傳輸性能,降低服務(wù)器的資源消耗。本發(fā)明提供的緩沖區(qū)管理方法具有動態(tài)可擴(kuò)展性,緩沖區(qū)可以靈活的根據(jù)讀寫速度決定數(shù)據(jù)塊的大小和數(shù)量,同時使用過的數(shù)據(jù)塊可以被重新利用,有效得減少了緩沖區(qū)空間的浪費,從而減少整個系統(tǒng)的資源消耗。
【主權(quán)項】
1.一種基于緩沖區(qū)的文件存儲方法,其特征在于包括: 1)建立穩(wěn)定的傳輸模型,在這個分布式文件服務(wù)器中包含穩(wěn)定的文件源,每個文件具有多個相同的文件副本的存在,且這些副本保存在多個服務(wù)器上;系統(tǒng)為客戶端提供了幾個外部接口,只要連接到其中的一臺服務(wù)器,就能訪問到系統(tǒng)中所有的文件資源; 2)文件按照文件名的特征映射到一個節(jié)點,這個節(jié)點上的文件副本的服務(wù)器對多個文件副本進(jìn)行管理,當(dāng)有用戶下載該文件時,記錄這個客戶端的信息,在用戶下載完成并未退出系統(tǒng)時,這個客戶端上的文件作為一個文件副本源; 3)大文件元數(shù)據(jù)管理服務(wù)器,用于存儲大文件的元數(shù)據(jù)、存儲大文件存儲服務(wù)器上大文件數(shù)據(jù)塊的映射信息、管理大文件的命名空間和處理用戶的請求信息;緩存服務(wù)器,用于存儲小文件、小文件的元數(shù)據(jù)和緩存部分訪問量大的大文件; 4)將文件數(shù)據(jù)塊緩存在緩沖區(qū)中,當(dāng)緩沖區(qū)中達(dá)到一定數(shù)量的塊時,再由統(tǒng)一的一個線程將緩沖區(qū)中的數(shù)據(jù)寫到磁盤中,寫磁盤線程從緩沖區(qū)中提取塊時,在已滿塊中選擇最佳的一塊,將其寫入磁盤。2.根據(jù)權(quán)利要求1所述的一種基于緩沖區(qū)的文件存儲方法,其特征在于:系統(tǒng)中的每一臺服務(wù)器都采用具有資源定位的功能服務(wù)器。3.根據(jù)權(quán)利要求1所述的一種基于緩沖區(qū)的文件存儲方法,其特征在于:動態(tài)擴(kuò)展的緩沖區(qū)算法在傳輸任務(wù)開始時默認(rèn)生成數(shù)據(jù)塊的大小和數(shù)量,這兩個值在文件傳輸?shù)倪^程中會根據(jù)網(wǎng)絡(luò)速度和磁盤讀寫速度進(jìn)行動態(tài)變化,每個數(shù)據(jù)塊在默認(rèn)生成時并不分配內(nèi)存,只有在某個線程需要寫數(shù)據(jù)時才分配內(nèi)存,在沒有線程對這個塊讀寫時,這個數(shù)據(jù)塊可以作為一個新的數(shù)據(jù)塊掛載到緩沖區(qū)上。4.根據(jù)權(quán)利要求1所述的一種基于緩沖區(qū)的文件存儲方法,其特征在于:所述大文件存儲服務(wù)器包括若干臺,大文件元數(shù)據(jù)管理服務(wù)器包括至少三臺,緩存服務(wù)器包括至少三臺。5.根據(jù)權(quán)利要求1所述的一種基于緩沖區(qū)的文件存儲方法,其特征在于:至少三臺大文件元數(shù)據(jù)管理服務(wù)器之間采用自適應(yīng)、動態(tài)調(diào)整的方式存儲大文件元數(shù)據(jù)和大文件存儲服務(wù)器上大文件數(shù)據(jù)塊的映射信息以及承擔(dān)用戶請求的處理任務(wù)。6.根據(jù)權(quán)利要求1所述的一種基于緩沖區(qū)的文件存儲方法,其特征在于:緩存服務(wù)器中存儲部分訪問量大的大文件的存儲方式為:當(dāng)緩存服務(wù)器的緩存區(qū)空間足夠時,緩存服務(wù)器將新大文件直接添加到大文件緩存區(qū)并在元數(shù)據(jù)保存區(qū)中添加新的大文件的元數(shù)據(jù);當(dāng)緩存服務(wù)器的大文件緩存區(qū)空間不足時,若緩存服務(wù)器需要添加一個新的用戶經(jīng)常訪問的大文件,則將大文件緩存區(qū)中訪問量最低的經(jīng)常訪問大文件刪除直到空間足夠,接著將新的大文件添加進(jìn)大文件緩存區(qū)。
【文檔編號】G06F3/06GK106020713SQ201510588897
【公開日】2016年10月12日
【申請日】2015年9月16日
【發(fā)明人】張樹坤
【申請人】展視網(wǎng)(北京)科技有限公司