副本數(shù)據(jù)的存儲(chǔ)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種副本數(shù)據(jù)的存儲(chǔ)方法及裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,實(shí)現(xiàn)可靠的海量數(shù)據(jù)存儲(chǔ)變?yōu)橐粋€(gè)巨大的挑戰(zhàn)?,F(xiàn)有技術(shù)方案一般采用分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)來(lái)存儲(chǔ)數(shù)據(jù),分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)就是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上,為具有很多數(shù)據(jù)節(jié)點(diǎn)的集群系統(tǒng),也就是說(shuō),針對(duì)一份數(shù)據(jù),一般備份三個(gè)副本,將數(shù)據(jù)的三個(gè)副本分別存儲(chǔ)在三個(gè)數(shù)據(jù)節(jié)點(diǎn)中,從而在三個(gè)不同位置分別對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)以提高數(shù)據(jù)存儲(chǔ)的可靠性。然而,針對(duì)一份數(shù)據(jù),存儲(chǔ)三個(gè)副本,將會(huì)占用大量的存儲(chǔ)空間,對(duì)于存儲(chǔ)空間固定的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)而言,這明顯限制了存儲(chǔ)數(shù)據(jù)的數(shù)量。
[0003]然而,基于這種分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的存儲(chǔ)成本過(guò)高。由于數(shù)據(jù)被存儲(chǔ)在三個(gè)不同的位置,所以冗余數(shù)據(jù)占用了大約66.7%的存儲(chǔ)空間。隨著存儲(chǔ)數(shù)據(jù)量的增加,將會(huì)造成嚴(yán)重的存儲(chǔ)空間冗余。對(duì)于存儲(chǔ)空間固定的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),這將嚴(yán)重減少數(shù)據(jù)量的存儲(chǔ),增加存儲(chǔ)成本。
【發(fā)明內(nèi)容】
[0004]鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的副本數(shù)據(jù)的存儲(chǔ)方法和相應(yīng)的副本數(shù)據(jù)的存儲(chǔ)裝置。
[0005]根據(jù)本發(fā)明的一個(gè)方面,提供了一種副本數(shù)據(jù)的存儲(chǔ)方法,應(yīng)用于包括多個(gè)數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)系統(tǒng),該方法包括:
[0006]將一份副本數(shù)據(jù)劃分為η個(gè)數(shù)據(jù)分片,η為自然數(shù);
[0007]利用η個(gè)數(shù)據(jù)分片計(jì)算得到m個(gè)校驗(yàn)數(shù)據(jù)分片,m為自然數(shù),進(jìn)而得到n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片,其中,n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片中至少包含一個(gè)數(shù)據(jù)分片群組,根據(jù)數(shù)據(jù)分片群組中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中的剩余部分?jǐn)?shù)據(jù)分片;
[0008]將n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片分別存儲(chǔ)于多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,其中,數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲(chǔ)在不同的數(shù)據(jù)節(jié)點(diǎn)中。
[0009]根據(jù)本發(fā)明的另一方面,提供了一種副本數(shù)據(jù)的存儲(chǔ)裝置,應(yīng)用于包括多個(gè)數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)系統(tǒng),該裝置包括:
[0010]劃分模塊,適于將一份副本數(shù)據(jù)劃分為η個(gè)數(shù)據(jù)分片,η為自然數(shù);
[0011 ]計(jì)算模塊,適于利用η個(gè)數(shù)據(jù)分片計(jì)算得到m個(gè)校驗(yàn)數(shù)據(jù)分片,!11為自然數(shù),進(jìn)而得至IJn+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片,其中,n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片中至少包含一個(gè)數(shù)據(jù)分片群組,根據(jù)數(shù)據(jù)分片群組中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中的剩余部分?jǐn)?shù)據(jù)分片;
[0012]存儲(chǔ)模塊,適于將n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片分別存儲(chǔ)于多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,其中,數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲(chǔ)在不同的數(shù)據(jù)節(jié)點(diǎn)中。
[0013]根據(jù)本發(fā)明提供的方案,將一份副本數(shù)據(jù)劃分為η個(gè)數(shù)據(jù)分片,利用η個(gè)數(shù)據(jù)分片計(jì)算得到m個(gè)校驗(yàn)數(shù)據(jù)分片,進(jìn)而得到n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片,其中,n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片中至少包含一個(gè)數(shù)據(jù)分片群組,根據(jù)數(shù)據(jù)分片群組中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中的剩余部分?jǐn)?shù)據(jù)分片,將n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片分別存儲(chǔ)于多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,其中,數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲(chǔ)在不同的數(shù)據(jù)節(jié)點(diǎn)中,從而僅需要存儲(chǔ)n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片,即存儲(chǔ)一份副本數(shù)據(jù)和m個(gè)校驗(yàn)數(shù)據(jù)分片,便可實(shí)現(xiàn)現(xiàn)有技術(shù)方案中,針對(duì)一份數(shù)據(jù),存儲(chǔ)N份副本數(shù)據(jù)所能實(shí)現(xiàn)的高可用性,節(jié)省了存儲(chǔ)空間,降低了存儲(chǔ)成本,同時(shí)還提升了存儲(chǔ)的數(shù)據(jù)量。
[0014]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說(shuō)明】
[0015]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0016]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的副本數(shù)據(jù)的存儲(chǔ)方法的流程示意圖;
[0017]圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的副本數(shù)據(jù)的存儲(chǔ)方法的流程示意圖;
[0018]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的副本數(shù)據(jù)的存儲(chǔ)裝置的功能框圖;
[0019]圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的副本數(shù)據(jù)的存儲(chǔ)裝置的功能框圖。
【具體實(shí)施方式】
[0020]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0021]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的副本數(shù)據(jù)的存儲(chǔ)方法的流程示意圖。如圖1所示,該方法應(yīng)用于包括多個(gè)數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)系統(tǒng),包括以下步驟:
[0022]步驟SlOO,將一份副本數(shù)據(jù)劃分為η個(gè)數(shù)據(jù)分片,η為自然數(shù)。
[0023]在本發(fā)明實(shí)施例中,可以隨機(jī)的將一份副本數(shù)據(jù)劃分為η個(gè)數(shù)據(jù)分片,S卩,每個(gè)數(shù)據(jù)分片的數(shù)據(jù)量也是隨機(jī)分配的;還可以根據(jù)副本數(shù)據(jù)的數(shù)據(jù)量將一份副本數(shù)據(jù)等量劃分為η個(gè)數(shù)據(jù)分片,也就是說(shuō),η個(gè)數(shù)據(jù)分片的數(shù)據(jù)量都相等。
[0024]步驟SlOl,利用η個(gè)數(shù)據(jù)分片計(jì)算得到m個(gè)校驗(yàn)數(shù)據(jù)分片,m為自然數(shù),進(jìn)而得到n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片,其中,n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片中至少包含一個(gè)數(shù)據(jù)分片群組,根據(jù)數(shù)據(jù)分片群組中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中的剩余部分?jǐn)?shù)據(jù)分片。
[0025]舉例說(shuō)明,可以將一份副本數(shù)據(jù)劃分為6個(gè)數(shù)據(jù)分片,分別編號(hào)為1、2、3、4、5、6,利用6個(gè)數(shù)據(jù)分片計(jì)算得到3個(gè)校驗(yàn)數(shù)據(jù)分片,分別編號(hào)為7、8、9,得到9個(gè)待存儲(chǔ)的數(shù)據(jù)分片,其中,這9個(gè)待存儲(chǔ)的數(shù)據(jù)分片至少包含一個(gè)數(shù)據(jù)分片群組,例如,利用6個(gè)數(shù)據(jù)分片1、2、3、
4、5、6計(jì)算得到3個(gè)校驗(yàn)數(shù)據(jù)分片7、8、9,9個(gè)待存儲(chǔ)的數(shù)據(jù)分片包含一個(gè)數(shù)據(jù)分片群組,也就是說(shuō)9個(gè)待存儲(chǔ)的數(shù)據(jù)分片為一個(gè)數(shù)據(jù)分片群組;還利用數(shù)據(jù)分片1、4計(jì)算得到7校驗(yàn)數(shù)據(jù)分片,利用數(shù)據(jù)分片2、5計(jì)算得到8校驗(yàn)數(shù)據(jù)分片,利用數(shù)據(jù)分片3、6計(jì)算得到9校驗(yàn)數(shù)據(jù)分片,9個(gè)待存儲(chǔ)的數(shù)據(jù)分片包含三個(gè)數(shù)據(jù)分片群組,也就是說(shuō),數(shù)據(jù)分片1、4和校驗(yàn)數(shù)據(jù)分片7是一個(gè)數(shù)據(jù)分片群組,數(shù)據(jù)分片2、5和校驗(yàn)數(shù)據(jù)分片8是一個(gè)數(shù)據(jù)分片群組,數(shù)據(jù)分片3、6和校驗(yàn)數(shù)據(jù)分片9是一個(gè)數(shù)據(jù)分片群組。
[0026]根據(jù)數(shù)據(jù)分片群組中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中的剩余部分?jǐn)?shù)據(jù)分片,指當(dāng)數(shù)據(jù)分片1、4和校驗(yàn)數(shù)據(jù)分片7這個(gè)數(shù)據(jù)分片群組中的數(shù)據(jù)分片I丟失后,可以根據(jù)數(shù)據(jù)分片4和校驗(yàn)數(shù)據(jù)分片7恢復(fù)得到數(shù)據(jù)分片I。
[0027]步驟S102,將n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片分別存儲(chǔ)于多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,其中,數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲(chǔ)在不同的數(shù)據(jù)節(jié)點(diǎn)中。
[0028]在根據(jù)步驟SlOl得到n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片,將這n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片分別存儲(chǔ)于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,而且需要將數(shù)據(jù)分片群組內(nèi)的數(shù)據(jù)分片存儲(chǔ)在不同的數(shù)據(jù)節(jié)點(diǎn)中,這里將數(shù)據(jù)分片群組內(nèi)的數(shù)據(jù)分片存儲(chǔ)在不同的數(shù)據(jù)節(jié)點(diǎn)中主要是為了避免若將一個(gè)數(shù)據(jù)分片群組都存儲(chǔ)到一個(gè)數(shù)據(jù)節(jié)點(diǎn)中,當(dāng)該數(shù)據(jù)節(jié)點(diǎn)宕機(jī)時(shí),該數(shù)據(jù)節(jié)點(diǎn)中的數(shù)據(jù)將無(wú)法使用,而該數(shù)據(jù)分片群組由于都存儲(chǔ)到一個(gè)數(shù)據(jù)節(jié)點(diǎn)中,也就導(dǎo)致數(shù)據(jù)無(wú)法再恢復(fù)。
[0029]這里,以步驟SlOl中得到的9個(gè)待存儲(chǔ)的數(shù)據(jù)分片,這9個(gè)待存儲(chǔ)的數(shù)據(jù)分片包含3個(gè)數(shù)據(jù)分片群組為例,將這3個(gè)數(shù)據(jù)分片群組存儲(chǔ)到3個(gè)數(shù)據(jù)節(jié)點(diǎn)中,分別編號(hào)為數(shù)據(jù)節(jié)點(diǎn)
1、2、3,在步驟SlOl中說(shuō)明了:數(shù)據(jù)分片1、4和校驗(yàn)數(shù)據(jù)分片7是一個(gè)數(shù)據(jù)分片群組,數(shù)據(jù)分片2、5和校驗(yàn)數(shù)據(jù)分片8是一個(gè)數(shù)據(jù)分片群組,數(shù)據(jù)分片3、6和校驗(yàn)數(shù)據(jù)分片9是一個(gè)數(shù)據(jù)分片群組,因此,在存儲(chǔ)時(shí),可以將數(shù)據(jù)分片1、2、3存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)I中,數(shù)據(jù)分片4、5、6存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)2中,數(shù)據(jù)分片7、8、9存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)3中,從而將同一個(gè)數(shù)據(jù)分片群組內(nèi)的數(shù)據(jù)分片分別存儲(chǔ)到不同的數(shù)據(jù)節(jié)點(diǎn)中。
[0030]根據(jù)本發(fā)明上述實(shí)施例提供的方法,將一份副本數(shù)據(jù)劃分為η個(gè)數(shù)據(jù)分片,利用η個(gè)數(shù)據(jù)分片計(jì)算得到m個(gè)校驗(yàn)數(shù)據(jù)分片,進(jìn)而得到n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片,其中,n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片中至少包含一個(gè)數(shù)據(jù)分片群組,根據(jù)數(shù)據(jù)分片群組中的一部分?jǐn)?shù)據(jù)分片能夠恢復(fù)得到數(shù)據(jù)分片群組中的剩余部分?jǐn)?shù)據(jù)分片,將n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片分別存儲(chǔ)于多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,其中,數(shù)據(jù)分片群組的一部分?jǐn)?shù)據(jù)分片與剩余部分?jǐn)?shù)據(jù)分片存儲(chǔ)在不同的數(shù)據(jù)節(jié)點(diǎn)中,從而僅需要存儲(chǔ)n+m個(gè)待存儲(chǔ)的數(shù)據(jù)分片,即存儲(chǔ)一份副本數(shù)據(jù)和m個(gè)校驗(yàn)數(shù)據(jù)分片