麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

分布式文件系統及其結點、存儲方法和存儲控制方法

文檔序號:7758955閱讀:408來源:國知局
專利名稱:分布式文件系統及其結點、存儲方法和存儲控制方法
技術領域
本發明涉及,尤其涉及一種分布式文件系統及其結點、存儲方法和存儲控制方法。
背景技術
在大規模的集群系統中,存儲子系統的實現是一個很重要的方面。通常來說,數據的可靠性一般是用戶最關心的問題,不同存儲結構的實現都利用了大量的資源用來保證數據可靠性。在分布式文件系統中,這點尤其重要,因為一旦數據損壞,集群內所有的結點就都不能正常工作。但在考慮可靠性的同時,也要考慮性能的因素。因為之所以采用分布式文件系統來代替網絡文件系統或本地文件系統,就是為了能夠提供更高能力的并行數據訪問。分布式文件系統是一種在集群中對文件進行分布式存儲,并實現并行讀寫的文件系統。與傳統的文件系統比,其數據內容不存放在本地,而是存放在網絡上的專門負責數據存儲的存儲結點上。一般來說,分布式文件系統有元數據管理結點,存儲結點和服務結點組成,其中,元數據管理結點有一個或多個,存儲結點有兩個以上,集群中所有提供其他服務的結點都可作為分布式文件系統的服務結點?,F有的解決方案是利用分布式文件系統對數據進行多份備份來保證數據的可靠性。在實現本發明實施例技術方案的過程中,發明人發現上述現有技術中至少存在如下問題資源浪費嚴重,整套存儲系統最多只能利用一半的存儲空間。

發明內容
本發明要解決的技術問題是提供一種分布式文件系統及其結點、存儲方法和存儲控制方法,存儲空間利用率高。為了解決上述問題,本發明提供了一種分布式文件系統的存儲方法,所述分布式文件系統包括N個存儲結點;所述方法包括根據預定分割策略將一待保存的文件切割成M個數據對象;采用校驗算法對所述M個數據對象進行校驗,得到對應于所述待保存文件的K個校驗數據對象,所述K大于等于1 ; 將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上,其中,S小于或等于N。進一步地,所述將所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上的步驟包括將所述N個存儲結點中的S個可用的存儲結點分為第一存儲結點和第二存儲結將所述M個數據對象保存在所述第一存儲結點上;
將所述K個校驗數據對象保存在所述第二存儲結點上。本發明還提供了一種分布式文件系統的存儲控制方法,所述分布式文件系統包括 N個存儲結點、服務結點、以及元數據管理結點;所述方法包括接收所述服務結點發送的請求信息,所述請求信息針對第一待保存文件切割而成的M個數據對象和對應的K個校驗數據對象請求存儲結點;所述校驗數據對象是采用校驗算法對所述M個數據對象進行校驗得到的結果,所述K大于或等于1 ;根據所述請求信息,獲得所述N個存儲結點的狀態,從所述N個存儲結點中找出S 個可用的存儲結點,其中,S小于或等于N ;按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點,產生一個分配結果;反饋所述分配結果。 進一步地,所述按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點的步驟包括按照所述預定儲存策略將所述S個可用的存儲結點分為第一存儲結點和第二存儲結點;按照所述預定儲存策略將所述M個數據對象分配給所述第一存儲結點,將所述K 個校驗數據對象分配給所述第二存儲結點。本發明還提供了一種分布式文件系統,包括N個存儲結點,用于存儲數據;元數據管理結點;服務結點,用于將一待保存的文件根據預定分割策略切割成M個數據對象,采用校驗算法對所述M個數據對象進行校驗,得到對應于所述待保存文件的K個校驗數據對象, 所述K大于或等于1 ;向所述元數據管理結點請求針對所述待保存文件的存儲結點;所述元數據管理結點用于根據所述服務結點的請求,獲得所述存儲結點的狀態, 將S個可用的存儲結點返回給所述服務結點,并按照預定儲存策略控制所述服務結點將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上;其中,S小于或等于N。進一步地,所述服務結點還用于當從所述存儲結點讀取文件時,如果保存數據對象的存儲結點出現異常,則采用校驗算法對所讀取到的數據對象和所述校驗數據對象進行校驗,得到出現異常的存儲結點上存放的數據對象。進一步地,所述元數據管理結點按照預定儲存策略控制所述服務結點將所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上是指 所述元數據管理結點按照預定儲存策略將所述N個存儲結點中的S個可用的存儲結點分為第一存儲結點和第二存儲結點;按照預定儲存策略將所述M個數據對象分配給所述第一存儲結點,將所述K個校驗數據對象分配給所述第二存儲結點,產生一個分配結果; 按照所述分配結果控制所述服務結點將所述M個數據對象保存在所述第一存儲結點上,將所述K個校驗數據對象保存在所述第二存儲結點上。 本發明還提供了一種分布式文件系統的元數據管理結點,所述分布式文件系統還包括N個存儲結點、服務結點;所述元數據管理結點包括選擇模塊,用于當收到所述服務結點針對第一待保存文件切割而成的M個數據對象和對應的K個校驗數據對象請求存儲結點的信息后,獲得所述N個存儲結點的狀態,從所述N個存儲結點中找出S個可用的存儲結點,其中,S小于或等于N ;所述校驗數據對象是采用校驗算法對所述M個數據對象進行校驗得到的結果,所述K大于或等于1 ;分配模塊,用于按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點,產生一個分配結果;反饋模塊,用于反饋所述分配結果。進一步地,所述分配模塊按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點是指所述分配模塊按照所述預定儲存策略將所述S個可用的存儲結點分為第一存儲結點和第二存儲結點,將所述M個數據對象分配給所述第一存儲結點,將所述K個校驗數據對象分配給所述第二存儲結點。本發明還提供了一種分布式文件系統的服務結點,所述分布式文件系統包括N個存儲結點;所述服務結點包括分割模塊,用于將一個待保存的文件根據預定分割策略切割成M個數據對象;校驗模塊,用于采用校驗算法對所述M個數據對象進行校驗,得到對應于所述文件的K個校驗數據對象,所述K大于或等于1 ;請求模塊,用于向所述元數據管理結點請求所述針對待保存文件的存儲結點;保存模塊,用于當請求到S個可用的存儲結點后,將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上,其中,S小于或等于N。本發明的一個實施例至少具有以下優點可以提高存儲空間利用率,而且不依賴于特殊硬件,使用本地存儲或者低端盤陣都可以搭建可靠性很高的文件系統;本發明的另一個實施例將校驗數據文件和文件切割而成的數據文件保存在不同的存儲結點上,可以進一步提高可靠性;本發明的又一個實施例采用異或算法得到校驗數據對象,可是簡化實現方案。


圖1是實施例三中的分布式文件系統的示意框圖;圖2是實施例三中的分布式文件系統存儲文件的流程示意圖。
具體實施例方式下面將結合附圖及實施例對本發明的技術方案進行更詳細的說明。實施例一,一種分布式文件系統的存儲方法,所述分布式文件系統包括N個存儲結點;所述方法包括根據預定分割策略將一個待保存的文件切割成M個數據對象;采用校驗算法對所述M個數據對象進行校驗,得到對應于所述文件的K個校驗數據對象,所述K大于或等于1 ;
將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上,其中,S小于或等于N。本實施例中,所述預定分割策略可以是按照存儲結點的個數切割,也可以是按照設定的數據對象的大小切割;或按照其它策略切割。本實施例中,可以對切割成的M個數據對象進行編號,以區分各數據對象,或者用其它可以區分各數據對象的標識來表示不同的數據對象;對于校驗數據對象可以另外編號 (或用標識表示),只有一個校驗數據對象時,也可以用一個特殊編號或字母,比如“0”或 “X”來表示。當存儲多個文件時,可以用數據對象/校驗數據對象的編號(或標識)加上可以唯一表示一個文件的信息(比如文件名稱等)來表示一個文件體的數據對象/校驗數據對象。另外,可以為各存儲結點設立ID(標識)以區分各存儲結點。本實施例中,假如M個保存所述數據對象的存儲結點中有部分存儲結點出現異常 (存儲結點本身異?;蚱浔4娴臄祿惓?,則可以利用剩下的正常的數據對象和所述校驗數據對象得到異常的存儲結點上存放的數據對象,因此可提高存儲的可靠性,增加恢復能力。本實施例中,還可以記錄數據對象、校驗數據對象和保存它們的存儲結點之間的對應關系;可以是邊保存邊記錄;或在保存之后記錄;還可以是在保存前先確定并記錄該對應關系,然后按照該對應關系保存所述數據對象/校驗數據對象。本實施例中,可以按照預設的數據格式存儲所述對應關系;比如說,將數據對象通過哈希(hash)轉換后得到一個hash值,然后將這個hash值與存儲結點的結點id存儲起來,所存儲的對應關系就是數據對象、校驗數據對象的hash值和存儲結點id值之間的對應關系;實際應用時,也可以是保存數據對象/校驗數據對象的編號和存儲結點ID之間的對應關系,或用其它格式保存對應關系。本實施例的一種實施方式中,將數據對象和校驗數據對象分在不同的可用的存儲結點上保存;所述將所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上的步驟具體可以包括將所述N個存儲結點中的S個可用的存儲結點分為第一存儲結點和第二存儲結占.
^ \\\ 將所述M個數據對象保存在所述第一存儲結點上;將所述K個校驗數據對象保存在所述第二存儲結點上。該實施方式中,可將保存所述校驗數據對象的存儲結點稱為校驗結點。本實施例中,所述預定分割策略可以是按照存儲結點的個數切割;一個具體的例子里,是使M+K = N ;如果S = N,則是可用的存儲結點的個數和數據對象加上校驗數據對象的總個數相等,可以按照一對一的方式保存。如果S < N,則可以按照預定儲存策略保存。本實施例中,如果所述校驗數據對象有多個,則可以部分保存在所述第二存儲結點上,部分保存在所述第一存儲結點上;保存多個校驗數據對象相當于是對校驗數據對象進行了備份,因此可以進一步提高可靠性。如果保存在某個第一存儲結點上,萬一該第一存儲結點異常,則會既無法讀取該第一存儲結點保存的數據對象,也無法讀取校驗數據對象; 因此將校驗數據對象保存在第二存儲結點上,可以進一步提高可靠性。當然,也可以采取將多個校驗數據對象分別保存在不同的所述第一存儲結點上的方式來提高可靠性。需要說明的是,即使只將所述校驗數據文件保存在一個所述第一存儲結點上,由于不一定是該第一存儲結點出現異常,因此整體而言,相比于現有技術還是提高了可靠性。本實施例的一種實施方式中,所述校驗算法為異或O(OR)算法;此時,在同一時間一個存儲結點異常的情況下,可以對校驗數據對象和其它數據對象進行異或,得到該異常存儲結點上保存的數據對象。在其它實施方式中,也可以采用別的校驗算法,相應可以在多個存儲節點異常的情況下進行恢復。本實施例中,對于不同的文件,可以采用相同或不同的校驗算法,如果采用不同的校驗算法,則記錄各文件對應的校驗算法。本實施例中,不同文件對應于各自的校驗數據對象和校驗結點,不同文件對應的校驗結點可以相同或不同;各文件所對應的校驗數據對象,是用該文件對應的校驗算法對該文件切割成的數據對象進行校驗得到的;當有存儲結點出現異常需要恢復一個文件時, 采用該文件對應的校驗算法,對校驗數據對象以及該文件切割成的其它數據對象進行校驗,復原異常存儲結點上保存的數據對象。本實施例中,對于同一文件,也可以采用不同校驗算法分別得到校驗數據對象;此時,所述采用校驗算法對所述M個數據對象進行校驗,得到至少一個對應于所述文件的校驗數據對象的步驟具體可以包括分別采用不同的校驗算法對所述M個數據對象進行校驗,得到各校驗算法對應的校驗數據對象;記錄所得到的校驗數據對象和校驗算法之間的對應關系,不同的校驗數據對象之間可以用唯一標識進行區別;還可以記錄保存各校驗數據對象的存儲結點;各校驗數據對象可以保存在相同或不同的存儲結點上。該情況下,當有存儲結點出現異常需要恢復一個文件時,可以采用任一校驗算法, 對該校驗算法對應的校驗數據對象以及該文件切割成的其它數據對象進行校驗,得到出現異常的存儲結點上保存的數據對象;也可以采用多個校驗算法,分別對該校驗算法對應的校驗數據對象以及該文件切割成的其它數據對象進行校驗,然后將各次校驗得到的數據對象進行比對,以驗證所得到的數據對象的正確性。如果某個保存校驗數據對象的存儲結點也出現異常,則可以利用其它校驗數據對象和校驗算法來得到出現異常的存儲結點上保存的數據對象。其它實現細節可參見其余實施例。實施例二,一種分布式文件系統的存儲控制方法,所述分布式文件系統包括N個存儲結點、服務結點及元數據管理結點;所述方法包括接收所述服務結點發送的請求信息,所述請求信息針對第一待保存文件切割而成的M個數據對象和對應的K個校驗數據對象請求存儲結點;所述校驗數據對象是采用校驗算法對所述M個數據對象進行校驗得到的結果,所述K大于或等于1 ;根據所述請求信息,獲得所述N個存儲結點的狀態,從所述N個存儲結點中找出S 個可用的存儲結點,其中,S小于或等于N ;按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點,產生一個分配結果;反饋所述分配結果。
本實施例的一種實施方式中,所述按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點的步驟具體可以包括按照所述預定儲存策略將所述S個可用的存儲結點分為第一存儲結點和第二存儲結點;按照所述預定儲存策略將所述M個數據對象分配給所述第一存儲結點,將所述K 個校驗數據對象分配給所述第二存儲結點?!獋€具體的例子里,所述預定儲存策略可以是先從所述S個可用的存儲結點中分出K個作為第二存儲結點,然后將K個校驗數據對象按照一對一的方式分配給這K個第二存儲結點,將其余的可用的存儲結點作為第一存儲結點;也可以是先從所述S個可用的存儲結點中分出M個作為第一存儲結點,然后將M個數據對象按照一對一的方式分配給這M 個第一存儲結點,將其余的可用的存儲結點作為第二存儲結點。還可以按照預定比例,或M 與K的比例來分配第一、第二存儲結點。另一個具體的例子里,當數據對象/校驗數據對象的個數多于第一 /第二存儲結點時,可以盡量將數據對象/校驗數據對象平均分配,比如將20個數據對象分配給10個第一存儲結點時,給每個第一存儲結點分配2個;再比如將15個數據對象分配給10個第一存儲結點時,給5個第一存儲結點各分配2個,給另5個第一存儲結點各分配1個。還可以按照各存儲結點剩余空間的大小來進行分配,給空間大的存儲結點上多分配數據對象/校驗數據對象。實際應用時也不排除按照其它策略分配。其它實現細節可參見其余實施例。實施例三,一種分布式文件系統,如圖1所示,包括N個存儲結點,用于存儲數據;可看成一存儲節點集群;元數據管理結點;服務結點,用于將一待保存的文件根據預定分割策略切割成M個數據對象,采用校驗算法對所述M個數據對象進行校驗,得到對應于所述待保存文件的K個校驗數據對象, 所述K大于或等于1 ;向所述元數據管理結點請求針對所述待保存文件的存儲結點;當有多個服務結點時,可看成一服務節點集群;所述元數據管理結點用于根據所述服務結點的請求,獲得所述存儲結點的狀態, 將S個可用的存儲結點返回給所述服務結點,并按照預定儲存策略控制所述服務結點將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上;其中,S小于或等于N。本實施例中,可以對切割成的M個數據對象進行編號,以區分各數據對象,或者用其它可以區分各數據對象的標識來表示不同的數據對象;對于校驗數據對象可以另外編號 (或用標識表示),只有一個校驗數據對象時,也可以用一個特殊編號或字母,比如“0”或 “X”來表示。當存儲多個文件時,可以用數據對象/校驗數據對象的編號(或標識)加上可以唯一表示一個文件的信息(比如文件名稱等)來表示一個文件體的數據對象/校驗數據對象。另外,可以為各存儲結點設立ID(標識)以區分各存儲結點。本實施例中,所述服務結點還用于當從所述存儲結點讀取文件的數據對象時,如果保存數據對象的存儲結點出現異常(存儲結點本身異?;蚱浔4娴臄祿惓?,則采用校驗算法對所讀取到的數據對象和所述校驗數據對象進行校驗,得到出現異常的存儲結點上存放的數據對象。在SAN的存儲構架中,通常也可采用多個存儲結點掛接一個盤陣的構架來實現并行數據訪問,但是為了解決數據可靠性,需要在盤陣中添加昂貴的控制器來實現RAID功能,而且為了提高盤陣的性能,一般一個盤陣中需要多個控制器,在另一方面也使盤陣的結構更加復雜,其價格也會更高;而且在SAN的構架中,需要購買專門的光纖交換機或者高速以太網交換機來搭建存儲網絡,價格昂貴。而采用分布式文件系統,并用數據校驗的方法來解決可靠性后,可以舍棄盤陣這一特殊硬件,直接使用存儲結點的本地硬盤就能夠保證數據的可靠性,也能夠提供更高的數據讀寫性能。本實施例的一種實施方式中,將數據對象和校驗數據對象分在不同的可用的存儲結點上保存;所述服務結點所根據的預定分割策略為根據所述分布式文件系統中的存儲結點的個數N進行切割;所述元數據管理結點按照預定儲存策略控制所述服務結點將所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上可以是指所述元數據管理結點按照預定儲存策略將所述N個存儲結點中的S個可用的存儲結點分為第一存儲結點和第二存儲結點;按照預定儲存策略將所述M個數據對象分配給所述第一存儲結點,將所述K個校驗數據對象分配給所述第二存儲結點,產生一個分配結果; 按照所述分配結果控制所述服務結點將所述M個數據對象保存在所述第一存儲結點上,將所述K個校驗數據對象保存在所述第二存儲結點上。該實施方式中,可將保存所述校驗數據對象的存儲結點稱為校驗結點。本實施例中,所述預定分割策略可以是按照存儲結點的個數切割;一個具體的例子里,是使M+K = N ;如果S = N,則是可用的存儲結點的個數和數據對象加上校驗數據對象的總個數相等,可以按照一對一的方式保存。如果S < N,則可以按照預定儲存策略保存。該實施方式中,所述元數據管理結點可以只返回分配結果給所述服務結點,比如S 個可用的存儲結點中有幾個是第一存儲結點,幾個是第二存儲結點,每個第一\第二存儲結點上保存幾個數據對象/校驗數據對象;服務結點根據該分配結果將數據對象/校驗數據對象保存在所述可用的存儲結點中,然后再通知元數據管理結點記錄具體的數據對象/ 校驗數據對象和保存它們的存儲結點之間的對應關系;所述元數據管理結點也可以是直接將各數據對象/校驗數據對象分配到具體的存儲結點上并記錄,然后通知服務結點按分配結果直接保存數據對象/校驗數據對象即可。這樣所述的元數據管理結點當收到服務結點讀取所述文件的請求后,就可以反饋所記錄的保存各數據對象及所述校驗數據對象的存儲結點。該實施方式中,所述元數據管理結點可以按照預設的數據格式存儲所述對應關系;比如說,將數據對象通過哈希(hash)轉換后得到一個hash值,然后將這個hash值與存儲結點的結點id存儲起來,所存儲的對應關系就是數據對象、校驗數據對象的hash值和存儲結點id值之間的對應關系;實際應用時,也可以是保存數據對象/校驗數據對象的編號和存儲結點ID之間的對應關系,或用其它格式保存對應關系。本實施例的一種實施方式中,所述服務結點采用的校驗算法為異或O(OR)算法; 此時,在同一時間一個保存數據對象的存儲結點出現異常的情況下,所述服務結點可以對校驗數據對象和其它數據對象進行異或,得到該異常存儲結點上保存的數據對象。在其它實施方式中,所述服務結點也可以采用別的校驗算法,相應可以在多個存儲節點異常的情況下進行恢復。本實施例中,對于不同的文件,所述服務結點可以采用相同或不同的校驗算法,如果采用不同的校驗算法,則所述元數據管理結點還用于記錄各文件對應的校驗算法。本實施例中,不同文件對應于各自的校驗數據對象和校驗結點,不同文件對應的校驗結點可以相同或不同;各文件所對應的校驗數據對象,是所述服務結點用該文件對應的校驗算法對該文件切割成的數據對象進行校驗得到的;當有存儲結點出現異常需要恢復一個文件時,所述服務結點采用該文件對應的校驗算法,對校驗數據對象以及該文件切割成的其它數據對象進行校驗,復原異常存儲結點上保存的數據對象。本實施例中,對于同一文件,所述服務結點也可以采用不同校驗算法分別得到校驗數據對象;此時,所述服務結點采用校驗算法對所述M個數據對象進行校驗,得到至少一個對應于所述文件的校驗數據對象具體可以是指所述服務結點分別采用不同的校驗算法對所述M個數據對象進行校驗,得到各校驗算法對應的校驗數據對象;所述服務結點或所述元數據管理結點記錄所得到的校驗數據對象和校驗算法之間的對應關系;不同的校驗數據對象之間可以用唯一標識進行區別;所述元數據管理結點記錄還可以記錄保存各校驗數據對象的存儲結點;所述服務結點可以將各校驗數據對象保存在相同或不同的存儲結點上。該情況下,還用于當讀取一個文件時如果有保存數據對象的存儲結點出現異常, 則可以在所采用的校驗算法中選擇一個或多個,分別使用各校驗算法,對該校驗算法對應的校驗數據對象以及該文件切割成的其它數據對象進行校驗,得到出現異常的存儲結點上保存的數據對象;選擇多個校驗算法時,還可以將各次校驗得到的數據對象進行比對,以驗證所得到的數據對象的正確性。一個具體的例子中,本實施例的分布式文件系統存儲文件的具體過程如圖2所示,包括(1)服務結點向元數據管理結點提交文件寫操作的申請,元數據管理結點查看文件系統狀態,返回允許服務結點寫文件的消息。(2)服務結點對文件進行切片,生成多個數據對象。(3)服務結點根據多個文件對象生成校驗數據對象。(4)服務結點像元數據管理結點申請寫文件(包括數據對象和校驗數據對象)需要的存儲結點。元數據管理結點將數據對象、校驗數據對象和存儲結點的對應關系按照合適的數據格式進行存儲,返回可用的存儲結點和該對應關系給所述服務結點;(5)服務結點按照所述對應關系向存儲結點提交數據對象/校驗數據對象,存儲結點將數據對象/校驗數據對象存儲;寫文件成功后告知元數據管理結點,元數據管理結點保存所述對應關系以備讀文件時用。其它實現細節可參見其余實施例。實施例四,一種分布式文件系統的元數據管理結點,所述分布式文件系統包括N 個存儲結點;所述元數據管理結點包括選擇模塊,用于當收到所述服務結點針對第一待保存文件切割而成的M個數據對象和對應的K個校驗數據對象請求存儲結點的信息后,獲得所述N個存儲結點的狀態,從所述N個存儲結點中找出S個可用的存儲結點,其中,S小于或等于N ;所述校驗數據對象是采用校驗算法對所述M個數據對象進行校驗得到的結果,所述K大于或等于1 ;分配模塊,用于按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點,產生一個分配結果;反饋模塊,用于反饋所述分配結果。本實施例中,所述分配模塊按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點具體可以是指所述分配模塊按照所述預定儲存策略將所述S個可用的存儲結點分為第一存儲結點和第二存儲結點,將所述M個數據對象分配給所述第一存儲結點,將所述K個校驗數據對象分配給所述第二存儲結點。其它實現細節可參見其余實施例。實施例五,一種分布式文件系統的服務結點,所述分布式文件系統包括N個存儲結點;包括分割模塊,用于將一個待保存的文件根據預定分割策略切割成M個數據對象;校驗模塊,用于采用校驗算法對所述M個數據對象進行校驗,得到對應于所述文件的K個校驗數據對象,所述K大于或等于1 ;請求模塊,用于向所述元數據管理結點請求針對所述待保存文件的存儲結點;保存模塊,用于當請求到S個可用的存儲結點后,將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上,其中,S小于或等于N。本實施例中,所述的服務結點還可以包括讀取模塊,用于從所述存儲結點讀取文件的數據對象和校驗數據對象,如果讀取時保存數據對象的存儲結點出現異常,則將所讀取到的數據對象和所述校驗數據對象發送給所述校驗模塊;所述校驗模塊還用于采用校驗算法對所讀取到的數據對象和所述校驗數據對象進行校驗,得到出現異常的存儲結點上存放的數據對象。本實施例的一種實施方式中,所述保存模塊將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上具體可以是指所述保存模塊將所述N個存儲結點中的S個可用的存儲結點分為第一存儲結點和第二存儲結點;將所述M個數據對象保存在所述第一存儲結點上;將所述K個校驗數據對象保存在所述第二存儲結點上。該實施方式中,所述的預定分割策略為根據所述分布式文件系統中的存儲結點的個數N進行切割;M可以小于N,大于1 本實施例中,所述校驗模塊采用校驗算法對所述M個數據對象進行校驗,得到至少一個對應于所述文件的校驗數據對象具體可以是指 所述校驗模塊分別采用不同的校驗算法對所述M個數據對象進行校驗,得到各校驗算法對應的校驗數據對象;記錄所得到的校驗數據對象和校驗算法之間的對應關系;
所述保存模塊記錄保存各校驗數據對象的存儲結點。本實施例中,當讀取一個文件時如果有保存數據對象的存儲結點出現異常,所述校驗模塊可以在所采用的校驗算法中選擇一個或多個,分別使用各校驗算法,對該校驗算法對應的校驗數據對象以及該文件切割成的其它數據對象進行校驗,得到出現異常的存儲結點上保存的數據對象;選擇多個校驗算法時,將各次校驗得到的數據對象進行比對,可進一步驗證所得到的數據對象的正確性。本實施例中,所述校驗模塊采用的校驗算法可以但不限于為異或算法。其它實現細節可參見其余實施例。當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明的權利要求的保護范圍。
權利要求
1.一種分布式文件系統的存儲方法,所述分布式文件系統包括N個存儲結點;所述方法包括根據預定分割策略將一待保存的文件切割成M個數據對象;采用校驗算法對所述M個數據對象進行校驗,得到對應于所述待保存文件的K個校驗數據對象,所述K大于等于1;將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N 個存儲結點中S個可用的存儲結點上,其中,S小于或等于N。
2.如權利要求1所述的方法,其特征在于,所述將所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上的步驟包括將所述N個存儲結點中的S個可用的存儲結點分為第一存儲結點和第二存儲結點; 將所述M個數據對象保存在所述第一存儲結點上; 將所述K個校驗數據對象保存在所述第二存儲結點上。
3.一種分布式文件系統的存儲控制方法,所述分布式文件系統包括N個存儲結點、服務結點、以及元數據管理結點;所述方法包括接收所述服務結點發送的請求信息,所述請求信息針對第一待保存文件切割而成的M 個數據對象和對應的K個校驗數據對象請求存儲結點;所述校驗數據對象是采用校驗算法對所述M個數據對象進行校驗得到的結果,所述K大于或等于1 ;根據所述請求信息,獲得所述N個存儲結點的狀態,從所述N個存儲結點中找出S個可用的存儲結點,其中,S小于或等于N ;按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點,產生一個分配結果; 反饋所述分配結果。
4.如權利要求3所述的方法,其特征在于,所述按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點的步驟包括按照所述預定儲存策略將所述S個可用的存儲結點分為第一存儲結點和第二存儲結占.按照所述預定儲存策略將所述M個數據對象分配給所述第一存儲結點,將所述K個校驗數據對象分配給所述第二存儲結點。
5.一種分布式文件系統,其特征在于,包括 N個存儲結點,用于存儲數據;元數據管理結點;服務結點,用于將一待保存的文件根據預定分割策略切割成M個數據對象,采用校驗算法對所述M個數據對象進行校驗,得到對應于所述待保存文件的K個校驗數據對象,所述 K大于或等于1 ;向所述元數據管理結點請求針對所述待保存文件的存儲結點;所述元數據管理結點用于根據所述服務結點的請求,獲得所述存儲結點的狀態,將S 個可用的存儲結點返回給所述服務結點,并按照預定儲存策略控制所述服務結點將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中 S個可用的存儲結點上;其中,S小于或等于N。
6.如權利要求5所述的系統,其特征在于所述服務結點還用于當從所述存儲結點讀取文件時,如果保存數據對象的存儲結點出現異常,則采用校驗算法對所讀取到的數據對象和所述校驗數據對象進行校驗,得到出現異常的存儲結點上存放的數據對象。
7.如權利要求5所述的系統,其特征在于,所述元數據管理結點按照預定儲存策略控制所述服務結點將所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中 S個可用的存儲結點上是指所述元數據管理結點按照預定儲存策略將所述N個存儲結點中的S個可用的存儲結點分為第一存儲結點和第二存儲結點;按照預定儲存策略將所述M個數據對象分配給所述第一存儲結點,將所述K個校驗數據對象分配給所述第二存儲結點,產生一個分配結果;按照所述分配結果控制所述服務結點將所述M個數據對象保存在所述第一存儲結點上,將所述 K個校驗數據對象保存在所述第二存儲結點上。
8.一種分布式文件系統的元數據管理結點,所述分布式文件系統還包括N個存儲結點、服務結點;其特征在于,所述元數據管理結點包括選擇模塊,用于當收到所述服務結點針對第一待保存文件切割而成的M個數據對象和對應的K個校驗數據對象請求存儲結點的信息后,獲得所述N個存儲結點的狀態,從所述N 個存儲結點中找出S個可用的存儲結點,其中,S小于或等于N ;所述校驗數據對象是采用校驗算法對所述M個數據對象進行校驗得到的結果,所述K大于或等于1 ;分配模塊,用于按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點,產生一個分配結果;反饋模塊,用于反饋所述分配結果。
9.如權利要求8所述的元數據管理結點,其特征在于,所述分配模塊按照預定儲存策略將所述M個數據對象和K個校驗數據對象分配給所述S個可用的存儲結點是指所述分配模塊按照所述預定儲存策略將所述S個可用的存儲結點分為第一存儲結點和第二存儲結點,將所述M個數據對象分配給所述第一存儲結點,將所述K個校驗數據對象分配給所述第二存儲結點。
10.一種分布式文件系統的服務結點,所述分布式文件系統包括N個存儲結點;其特征在于,所述服務結點包括分割模塊,用于將一個待保存的文件根據預定分割策略切割成M個數據對象;校驗模塊,用于采用校驗算法對所述M個數據對象進行校驗,得到對應于所述文件的K 個校驗數據對象,所述K大于或等于1 ;請求模塊,用于向所述元數據管理結點請求所述針對待保存文件的存儲結點;保存模塊,用于當請求到S個可用的存儲結點后,將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上,其中,S小于或等于N。
全文摘要
本發明公開了一種分布式文件系統及其結點、存儲方法和存儲控制方法;所述存儲方法包括根據預定分割策略將一待保存的文件切割成M個數據對象;采用校驗算法對所述M個數據對象進行校驗,得到對應于所述待保存文件的K個校驗數據對象,所述K大于等于1;將與所述待保存文件對應的所述M個數據對象和所述K個校驗數據對象保存在所述N個存儲結點中S個可用的存儲結點上,其中,S小于或等于N。本發明可以提高存儲空間利用率。
文檔編號H04L29/08GK102387179SQ201010272338
公開日2012年3月21日 申請日期2010年9月2日 優先權日2010年9月2日
發明者李亞飛 申請人:聯想(北京)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 鄯善县| 娄底市| 浏阳市| 清河县| 贵溪市| 津南区| 宕昌县| 广安市| 岐山县| 廊坊市| 清远市| 金山区| 垣曲县| 大英县| 宁津县| 满洲里市| 乐清市| 溧阳市| 大洼县| 清原| 忻城县| 沁水县| 云阳县| 英吉沙县| 紫金县| 玛沁县| 沧源| 锦屏县| 米易县| 普格县| 柯坪县| 临海市| 西平县| 夏邑县| 攀枝花市| 佛学| 龙泉市| 涿鹿县| 宾川县| 西宁市| 凉山|