專利名稱:面向對象存儲系統中的對象分布方法
技術領域:
本發明屬于具有分布式存儲體系結構特點的面向對象的計算機存儲系統,具體涉及一種面向對象存儲系統中的對象分布方法,用于將對象分布到一個或多個對象存儲設備上。
背景技術:
面向對象的存儲系統將文件視為對象的集合。這些對象分布在對象存儲設備OSD(Object-Based Storage Device)中。對象放置到不同的設備中可以使系統具有更高的容量、吞吐量、可靠性和可擴展性。對于如何提高面向對象存儲系統中對象放置效率的研究相對較少。對象分布方法在整個系統的通訊過程開始就決定了系統的性能,同時也影響著設備間的負載均衡和設備間的并行效率。
面向對象存儲系統由客戶端、元數據服務器和存儲設備三大部分組成。這三方的通訊過程可以描述為客戶端向元數據服務器發送讀寫文件請求,元數據服務器返回文件對應的對象信息,客戶端根據對象信息訪問相應的設備。在一些分布式文件系統中,數據被存放在可以通過網絡直接訪問的智能設備上,而描述數據信息的元數據由專門的元數據服務器管理。元數據服務器在面向對象存儲系統中的位置非常重要,它的任務之一就是將文件映射成一個或多個對象并存放到設備上,所以分布的方法是否高效直接影響系統性能。
現有對象分布方法使用的算法主要有兩種。第一種稱為哈希算法,使用哈希函數將一個文件整體映射為一個對象并放置到一個設備中。第二種稱為分片映射算法,將文件平均分配到各個設備中。哈希算法和分片映射算法都有各自的優缺點。哈希算法使用哈希函數將文件數據近似隨機地分布在不同的設備上,可以實現負載均衡和較高的分布數據的效率。但是這種一對一的映射模型對于大文件來說不能充分利用設備的并行性;而且哈希算法在可擴展上也存在問題,因為哈希函數的結果要受設備總數的影響,因此哈希算法通常假設存儲設備總數是不變的。分片映射算法利用了各個設備的并行性。它有兩個優點第一,簡化了客戶端的操作,客戶端不需要具體的分配方法;第二,改變設備總數不影響元數據服務器上現有的映射信息,具有良好的可擴展性。但是當文件較小時,使用并行性顯得有些浪費,因為在小文件情況下向各個設備建立連接的開銷超過了設備并行帶來的好處,特別是當設備總數比較大時,一個文件被分成很多個小對象,無論是創建對象還是建立連接都很耗時,而且可靠性也會降低,因為如果一個設備出現問題,整個系統就會無法運轉。
發明內容
本發明提出一種面向對象存儲系統中的對象分布方法,目的在于結合哈希算法和分片映射算法的優點,同時盡量避免它們的缺點,提高設備的負載均衡性,設備間的并行性以及設備可靠性,從而提高系統性能。
本發明的一種面向對象存儲系統中的對象分布方法,順序包括下述步驟(1)確定文件長度邊界值L,L為256KB、512KB或1MB;(2)在元數據服務器初始化時得到設備總數N,N為正整數;(3)從客戶端得到文件長度,將文件長度與算法中界定的文件長度邊界值L進行比較,判斷是大文件還是小文件;(4)如果是小文件,直接哈希成一個對象并映射到一個設備中;(5)如果是大文件,將其分片成為幾個對象,分別放置在不同的設備里。
所述的面向對象存儲系統中的對象分布方法,其特征在于所述將大文件分片步驟包括下述過程(1)確定各種長度文件的分片參考值n參考;(2)根據設備總數N和分片參考值n參考來判斷文件分片個數np;分片參考值n參考大于設備總數N,則分片數n結果為設備總數N;分片參考值n參考小于設備總數N,則分片數np為分片數參考值n參考;(3)將設備按從存儲設備端所獲取的負載參數值,從低到高進行排序,選取負載參數值低的前np個設備;(4)將文件均勻分片映射到選取的np個設備上。
所述的面向對象存儲系統中的對象分布方法,其特征在于(1)確定文件長度邊界值L時,應根據具體環境中各種長度的文件所占比例;(2)確定各種文件長度下的分片參考值n參考時,根據各種長度文件分片并行傳輸的性價比隨分片數n的變化情況,選取使性價比達到最優的分片數作為分片參考值n參考。
所述的面向對象存儲系統中的對象分布方法,其特征在于確定所述性價比達到最優的分片參考值n參考時,找到第一個滿足以下不等式的n值即為n參考 式中,a為發送方開銷,b為傳輸時間,ε為隨著分片數增加性能增益幅度的期望值,ε參考值為0.7×10-3, 如果在區間[1,n理論]之間沒有滿足不等式的n,則n參考=n理論。
本發明中,文件長度邊界值根據具體應用環境中各種長度的文件所占比例來確定,將所占比例最大的文件長度定為文件長度邊界值,主要目的在于發揮設備端文件系統的優勢。
網絡環境是指發送方開銷和網絡帶寬;各種長度的文件的理論最佳分片數 由以下分析可以得到對象存儲設備(OSD)的數目和并行度之間的關系相當復雜。設備越多則傳輸通道越多,有利于并行傳輸。但是建立連接所花的時間對系統整體性能有著一定影響,尤其當連接數很多時,這種影響將使性能大大降低。數據同步也是一項費時的工作。如果很多個對象對應同一個大文件,將這些文件片斷重新拼裝成文件也將花費不少CPU時間。因此,當同一個文件對應的設備數增多時,傳輸并行度增加,同時也消耗了額外的系統資源。這種關系可以用下面的公式來描述TpT=n×a+1n×b+δ(n)a+b---(1)]]>Tp并行傳輸文件的總時延.
T串行傳輸文件的總時延.
n文件對應分布的設備數.
a發送方開銷.
b傳輸時間.
δ(t)對象間的協調時間,包括同步、校驗等,是n的函數公式(1)的分子包括三個部分n×a,b/n和δ(t)。n×a表示連接n個設備的發送方開銷是連接單個設備的n倍。而b/n表明n個設備并行傳輸的帶寬是單個設備的n倍。雖然δ(t)是自變量為n的函數,但是由于其隨n的變化非常小,可以近似地認為δ(t)是一個常數。所以用常數c替代δ(t),公式(1)化簡并進一步變形為TpT=n×aa+b+1n×ba+b+ca+b---(2)]]>
T/Tp為并行傳輸相對于串行傳輸的加速比,要使加速比最大也就是等價于使公式(2)中Tp/T最小。而本發明提出的方法主要關注的是如何將一個文件映射為多個對象,即n對Tp/T的影響,所以只要找到最佳n就可以得到最大加速比。令F(n)=n×aa+b+1n×ba+b,]]>對其求導dF(n)dn=0,]]>我們可以得到 由于d2F(n)dn2>0,]]>F(n)在 處有最小值。即當 時傳輸加速比最大。如果傳輸時間b很大或者發送開銷a很小時,n都將變得很大。這也就表明如果傳輸時間很小,則沒有必要并行傳輸對象。
其中發送方開銷a由網絡情況決定,傳輸時間b由文件大小和網絡帶寬決定,b=文件大小/網絡帶寬。因此在確定網絡環境的條件下,可以根據 得到各種長度的文件最優傳輸性能時所對應的理論最佳分片數。在實際應用中,要使系統性價比達到最高,還應考慮增加設備數帶來的成本開銷,則使性價比達到最優的分片參考值n參考由以下分析確定令F(n)=n×aa+b+1n×ba+b,]]>對其求導得dF(n)dn=aa+b-1n2×ba+b.]]> ε為隨著分片數增加性能增益幅度的期望值,參考值為0.7×10-3。找到第一個滿足不等式(3)的n值即為n參考,如果在區間[1,n理論]之間沒有滿足不等式(3)的n,則n參考=n理論。n參考代入(3)式的實際含義表示當分片數為n參考時,Tp/T隨分片數變化已經不太明顯,可以認為此時系統性價比達到最高。
本發明減少了擁有大量設備的系統中分配對象的開銷,提高了設備的并行性和可靠性。
圖1為本發明的流程框圖;圖2為本發明大文件分片的流程框圖;圖3為時間比Tp/T和對象個數n的關系圖;圖4為本發明算法在各虛擬系統中的傳輸總時延(a)16-OSDs,(b)32-OSDs,(c)64-OSDs;圖5為本發明算法與哈希算法以及分片映射算法的傳輸總時延在各虛擬系統中的比較(a)16-OSDs,(b)32-OSDs,(c)64-OSDs。
具體實施例方式
下面結合實施例對本發明做進一步的詳細說明。
文件長度的邊界值L定為512KB通過統計分析,在LLNL的負載中,約有85%的對象長度是512KB,15%的對象長度小于512KB,由此在設計中將文件長度的邊界值界定為512KB,更有利于發揮設備端文件系統的優勢。
在大文件中選取了最常出現的情況1MB,2MB,4MB,8MB,16MB,32MB,64MB,128MB,256MB,512MB和1GB。在網絡上選取一種典型情況帶寬為1000Mbits/秒,開銷因子為80微秒。對于1MB的文件,Message size=8Mbits,Bandwidth=1000Mbits,b=1*8/1000=0.008s=8000μs,a=80μs,n=b/a=10.]]>如圖3所示,對于1MB和2MB的文件,當n>=10時Tp/T的改變已經不明顯了。對于4MB,8MB和16MB的文件,當n>=20時Tp/T的變化不明顯。同樣,對大于32MB的文件,n>=40時Tp/T幾乎不隨n變化了。可以得到如下結論n參考=10(文件大小為1MB-2MB),n參考=20(文件大小為4MB-16MB),n參考=40(文件大小為32MB-1GB)。
實驗環境為一臺2.4GHz Intel Celeron CPU 512MB RAM的PC機,操作系統是Red Hat Linux 9.0,內核版本2.4.20。使用Matlab作為仿真軟件。首先依指數分布生成一個表示文件大小的隨機數組,然后本發明的對象分配算法應用于這些文件中,計算出相應的傳輸時延。算法以Matlab的M文件的形式實現。假設Overhead開銷因子為80微秒,網絡帶寬為1000Mb/s。且經過排序后選擇出設備應該能比隨機選擇的設備更快。根據OSD數目的不同,將仿真的情況分為下列三類16個OSD的系統,32個OSD的系統和64個OSD的系統。
表1.對象分配算法的各項統計數據
表2.哈希算法的各項統計數據
表3.分片算法的各項統計數據
從表中數值以及圖5可以看出,本發明中的對象分配算法總時延的標準差比哈希算法和分片映射算法都要小。從整體上看,本發明的對象分配算法比其他兩種算法更加穩定,并且在面向對象存儲系統擁有大量OSD時表現最好。
權利要求
1.一種面向對象存儲系統中的對象分布方法,順序包括下述步驟(1)確定文件長度邊界值L,L為256KB、512KB或1MB;(2)在元數據服務器初始化時得到設備總數N,N為正整數;(3)從客戶端得到文件長度,將文件長度與算法中界定的文件長度邊界值L進行比較,判斷是大文件還是小文件;(4)如果是小文件,直接哈希成一個對象并映射到一個設備中;(5)如果是大文件,將其分片成為幾個對象,分別放置在不同的設備里。
2.如權利要求1所述的面向對象存儲系統中的對象分布方法,其特征在于所述將大文件分片步驟包括下述過程(1)確定各種長度文件的分片參考值n參考;(2)根據設備總數N和分片參考值n參考來判斷文件分片個數np;分片參考值n參考大于設備總數N,則分片數n結果為設備總數N;分片參考值n參考小于設備總數N,則分片數np為分片數參考值n參考;(3)將設備按從存儲設備端所獲取的負載參數值,從低到高進行排序,選取負載參數值低的前np個設備;(4)將文件均勻分片映射到選取的np個設備上。
3.如權利要求1或2所述的面向對象存儲系統中的對象分布方法,其特征在于(1)確定文件長度邊界值L時,應根據具體環境中各種長度的文件所占比例;(2)確定各種文件長度下的分片參考值n參考時,根據各種長度文件分片并行傳輸的性價比隨分片數n的變化情況,選取使性價比達到最優的分片數作為分片參考值n參考。
4.如權利要求3所述的面向對象存儲系統中的對象分布方法,其特征在于確定所述性價比達到最優的分片參考值n參考時,找到第一個滿足以下不等式的n值即為n參考|aa+b-1n2×ba+b|≤ϵ,]]>(n=1,2,…,n理論)式中,a為發送方開銷,b為傳輸時間,ε為隨著分片數增加性能增益幅度的期望值,ε參考值為0.7×10-3, 如果在區間[1,n理論]之間沒有滿足不等式的n,則n參考=n理論。
全文摘要
面向對象存儲系統中的對象分布方法,屬于具有分布式存儲體系結構特點的面向對象的計算機存儲系統,目的在于結合哈希算法和分片映射算法的優點,提高設備的負載均衡性、并行性以及可靠性。本發明步驟為(1)確定文件長度邊界值L;(2)在元數據服務器初始化時得到設備總數N;(3)從客戶端得到文件長度,將文件長度與算法中界定的文件長度邊界值L進行比較,判斷是大文件還是小文件;(4)如果是小文件,直接哈希成一個對象并映射到一個設備中;(5)如果是大文件,將其分片成為幾個對象,放置在不同的設備里。本發明減少了擁有大量設備的系統中分配對象的開銷,提高了設備的并行性和可靠性。用于將對象分布到一個或多個對象存儲設備上。
文檔編號H04L29/08GK1971562SQ200610125189
公開日2007年5月30日 申請日期2006年11月29日 優先權日2006年11月29日
發明者王芳, 馮丹, 龐麗萍, 劉群, 潘磊穎, 張順達, 呂松 申請人:華中科技大學