本申請涉及一種分布式獨(dú)立冗余磁盤陣列Raid存儲(chǔ)方法,該方法包括:將分布式集群系統(tǒng)中服務(wù)器的存儲(chǔ)介質(zhì)劃分為數(shù)據(jù)塊;選擇Raid級別,且將所述數(shù)據(jù)塊進(jìn)行分組,以及根據(jù)Raid級別選擇一個(gè)或多個(gè)所述數(shù)據(jù)塊作為所述組對應(yīng)的校驗(yàn)數(shù)據(jù)塊;記錄數(shù)據(jù)塊劃分信息,該數(shù)據(jù)塊劃分信息包括所述Raid級別,分組信息和所述組對應(yīng)的校驗(yàn)數(shù)據(jù)塊的信息,以及所述數(shù)據(jù)塊與所述服務(wù)器的對應(yīng)信息;根據(jù)所述數(shù)據(jù)塊劃分信息,對分組后的所述數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊進(jìn)行寫入操作。本申請還涉及一種分布式集群存儲(chǔ)系統(tǒng)。本申請把不同的數(shù)據(jù)塊進(jìn)行冗余校驗(yàn)計(jì)算,可以在相同安全保證的前提下大大降低對存儲(chǔ)介質(zhì)的消耗,從而大大節(jié)約成本。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請涉及存儲(chǔ)領(lǐng)域,尤其涉及一種分布式獨(dú)立冗余磁盤陣列存儲(chǔ)方法及分布式集群存儲(chǔ)系統(tǒng)。
技術(shù)介紹
獨(dú)立冗余磁盤陣列(RedundantArray of Independent Disk,簡稱 Raid)技術(shù)在存儲(chǔ)領(lǐng)域已經(jīng)有了廣泛的應(yīng)用。Raid技術(shù)是一種把多塊獨(dú)立的硬盤(物理硬盤)按不同的方式組合起來形成一個(gè)硬盤組(邏輯硬盤),從而提供比單個(gè)硬盤更高的存儲(chǔ)性能和提供數(shù)據(jù)備份技術(shù)。根據(jù)磁盤陳列的不同組合方式,可以將Raid分為不同的級別。 磁盤陣列中針對不同的應(yīng)用使用的不同技術(shù),稱為Raid level (Raid級別)而每一 level都代表著不同技術(shù)。根據(jù)用戶的操作環(huán)境及應(yīng)用來選擇Raid級別。一般的Raid實(shí)現(xiàn)是并行的將數(shù)據(jù)寫入多塊磁盤介質(zhì),同時(shí)計(jì)算校驗(yàn)信息,寫入校驗(yàn)磁盤。在一組磁盤中允許一定數(shù)量的存儲(chǔ)介質(zhì)損壞而不會(huì)導(dǎo)致數(shù)據(jù)丟失,但是Raid —般用于單機(jī)環(huán)境。下面介紹下Raid5和Raid6技術(shù)中如何計(jì)算校驗(yàn)信息,Raid5的校驗(yàn)算法是異或算法,通過計(jì)算異或(XOR)的方式來實(shí)現(xiàn)容錯(cuò),也就是說,對于接收的數(shù)據(jù),進(jìn)行分塊,并計(jì)算校驗(yàn)后,分別存儲(chǔ)于不同的磁盤中。如將接收的數(shù)據(jù)分成數(shù)據(jù)塊0、1和2,檢驗(yàn)信息為PO = 0Θ1 @2,其中,@為異或運(yùn)算。當(dāng)其中的一個(gè)數(shù)據(jù)塊出現(xiàn)問題時(shí),通過計(jì)算異或,可得到對應(yīng)的數(shù)據(jù)。例如,假設(shè)數(shù)據(jù)塊O出現(xiàn)故障,此時(shí)可采用如下方式計(jì)算數(shù)據(jù)塊O中的數(shù)據(jù)數(shù)據(jù)塊O=PO 1 2 = 0 1 2 1 2=0 1 1 2 2Raid6是采用雙重校驗(yàn)的方法計(jì)算校驗(yàn)信息。第一種校驗(yàn),采用異或(XOR)方法,來計(jì)算P ;另一種則為采用李德所羅門編碼方式,來計(jì)算校驗(yàn)Q。從而使得即使RAID6損壞兩個(gè)存儲(chǔ)設(shè)備時(shí),也能夠完成正常的操作。例如,假設(shè)有4個(gè)數(shù)據(jù)塊,即數(shù)據(jù)塊0、1、2、3,分別通過以下兩式計(jì)算P和Q :po = o l 2 3QO = (KOOO) θ(Κ1Θ1) θ(Κ2Θ2) θ(Κ3Θ3)其中,Θ為伽羅瓦域(Galois Field)計(jì)算操作,KO K3是系數(shù)。如果丟失一個(gè)數(shù)據(jù)盤和P盤,那么就需要從Q和其它數(shù)據(jù)盤進(jìn)行恢復(fù)。丟失兩個(gè)數(shù)據(jù)盤,則從Q、P和其他數(shù)據(jù)盤恢復(fù)。現(xiàn)在的分布式集群存儲(chǔ)系統(tǒng),就是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的存儲(chǔ)設(shè)備上。存儲(chǔ)設(shè)備一般都采用廉價(jià)PC和廉價(jià)存儲(chǔ)介質(zhì)。這使得存儲(chǔ)介質(zhì)損壞成為經(jīng)常發(fā)生的事情。為了保證數(shù)據(jù)不丟失,目前的分布式集群存儲(chǔ)系統(tǒng)采用將一份數(shù)據(jù)寫多份冗余備份的方式。一旦有存儲(chǔ)介質(zhì)損壞則從冗余備份中恢復(fù)。這樣的解決方案隨著冗余備份數(shù)的增加,消耗的存儲(chǔ)資源也成倍增加,從而增加了存儲(chǔ)成本。
技術(shù)實(shí)現(xiàn)思路
本申請的目的是提供一種分布式獨(dú)立冗余磁盤陣列存儲(chǔ)方法及分布式集群存儲(chǔ)系統(tǒng),利用Raid技術(shù)的校驗(yàn)思想以解決現(xiàn)有技術(shù)中分布式存儲(chǔ)系統(tǒng)的存儲(chǔ)資源龐大,以及帶來的高存儲(chǔ)成本。為實(shí)現(xiàn)上述目的,本申請?zhí)峁┝艘环N分布式Raid存儲(chǔ)方法。該方法包括將分布式集群系統(tǒng)中多個(gè)服務(wù)器的存儲(chǔ)介質(zhì)劃分為數(shù)據(jù)塊;將所述數(shù)據(jù)塊進(jìn)行分組,以及根據(jù)Raid級別選擇一個(gè)或多個(gè)所述數(shù)據(jù)塊作為所述組對應(yīng)的校驗(yàn)數(shù)據(jù)塊;記錄數(shù)據(jù)塊劃分信息,所述數(shù)據(jù)塊劃分信息包括所述Raid級別、分組信息和所述組與校驗(yàn)數(shù)據(jù)塊的對應(yīng)信息,以及所述數(shù)據(jù)塊與所述服務(wù)器的對應(yīng)信息;根據(jù)所述數(shù)據(jù)塊劃分信息,對分組后的所述數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊進(jìn)行寫入操作。其中,所述組中的所述數(shù)據(jù)塊和所述校驗(yàn)數(shù)據(jù)塊是按照數(shù)據(jù)安全性要求分布在所述分布式集群系統(tǒng)中的服務(wù)器中。所述根據(jù)所述數(shù)據(jù)塊劃分信息,對分組后的所述數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊進(jìn)行寫入操作具體為中心節(jié)點(diǎn)接收到客戶端的數(shù)據(jù)寫入請求后,選擇待寫入數(shù)據(jù)的一個(gè)數(shù)據(jù)塊,并將所述數(shù)據(jù)塊相關(guān)的所述數(shù)據(jù)塊劃分信息通知客戶端;所述待寫入數(shù)據(jù)的一個(gè)數(shù)據(jù)塊對應(yīng)的服務(wù)器,根據(jù)客戶端發(fā)起的寫入數(shù)據(jù)的請求和客戶端附加的所述數(shù)據(jù)塊劃分信息中的Raid級別所對應(yīng)的校驗(yàn)算法,計(jì)算校驗(yàn)信息,并將待寫入數(shù)據(jù)寫入對應(yīng)數(shù)據(jù)塊中,并將所述校驗(yàn)信息附加所述數(shù)據(jù)塊劃分信息,傳送給所述組對應(yīng)的校驗(yàn)數(shù)據(jù)塊所在的服務(wù)器;所述組對應(yīng)的校驗(yàn)數(shù)據(jù)塊所在的服務(wù)器將所述校驗(yàn)信息根據(jù)所述數(shù)據(jù)塊劃分信息中的所述Raid級別所對應(yīng)的校驗(yàn)算法進(jìn)行計(jì)算,將計(jì)算結(jié)果寫入所述校驗(yàn)數(shù)據(jù)塊。進(jìn)一步地,所述的分布式獨(dú)立冗余磁盤陣列存儲(chǔ)方法還包括所述數(shù)據(jù)塊對應(yīng)的服務(wù)器和所述校驗(yàn)數(shù)據(jù)塊對應(yīng)的服務(wù)器向所述分布式集群系統(tǒng)的中心節(jié)點(diǎn)上報(bào)寫入完成信肩、O進(jìn)一步地,所述根據(jù)所述數(shù)據(jù)塊劃分信息,對分組后的所述數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊進(jìn)行寫入操作之后還包括待讀取的一個(gè)數(shù)據(jù)塊所對應(yīng)的服務(wù)器根據(jù)發(fā)起的讀取數(shù)據(jù)的請求,讀取待讀取的一個(gè)數(shù)據(jù)塊上的數(shù)據(jù)。進(jìn)一步地,所述根據(jù)所述數(shù)據(jù)塊劃分信息,對分組后的所述數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊進(jìn)行寫入操作之后還包括當(dāng)所述數(shù)據(jù)塊中的數(shù)據(jù)塊損壞時(shí),按照所述Raid級別所對應(yīng)的校驗(yàn)算法,將所述組中剩余的所述數(shù)據(jù)塊和所述校驗(yàn)數(shù)據(jù)塊中的數(shù)據(jù)進(jìn)行計(jì)算,來恢復(fù)所述損壞的數(shù)據(jù)塊的數(shù)據(jù)。進(jìn)一步地,所述根據(jù)所述數(shù)據(jù)塊劃分信息,對分組后的所述數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊進(jìn)行寫入操作之后還包括當(dāng)待讀取的所述數(shù)據(jù)塊損壞時(shí),將從所述組中剩余的所述數(shù)據(jù)塊中和所述校驗(yàn)數(shù)據(jù)塊中按照偏移量和字節(jié)長度分別讀取出的數(shù)據(jù),按照所述Raid級別所對應(yīng)的校驗(yàn)算法進(jìn)行計(jì)算,將所述計(jì)算結(jié)果作為所述損壞的待讀取的所述數(shù)據(jù)塊中的數(shù)據(jù)。所述根據(jù)客戶端發(fā)起的寫入數(shù)據(jù)的請求和客戶端附加的所述數(shù)據(jù)塊劃分信息中的Raid級別所對應(yīng)的校驗(yàn)算法,計(jì)算校驗(yàn)信息,并將待寫入數(shù)據(jù)寫入對應(yīng)數(shù)據(jù)塊中具體包括所述Raid級別為Raid5,按照所述Raid5對應(yīng)的校驗(yàn)算法,所述待寫入的一個(gè)數(shù)據(jù)塊對應(yīng)的服務(wù)器根據(jù)所述寫入數(shù)據(jù)的請求中的偏移量和字節(jié)長度,從所述待寫入的一個(gè)數(shù)據(jù)塊中讀出所述字節(jié)長度個(gè)字節(jié);將讀出的所述字節(jié)長度個(gè)字節(jié)與待寫入數(shù)據(jù)進(jìn)行按位異或,獲得異或結(jié)果作為校驗(yàn)信息;將所述待寫入數(shù)據(jù)寫入所述一個(gè)數(shù)據(jù)塊中。所述組對應(yīng)的校驗(yàn)數(shù)據(jù)塊所在的服務(wù)器將所述校驗(yàn)信息根據(jù)所述Raid級別所對應(yīng)的校驗(yàn)算法計(jì)算,將計(jì)算結(jié)果寫到所述校驗(yàn)數(shù)據(jù)塊上具體包括所述校驗(yàn)數(shù)據(jù)塊對應(yīng)的服務(wù)器接收到所述校驗(yàn)信息后,根據(jù)所述偏移量和字節(jié)長度,從所述校驗(yàn)數(shù)據(jù)塊中讀出所述字節(jié)長度個(gè)字節(jié);將讀出的所述校驗(yàn)數(shù)據(jù)塊中的所述字節(jié)長度個(gè)字節(jié)與接收到的所述校驗(yàn)信息按照所述Raid5對應(yīng)的校驗(yàn)算法進(jìn)行按位異或計(jì)算,將計(jì)算的異或的結(jié)果寫入所述偏移量的存儲(chǔ)位置處。本申請還提供了一種分布式集群存儲(chǔ)系統(tǒng),該系統(tǒng)包括中心節(jié)點(diǎn),包括劃分單元,用于將分布式集群系統(tǒng)中服務(wù)器的存儲(chǔ)介質(zhì)劃分為數(shù)據(jù)塊;選擇分組單元,用于選擇Raid級別,且將所述數(shù)據(jù)塊進(jìn)行分組,以及根據(jù)Raid級別選擇一個(gè)或多個(gè)所述數(shù)據(jù)塊作為所述組對應(yīng)的校驗(yàn)數(shù)據(jù)塊;記錄單元,用于將所述Raid級別,分組信息和所述組對應(yīng)的校驗(yàn)數(shù)據(jù)塊的信息,以及與所述服務(wù)器的對應(yīng)信息記錄于數(shù)據(jù)塊劃分信息;以及劃分有多個(gè)所述數(shù)據(jù)塊的所述服務(wù)器,用于根據(jù)所述數(shù)據(jù)塊劃分信息,對分組后的所述數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊進(jìn)行寫入操作。本申請分布式Raid存儲(chǔ)方法及分布式集群存儲(chǔ)系統(tǒng)由于采用Raid技術(shù)的校驗(yàn)思想,把不同的數(shù)據(jù)塊進(jìn)行冗余校驗(yàn)計(jì)算,可以在相同安全保證的前提下大大降低對存儲(chǔ)介質(zhì)的消耗,從而大大節(jié)約存儲(chǔ)成本。附圖說明圖I為本申請分布式Raid存儲(chǔ)方法的流程圖;圖2為本申請分布式集群系統(tǒng)示意圖。具體實(shí)施本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種分布式獨(dú)立冗余磁盤陣列Raid存儲(chǔ)方法,其特征在于,包括:將分布式集群系統(tǒng)中多個(gè)服務(wù)器的存儲(chǔ)介質(zhì)劃分為數(shù)據(jù)塊;將所述數(shù)據(jù)塊進(jìn)行分組,以及根據(jù)Raid級別選擇一個(gè)或多個(gè)所述數(shù)據(jù)塊作為所述組對應(yīng)的校驗(yàn)數(shù)據(jù)塊;記錄數(shù)據(jù)塊劃分信息,所述數(shù)據(jù)塊劃分信息包括所述Raid級別、分組信息和所述組與校驗(yàn)數(shù)據(jù)塊的對應(yīng)信息,以及所述數(shù)據(jù)塊與所述服務(wù)器的對應(yīng)信息;根據(jù)所述數(shù)據(jù)塊劃分信息,對分組后的所述數(shù)據(jù)塊和校驗(yàn)數(shù)據(jù)塊進(jìn)行寫入操作。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:褚大鵬,
申請(專利權(quán))人:阿里巴巴集團(tuán)控股有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會(huì)獲得科技券。