亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)冗余處理方法、裝置和分布式存儲(chǔ)系統(tǒng)的制作方法

文檔序號(hào):6431026閱讀:207來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):數(shù)據(jù)冗余處理方法、裝置和分布式存儲(chǔ)系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明實(shí)施例涉及存儲(chǔ)技術(shù),尤其涉及一種數(shù)據(jù)冗余處理方法、裝置和分布式存儲(chǔ)系統(tǒng)。
背景技術(shù)
分布式存儲(chǔ)系統(tǒng)包括通過(guò)網(wǎng)絡(luò)互聯(lián)的多個(gè)存儲(chǔ)節(jié)點(diǎn),數(shù)據(jù)可以被分散地存儲(chǔ)到不同的存儲(chǔ)節(jié)點(diǎn)上,以實(shí)現(xiàn)大容量、高可靠性且易擴(kuò)展的存儲(chǔ)應(yīng)用?,F(xiàn)有的分布式存儲(chǔ)系統(tǒng)可以采用基于對(duì)象的存儲(chǔ)方式。對(duì)于這種存儲(chǔ)方式來(lái)說(shuō), 現(xiàn)有技術(shù)采用存儲(chǔ)節(jié)點(diǎn)間的多份機(jī)制以保證數(shù)據(jù)存儲(chǔ)的可靠性。具體來(lái)說(shuō),該多份機(jī)制即為將該分布式存儲(chǔ)系統(tǒng)中的某一個(gè)或者某幾個(gè)存儲(chǔ)節(jié)點(diǎn)作為主存儲(chǔ)節(jié)點(diǎn)的備份節(jié)點(diǎn)。在寫(xiě)數(shù)據(jù)時(shí),需要將數(shù)據(jù)在這些存儲(chǔ)節(jié)點(diǎn)上寫(xiě)入多份相同的數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)的冗余備份,在一個(gè)一個(gè)存儲(chǔ)節(jié)點(diǎn)發(fā)生故障時(shí),其它存儲(chǔ)節(jié)點(diǎn)上的數(shù)據(jù)是可用的。但是,上述現(xiàn)有的多份機(jī)制只是簡(jiǎn)單地向多個(gè)存儲(chǔ)節(jié)點(diǎn)中寫(xiě)入相同的數(shù)據(jù),如果要保證損壞N個(gè)存儲(chǔ)節(jié)點(diǎn)后數(shù)據(jù)仍可用,則數(shù)據(jù)至少需要重復(fù)寫(xiě)N+1份,則存儲(chǔ)節(jié)點(diǎn)的空間利用率最多為1ΛΝ+1),因此,存儲(chǔ)空間的利用率較低,存儲(chǔ)節(jié)點(diǎn)的負(fù)載增高;而且,這種多份機(jī)制不能支持多種類(lèi)型的冗余備份方式,靈活性較低。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種數(shù)據(jù)冗余處理方法、裝置和分布式存儲(chǔ)系統(tǒng)。本發(fā)明實(shí)施例提供一種數(shù)據(jù)冗余處理方法,包括采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù),所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)中任意損壞至多N個(gè)數(shù)據(jù)時(shí),能夠利用未損壞的數(shù)據(jù)恢復(fù)損壞的數(shù)據(jù),其中M為大于1的自然數(shù),N為不小于1的自然數(shù);將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,其中,每個(gè)存儲(chǔ)節(jié)點(diǎn)包含至少一個(gè)對(duì)象集,每個(gè)對(duì)象集包含至少一個(gè)對(duì)象。本發(fā)明實(shí)施例提供一種數(shù)據(jù)冗余處理裝置,包括生成模塊,用于采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù), 所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)中任意損壞至多N個(gè)數(shù)據(jù)時(shí),能夠利用未損壞的數(shù)據(jù)恢復(fù)損壞的數(shù)據(jù),其中M為大于1的自然數(shù),N為不小于1的自然數(shù);存儲(chǔ)模塊,用于將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,其中,每個(gè)存儲(chǔ)節(jié)點(diǎn)包含至少一個(gè)對(duì)象集,每個(gè)對(duì)象集包含至少一個(gè)對(duì)象。本發(fā)明實(shí)施例提供一種分布式存儲(chǔ)系統(tǒng)包括至少兩個(gè)存儲(chǔ)節(jié)點(diǎn),其中至少有一個(gè)存儲(chǔ)節(jié)點(diǎn)包括上述的數(shù)據(jù)冗余處理裝置。本發(fā)明實(shí)施例,并非在各個(gè)存儲(chǔ)節(jié)點(diǎn)上進(jìn)行多份存儲(chǔ),而是通過(guò)將切片數(shù)據(jù)和冗余片數(shù)據(jù)存儲(chǔ)在位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,從而可以實(shí)現(xiàn)存儲(chǔ)節(jié)點(diǎn)之間的冗余處
5理,在切片數(shù)據(jù)的個(gè)數(shù)大于1時(shí)可以提高存儲(chǔ)空間地利用率且降低了存儲(chǔ)節(jié)點(diǎn)的負(fù)載,另外,本發(fā)明實(shí)施例可以支持不同的冗余算法,從而滿(mǎn)足客戶(hù)不同的可靠性需求,靈活性較高。


為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例中RAIS和ObjectSet之間的關(guān)系結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例中ObjectSet和Object之間的關(guān)系結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例中存儲(chǔ)節(jié)點(diǎn)、RAIS和ObjectSet之間的關(guān)系結(jié)構(gòu)示意圖;圖4為本發(fā)明數(shù)據(jù)冗余處理方法實(shí)施例一的流程圖;圖5為本發(fā)明數(shù)據(jù)冗余處理方法實(shí)施例二的流程圖;圖6為圖5所示方法實(shí)施例二的處理過(guò)程示意圖;圖7為本發(fā)明數(shù)據(jù)冗余處理方法實(shí)施例三的流程圖;圖8為圖7所示方法實(shí)施例三的處理過(guò)程示意圖;圖9為本發(fā)明數(shù)據(jù)冗余處理方法實(shí)施例四的處理過(guò)程示意圖;圖10為本發(fā)明數(shù)據(jù)冗余處理裝置實(shí)施例一的結(jié)構(gòu)示意圖;圖11為本發(fā)明數(shù)據(jù)冗余處理裝置實(shí)施例二的結(jié)構(gòu)示意圖;圖12為本發(fā)明數(shù)據(jù)冗余處理裝置實(shí)施例三的結(jié)構(gòu)示意圖;圖13為本發(fā)明數(shù)據(jù)冗余處理裝置實(shí)施例四的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。在具體描述本實(shí)施例的技術(shù)方案之前,首先對(duì)本發(fā)明實(shí)施例中所提到的獨(dú)立冗余對(duì)象集陣列(Redundant Array of Independent objectkt,以下簡(jiǎn)稱(chēng)RAIS)、對(duì)象集(對(duì)象的組合,以下簡(jiǎn)稱(chēng)=ObjecUet)以及對(duì)象(可以是物理上的磁盤(pán),也可以是邏輯上的存儲(chǔ)空間,以下簡(jiǎn)稱(chēng)0bject)之間的關(guān)系進(jìn)行詳細(xì)說(shuō)明。圖1為本發(fā)明實(shí)施例中RAIS和ObjectSet之間的關(guān)系結(jié)構(gòu)示意圖,如圖1所示, 在本發(fā)明實(shí)施例中,一個(gè)RAIS包括多個(gè)ObjecUet。圖2為本發(fā)明實(shí)施例中ObjectSet和 Object之間的關(guān)系結(jié)構(gòu)示意圖,如圖2所示,在本發(fā)明實(shí)施例中,一個(gè)ObjectSet包括多個(gè) Object。具體來(lái)說(shuō),若干Object的集合就是一個(gè)0bjectkt,或者說(shuō)容納Object的容器就是一個(gè)ObjecUet。ObjectSet是邏輯上的概念。RAIS不是一個(gè)實(shí)體,也是一個(gè)邏輯概念。RAIS和ObjectSet之間的關(guān)系一個(gè)ObjectSet只能屬于一個(gè)RAIS。ObjectSet 和 Object 之間的關(guān)系一個(gè) Object 只能屬于一個(gè) ObjectSet0
每個(gè)ObjectSet屬于同一個(gè)物理設(shè)備,因此同一個(gè)ObjecUet內(nèi)的所有Object也屬于同一個(gè)物理設(shè)備。圖3為本發(fā)明實(shí)施例中存儲(chǔ)節(jié)點(diǎn)、RAIS和ObjectSet之間的關(guān)系結(jié)構(gòu)示意圖,如圖3所示,三個(gè)存儲(chǔ)節(jié)點(diǎn)(以下簡(jiǎn)稱(chēng)Storage Node)中每個(gè)Morage Node上均包含兩個(gè) Ob jectkt,其中,第一行虛線(xiàn)框中圈入的Ob jectSet屬于同一個(gè)RAIS,該RAIS對(duì)應(yīng)的RAIS 標(biāo)識(shí)(以下簡(jiǎn)稱(chēng)RAISID)例如可以為1,第二行虛線(xiàn)框中圈入的ObjectSet屬于同一個(gè) RAIS,該RAIS對(duì)應(yīng)的RAISID例如可以為2。需要說(shuō)明的是,圖3所示結(jié)構(gòu)可以進(jìn)一步擴(kuò)展更多個(gè)Morage Node,也可以進(jìn)一步擴(kuò)展更多個(gè)RAIS,而且,圖3所示的結(jié)構(gòu)中,一個(gè)Morage Node上也可以有兩個(gè)或者兩個(gè)以上的ObjectSet同屬于一個(gè)RAIS,其彼此之間的邏輯關(guān)系類(lèi)似,此處不再贅述?;谏鲜鰧?duì)分布式存儲(chǔ)系統(tǒng)的邏輯劃分,本發(fā)明實(shí)施例提出了下述技術(shù)方案,以提高存儲(chǔ)空間的利用率,降低存儲(chǔ)節(jié)點(diǎn)的負(fù)載,且支持多種類(lèi)型的冗余備份方式,靈活性較高。具體來(lái)說(shuō),本發(fā)明的一個(gè)實(shí)施例的技術(shù)方案可以為采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù),所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)中任意損壞至多N個(gè)數(shù)據(jù)時(shí),能夠利用未損壞的數(shù)據(jù)恢復(fù)損壞的數(shù)據(jù),其中M為大于1的自然數(shù),N為不小于1的自然數(shù);將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,其中,每個(gè)存儲(chǔ)節(jié)點(diǎn)包含至少一個(gè)對(duì)象集,每個(gè)對(duì)象集包含至少一個(gè)對(duì)象。上述實(shí)施例,可以應(yīng)用于兩種網(wǎng)絡(luò)架構(gòu)中,一種網(wǎng)絡(luò)架構(gòu)是集中式架構(gòu),另一種網(wǎng)絡(luò)架構(gòu)是分布式架構(gòu)。具體地,對(duì)于集中式架構(gòu)來(lái)說(shuō),RAIS的相關(guān)描述信息均可以存儲(chǔ)于獨(dú)立元數(shù)據(jù)服務(wù)器上,客戶(hù)端要向分布式存儲(chǔ)系統(tǒng)中寫(xiě)入數(shù)據(jù)時(shí),需要到元數(shù)據(jù)服務(wù)器上查詢(xún)獲取RAIS 的相關(guān)描述信息。在這種網(wǎng)絡(luò)架構(gòu)下,上述實(shí)施例的執(zhí)行主體可以是客戶(hù)端,該客戶(hù)端可以采用冗余算法生成待寫(xiě)入數(shù)據(jù)的切片數(shù)據(jù)和冗余片數(shù)據(jù),然后根據(jù)獲取的RAIS的相關(guān)描述信息即可將切片數(shù)據(jù)和冗余片數(shù)據(jù)發(fā)送給該RAIS中的各對(duì)象集中的對(duì)象。對(duì)于分布式架構(gòu)來(lái)說(shuō),RAIS的相關(guān)描述信息均存儲(chǔ)在分布式存儲(chǔ)系統(tǒng)的各個(gè)存儲(chǔ)節(jié)點(diǎn)上,因此,上述實(shí)施例的執(zhí)行主體可以是分布式存儲(chǔ)系統(tǒng)中的任一存儲(chǔ)節(jié)點(diǎn)。該存儲(chǔ)節(jié)點(diǎn)可以生成客戶(hù)端待寫(xiě)入數(shù)據(jù)的切片數(shù)據(jù)和冗余片數(shù)據(jù),然后存儲(chǔ)節(jié)點(diǎn)可以根據(jù)其本地存儲(chǔ)的RAIS的相關(guān)描述信息將切片數(shù)據(jù)和冗余片數(shù)據(jù)發(fā)送給該RAIS中的各對(duì)象集中的對(duì)象。需要說(shuō)明的是,本發(fā)明上述實(shí)施例中的切片數(shù)據(jù)為對(duì)原始的待寫(xiě)入數(shù)據(jù)進(jìn)行劃分后獲取的各片數(shù)據(jù),而冗余片數(shù)據(jù)可以是采用冗余算法對(duì)切片數(shù)據(jù)進(jìn)行冗余運(yùn)算獲取的幾個(gè)冗余的數(shù)據(jù),這幾個(gè)冗余的數(shù)據(jù)可是保證在切片數(shù)據(jù)和冗余片數(shù)據(jù)中任意幾個(gè)數(shù)據(jù)出錯(cuò)時(shí),采用剩余的數(shù)據(jù)均能夠恢復(fù)出原始數(shù)據(jù),而具體可以允許幾個(gè)數(shù)據(jù)出錯(cuò),則由冗余算法確定。本發(fā)明實(shí)施例,并非在各個(gè)Morage Node上進(jìn)行多份存儲(chǔ),而是通過(guò)將切片數(shù)據(jù)和冗余片數(shù)據(jù)分別存儲(chǔ)在位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,從而可以實(shí)現(xiàn)Morage Node之間的冗余處理,在切片數(shù)據(jù)的個(gè)數(shù)大于1時(shí)可以提高存儲(chǔ)空間地利用率且降低了
7Storage Node的負(fù)載,另外,本發(fā)明實(shí)施例可以支持不同的冗余算法,從而滿(mǎn)足客戶(hù)不同的可靠性需求,靈活性較高。下面采用兩個(gè)具體的實(shí)施例,對(duì)上述實(shí)施例進(jìn)行詳細(xì)說(shuō)明。圖4為本發(fā)明數(shù)據(jù)冗余處理方法實(shí)施例一的流程圖,如圖4所示,本實(shí)施例的方法可以適用于集中式網(wǎng)絡(luò)架構(gòu),本實(shí)施例的方法可以包括步驟401、向獨(dú)立元數(shù)據(jù)服務(wù)器發(fā)送存儲(chǔ)請(qǐng)求消息。在客戶(hù)端向分布式存儲(chǔ)系統(tǒng)中的各fMorage Node中寫(xiě)入數(shù)據(jù)時(shí),該客戶(hù)端可以向獨(dú)立元數(shù)據(jù)服務(wù)器發(fā)送存儲(chǔ)請(qǐng)求消息。步驟402、接收獨(dú)立元數(shù)據(jù)服務(wù)器根據(jù)所述存儲(chǔ)請(qǐng)求消息反饋的存儲(chǔ)描述信息,該存儲(chǔ)描述信息包含存儲(chǔ)標(biāo)識(shí)信息;本實(shí)施例中的寫(xiě)數(shù)據(jù)請(qǐng)求中可以包含待寫(xiě)入數(shù)據(jù)和所需寫(xiě)入的RAIS的RAISID。 舉例來(lái)說(shuō),該RAISID可以是圖3所示結(jié)構(gòu)中第一行的RAIS的RAISID,也即,該待寫(xiě)入數(shù)據(jù)需要寫(xiě)入第一行的RAISID。具體來(lái)說(shuō),在本實(shí)施例中,該獨(dú)立元數(shù)據(jù)服務(wù)器上存儲(chǔ)的RAIS的描述信息可以包含RAISID、RAIS中各對(duì)象集的標(biāo)識(shí)信息和各對(duì)象集所在存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)信息。相應(yīng)地,客戶(hù)端可以查詢(xún)獨(dú)立元數(shù)據(jù)服務(wù)器,獲取RAIS的描述信息。該RAIS描述信息中包含RAISID、RAIS中各對(duì)象集的標(biāo)識(shí)信息和各對(duì)象集所在Morage Node的標(biāo)識(shí)信息。舉例來(lái)說(shuō),該獨(dú)立元數(shù)據(jù)服務(wù)器上存儲(chǔ)的一個(gè)RAIS的描述信息的格式如下所示{RAISID, {ObjSetllD, ObjSetlIPj,…,{ObjSetnID, ObjSetnIP}}該存儲(chǔ)描述信息描述了與RAISID對(duì)應(yīng)的RAIS的各成員,其中,ObjSetllD,..., ObjSetnID即為該RAIS中的成員,ObjSetlIP, · · ·,ObjSetnIP即為各成員所在的Storage Node的地址。可以理解的是,在分布式存儲(chǔ)系統(tǒng)中有多少個(gè)RAIS,就可以對(duì)應(yīng)地在獨(dú)立元數(shù)據(jù)服務(wù)器上存儲(chǔ)多少個(gè)與上述RAIS的描述信息類(lèi)似格式的信息。本實(shí)施例并不限定獨(dú)立元數(shù)據(jù)服務(wù)器將那個(gè)RAIS的描述信息反饋給客戶(hù)端,本領(lǐng)域技術(shù)人員可以自行設(shè)計(jì)策略使獨(dú)立元數(shù)據(jù)服務(wù)器根據(jù)預(yù)設(shè)策略向客戶(hù)端反饋RAIS的描述信息,舉例來(lái)說(shuō),該策略可以是各Morage Node上的負(fù)載,獨(dú)立元數(shù)據(jù)服務(wù)器可以?xún)?yōu)先反饋負(fù)載較小的Morage Node對(duì)應(yīng)的RAIS。步驟403、采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)??蛻?hù)端可以自行采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)。需要說(shuō)明的是,步驟403也可以在步驟402之前執(zhí)行,或者與步驟402并行執(zhí)行??蛻?hù)端生成的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別與RAIS中的一個(gè)ObjecUet 中的對(duì)象對(duì)應(yīng)。以圖3所示結(jié)構(gòu)舉例來(lái)說(shuō),生成的切片數(shù)據(jù)有兩個(gè),冗余片數(shù)據(jù)有一個(gè),兩個(gè)切片數(shù)據(jù)可以與圖3中第一行的RAIS的兩個(gè)ObjectSet對(duì)應(yīng),一個(gè)冗余片數(shù)據(jù)可以與剩下的一個(gè)ObjectSet對(duì)應(yīng)。需要說(shuō)明的是,本實(shí)施例并不限定具體采用哪種冗余算法,本領(lǐng)域技術(shù)人員可以理解的是,只要能夠?qū)⒋龑?xiě)入數(shù)據(jù)生成切片數(shù)據(jù),并利用切片數(shù)據(jù)生成冗余片數(shù)據(jù)的冗余算法均可。優(yōu)選地,本實(shí)施例中的冗余算法可以采用現(xiàn)有技術(shù)中獨(dú)立磁盤(pán)冗余陣列(Redundant Array of Independent Disc,以下簡(jiǎn)稱(chēng)RAID)的算法實(shí)現(xiàn),該 RAID的算法包括RAID1,RAID5.RAID6等,或者本實(shí)施例中的冗余算法也可以采用糾刪碼的冗余算法。上述冗余算法均為現(xiàn)有技術(shù),本實(shí)施例不再贅述。可以理解的是,基于不同的冗余算法,所生成的切片數(shù)據(jù)的個(gè)數(shù)與冗余片數(shù)據(jù)的個(gè)數(shù)是不同的,例如采用RAID5這種冗余算法即可生成多個(gè)切片數(shù)據(jù)和一個(gè)冗余片數(shù)據(jù), 相應(yīng)地,采用RAID5這種冗余算法的分布式存儲(chǔ)系統(tǒng)的結(jié)構(gòu)可以在圖3所示結(jié)構(gòu)的基礎(chǔ)上再擴(kuò)展幾個(gè)Morage Node,每個(gè)Morage Node上均有一個(gè)Ob jectkt,多個(gè)切片數(shù)據(jù)和一個(gè)冗余片數(shù)據(jù)可以與Morage Node上的ObjecUet中的對(duì)象對(duì)應(yīng)。由上述描述可知,基于所采用的冗余算法將待寫(xiě)入數(shù)據(jù)生成M份切片數(shù)據(jù)和N份冗余片數(shù)據(jù),存儲(chǔ)空間的利用率為M/(M+N),因此,只要M > 1,則存儲(chǔ)空間的利用率必然大于現(xiàn)有技術(shù)中多份機(jī)制的空間利用率1ΛΝ+1)。步驟404、根據(jù)對(duì)象集的標(biāo)識(shí)信息和對(duì)象集所在存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)信息,將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)存儲(chǔ)到與所述存儲(chǔ)標(biāo)識(shí)信息對(duì)應(yīng)的位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集中的對(duì)象中。具體來(lái)說(shuō),每個(gè)Morage Node上還存儲(chǔ)了對(duì)象集描述信息,該對(duì)象集描述信息中包含所述對(duì)象集的標(biāo)識(shí)信息、對(duì)象的標(biāo)識(shí)信息以及對(duì)象的磁盤(pán)分布信息。舉例來(lái)說(shuō),本實(shí)施例中的對(duì)象集描述信息可以采用如下格式{ObjSetID, {ObjllD, ObjlDev},…,{ObjnID, 0bjnDev}}其中,ObjllD,.. .,ObjnID 即為 ObjSetID 標(biāo)識(shí)的 Objectkt 中的對(duì)象, ObjlDev, . . .,ObjnDev即為各對(duì)象對(duì)應(yīng)的磁盤(pán)分布信息。因此,每個(gè)Morage Node上的存儲(chǔ)控制器可以根據(jù)該對(duì)象集描述信息將數(shù)據(jù)存儲(chǔ)在對(duì)應(yīng)的對(duì)象中。上述實(shí)施例描述了集中式網(wǎng)絡(luò)架構(gòu)下數(shù)據(jù)的冗余處理方法,針對(duì)這種冗余處理方法,客戶(hù)端讀取數(shù)據(jù)的過(guò)程可以為查詢(xún)獨(dú)立元數(shù)據(jù)服務(wù)器,獲取與待讀出數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)描述信息;根據(jù)該存儲(chǔ)描述信息,從位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的各對(duì)象集的對(duì)象中獲取M 個(gè)切片數(shù)據(jù),對(duì)M個(gè)切片數(shù)據(jù)進(jìn)行整合處理,獲取待讀出數(shù)據(jù)。本發(fā)明上述實(shí)施例,客戶(hù)端可以采用各種冗余算法獲得M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù),并存儲(chǔ)在RAIS的各ObjecUet的對(duì)象中,從而實(shí)現(xiàn)在RAIS中的各0bjectSet之間進(jìn)行數(shù)據(jù)冗余處理,也即實(shí)現(xiàn)Morage Node之間的數(shù)據(jù)冗余處理。而且,本實(shí)施例的技術(shù)方案并非在各個(gè)Morage Node上進(jìn)行多份存儲(chǔ),而是在其中幾個(gè)Morage Node的0b jecUet 上存儲(chǔ)切片數(shù)據(jù),在另外一個(gè)或者幾個(gè)Morage Node的ObjectSet上存儲(chǔ)冗余片數(shù)據(jù),在切片數(shù)據(jù)的個(gè)數(shù)大于1時(shí)可以提高存儲(chǔ)空間地利用率且降低了 Morage Node的負(fù)載,另外,本實(shí)施例可以支持不同的冗余算法,從而滿(mǎn)足客戶(hù)不同的可靠性需求,靈活性較高。圖5為本發(fā)明數(shù)據(jù)冗余處理方法實(shí)施例二的流程圖,圖6為圖5所示方法實(shí)施例二的處理過(guò)程示意圖,如圖5和6所示,本實(shí)施例中的方法可以適用于分布式架構(gòu),本實(shí)施例的方法可以包括步驟501、作為寫(xiě)發(fā)起者(Write Initiator,以下簡(jiǎn)稱(chēng)=WI)的Storage Node接收客戶(hù)端發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,該寫(xiě)數(shù)據(jù)請(qǐng)求中包含待寫(xiě)入數(shù)據(jù)。步驟502、作為WI WMorage Node獲取本地存儲(chǔ)的所述切片數(shù)據(jù)和冗余片數(shù)據(jù)所需寫(xiě)入的存儲(chǔ)描述信息,該存儲(chǔ)描述信息包含存儲(chǔ)標(biāo)識(shí)信息。
9
在本實(shí)施例中。該存儲(chǔ)描述信息存儲(chǔ)在作為WI的Morage Node本地,該存儲(chǔ)描述信息可以包含RAISID、該存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集的標(biāo)識(shí)信息以及所述RAIS中其它對(duì)象集的標(biāo)識(shí)信息和所在存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)信息。優(yōu)選地,在每個(gè)Morage Node上,均可以存儲(chǔ)存儲(chǔ)描述信息,從而可使Morage Node互為備份。具體來(lái)說(shuō),圖6中的第一個(gè)Morage Node即為WI,該Morage Node接收客戶(hù)端發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求后,可以查詢(xún)本地存儲(chǔ)的存儲(chǔ)描述信息。舉例來(lái)說(shuō),該作為WI的Morage Node本地存儲(chǔ)的存儲(chǔ)描述信息的格式可以為{RAISID, ObjSetID, {ObjSetllD, ObjSetlIPj,…,{ObjSetnID, ObjSetnIP}}該存儲(chǔ)描述信息也描述了與RAISID對(duì)應(yīng)的RAIS的各成員,與圖4所示實(shí)施例中的存儲(chǔ)描述信息的不同之處在于,其中的ObjSetID即為作為WI WMorage Node上的成員, {ObjSetllD, ObjSetlIPj,…,{ObjSetnID, ObjSetnIP}即為該 RAIS 中其它成員和所在的 Storage Node的地址??梢岳斫獾氖牵诜植际酱鎯?chǔ)系統(tǒng)中有多少個(gè)RAIS,就可以對(duì)應(yīng)地在作為WI的Morage Node上存儲(chǔ)多少個(gè)與上述存儲(chǔ)描述信息類(lèi)似格式的信息。步驟503、作為WI WMorage Node采用冗余算法生成待寫(xiě)入數(shù)據(jù)的切片數(shù)據(jù)和冗余片數(shù)據(jù)。在本實(shí)施例中,客戶(hù)端可以不用生成切片數(shù)據(jù)和冗余片數(shù)據(jù),而又該作為WI的 Storage Node生成,簡(jiǎn)化了圖4所示方法中客戶(hù)端的操作。步驟504、作為WI WMorage Node根據(jù)對(duì)象集的標(biāo)識(shí)信息和對(duì)象集所在存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)信息,將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)存儲(chǔ)到與所述存儲(chǔ)標(biāo)識(shí)信息對(duì)應(yīng)的位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集中的對(duì)象中。 具體來(lái)說(shuō),在作為WI的Morage Node上的存儲(chǔ)控制器在獲知RAIS中各 ObjectSet的分布信息后,即可將切片數(shù)據(jù)和冗余片數(shù)據(jù)對(duì)應(yīng)地發(fā)送給各Morage Node上的Objectkt。舉例來(lái)說(shuō),本實(shí)施例中第一個(gè)Morage Node可以將兩個(gè)切片數(shù)據(jù)發(fā)送給第 —Storage Node和第二個(gè)Morage Node,將冗余片數(shù)據(jù)發(fā)送給第三個(gè)Morage Node。步驟505、各Morage Node在對(duì)象集的各對(duì)象中存儲(chǔ)數(shù)據(jù)。具體來(lái)說(shuō),每個(gè)Morage Node上還存儲(chǔ)了對(duì)象集描述信息,該對(duì)象集描述信息中包含所述對(duì)象集的標(biāo)識(shí)信息、對(duì)象的標(biāo)識(shí)信息以及對(duì)象的磁盤(pán)分布信息。舉例來(lái)說(shuō),本實(shí)施例中的對(duì)象集描述信息可以采用如下格式{ObjSetID, {ObjllD, ObjlDev},…,{ObjnID, 0bjnDev}}其中,ObjllD,.. .,ObjnID 即為 ObjSetID 標(biāo)識(shí)的 Objectkt 中的對(duì)象, ObjlDev, . . .,ObjnDev即為各對(duì)象對(duì)應(yīng)的磁盤(pán)分布信息。因此,每個(gè)Morage Node上的存儲(chǔ)控制器可以根據(jù)該對(duì)象集描述信息將數(shù)據(jù)存儲(chǔ)在對(duì)應(yīng)的對(duì)象中。步驟506、各Morage Node將存儲(chǔ)響應(yīng)發(fā)送給作為WI的Morage Node。步驟507、作為WI的Morage Node將響應(yīng)發(fā)送給客戶(hù)端。需要說(shuō)明的是,圖6僅示出了分布式存儲(chǔ)系統(tǒng)中的三個(gè)Morage Node,本領(lǐng)域技術(shù)人員可以理解的是,該分布式存儲(chǔ)系統(tǒng)還可以包括更多沒(méi)有示出的Morage Node。本發(fā)明上述實(shí)施例,作為WI的Morage Node可以采用各種冗余算法在RAIS中
10的各ObjectSet之間進(jìn)行數(shù)據(jù)冗余處理,從而可以實(shí)現(xiàn)Morage Node之間的數(shù)據(jù)冗余處理。而且,本實(shí)施例的技術(shù)方案并非在各個(gè)Morage Node上進(jìn)行多份存儲(chǔ),而是在其中幾個(gè)Morage Node的Objectkt上存儲(chǔ)切片數(shù)據(jù),在另外一個(gè)或者幾個(gè)Morage Node的 ObjectSet上存儲(chǔ)冗余片數(shù)據(jù),在切片數(shù)據(jù)的個(gè)數(shù)大于1時(shí)可以提高存儲(chǔ)空間地利用率且降低了 Morage Node的負(fù)載,另外,本實(shí)施例可以支持不同的冗余算法,從而滿(mǎn)足客戶(hù)不同的可靠性需求,靈活性較高。圖7為本發(fā)明數(shù)據(jù)冗余處理方法實(shí)施例三的流程圖,圖8為圖7所示方法實(shí)施例三的處理過(guò)程示意圖,如圖7和8所示,本實(shí)施例中的方法是在采用圖5所示方法實(shí)施例寫(xiě)入數(shù)據(jù)后的讀數(shù)據(jù)過(guò)程,本實(shí)施例的方法可以包括步驟701、作為讀發(fā)起者(Read Initiator,以下簡(jiǎn)稱(chēng)RI)的Morage Node接收客戶(hù)端發(fā)送的讀數(shù)據(jù)請(qǐng)求。需要說(shuō)明的是,本實(shí)施例中作為RI的Morage Node既可以是與上述作為WI的 Storage Node是同一個(gè)Morage Node,也可以是不同的Morage Node。本實(shí)施例也以第一個(gè)Morage Node為作為RI的Morage Node為例進(jìn)行說(shuō)明。步驟702、作為RI的Morage Node獲取本地存儲(chǔ)的與待讀取數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)描述 fn息ο步驟703、根據(jù)所述存儲(chǔ)描述信息,從位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的各對(duì)象集的對(duì)象中獲取M個(gè)切片數(shù)據(jù)。具體來(lái)說(shuō),本實(shí)施例中作為RI WMorage Node可以根據(jù)存儲(chǔ)描述信息,從各對(duì)象集中獲取切片數(shù)據(jù)。參見(jiàn)圖8可知,第一個(gè)Morage Node可以根據(jù)獲取的存儲(chǔ)描述信息獲知該第一個(gè)Storage Node與第二個(gè)Storage Node和第三個(gè)Storage Node屬于同一個(gè)RAIS。因此,該作為RI的Morage Node,即第一個(gè)Morage Node即可從本地、第二個(gè) Storage Node和第三個(gè)Morage Node的Ob jectSet上分別獲取數(shù)據(jù),該數(shù)據(jù)包括了切片數(shù)據(jù)。在具體實(shí)現(xiàn)時(shí),各Morage Node仍然可以參考上述對(duì)象集描述信息的內(nèi)容獲知在其各自的ObjecUet中對(duì)象的分布信息等。步驟704、作為RI的Morage Node對(duì)M個(gè)切片數(shù)據(jù)進(jìn)行整合處理,獲取待讀出數(shù)據(jù)。當(dāng)作為RI的Morage Node獲取到全部切片數(shù)據(jù)后,即可將這些切片數(shù)據(jù)進(jìn)行整合處理,從而獲取待讀出數(shù)據(jù)。該過(guò)程可以采用現(xiàn)有技術(shù)實(shí)現(xiàn),舉例來(lái)說(shuō),若寫(xiě)入數(shù)據(jù)時(shí)采用的冗余算法是RAID5,則讀出時(shí)也仍然按照RAID5對(duì)切片數(shù)據(jù)進(jìn)行整合。步驟705、作為RI的Morage Node將待讀出數(shù)據(jù)反饋給客戶(hù)端。需要說(shuō)明的是,圖8僅示出了分布式存儲(chǔ)系統(tǒng)中的三個(gè)Morage Node,本領(lǐng)域技術(shù)人員可以理解的是,該分布式存儲(chǔ)系統(tǒng)還可以包括更多沒(méi)有示出的Morage Node。本實(shí)施例,基于上述數(shù)據(jù)寫(xiě)入過(guò)程,在數(shù)據(jù)讀出過(guò)程中,可以分別從部署在不同 Storage Node上屬于同一個(gè)RAIS的Ob jectSet中獲取切片數(shù)據(jù),并對(duì)這些切片數(shù)據(jù)進(jìn)行整合后即可反饋給客戶(hù)端。圖9為本發(fā)明數(shù)據(jù)冗余處理方法實(shí)施例四的處理過(guò)程示意圖,如圖9所示,本實(shí)施例在圖4、圖5或者圖7的基礎(chǔ)上,在采用新的Morage Node進(jìn)行擴(kuò)容后,提出一種對(duì)象集分解和遷移的解決方案。參考圖9舉例來(lái)說(shuō),當(dāng)一個(gè)ObjectSet滿(mǎn)足下面兩個(gè)條件之一時(shí),
11即可對(duì)ObjectSet進(jìn)行分解1、一個(gè)ObjectSet容量超過(guò)閾值2、一個(gè)新的 Morage Node 加入。本實(shí)施例的圖9中僅示出了有新的Morage Node加入的情況,本領(lǐng)域技術(shù)人員可以理解的是,對(duì)于ObjectSet容量超過(guò)閾值的情況來(lái)說(shuō),其處理過(guò)程類(lèi)似,不再贅述。本實(shí)施例中針對(duì)ObjectSet進(jìn)行分解和遷移的原則為將位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的各對(duì)象集分解為至少兩個(gè)子集,根據(jù)各存儲(chǔ)節(jié)點(diǎn)上的負(fù)載狀態(tài),將分解后的至少兩個(gè)子集中的部分子集分配給所述新的存儲(chǔ)節(jié)點(diǎn)。參見(jiàn)圖9具體來(lái)說(shuō),在原來(lái)的四個(gè)Morage Node上,RAISl包括3個(gè)Objectktl, 分別分布在前三個(gè)Morage Node上,RAIS2包括3個(gè)0bjectkt2,分別分布在后三個(gè) Storage Node上。圖9在原來(lái)的四個(gè)Morage Node的基礎(chǔ)上,新增加了一個(gè)Morage Node, 即New Node。因此,本實(shí)施例可以將RAISl上的部分?jǐn)?shù)據(jù)遷移到New Node上。需要說(shuō)明的是,本實(shí)施例也可以對(duì)RAIS2上的數(shù)據(jù)進(jìn)行遷移,或者將RAISl和RAIS2上的部分?jǐn)?shù)據(jù)都遷移。本實(shí)施例對(duì)RAISl所進(jìn)行的分解和遷移過(guò)程如下將前三個(gè)Storage Node上的每個(gè)ObjectSetl分解為兩個(gè)子set,即0bjectkt3 和0bjectkt4。因?yàn)镺bjectSet是抽象概念,所以該分裂過(guò)程并不涉及數(shù)據(jù)遷移。由圖9可以看出,分解后負(fù)載最重WMorage Node為第二個(gè)Morage Node和第 H^v Storage Node,因此,本實(shí)施例可以將從第二個(gè)Morage Node和第三個(gè)Morage Node 上的0bjecUet3或者0bjecUet4對(duì)應(yīng)的數(shù)據(jù)遷移到New Node上。由圖9可以看出,在數(shù)據(jù)遷移后,各Morage Node上的負(fù)載較為均衡。上述過(guò)程給出了擴(kuò)容后,依據(jù)負(fù)載狀態(tài)對(duì)各Morage Node上的數(shù)據(jù)進(jìn)行遷移的過(guò)程,本領(lǐng)域技術(shù)人員可以理解的是,如果要?jiǎng)h除某一個(gè)或幾個(gè)M0rage Node,則可以先將待刪除的Morage Node上的數(shù)據(jù)遷移到保留的Morage Node上,然后再刪除該Morage Node。本實(shí)施例,在前述方法實(shí)施例的基礎(chǔ)上,可以針對(duì)Morage Node的擴(kuò)容和刪除進(jìn)行相應(yīng)的數(shù)據(jù)遷移,既保證了數(shù)據(jù)存儲(chǔ)的可靠性,由充分考慮到負(fù)載均衡,而且,分布式存儲(chǔ)系統(tǒng)內(nèi)部的Morage Node的管理也十分方便。圖10為本發(fā)明數(shù)據(jù)冗余處理裝置實(shí)施例一的結(jié)構(gòu)示意圖,如圖10所示,本實(shí)施例中的數(shù)據(jù)冗余處理裝置包括生成模塊11和存儲(chǔ)模塊12,其中,生成模塊11,用于采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù),所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)中任意損壞至多N個(gè)數(shù)據(jù)時(shí),能夠利用未損壞的數(shù)據(jù)恢復(fù)損壞的數(shù)據(jù),其中M為大于1的自然數(shù),N為不小于1的自然數(shù);存儲(chǔ)模塊12,用于將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,其中,每個(gè)存儲(chǔ)節(jié)點(diǎn)包含至少一個(gè)對(duì)象集, 每個(gè)對(duì)象集包含至少一個(gè)對(duì)象。本實(shí)施例的數(shù)據(jù)冗余處理裝置可以是分布式數(shù)據(jù)冗余處理裝置中的一個(gè)Morage Node中的存儲(chǔ)控制器,本實(shí)施例的數(shù)據(jù)冗余處理裝置并非在各個(gè)Morage Node上進(jìn)行多份存儲(chǔ),而是在分布式存儲(chǔ)系統(tǒng)中的一個(gè)或幾個(gè)Morage Node的ObjectSet上存儲(chǔ)切片數(shù)據(jù),在另外一個(gè)或者幾個(gè)Morage Node的ObjectSet上存儲(chǔ)冗余片數(shù)據(jù),從而實(shí)現(xiàn)了Storage Node之間的冗余處理,在切片數(shù)據(jù)的個(gè)數(shù)大于1時(shí)可以提高存儲(chǔ)空間地利用率且降低了 Morage Node的負(fù)載,另外,本發(fā)明實(shí)施例可以支持不同的冗余算法,從而滿(mǎn)足客戶(hù)不同的可靠性需求,靈活性較高。圖11為本發(fā)明數(shù)據(jù)冗余處理裝置實(shí)施例二的結(jié)構(gòu)示意圖,如圖11所示,本實(shí)施例中的數(shù)據(jù)冗余處理裝置在圖10所示數(shù)據(jù)冗余處理裝置的基礎(chǔ)上,進(jìn)一步包括寫(xiě)請(qǐng)求接收模塊13和描述信息獲取模塊14,其中寫(xiě)請(qǐng)求接收模塊13,用于接收客戶(hù)端發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,所述寫(xiě)數(shù)據(jù)請(qǐng)求中包含所述待寫(xiě)入數(shù)據(jù);描述信息獲取模塊14,用于獲取本地存儲(chǔ)的寫(xiě)入所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)所需的存儲(chǔ)描述信息,所述存儲(chǔ)描述信息包含存儲(chǔ)標(biāo)識(shí)信息。存儲(chǔ)模塊12可以具體用于將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)存儲(chǔ)到與所述存儲(chǔ)標(biāo)識(shí)信息對(duì)應(yīng)的位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集中的對(duì)象中。本實(shí)施例的數(shù)據(jù)冗余處理裝置可以用于執(zhí)行圖5所示方法實(shí)施例的方法,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。圖12為本發(fā)明數(shù)據(jù)冗余處理裝置實(shí)施例三的結(jié)構(gòu)示意圖,如圖12所示,本實(shí)施例中的數(shù)據(jù)冗余處理裝置在圖10所示數(shù)據(jù)冗余處理裝置的基礎(chǔ)上,進(jìn)一步地,包括讀請(qǐng)求接收模塊15和數(shù)據(jù)讀取模塊16,其中,讀請(qǐng)求接收模塊15,用于接收客戶(hù)端發(fā)送的讀數(shù)據(jù)請(qǐng)求;數(shù)據(jù)讀取模塊16,用于獲取本地存儲(chǔ)的與待讀取數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)描述信息;根據(jù)所述存儲(chǔ)描述信息,從位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的各對(duì)象集的對(duì)象中獲取所述M個(gè)切片數(shù)據(jù);對(duì)所述M個(gè)切片數(shù)據(jù)進(jìn)行整合處理,獲取待讀出數(shù)據(jù),并將所述待讀出數(shù)據(jù)發(fā)送給所述客戶(hù)端。本實(shí)施例的數(shù)據(jù)冗余處理裝置可以用于執(zhí)行圖7所示方法實(shí)施例的方法,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。圖13為本發(fā)明數(shù)據(jù)冗余處理裝置實(shí)施例四的結(jié)構(gòu)示意圖,如圖13所示,本實(shí)施例中的數(shù)據(jù)冗余處理裝置在圖10所示數(shù)據(jù)冗余處理裝置的基礎(chǔ)上,進(jìn)一步地,還包括分解遷移模塊17,用于將位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的各對(duì)象集分解為至少兩個(gè)子集,根據(jù)各存儲(chǔ)節(jié)點(diǎn)上的負(fù)載狀態(tài),將分解后的至少兩個(gè)子集中的部分子集分配給所述新的存儲(chǔ)節(jié)點(diǎn)。本實(shí)施例的數(shù)據(jù)冗余處理裝置可以用于執(zhí)行圖9所示處理過(guò)程,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。鑒于上述方法和數(shù)據(jù)冗余處理裝置的實(shí)施例,本發(fā)明還可以提供一種分布式存儲(chǔ)系統(tǒng),該存儲(chǔ)系統(tǒng)包括至少兩個(gè)存儲(chǔ)節(jié)點(diǎn),其中至少有一個(gè)存儲(chǔ)節(jié)點(diǎn)可以包括圖10 13 所示的數(shù)據(jù)冗余處理裝置,包括該數(shù)據(jù)冗余處理裝置的存儲(chǔ)節(jié)點(diǎn)即可為作為WI的Morage Node或者作為RI的Morage Node。本實(shí)施例的系統(tǒng),其實(shí)現(xiàn)原理和技術(shù)效果在前述方法實(shí)施例和對(duì)應(yīng)的數(shù)據(jù)冗余處理裝置實(shí)施例中已經(jīng)詳細(xì)描述,此處不再贅述。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替
13換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種數(shù)據(jù)冗余處理方法,其特征在于,包括采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù),所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)中任意損壞至多N個(gè)數(shù)據(jù)時(shí),能夠利用未損壞的數(shù)據(jù)恢復(fù)損壞的數(shù)據(jù),其中M為大于1的自然數(shù),N為不小于1的自然數(shù);將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,其中,每個(gè)存儲(chǔ)節(jié)點(diǎn)包含至少一個(gè)對(duì)象集,每個(gè)對(duì)象集包含至少一個(gè)對(duì)象。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)之前,還包括向獨(dú)立元數(shù)據(jù)服務(wù)器發(fā)送存儲(chǔ)請(qǐng)求消息;接收所述獨(dú)立元數(shù)據(jù)服務(wù)器根據(jù)所述存儲(chǔ)請(qǐng)求消息反饋的存儲(chǔ)描述信息,所述存儲(chǔ)描述信息包含存儲(chǔ)標(biāo)識(shí)信息;所述將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,包括將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)存儲(chǔ)到與所述存儲(chǔ)標(biāo)識(shí)信息對(duì)應(yīng)的位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集中的對(duì)象中。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述存儲(chǔ)描述信息還包含各對(duì)象集的標(biāo)識(shí)信息和各對(duì)象集所在存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)信息;所述將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)存儲(chǔ)到與所述存儲(chǔ)標(biāo)識(shí)信息對(duì)應(yīng)的位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集中的對(duì)象,包括根據(jù)所述對(duì)象集的標(biāo)識(shí)信息和對(duì)象集所在存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)信息,將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)對(duì)應(yīng)地存儲(chǔ)到各存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集中的對(duì)象中。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中之后,還包括查詢(xún)所述獨(dú)立元數(shù)據(jù)服務(wù)器,獲取與待讀出數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)描述信息;根據(jù)所述存儲(chǔ)描述信息,從位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的各對(duì)象集的對(duì)象中獲取所述M 個(gè)切片數(shù)據(jù);對(duì)所述M個(gè)切片數(shù)據(jù)進(jìn)行整合處理,獲取待讀出數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)之前,還包括接收客戶(hù)端發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,所述寫(xiě)數(shù)據(jù)請(qǐng)求中包含所述待寫(xiě)入數(shù)據(jù);所述將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中之前,還包括獲取本地存儲(chǔ)的寫(xiě)入所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)所需的存儲(chǔ)描述信息,所述存儲(chǔ)描述信息包含存儲(chǔ)標(biāo)識(shí)信息;所述將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,包括將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)存儲(chǔ)到與所述存儲(chǔ)標(biāo)識(shí)信息對(duì)應(yīng)的位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集中的對(duì)象中。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述存儲(chǔ)描述信息還包含所述至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)中的本地存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集的標(biāo)識(shí)信息以及其它存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集的標(biāo)識(shí)信息和所述其它存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)信息;所述將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)存儲(chǔ)到與所述存儲(chǔ)標(biāo)識(shí)信息對(duì)應(yīng)的位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集中的對(duì)象中,包括根據(jù)所述本地存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集的標(biāo)識(shí)信息以及所述其它存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集的標(biāo)識(shí)信息和所述其它存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)信息,將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)對(duì)應(yīng)地存儲(chǔ)到各存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集中的對(duì)象中。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中之后,還包括接收客戶(hù)端發(fā)送的讀數(shù)據(jù)請(qǐng)求;獲取本地存儲(chǔ)的與待讀取數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)描述信息;根據(jù)所述存儲(chǔ)描述信息,從位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的各對(duì)象集的對(duì)象中獲取所述M 個(gè)切片數(shù)據(jù);對(duì)所述M個(gè)切片數(shù)據(jù)進(jìn)行整合處理,獲取待讀出數(shù)據(jù),并將所述待讀出數(shù)據(jù)發(fā)送給所述客戶(hù)端。
8.根據(jù)權(quán)利要求3、4、6或7所述的方法,其特征在于,所述將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,包括獲取與所述對(duì)象集的標(biāo)識(shí)信息對(duì)應(yīng)的對(duì)象集描述信息,所述對(duì)象集描述信息中包含所述對(duì)象集的標(biāo)識(shí)信息、對(duì)象的標(biāo)識(shí)信息以及對(duì)象的磁盤(pán)分布信息;根據(jù)所述對(duì)象的標(biāo)識(shí)信息以及對(duì)象的磁盤(pán)分布信息,在各對(duì)象中存儲(chǔ)數(shù)據(jù)。
9.根據(jù)權(quán)利要求1 7中任一項(xiàng)所述的方法,其特征在于,在采用新的存儲(chǔ)節(jié)點(diǎn)進(jìn)行擴(kuò)容時(shí),所述方法還包括將位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的各對(duì)象集分解為至少兩個(gè)子集,根據(jù)各存儲(chǔ)節(jié)點(diǎn)上的負(fù)載狀態(tài),將分解后的至少兩個(gè)子集中的部分子集分配給所述新的存儲(chǔ)節(jié)點(diǎn)。
10.一種數(shù)據(jù)冗余處理裝置,其特征在于,包括生成模塊,用于采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù),所述 M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)中任意損壞至多N個(gè)數(shù)據(jù)時(shí),能夠利用未損壞的數(shù)據(jù)恢復(fù)損壞的數(shù)據(jù),其中M為大于1的自然數(shù),N為不小于1的自然數(shù);存儲(chǔ)模塊,用于將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,其中,每個(gè)存儲(chǔ)節(jié)點(diǎn)包含至少一個(gè)對(duì)象集,每個(gè)對(duì)象集包含至少一個(gè)對(duì)象。
11.根據(jù)權(quán)利要求10所述的設(shè)備,其特征在于,還包括寫(xiě)請(qǐng)求接收模塊,用于接收客戶(hù)端發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,所述寫(xiě)數(shù)據(jù)請(qǐng)求中包含所述待寫(xiě)入數(shù)據(jù);描述信息獲取模塊,用于獲取本地存儲(chǔ)的寫(xiě)入所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)所需的存儲(chǔ)描述信息,所述存儲(chǔ)描述信息包含存儲(chǔ)標(biāo)識(shí)信息;所述存儲(chǔ)模塊具體用于將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)存儲(chǔ)到與所述存儲(chǔ)標(biāo)識(shí)信息對(duì)應(yīng)的位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象集中的對(duì)象中。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其特征在于,還包括讀請(qǐng)求接收模塊,用于接收客戶(hù)端發(fā)送的讀數(shù)據(jù)請(qǐng)求;數(shù)據(jù)讀取模塊,用于獲取本地存儲(chǔ)的與待讀取數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)描述信息;根據(jù)所述存儲(chǔ)描述信息,從位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的各對(duì)象集的對(duì)象中獲取所述M個(gè)切片數(shù)據(jù);對(duì)所述M個(gè)切片數(shù)據(jù)進(jìn)行整合處理,獲取待讀出數(shù)據(jù),并將所述待讀出數(shù)據(jù)發(fā)送給所述客戶(hù)端。
13.根據(jù)權(quán)利要求10 12中任一項(xiàng)所述的設(shè)備,其特征在于,還包括分解遷移模塊,用于將位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的各對(duì)象集分解為至少兩個(gè)子集,根據(jù)各存儲(chǔ)節(jié)點(diǎn)上的負(fù)載狀態(tài),將分解后的至少兩個(gè)子集中的部分子集分配給所述新的存儲(chǔ)節(jié)點(diǎn)。
14.一種分布式存儲(chǔ)系統(tǒng),其特征在于,包括至少兩個(gè)存儲(chǔ)節(jié)點(diǎn),其中至少有一個(gè)存儲(chǔ)節(jié)點(diǎn)包括權(quán)利要求10 13中任一項(xiàng)所述的數(shù)據(jù)冗余處理裝置。
全文摘要
本發(fā)明實(shí)施例提供一種數(shù)據(jù)冗余處理方法、裝置和分布式存儲(chǔ)系統(tǒng)。方法,包括采用冗余算法生成待寫(xiě)入數(shù)據(jù)的M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù),所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)中任意損壞至多N個(gè)數(shù)據(jù)時(shí),能夠利用未損壞的數(shù)據(jù)恢復(fù)損壞的數(shù)據(jù),其中M為大于1的自然數(shù),N為不小于1的自然數(shù);將所述M個(gè)切片數(shù)據(jù)和N個(gè)冗余片數(shù)據(jù)分別存儲(chǔ)到位于至少兩個(gè)存儲(chǔ)節(jié)點(diǎn)上的對(duì)象中,其中,每個(gè)存儲(chǔ)節(jié)點(diǎn)包含至少一個(gè)對(duì)象集,每個(gè)對(duì)象集包含至少一個(gè)對(duì)象。本發(fā)明實(shí)施例可以提高存儲(chǔ)空間地利用率且降低了存儲(chǔ)負(fù)載,另外可以支持不同的冗余算法,從而滿(mǎn)足客戶(hù)不同的可靠性需求,靈活性較高。
文檔編號(hào)G06F11/14GK102279777SQ20111023737
公開(kāi)日2011年12月14日 申請(qǐng)日期2011年8月18日 優(yōu)先權(quán)日2011年8月18日
發(fā)明者曹宇 申請(qǐng)人:成都市華為賽門(mén)鐵克科技有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1