專利名稱:云存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及云存儲(chǔ)系統(tǒng),特點(diǎn)是一種基于里的所羅門的云存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理方法。
背景技術(shù):
在當(dāng)今風(fēng)起云涌的時(shí)代,云存儲(chǔ)作為云的基礎(chǔ)架構(gòu)和最廣泛的應(yīng)用得到了極大的重視。在云存儲(chǔ)系統(tǒng)中,用戶數(shù)據(jù)存放于系統(tǒng)的云端,而構(gòu)成云端的存儲(chǔ)節(jié)點(diǎn)是用戶不可控的。用戶的數(shù)據(jù)可能被未經(jīng)授權(quán)的第三方挖掘比對或者惡意篡改。同時(shí),在云端單個(gè)或者多個(gè)存儲(chǔ)節(jié)點(diǎn)缺失、失效的情況下(隨著云端的擴(kuò)展,存儲(chǔ)節(jié)點(diǎn)故障的幾率將增加),用戶數(shù)據(jù)丟失的可能性極大。上述情況表明,云存儲(chǔ)的發(fā)展亟需 一種能完全保證用戶數(shù)據(jù)完整性、隱私性和可靠性的安全機(jī)制。目前基于所有的云存儲(chǔ)技術(shù)都是采用一種類似Hadoop(云計(jì)算的一種開源軟件)系統(tǒng)中的HDFS (Hadoop Distributed File System,即Hadoop分布式文件系統(tǒng))。該技術(shù)主要是將一個(gè)數(shù)據(jù)文件按照設(shè)定的大小分成若干塊,再通過對每一個(gè)數(shù)據(jù)完整備份(例如Hadoop中的HDFS設(shè)置有3份相同備份)來提高可靠性,該技術(shù)的缺點(diǎn)是浪費(fèi)存儲(chǔ)空間。里的所羅門糾錯(cuò)編碼方法其原理是,計(jì)算信息碼符多項(xiàng)式除以校驗(yàn)碼生成多項(xiàng)式之后的余數(shù),具體公式是F mod D = C;其中F為原始數(shù)據(jù),D是生成多項(xiàng)式,C為生成的冗余糾錯(cuò)數(shù)據(jù)。mod為求余運(yùn)算。而在解碼時(shí),為簡單起見,假定存入原始的信息符號(hào)為m3、m2、mQ和由此產(chǎn)生的檢驗(yàn)符號(hào)Q1'Q。,而讀出的符號(hào)為m3' > m2/、m/ > m0/、Q/和Qc/ ,如果計(jì)算由此得到的校正子S0和S1不全為0,則說明有差錯(cuò),再通過計(jì)算錯(cuò)誤多項(xiàng)式以及錯(cuò)誤值,將錯(cuò)誤糾正過來。該方法廣泛應(yīng)用于DVD光盤數(shù)據(jù)的處理,該編碼方法能很好的提高對原始數(shù)據(jù)的糾錯(cuò)能力,能將數(shù)據(jù)的隨機(jī)錯(cuò)誤率從2X10—2降低到1X10—15。在本發(fā)明中我們將該編碼方法將一個(gè)數(shù)組形式的數(shù)據(jù)塊,在橫向和縱向分別進(jìn)行里的所羅門編碼,獲得橫向和縱向糾錯(cuò)冗余數(shù)據(jù),這樣就對數(shù)據(jù)進(jìn)行了雙重的糾錯(cuò)保護(hù),提高了糾錯(cuò)能力,而且這些冗余數(shù)據(jù)只占原來數(shù)據(jù)量的13%。正是由于在較低的數(shù)據(jù)冗余的情況下能如此高效的進(jìn)行數(shù)據(jù)糾錯(cuò),而一般的云存儲(chǔ)系統(tǒng)均未采取此種糾錯(cuò)方法,只是通過數(shù)據(jù)備份來達(dá)到數(shù)據(jù)恢復(fù)的能力,一般云存儲(chǔ)系統(tǒng)均須備份3份及以上,顯然將極大地浪費(fèi)數(shù)據(jù)的存儲(chǔ)空間,提高成本,
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,提供了一種云存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理方法,該方法將提高云存儲(chǔ)系統(tǒng)中數(shù)據(jù)的安全性,可恢復(fù)性,降低數(shù)據(jù)備份數(shù)目,極大的節(jié)約數(shù)據(jù)的存儲(chǔ)空間,降低成本。
本發(fā)明的技術(shù)解決方案如下一種云存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理方法,其特點(diǎn)在于,對云存儲(chǔ)系統(tǒng)的數(shù)據(jù)存入和數(shù)據(jù)提取分別采用里的所羅門編碼數(shù)據(jù)糾錯(cuò)編碼處理和里的所羅門糾錯(cuò)解碼處理。所述的數(shù)據(jù)存入方法,包括以下具體步驟①將待存儲(chǔ)的原始數(shù)據(jù)分成K個(gè)幀數(shù)據(jù),每個(gè)幀數(shù)據(jù)包含相同的固定長度N比特的數(shù)據(jù),當(dāng)最后一個(gè)原始數(shù)據(jù)幀的數(shù)據(jù)長度小于N時(shí),對最后一塊數(shù)據(jù)幀填充數(shù)據(jù)‘0’,以達(dá)到長度N,其中K為大于大于I的正整數(shù),N的取值范圍為200 < N < 2000 ②對所述的每一個(gè)數(shù)據(jù)幀加上編號(hào),S卩ID,得到一個(gè)新數(shù)據(jù)幀,所述的ID長為4個(gè)字節(jié),從0001開始遞加,故新的數(shù)據(jù)幀的長度為(N+4);③將所述的新的K個(gè)數(shù)據(jù)幀再組合為W個(gè)數(shù)據(jù)塊,每一個(gè)數(shù)據(jù)塊包含M個(gè)數(shù)據(jù)幀,形成一個(gè)M*(N+4)的數(shù)據(jù)矩陣,當(dāng)最后一個(gè)數(shù)據(jù)塊的數(shù)據(jù)幀的個(gè)數(shù)小于M時(shí),對該數(shù)據(jù)塊填充‘0’數(shù)據(jù)幀,以使最后一個(gè)數(shù)據(jù)塊達(dá)到固定的數(shù)據(jù)幀M,其中M,W的取值范圍分別為200
<M < 2000,W = K/M ;④對所述的數(shù)據(jù)塊采用里的所羅門乘積碼糾錯(cuò)編碼方法進(jìn)行糾錯(cuò)編碼將第i個(gè)數(shù)據(jù)塊的行和列分別添加Po,P1個(gè)糾錯(cuò)的冗余數(shù)據(jù)進(jìn)行編碼,轉(zhuǎn)化成一個(gè)包含(M+P0)*(N+4+PI)個(gè)數(shù)據(jù)的里的所羅門數(shù)據(jù)塊,其中,Ptl, P1分別為數(shù)據(jù)塊中一行和一列增加的用于糾錯(cuò)的冗余數(shù)據(jù)個(gè)數(shù),且0 <PQ <M/2,0 <PX <M/2,1 < i ^M;⑤將所述的每一個(gè)里的所羅門數(shù)據(jù)塊按列分解成M+匕個(gè)數(shù)據(jù)片,將同一個(gè)數(shù)據(jù)塊的M+匕個(gè)數(shù)據(jù)片的數(shù)據(jù)分別存儲(chǔ)到云存儲(chǔ)系統(tǒng)的多個(gè)存儲(chǔ)器上,且同一存儲(chǔ)器中,同一個(gè)數(shù)據(jù)塊的片數(shù)< P1A片;所述的數(shù)據(jù)提取方法,包括下列步驟①讀取出屬于同一數(shù)據(jù)塊的數(shù)據(jù)片,如果第i片中出現(xiàn)h/2個(gè)數(shù)據(jù)讀取錯(cuò)誤,根 據(jù)里的所羅門乘積碼的糾錯(cuò)解碼算法,對該第i片的數(shù)據(jù)糾錯(cuò),恢復(fù)出原始數(shù)據(jù);②讀取完同一數(shù)據(jù)塊的所有的數(shù)據(jù)片,如果在讀取該數(shù)據(jù)塊時(shí)有少于P1A片出現(xiàn)丟失或者無法讀取,計(jì)算機(jī)按里的所羅門乘積碼的解碼算法,對該少于P1A片數(shù)據(jù)糾錯(cuò),恢復(fù)出原始數(shù)據(jù);③重復(fù)步驟①、②,讀取并處理完屬于同一個(gè)原始數(shù)據(jù)的所有數(shù)據(jù)塊,去掉糾錯(cuò)冗余數(shù)據(jù),將所有數(shù)據(jù)塊的新數(shù)據(jù)幀按原編號(hào)ID順序排列,再去掉編號(hào),得到原始存儲(chǔ)的數(shù)據(jù)。本發(fā)明的技術(shù)效果I、本發(fā)明的最顯著效果為,對原始數(shù)據(jù)塊的行和列均進(jìn)行了里的所羅門糾錯(cuò)編碼,達(dá)到了雙重糾錯(cuò)的能力,并且將這些經(jīng)糾錯(cuò)后的數(shù)據(jù)塊重新分片存儲(chǔ)到云系統(tǒng)中的不同存儲(chǔ)器上,這樣不僅能對各個(gè)存儲(chǔ)器上的片數(shù)據(jù)能進(jìn)行糾錯(cuò),并且當(dāng)云系統(tǒng)中有一定數(shù)目的存儲(chǔ)器出現(xiàn)故障造成一些片數(shù)據(jù)不能讀取時(shí),依然可得到完全的恢復(fù),這極大的提高了系統(tǒng)的可靠性。2、一般的云存儲(chǔ)系統(tǒng)需要將原始數(shù)據(jù)復(fù)制多份來確保數(shù)據(jù)的安全(一般云存儲(chǔ)系統(tǒng)均須備份3份及以上),本發(fā)明可以減少在確保存儲(chǔ)數(shù)據(jù)安全時(shí)使用的冗余存儲(chǔ)量(可以只需備份兩份或者一份),這將極大的節(jié)約的數(shù)據(jù)的存儲(chǔ)空間,降低成本,使云存儲(chǔ)系統(tǒng)空間得到更加充分的利用。
3、本發(fā)明的另一顯著特點(diǎn)是,由于數(shù)據(jù)是被分散存儲(chǔ)在多個(gè)存儲(chǔ)器上的,所以當(dāng)外部有人非法入侵云系統(tǒng)中某單一存儲(chǔ)器時(shí),所獲得的數(shù)據(jù)都是不完整的,也就提高了在面對系統(tǒng)外部的非法入侵時(shí),數(shù)據(jù)的安全性。
具體實(shí)施例方式下面結(jié)合實(shí)例對本發(fā)明做進(jìn)一步說明,但不應(yīng)以此限制本發(fā)明的保護(hù)范圍。本實(shí)例用于對一個(gè)100MB的原始數(shù)據(jù)進(jìn)行云存儲(chǔ),具體實(shí)施步驟如下步驟一,將一個(gè)100MB的原始待存儲(chǔ)的數(shù)據(jù)分成102401幀數(shù)據(jù),每一幀數(shù)據(jù)為固定長度1020個(gè)比特的數(shù)據(jù)。所述將待存儲(chǔ)數(shù)據(jù)分為固定長度1020的102401幀數(shù)據(jù),最后一塊原始數(shù)據(jù)幀長度小于255時(shí),對最后一塊數(shù)據(jù)幀填充數(shù)據(jù)‘0’,以達(dá)到長度1020。 步驟二,對所述的每一個(gè)數(shù)據(jù)幀加上編號(hào),即ID,得到新的數(shù)據(jù)幀。所述將每一幀數(shù)據(jù)加上ID,ID長為4個(gè)字節(jié),從I開始遞加,實(shí)例中ID號(hào)從I到102401。步驟三,將所述的數(shù)據(jù)幀再組合為若干個(gè)數(shù)據(jù)塊,每一個(gè)數(shù)據(jù)塊包含1024個(gè)數(shù)據(jù)幀,共得到100個(gè)這樣的數(shù)據(jù)塊。所述將數(shù)據(jù)幀再組合為數(shù)據(jù)塊,這些數(shù)據(jù)幀將組成一個(gè)1024*1024的數(shù)據(jù)矩陣,形成一個(gè)數(shù)據(jù)塊,如果最后一個(gè)數(shù)據(jù)塊數(shù)據(jù)幀個(gè)數(shù)少于1024,對最后一塊數(shù)據(jù)塊填充數(shù)據(jù)‘0’,以達(dá)到固定數(shù)據(jù)塊數(shù)1024。步驟四,通過里的所羅門糾錯(cuò)編碼,將第i個(gè)包含1024*1024個(gè)數(shù)據(jù)的數(shù)據(jù)塊的行和列分別進(jìn)行編碼,轉(zhuǎn)化成一個(gè)包含(1024+P0)*(1024+PI)個(gè)數(shù)據(jù)的數(shù)據(jù)塊,其中0 < i<=M0 PO = PI = 100為數(shù)據(jù)塊中一行和一列增加的用于糾錯(cuò)的冗余數(shù)據(jù)個(gè)數(shù)。具體公式是F mod D = C;本實(shí)施例中F為1024位數(shù)據(jù),D是生成多項(xiàng)式,C為生成的100個(gè)冗余糾錯(cuò)數(shù)據(jù)。mod為求余運(yùn)算。步驟五,將上述得到的每一個(gè)數(shù)據(jù)塊按列分解成1024+100片,將同一個(gè)數(shù)據(jù)塊得到的若干片數(shù)據(jù)分別存儲(chǔ)到若干個(gè)云存儲(chǔ)系統(tǒng)的存儲(chǔ)器上,且同一存儲(chǔ)器上中同一個(gè)數(shù)據(jù)塊的片數(shù)不能多于50塊。步驟六,實(shí)例中當(dāng)從云存儲(chǔ)系統(tǒng)中讀取數(shù)據(jù)時(shí),通過RS-PC中的解碼算法,解碼出需要提取的數(shù)據(jù)。所述從云存儲(chǔ)系統(tǒng)中讀取出數(shù)據(jù),是指I)讀取出屬于同一數(shù)據(jù)塊的不同片,第i片中出現(xiàn)少于50個(gè)數(shù)據(jù)讀取錯(cuò)誤,根據(jù)里的所羅門糾錯(cuò)解碼算法,可以將整片數(shù)據(jù)糾錯(cuò),恢復(fù)成原始數(shù)據(jù);2)讀取完同一數(shù)據(jù)塊的不同片,如果在讀取這些片時(shí)有少于50片出現(xiàn)丟失或者無法讀取,根據(jù)里的所羅門糾錯(cuò)解碼算法,可以將該段數(shù)據(jù)糾錯(cuò),恢復(fù)出來。3)讀取完所有屬于同一個(gè)原始數(shù)據(jù)的不同數(shù)據(jù)塊,去掉糾錯(cuò)冗余數(shù)據(jù),將這些數(shù)據(jù)塊按編號(hào)(I到102401)順序排列,再去掉編號(hào),最終得到原始存儲(chǔ)的數(shù)據(jù)。
權(quán)利要求
1.一種云存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理方法,其特征在于,對云存儲(chǔ)系統(tǒng)的數(shù)據(jù)存入和數(shù)據(jù)提取分別采用里的所羅門編碼數(shù)據(jù)糾錯(cuò)編碼處理和里的所羅門糾錯(cuò)解碼處理。
2.根據(jù)權(quán)利要求I所述的云存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理方法,其特征在于所述的數(shù)據(jù)存入方法,包括以下具體步驟 ①將待存儲(chǔ)的原始數(shù)據(jù)分成K個(gè)幀數(shù)據(jù),每個(gè)幀數(shù)據(jù)包含相同的固定長度N比特的數(shù)據(jù),當(dāng)最后一個(gè)原始數(shù)據(jù)幀的數(shù)據(jù)長度小于N時(shí),對最后一塊數(shù)據(jù)幀填充數(shù)據(jù)‘O’,以達(dá)到長度N,其中K為大于大于I的正整數(shù),N的取值范圍為200 < N < 2000 ②對所述的每一個(gè)數(shù)據(jù)幀加上編號(hào),即ID,得到一個(gè)新數(shù)據(jù)幀,所述的ID長為4個(gè)字節(jié),從0001開始遞加,故新的數(shù)據(jù)幀的長度為(N+4); ③將所述的新的K個(gè)數(shù)據(jù)幀再組合為W個(gè)數(shù)據(jù)塊,每一個(gè)數(shù)據(jù)塊包含M個(gè)數(shù)據(jù)幀,形成一個(gè)M*(N+4)的數(shù)據(jù)矩陣,當(dāng)最后一個(gè)數(shù)據(jù)塊的數(shù)據(jù)幀的個(gè)數(shù)小于M時(shí),對該數(shù)據(jù)塊填充‘0’數(shù)據(jù)幀,以使最后一個(gè)數(shù)據(jù)塊達(dá)到固定的數(shù)據(jù)幀M,其中M,W的取值范圍分別為200<M < 2000,W = K/M ; ④對所述的數(shù)據(jù)塊采用里的所羅門乘積碼糾錯(cuò)編碼方法進(jìn)行糾錯(cuò)編碼將第i個(gè)數(shù)據(jù)塊的行和列分別添加Po,P1個(gè)糾錯(cuò)的冗余數(shù)據(jù)進(jìn)行編碼,轉(zhuǎn)化成一個(gè)包含(M+hXN+4+PD個(gè)數(shù)據(jù)的里的所羅門數(shù)據(jù)塊,其中,Po,P1分別為數(shù)據(jù)塊中一行和一列增加的用于糾錯(cuò)的冗余數(shù)據(jù)個(gè)數(shù),且 0 < P。< M/2,0 < P1 < M/2),I < i 彡 M ; ⑤將所述的每一個(gè)里的所羅門數(shù)據(jù)塊按列分解成M+匕個(gè)數(shù)據(jù)片,將同一個(gè)數(shù)據(jù)塊的M+P0個(gè)數(shù)據(jù)片的數(shù)據(jù)分別存儲(chǔ)到云存儲(chǔ)系統(tǒng)的多個(gè)存儲(chǔ)器上,且同一存儲(chǔ)器中,同一個(gè)數(shù)據(jù)塊的片數(shù)彡P(guān)1A片;
3.根據(jù)權(quán)利要求I所述云存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理方法,其特征是,所述的數(shù)據(jù)提取方法,包括下列步驟 ①讀取出屬于同一數(shù)據(jù)塊的數(shù)據(jù)片,如果第i片中出現(xiàn)Po/2個(gè)數(shù)據(jù)讀取錯(cuò)誤,根據(jù)里的所羅門乘積碼的糾錯(cuò)解碼算法,對該第i片的數(shù)據(jù)糾錯(cuò),恢復(fù)出原始數(shù)據(jù); ②讀取完同一數(shù)據(jù)塊的所有的數(shù)據(jù)片,如果在讀取該數(shù)據(jù)塊時(shí)有少于P1A片出現(xiàn)丟失或者無法讀取,計(jì)算機(jī)按里的所羅門乘積碼的解碼算法,對該少于P1A片數(shù)據(jù)糾錯(cuò),恢復(fù)出原始數(shù)據(jù); ③重復(fù)步驟①、②,讀取并處理完屬于同一個(gè)原始數(shù)據(jù)的所有數(shù)據(jù)塊,去掉糾錯(cuò)冗余數(shù)據(jù),將所有數(shù)據(jù)塊的新數(shù)據(jù)幀按原編號(hào)ID順序排列,再去掉編號(hào),得到原始存儲(chǔ)的數(shù)據(jù)。
全文摘要
一種云存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理方法,對云存儲(chǔ)系統(tǒng)的數(shù)據(jù)存入和數(shù)據(jù)提取分別采用里的所羅門編碼數(shù)據(jù)糾錯(cuò)編碼處理和里的所羅門糾錯(cuò)解碼處理。本發(fā)明提高云存儲(chǔ)系統(tǒng)中數(shù)據(jù)的安全性,可恢復(fù)性,降低數(shù)據(jù)備份數(shù)目,可節(jié)約數(shù)據(jù)的存儲(chǔ)空間,降低成本。
文檔編號(hào)G06F11/08GK102968356SQ20111045694
公開日2013年3月13日 申請日期2011年12月30日 優(yōu)先權(quán)日2011年12月30日
發(fā)明者劉濤, 阮昊 申請人:中國科學(xué)院上海光學(xué)精密機(jī)械研究所