一種數(shù)據(jù)存儲方法、數(shù)據(jù)存儲設(shè)備和分布式存儲系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開一種數(shù)據(jù)存儲方法、數(shù)據(jù)存儲設(shè)備和分布式存儲系統(tǒng),屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。所述數(shù)據(jù)存儲方法包括:分布式存儲系統(tǒng)的接入節(jié)點(diǎn)將用戶寫入的數(shù)據(jù)塊切分成若干預(yù)定大小的數(shù)據(jù)分片;采用冗余校驗(yàn)算法計(jì)算出切分得到的若干數(shù)據(jù)分片對應(yīng)的若干校驗(yàn)分片;將所述數(shù)據(jù)分片和所述校驗(yàn)分片存儲到所述分布式存儲系統(tǒng)的數(shù)據(jù)節(jié)點(diǎn)中,且每個(gè)數(shù)據(jù)分片和每個(gè)校驗(yàn)分片僅存儲一個(gè)副本。根據(jù)本發(fā)明,能夠在保證數(shù)據(jù)可靠性的前提下,降低冗余數(shù)據(jù)占比,從而節(jié)省了存儲空間。
【專利說明】一種數(shù)據(jù)存儲方法、數(shù)據(jù)存儲設(shè)備和分布式存儲系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體涉及一種數(shù)據(jù)存儲方法、數(shù)據(jù)存儲設(shè)備和分布式存儲系統(tǒng)。
【背景技術(shù)】
[0002]Cassandra是依賴分布式哈希表(Distributed Hash Table, DHT)技術(shù)實(shí)現(xiàn)的一種典型的無中心節(jié)點(diǎn)的環(huán)形結(jié)構(gòu)的分布式存儲系統(tǒng)。DHT是一種分布式存儲技術(shù),在不需要中心節(jié)點(diǎn)的情況下,每個(gè)存儲節(jié)點(diǎn)負(fù)責(zé)一個(gè)小范圍的路由,并負(fù)責(zé)存儲小部分?jǐn)?shù)據(jù),從而實(shí)現(xiàn)整個(gè)DHT分布式集群的尋址和存儲。
[0003]Cassandra的數(shù)據(jù)存儲空間可以抽象為一個(gè)環(huán)形結(jié)構(gòu),數(shù)據(jù)就是通過hash (哈希)分散在這個(gè)環(huán)形存儲空間上。分布式存儲系統(tǒng)的每個(gè)節(jié)點(diǎn)負(fù)責(zé)管理這個(gè)環(huán)形存儲空間上的某一塊連續(xù)的范圍(也叫Range),落在此Range空間上的數(shù)據(jù)就存儲在這個(gè)節(jié)點(diǎn)上。如圖1所示,在具有A/B/C/D四個(gè)節(jié)點(diǎn)規(guī)模的集群中,存儲空間被劃分成了 R0/R1/R2/R3四個(gè)Range,每個(gè)節(jié)點(diǎn)負(fù)責(zé)的Range分布如下表所示:
[0004]
【權(quán)利要求】
1.一種數(shù)據(jù)存儲方法,包括: 分布式存儲系統(tǒng)的接入節(jié)點(diǎn)將用戶寫入的數(shù)據(jù)塊切分成若干預(yù)定大小的數(shù)據(jù)分片; 采用冗余校驗(yàn)算法計(jì)算出切分得到的若干數(shù)據(jù)分片對應(yīng)的若干校驗(yàn)分片; 將所述數(shù)據(jù)分片和所述校驗(yàn)分片存儲到所述分布式存儲系統(tǒng)的數(shù)據(jù)節(jié)點(diǎn)中,且每個(gè)數(shù)據(jù)分片和每個(gè)校驗(yàn)分片僅存儲一個(gè)副本。
2.如權(quán)利要求1所述的數(shù)據(jù)存儲方法,其中,所述將所述數(shù)據(jù)分片和所述校驗(yàn)分片存儲到所述分布式存儲系統(tǒng)的數(shù)據(jù)節(jié)點(diǎn)中,包括: 分別計(jì)算各數(shù)據(jù)分片和各校驗(yàn)分片的數(shù)字簽名; 根據(jù)各自的數(shù)字簽名將各數(shù)據(jù)分片和各校驗(yàn)分片分別存儲到所述分布式存儲系統(tǒng)的一個(gè)數(shù)據(jù)節(jié)點(diǎn)中。
3.如權(quán)利要求2所述的數(shù)據(jù)存儲方法,其中,還包括: 對所有數(shù)字簽名進(jìn)行編碼形成元數(shù)據(jù); 將所述元數(shù)據(jù)存儲到所述分布式存儲系統(tǒng)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)中。
4.如權(quán)利要求2所述的數(shù)據(jù)存儲方法,其中,所述采用冗余校驗(yàn)算法計(jì)算出切分得到的若干數(shù)據(jù)分片對應(yīng)的若干校驗(yàn)分片,包括: 將切分得到的若個(gè)數(shù)據(jù)分片劃分成若干組數(shù)據(jù)分片,其中,每組數(shù)據(jù)分片包括第一預(yù)定數(shù)目個(gè)數(shù)據(jù)分片; 采用冗余校驗(yàn)算法分別計(jì)算出各組數(shù)據(jù)分片對應(yīng)的第二預(yù)定數(shù)目個(gè)校驗(yàn)分片。
5.如權(quán)利要求4所述的數(shù)據(jù)存儲方法,其中,還包括: 以每組數(shù)據(jù)分片和對應(yīng)的校驗(yàn)分片作為一個(gè)條帶單元,對所述條帶單元對應(yīng)的所有數(shù)字簽名進(jìn)行編碼形成元數(shù)據(jù); 將所述元數(shù)據(jù)存儲到所述分布式存儲系統(tǒng)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)中。
6.如權(quán)利要求3或5所述的數(shù)據(jù)存儲方法,其中,所述編碼為JSON編碼。
7.如權(quán)利要求2所述的數(shù)據(jù)存儲方法,其中,所述分布式存儲系統(tǒng)為Cassandra系統(tǒng)。
8.一種數(shù)據(jù)存儲設(shè)備,位于分布式存儲系統(tǒng)的接入節(jié)點(diǎn)中,所述數(shù)據(jù)存儲設(shè)備包括: 數(shù)據(jù)切分單元,適于將用戶寫入的數(shù)據(jù)塊切分成若干預(yù)定大小的數(shù)據(jù)分片; 校驗(yàn)計(jì)算單元,適于采用冗余校驗(yàn)算法計(jì)算出切分得到的若干數(shù)據(jù)分片對應(yīng)的若干校驗(yàn)分片; 存儲分配單元,適于將所述數(shù)據(jù)分片和所述校驗(yàn)分片存儲到所述分布式存儲系統(tǒng)的數(shù)據(jù)節(jié)點(diǎn)中,且每個(gè)數(shù)據(jù)分片和每個(gè)校驗(yàn)分片僅存儲一個(gè)副本。
9.如權(quán)利要求8所述的數(shù)據(jù)存儲設(shè)備,其中,所述存儲分配單元進(jìn)一步適于: 分別計(jì)算各數(shù)據(jù)分片和各校驗(yàn)分片的數(shù)字簽名; 根據(jù)各自的數(shù)字簽名將各數(shù)據(jù)分片和各校驗(yàn)分片分別存儲到所述分布式存儲系統(tǒng)的一個(gè)數(shù)據(jù)節(jié)點(diǎn)中。
10.一種包括如權(quán)利要求8?9中任一項(xiàng)所述的數(shù)據(jù)存儲設(shè)備的分布式存儲系統(tǒng)。
【文檔編號】G06F12/06GK103699494SQ201310657140
【公開日】2014年4月2日 申請日期:2013年12月6日 優(yōu)先權(quán)日:2013年12月6日
【發(fā)明者】王 鋒 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司