Raid1和raid4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種RAID1和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)及方法,其中系統(tǒng)包括多個邏輯上相互獨立的冗余組:冗余組的結(jié)構(gòu)為RAID1和RAID4的混合結(jié)構(gòu),包括多個數(shù)據(jù)節(jié)點和一個校驗節(jié)點:數(shù)據(jù)節(jié)點,用于將寫操作的數(shù)據(jù)塊緩存;使用RAID1方式,將寫操作的數(shù)據(jù)塊發(fā)送到校驗節(jié)點,形成RAID1鏡像;校驗節(jié)點,用于將寫操作的數(shù)據(jù)塊緩存,并與冗余組的其他數(shù)據(jù)節(jié)點的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行異步冗余計算,在校驗信息存儲后,發(fā)送數(shù)據(jù)遷移命令;數(shù)據(jù)節(jié)點,還用于接收數(shù)據(jù)遷移命令,將寫操作的數(shù)據(jù)塊遷移至RAID4數(shù)據(jù)集。其有效解決了集中式冗余管理方式中控制節(jié)點成為性能瓶頸的問題。
【專利說明】RAID1和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機存儲領(lǐng)域,特別是涉及一種RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)及方法。
【背景技術(shù)】
[0002]獨立冗余磁盤陣列(RedundantArrays Of Independent Disks, RAID)技術(shù)是一種提供增強冗余、容量和存儲性能的存儲方法,有著較強的可管理性、可靠性和可用性。通過冗余計算,RAID技術(shù)能夠在滿足可靠性要求的前提下,降低系統(tǒng)的容量開銷。將RAID技術(shù)應(yīng)用于網(wǎng)絡(luò)存儲系統(tǒng)的研究經(jīng)歷了從集中式控制到分布式控制,從單一 RAID模式到混合RAID模式的發(fā)展過程。在大規(guī)模網(wǎng)絡(luò)存儲系統(tǒng)中,由于需要考慮復(fù)雜網(wǎng)絡(luò)環(huán)境對性能的影響,所以一些存儲系統(tǒng)采用混合RAID模式。
[0003]其中,AutoRAID通過將最近使用的數(shù)據(jù)放在以RAIDl存儲的高性能的硬盤中,將不太常用的數(shù)據(jù)放在以RAID5存儲的經(jīng)濟高效的硬盤中,由于RAIDl與RAID5數(shù)據(jù)是分離存儲的,因此,在網(wǎng)絡(luò)環(huán)境下將大批數(shù)據(jù)從RAIDl遷移到RAID5上,會帶來巨大的網(wǎng)絡(luò)帶寬和磁盤帶寬消耗,不適合在分布環(huán)境下使用;DPGADR采用與AutoRAID相似的結(jié)構(gòu),通過復(fù)制和延遲校驗塊生成的方法提高網(wǎng)絡(luò)存儲系統(tǒng)性能,但是,在DPGADR中,由于RAID5部分為降級方式存儲,因此,冷數(shù)據(jù)的讀寫性能較差;而采用網(wǎng)絡(luò)存儲系統(tǒng)的后端冗余集中管理方式,由于冗余管理節(jié)點本身不存儲數(shù)據(jù),數(shù)據(jù)和校驗信息都存儲在存儲節(jié)點上,因此數(shù)據(jù)和校驗信息的讀寫會帶來巨大的網(wǎng)絡(luò)帶寬消耗,同時增加了存儲節(jié)點對數(shù)據(jù)和校驗信息的管理難度,并且在應(yīng)用服務(wù)器與節(jié)點間網(wǎng)絡(luò)故障的情況下,數(shù)據(jù)的讀寫操作不能正常進行。
【發(fā)明內(nèi)容】
[0004]基于此,有必要針對集中式冗余管理方法性能瓶頸問題,以及在節(jié)點故障情況下數(shù)據(jù)不能正常訪問的問題,提供一種RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)及方法。
[0005]一種RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng),用于與應(yīng)用服務(wù)器連接進行數(shù)據(jù)的寫操作或讀操作,包括多個邏輯上相互獨立的冗余組:
[0006]所述冗余組的結(jié)構(gòu)為RAIDl和RAID4的混合結(jié)構(gòu);
[0007]所述冗余組包括多個數(shù)據(jù)節(jié)點和一個校驗節(jié)點:
[0008]所述數(shù)據(jù)節(jié)點,用于在所述冗余組接到所述應(yīng)用服務(wù)器的寫操作請求時,將寫操作的數(shù)據(jù)塊緩存;并使用RAIDl方式,將所述寫操作的數(shù)據(jù)塊發(fā)送到所述校驗節(jié)點中,形成RAIDl鏡像;
[0009]所述校驗節(jié)點,用于將所述寫操作的數(shù)據(jù)塊緩存,并與對應(yīng)所述冗余組的其他數(shù)據(jù)節(jié)點的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行異步冗余計算,計算完成后將校驗信息存儲,并在所述異步冗余計算及所述校驗信息更新存儲后,向所述數(shù)據(jù)節(jié)點發(fā)送數(shù)據(jù)遷移命令;
[0010]所述數(shù)據(jù)節(jié)點,還用于在接到所述校驗節(jié)點發(fā)送的所述數(shù)據(jù)遷移命令后,將相應(yīng)的所述寫操作的數(shù)據(jù)塊遷移至RAID4數(shù)據(jù)集。
[0011]作為一種可實施方式,在所述冗余組接到所述應(yīng)用服務(wù)器的讀操作請求時,從所述數(shù)據(jù)節(jié)點讀取讀操作的數(shù)據(jù)塊,發(fā)送給所述應(yīng)用服務(wù)器。
[0012]較佳地,所述冗余組為分層存儲的多緩存的RAIDl和RAID4混合結(jié)構(gòu);
[0013]所述數(shù)據(jù)節(jié)點包括第一數(shù)據(jù)收發(fā)模塊、第一緩存單元和第一邏輯卷,其中:
[0014]所述第一數(shù)據(jù)收發(fā)模塊,用于接收所述應(yīng)用服務(wù)器的所述寫操作請求或者所述讀操作請求;在接收到所述寫操作請求后,將所述寫操作的數(shù)據(jù)塊寫入到所述第一緩存單元,并使用RAIDl方式,將所述寫操作的數(shù)據(jù)塊寫入到所述校驗節(jié)點;在接收到所述讀操作請求后,將所述讀操作的數(shù)據(jù)塊發(fā)送給所述應(yīng)用服務(wù)器;
[0015]所述第一緩存單元,用于緩存所述寫操作的數(shù)據(jù)塊或所述讀操作的數(shù)據(jù)塊,并在所述校驗節(jié)點進行所述異步冗余計算之前,將緩存的所述寫操作的數(shù)據(jù)塊根據(jù)緩存策略,獨立下刷至所述第一邏輯卷中;
[0016]所述第一邏輯卷,用于存儲所述第一緩存單元獨立下刷的所述寫操作的數(shù)據(jù)塊,并在接收到所述校驗節(jié)點發(fā)送的所述數(shù)據(jù)遷移命令后,將相應(yīng)的所述寫操作的數(shù)據(jù)塊遷移至所述RAID4數(shù)據(jù)集;
[0017]所述校驗節(jié)點包括第二緩存單元、第二冗余計算單元和第二校驗卷,其中:
[0018]所述第二緩存單元,用于緩存所述數(shù)據(jù)節(jié)點發(fā)送的所述寫操作的數(shù)據(jù)塊;
[0019]所述第二冗余計算單元,用于將所述第二緩存單元發(fā)送的所述寫操作的數(shù)據(jù)塊與對應(yīng)的所述冗余組的其他數(shù)據(jù)節(jié)點的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行所述異步冗余計算,計算完成后將所述校驗信息寫到所述第二校驗卷中,并發(fā)送所述數(shù)據(jù)遷移命令給所述第一邏輯卷;
[0020]所述第二校驗卷,用于存儲所述校驗信息。
[0021]更優(yōu)的,還包括降級處理模塊和路徑轉(zhuǎn)換模塊,其中:
[0022]所述降級處理模塊,用于在所述冗余組中某個所述數(shù)據(jù)節(jié)點,或者所述校驗節(jié)點出現(xiàn)故障時,控制所述冗余組進入降級狀態(tài),進行降級寫操作或讀操作;
[0023]所述路徑轉(zhuǎn)換模塊,用于在所述數(shù)據(jù)節(jié)點故障情況下,將所述應(yīng)用服務(wù)器和所述冗余組之間的數(shù)據(jù)訪問路徑從所述數(shù)據(jù)節(jié)點切換到所述校驗節(jié)點,控制將所述寫操作請求或所述讀操作請求下發(fā)到所述校驗節(jié)點;并在所述數(shù)據(jù)節(jié)點重新接入,進行數(shù)據(jù)重構(gòu)完成后,將所述數(shù)據(jù)訪問路徑從所述校驗節(jié)點切換回所述數(shù)據(jù)節(jié)點。
[0024]作為一種可實施方式,所述降級處理模塊包括第一降級處理單元;其中:
[0025]所述第一降級處理單元,用于在所述數(shù)據(jù)節(jié)點故障或者數(shù)據(jù)重構(gòu)未完成狀態(tài)下,所述數(shù)據(jù)訪問路徑從所述數(shù)據(jù)節(jié)點切換到所述校驗節(jié)點后,控制所述校驗節(jié)點執(zhí)行所述降級寫操作或讀操作;
[0026]所述校驗節(jié)點還包括第二數(shù)據(jù)收發(fā)模塊,其中:
[0027]所述第二數(shù)據(jù)收發(fā)模塊,用于在所述數(shù)據(jù)節(jié)點故障或者數(shù)據(jù)重構(gòu)未完成狀態(tài)下,接收所述應(yīng)用服務(wù)器的所述寫操作請求或者所述讀操作請求;在接收到所述寫操作請求后,使用降級的RAIDl方式,將所述寫操作的數(shù)據(jù)塊寫入到所述第二緩存單元;在接收到所述讀操作請求后,將所述讀操作的數(shù)據(jù)塊發(fā)送給所述應(yīng)用服務(wù)器;
[0028]所述第二冗余計算單元,還用于在所述數(shù)據(jù)節(jié)點故障或者數(shù)據(jù)重構(gòu)未完成狀態(tài)下,按照RAID4降級處理方式,將所述第二緩存單元的所述寫操作的數(shù)據(jù)塊與對應(yīng)所述冗余組的其他數(shù)據(jù)節(jié)點的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行所述異步冗余計算,計算完成后將所述校驗信息寫入所述校驗節(jié)點的所述第二校驗卷中;
[0029]所述降級處理模塊還包括第二降級處理單元和第二降級冗余處理單元,其中:
[0030]所述第二降級處理單元,用于在所述校驗節(jié)點故障或者校驗信息重構(gòu)未完成狀態(tài)下,控制所述數(shù)據(jù)節(jié)點執(zhí)行RAIDl降級寫操作或讀操作;
[0031]所述第二降級冗余處理單元,用于在所述校驗節(jié)點故障或者校驗信息重構(gòu)未完成狀態(tài)下,將所述應(yīng)用服務(wù)器發(fā)送的所述寫操作的數(shù)據(jù)塊寫入所述第一緩存單元,然后返回寫操作請求完成信息。
[0032]相應(yīng)的,基于上述RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)原理,本發(fā)明還提供了一種RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法,包括如下步驟:
[0033]在與應(yīng)用服務(wù)器連接進行數(shù)據(jù)的寫操作或讀操作過程中,所述冗余組的數(shù)據(jù)節(jié)點接到所述應(yīng)用服務(wù)器的寫操作請求時,將寫操作的數(shù)據(jù)塊緩存;并使用RAIDl方式,將所述寫操作的數(shù)據(jù)塊的備份數(shù)據(jù)發(fā)送到對應(yīng)所述冗余組的校驗節(jié)點中,形成RAIDl鏡像;
[0034]所述校驗節(jié)點將所述寫操作的數(shù)據(jù)塊緩存,并與對應(yīng)所述冗余組的其他數(shù)據(jù)節(jié)點中的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行異步冗余計算,計算完成后將校驗信息存儲,并在所述異步冗余計算及所述校驗信息更新存儲后,向所述數(shù)據(jù)節(jié)點發(fā)送數(shù)據(jù)遷移命令;
[0035]所述數(shù)據(jù)節(jié)點在接到所述校驗節(jié)點發(fā)送的所述數(shù)據(jù)遷移命令后,將相應(yīng)的所述寫操作的數(shù)據(jù)塊遷移至RAID4數(shù)據(jù)集;
[0036]其中,所述冗余組為多個邏輯上相互獨立的具有多個所述數(shù)據(jù)節(jié)點和一個所述校驗節(jié)點的RAIDl和RAID4混合結(jié)構(gòu)的冗余組。
[0037]作為一種可實施方式,還包括如下步驟:
[0038]在所述冗余組接到所述應(yīng)用服務(wù)器的讀操作請求時,從所述數(shù)據(jù)節(jié)點讀取讀操作的數(shù)據(jù)塊,并將所述讀操作的數(shù)據(jù)塊發(fā)送給所述應(yīng)用服務(wù)器。
[0039]作為一種可實施方式,還包括RAID正常狀態(tài)下的寫操作和所述RAID正常狀態(tài)下的讀操作,其中:
[0040]所述RAID正常狀態(tài)下的寫操作包括如下步驟:
[0041]所述數(shù)據(jù)節(jié)點接收所述應(yīng)用服務(wù)器的所述寫操作請求;
[0042]將所述寫操作的數(shù)據(jù)塊存儲至所述第一緩存單元中,同時將所述寫操作的數(shù)據(jù)塊轉(zhuǎn)發(fā)至所述校驗節(jié)點;
[0043]所述數(shù)據(jù)節(jié)點向所述應(yīng)用服務(wù)器發(fā)送完成確認信息;
[0044]所述RAID正常狀態(tài)下的讀操作包括如下步驟:
[0045]所述數(shù)據(jù)節(jié)點接收所述應(yīng)用服務(wù)器的讀操作請求;
[0046]根據(jù)所述讀操作請求,檢測所述第一緩存單元中是否存在所述讀操作的數(shù)據(jù)塊;
[0047]當所述第一緩存單元中存在所述讀操作的數(shù)據(jù)塊時,將所述讀操作的數(shù)據(jù)塊發(fā)送給所述應(yīng)用服務(wù)器;當所述第一緩存單元中不存在所述讀操作的數(shù)據(jù)塊時,從所述數(shù)據(jù)節(jié)點的第一邏輯卷讀取所述讀操作的數(shù)據(jù)塊,然后返回給所述應(yīng)用服務(wù)器;
[0048]所述將所述寫操作的數(shù)據(jù)塊轉(zhuǎn)發(fā)至所述校驗節(jié)點,包括如下步驟:[0049]控制所述寫操作的數(shù)據(jù)塊存儲至第二緩存單元中;
[0050]所述第二緩存單元對所述寫操作的數(shù)據(jù)塊從空間維度進行合并;
[0051]根據(jù)緩存策略,對所述寫操作的數(shù)據(jù)塊中符合異步冗余計算條件的數(shù)據(jù)塊進行緩存回寫。
[0052]較佳地,還包括RAID降級狀態(tài)下的寫操作和所述RAID降級狀態(tài)下的讀操作,其中:
[0053]所述RAID降級狀態(tài)下的寫操作包括如下步驟:
[0054]當所述冗余組的所述數(shù)據(jù)節(jié)點故障或數(shù)據(jù)重構(gòu)未完成時,所述校驗節(jié)點接收所述應(yīng)用服務(wù)器下發(fā)的所述寫操作請求;所述校驗節(jié)點將所述寫操作的數(shù)據(jù)塊寫入所述校驗節(jié)點的所述第二緩存單元后,向所述應(yīng)用服務(wù)器返回完成確認信息;
[0055]當所述校驗節(jié)點故障或校驗信息重構(gòu)未完成時,所述數(shù)據(jù)節(jié)點接收所述應(yīng)用服務(wù)器下發(fā)的所述寫操作請求;所述數(shù)據(jù)節(jié)點將所述寫操作的數(shù)據(jù)塊寫入所述數(shù)據(jù)節(jié)點的所述第一緩存單元后,向所述應(yīng)用服務(wù)器返回寫操作請求完成信息;
[0056]所述RAID降級狀態(tài)下的讀操作包括如下步驟:
[0057]當所述數(shù)據(jù)節(jié)點故障或數(shù)據(jù)重構(gòu)未完成時,所述校驗節(jié)點接收所述應(yīng)用服務(wù)器下發(fā)的所述讀操作請求;所述校驗節(jié)點檢測所述第二緩存單元;當所述第二緩存單元中存在所述讀操作的數(shù)據(jù)塊時,所述校驗節(jié)點將所述讀操作的數(shù)據(jù)塊返回給所述應(yīng)用服務(wù)器;
[0058]當所述校驗節(jié)點故障或校驗信息重構(gòu)未完成時,所述數(shù)據(jù)節(jié)點接收所述應(yīng)用服務(wù)器下發(fā)的所述讀操作請求,并將所述讀操作的數(shù)據(jù)塊返回給所述應(yīng)用服務(wù)器;
[0059]當所述第二緩存單元中不存在所述讀操作的數(shù)據(jù)塊時,所述校驗節(jié)點向所述冗余組的其他數(shù)據(jù)節(jié)點發(fā)送讀所述相同邏輯地址的數(shù)據(jù)塊的請求;
[0060]所述校驗節(jié)點讀取第二校驗卷中與所述讀操作的數(shù)據(jù)塊相應(yīng)的校驗信息后,返回讀校驗完成信息;
[0061]所述數(shù)據(jù)節(jié)點讀取所述第一邏輯卷中的所述讀操作的數(shù)據(jù)塊,并返回給所述校驗節(jié)點;
[0062]當所述冗余組的其他數(shù)據(jù)節(jié)點的所有所述讀操作的數(shù)據(jù)塊返回給所述校驗節(jié)點后,所述校驗節(jié)點根據(jù)RAID4恢復(fù)算法重構(gòu)出所述數(shù)據(jù)節(jié)點上的所述讀操作的數(shù)據(jù)塊。
[0063]更優(yōu)的,還包括所述數(shù)據(jù)節(jié)點的數(shù)據(jù)重構(gòu)步驟;
[0064]所述數(shù)據(jù)節(jié)點的數(shù)據(jù)重構(gòu)步驟包括RAIDl數(shù)據(jù)恢復(fù)步驟和RAID4同步恢復(fù)的第一步驟,其中:
[0065]所述RAIDl數(shù)據(jù)恢復(fù)步驟包括:
[0066]所述校驗節(jié)點收集所有與故障數(shù)據(jù)相關(guān)的數(shù)據(jù)集合,并根據(jù)所述數(shù)據(jù)集合,設(shè)置所述校驗節(jié)點中RAIDl第一數(shù)據(jù)位圖;
[0067]控制所述RAIDl第一數(shù)據(jù)位圖中的所有數(shù)據(jù)進行恢復(fù);
[0068]所述數(shù)據(jù)節(jié)點將所述校驗節(jié)點的所述寫操作的數(shù)據(jù)塊存儲至所述第一緩存單元中,并返回寫操作請求完成信息;
[0069]所述RAID4同步恢復(fù)的第一步驟包括:
[0070]阻塞所述校驗節(jié)點的用戶訪問,并獲取所述校驗節(jié)點上與所述故障數(shù)據(jù)相應(yīng)的未進行所述異步冗余計算的第二數(shù)據(jù)位圖;[0071]所述數(shù)據(jù)節(jié)點將所述第二數(shù)據(jù)位圖的數(shù)據(jù)遷移至所述RAID4數(shù)據(jù)集;
[0072]恢復(fù)所述校驗節(jié)點的用戶訪問,所述校驗節(jié)點重新構(gòu)建所述RAID4 ;
[0073]將所述第二數(shù)據(jù)位圖設(shè)置到所述RAID4中;
[0074]所述RAID4根據(jù)所述第二數(shù)據(jù)位圖設(shè)置同步校驗信息,直至所述RAID4的所述校驗信息同步完成;
[0075]以及,
[0076]還包括所述校驗節(jié)點的校驗信息重構(gòu)步驟;
[0077]所述校驗節(jié)點的校驗信息重構(gòu)步驟包括所述冗余組的所有數(shù)據(jù)節(jié)點的數(shù)據(jù)遷移步驟和所述RAID4同步恢復(fù)的第二步驟,其中:
[0078]所述冗余組的所有數(shù)據(jù)節(jié)點的數(shù)據(jù)遷移步驟包括:
[0079]控制所述冗余組的所有數(shù)據(jù)節(jié)點中所述RAIDl第一數(shù)據(jù)位圖為clean ;
[0080]所述冗余組的所有數(shù)據(jù)節(jié)點將所述校驗節(jié)點導(dǎo)出到所述數(shù)據(jù)節(jié)點的設(shè)備以re-add方式加入到所述RAIDl中;
[0081]阻塞所述冗余組的所有數(shù)據(jù)節(jié)點的用戶訪問;
[0082]所述冗余組的所有數(shù)據(jù)節(jié)點將未進行所述異步冗余計算的數(shù)據(jù)遷移至所述RAID4數(shù)據(jù)集后,恢復(fù)所述冗余組的所有數(shù)據(jù)節(jié)點的用戶訪問;
[0083]所述RAID4同步恢復(fù)的第二步驟包括:
[0084]收集所述冗余組的所有數(shù)據(jù)節(jié)點中已進行所述異步冗余計算的數(shù)據(jù)信息,并將所述數(shù)據(jù)信息進行合并,形成并集;
[0085]根據(jù)所述并集,設(shè)置所述校驗節(jié)點中所述RAID4重構(gòu)位圖;
[0086]所述校驗節(jié)點向所述冗余組的所有數(shù)據(jù)節(jié)點發(fā)送讀取所述已進行所述異步冗余計算的數(shù)據(jù)塊的請求;
[0087]所述冗余組的所有數(shù)據(jù)節(jié)點接收到所述請求之后,將所述已進行所述異步冗余計算的數(shù)據(jù)塊返回給所述校驗節(jié)點;
[0088]所述校驗節(jié)點根據(jù)所述已進行所述異步冗余計算的數(shù)據(jù)塊,進行所述RAID4冗余計算,并將計算得到的所述校驗信息存儲至所述第二校驗卷中;
[0089]控制所述RAID4重構(gòu)位圖中的校驗數(shù)據(jù)全部進行重構(gòu)。
[0090]本發(fā)明提供的一種RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)及方法,其系統(tǒng)包括多個基于RAIDl和RAID4的混合結(jié)構(gòu)的邏輯上相互獨立的冗余組,通過冗余組的多個數(shù)據(jù)節(jié)點和一個校驗節(jié)點進行與應(yīng)用服務(wù)器的數(shù)據(jù)的寫操作或讀操作;當冗余組接收到應(yīng)用服務(wù)器的寫操作請求時,數(shù)據(jù)節(jié)點將寫操作的數(shù)據(jù)塊進行緩存時,使用RAIDl方式,將寫操作的數(shù)據(jù)塊發(fā)送到校驗節(jié)點中,形成RAIDl鏡像;校驗節(jié)點將數(shù)據(jù)節(jié)點發(fā)送過來的寫操作的數(shù)據(jù)塊緩存后,對該寫操作的數(shù)據(jù)塊及冗余組的其他數(shù)據(jù)節(jié)點的相同邏輯地址的數(shù)據(jù)塊,進行RAID4異步冗余計算,并將計算得到的校驗信息存儲,當數(shù)據(jù)節(jié)點發(fā)生故障或數(shù)據(jù)重構(gòu)未完成時,根據(jù)該校驗信息重構(gòu)出寫操作的數(shù)據(jù)塊,從而有效地解決了在節(jié)點故障情況下數(shù)據(jù)不能正常訪問的問題。
【專利附圖】
【附圖說明】
[0091]圖1為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)一具體實施例結(jié)構(gòu)示意圖;[0092]圖2為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)一具體實施例中冗余組結(jié)構(gòu)示意圖;
[0093]圖3為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)另一具體實施例示意圖;
[0094]圖4為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法一具體實施例流程圖;
[0095]圖5為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法RAID正常狀態(tài)下的寫操作一具體實施例示意圖;
[0096]圖6為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法RAID正常狀態(tài)下的讀操作一具體實施例示意圖;
[0097]圖7為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法RAID降級狀態(tài)下的寫操作一具體實施例示意圖;
[0098]圖8為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法RAID降級狀態(tài)下的寫操作另一具體實施例示意圖;
[0099]圖9為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法RAID降級狀態(tài)下的讀操作一具體實施例示意圖;
[0100]圖10為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法RAID降級狀態(tài)下的讀操作另一具體實施例示意圖;
[0101]圖11為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法數(shù)據(jù)節(jié)點的數(shù)據(jù)重構(gòu)一具體實施例示意圖;
[0102]圖12為RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法校驗節(jié)點的校驗信息重構(gòu)一具體實施例示意圖。
【具體實施方式】
[0103]為使本發(fā)明技術(shù)方案更加清楚,以下結(jié)合附圖及具體實施例對本發(fā)明做進一步詳細說明。
[0104]參見圖1至圖3,一種RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)100,用于與應(yīng)用服務(wù)器200連接進行數(shù)據(jù)的寫操作或讀操作,包括多個邏輯上相互獨立的冗余組110:
[0105]冗余組110的結(jié)構(gòu)為RAIDl和RAID4的混合結(jié)構(gòu);
[0106]冗余組110包括多個數(shù)據(jù)節(jié)點111和一個校驗節(jié)點112:
[0107]數(shù)據(jù)節(jié)點111,用于在冗余組110接到應(yīng)用服務(wù)器200的寫操作請求時,將寫操作的數(shù)據(jù)塊緩存;并使用RAIDl方式,將寫操作的數(shù)據(jù)塊發(fā)送到校驗節(jié)點112中,形成RAIDl鏡像;
[0108]校驗節(jié)點112,用于將寫操作的數(shù)據(jù)塊緩存,并與對應(yīng)冗余組110的其他數(shù)據(jù)節(jié)點111的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行異步冗余計算,計算完成后將校驗信息存儲,并在異步冗余計算及校驗信息更新存儲后,向數(shù)據(jù)節(jié)點111發(fā)送數(shù)據(jù)遷移命令;
[0109]數(shù)據(jù)節(jié)點111,還用于在接到校驗節(jié)點112發(fā)送的數(shù)據(jù)遷移命令后,將相應(yīng)的寫操作請求的數(shù)據(jù)塊遷移至RAID4數(shù)據(jù)集。
[0110]本發(fā)明提供的RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)100,通過設(shè)置多個邏輯上相互獨立的冗余組110,每個冗余組110的結(jié)構(gòu)均為RAIDl和RAID4的混合結(jié)構(gòu),并包括多個數(shù)據(jù)節(jié)點和一個校驗節(jié)點;當RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)100中任意一個冗余組110接收到應(yīng)用服務(wù)器200發(fā)送的寫操作請求時,該冗余組110中與該寫操作對應(yīng)的數(shù)據(jù)節(jié)點111使用RAIDl方式將寫操作的數(shù)據(jù)塊進行緩存,并將該寫操作的數(shù)據(jù)塊發(fā)送到該冗余組110的校驗節(jié)點112中,形成RAIDl鏡像;校驗節(jié)點112根據(jù)形成RAIDl鏡像的寫操作的數(shù)據(jù)塊與該冗余組110的其他數(shù)據(jù)節(jié)點中的相同邏輯地址的數(shù)據(jù)塊組成RAID4冗余條帶,進行異步冗余計算,并將計算得到的校驗信息存儲,這就使得當需要進行數(shù)據(jù)的讀操作時,如果數(shù)據(jù)節(jié)點111出現(xiàn)故障時,可根據(jù)計算得到的校驗信息重構(gòu)出讀操作的數(shù)據(jù)塊,有效地解決了在節(jié)點故障情況下數(shù)據(jù)不能正常訪問的問題。
[0111]其中,RAIDl稱為磁盤鏡像,其原理是將一個磁盤的數(shù)據(jù)鏡像到另一個磁盤上,即在數(shù)據(jù)寫入一個磁盤的過程中,會在另一個閑置的磁盤上生成鏡像文件,在不影響磁盤性能的情況下最大限度的保證了數(shù)據(jù)的可靠性及可修復(fù)性,通過采用RAIDl鏡像使得RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)100執(zhí)行寫操作時能夠有兩份寫操作的數(shù)據(jù)塊,即使其中一個節(jié)點故障,副本也能保證有一份正確的數(shù)據(jù)塊;RAID4則是將數(shù)據(jù)條塊化,并分布于不同的磁盤上,實現(xiàn)占用較少的冗余空間存儲校驗信息,通過采用RAID4冗余技術(shù),能夠在任意單節(jié)點故障時,仍可以通過其他節(jié)點的數(shù)據(jù)塊和校驗信息對丟失的數(shù)據(jù)塊進行恢復(fù),保證了 RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)100的可靠性。
[0112]在此,需要說明的是,RAID4異步冗余計算具體是指:將冗余組110內(nèi)所有數(shù)據(jù)節(jié)點111的鏡像數(shù)據(jù)(即所有數(shù)據(jù)節(jié)點111中緩存的寫操作的數(shù)據(jù)塊),進行異或計算,該計算過程異步于數(shù)據(jù)訪問流程。
[0113]作為一種可實施方式,在冗余組110接到應(yīng)用服務(wù)器200的讀操作請求時,從數(shù)據(jù)節(jié)點111讀取讀操作的數(shù)據(jù)塊,發(fā)送給應(yīng)用服務(wù)器200 ;實現(xiàn)了 RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)100與應(yīng)用服務(wù)器200間的數(shù)據(jù)的讀操作。
[0114]較佳地,作為本發(fā)明RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)100的一具體實施例,冗余組Iio為分層存儲的多緩存的RAIDl和RAID4混合結(jié)構(gòu);
[0115]數(shù)據(jù)節(jié)點111包括第一數(shù)據(jù)收發(fā)模塊1110、第一緩存單元1111和第一邏輯卷1112 ;其中:
[0116]第一數(shù)據(jù)收發(fā)模塊1110,用于接收應(yīng)用服務(wù)器200的寫操作請求或者讀操作請求;在接收到寫操作請求后,將寫操作的數(shù)據(jù)塊寫入到第一緩存單元1111,并使用RAIDl方式,將寫操作的數(shù)據(jù)塊寫入到校驗節(jié)點112 ;在接收到讀操作請求后,將讀操作的數(shù)據(jù)塊發(fā)送給應(yīng)用服務(wù)器200 ;
[0117]第一緩存單元1111,用于緩存寫操作的數(shù)據(jù)塊或者讀操作的數(shù)據(jù)塊,并在校驗節(jié)點112進行異步冗余計算之前,將緩存的寫操作的數(shù)據(jù)塊根據(jù)緩存策略,獨立下刷至第一邏輯卷1112中;
[0118]第一邏輯卷1112,用于存儲第一緩存單元1111獨立下刷的寫操作的數(shù)據(jù)塊,并在接收到校驗節(jié)點112發(fā)送的數(shù)據(jù)遷移命令后,將相應(yīng)的寫操作的數(shù)據(jù)塊遷移至RAID4數(shù)據(jù)集;
[0119]校驗節(jié)點112包括第二緩存單元1120、第二冗余計算單元1121和第二校驗卷1122,其中:
[0120]第二緩存單元1120,用于緩存數(shù)據(jù)節(jié)點111發(fā)送的寫操作的數(shù)據(jù)塊;[0121]第二冗余計算單元1121,用于將第二緩存單元1120發(fā)送來的寫操作的數(shù)據(jù)塊與對應(yīng)冗余組Iio的其他數(shù)據(jù)節(jié)點111的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行異步冗余計算,計算完成后將校驗信息寫到第二校驗卷1122中,并發(fā)送數(shù)據(jù)遷移命令給第一邏輯卷1112;
[0122]所述第二校驗卷1122,用于存儲校驗信息。
[0123]需要說明的是,第一緩存單元1111及第二緩存單元1120均為內(nèi)存緩存和磁盤緩存組成的多層緩存結(jié)構(gòu),這樣的多層緩存結(jié)構(gòu)能夠減少半條帶寫操作帶來的磁盤帶寬消耗;同時,通過設(shè)置冗余組Iio為多層存儲的多緩存的RAIDl和RAID4混合結(jié)構(gòu),對數(shù)據(jù)進行分層存儲,通過RAIDl和RAID4協(xié)作對不同存儲層的數(shù)據(jù)提供了可靠性保證。
[0124]更優(yōu)的,還包括降級處理模塊120和路徑轉(zhuǎn)換模塊130,其中:
[0125]降級處理模塊120,用于在冗余組110中某個數(shù)據(jù)節(jié)點111,或者校驗節(jié)點112出現(xiàn)故障時,控制冗余組110進入降級狀態(tài),進行降級寫操作或讀操作;
[0126]路徑轉(zhuǎn)換模塊130,用于在數(shù)據(jù)節(jié)點111故障情況下,將應(yīng)用服務(wù)器200和冗余組110之間的數(shù)據(jù)訪問路徑從數(shù)據(jù)節(jié)點111切換到校驗節(jié)點112,控制將寫操作請求或讀操作請求下發(fā)到校驗節(jié)點112 ;并在數(shù)據(jù)節(jié)點111重新接入,進行數(shù)據(jù)重構(gòu)完成后,將數(shù)據(jù)訪問路徑從校驗節(jié)點112切換回數(shù)據(jù)節(jié)點111。即通過多路徑訪問方式,保證了在RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)中任一數(shù)據(jù)節(jié)點111或校驗節(jié)點112出現(xiàn)故障或者網(wǎng)絡(luò)故障時,仍能夠?qū)崿F(xiàn)數(shù)據(jù)的正常訪問,保證了數(shù)據(jù)訪問的連續(xù)性。
[0127]作為一種可實施方式,降級處理模塊120包括第一降級處理單元121,其中:
[0128]第一降級處理單元121,用于在數(shù)據(jù)節(jié)點111故障或者數(shù)據(jù)重構(gòu)未完成狀態(tài)下,路徑轉(zhuǎn)換模塊130將訪問路徑切換到校驗節(jié)點112后,控制校驗節(jié)點112執(zhí)行降級寫操作或讀操作;
[0129]校驗節(jié)點112還包括第二數(shù)據(jù)收發(fā)模塊1123,其中:
[0130]第二數(shù)據(jù)收發(fā)模塊1123,用于在數(shù)據(jù)節(jié)點111故障或者數(shù)據(jù)重構(gòu)未完成狀態(tài)下,接收應(yīng)用服務(wù)器200的寫操作請求或者讀操作請求;在接收到寫操作的數(shù)據(jù)后,使用降級的RAIDl方式,將寫操作的數(shù)據(jù)塊寫入到第二緩存單元1120 ;在接收到讀操作請求后,將讀操作的數(shù)據(jù)塊發(fā)送給應(yīng)用服務(wù)器200 ;
[0131]第二冗余計算單元1121,還用于在數(shù)據(jù)節(jié)點111故障或者數(shù)據(jù)重構(gòu)未完成狀態(tài)下,按照RAID4降級處理方式,將第二緩存單元1120的寫操作的數(shù)據(jù)塊與對應(yīng)冗余組110的其他數(shù)據(jù)節(jié)點111的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行異步冗余計算,計算完成后校驗信息寫入校驗節(jié)點112的第二校驗卷1122中。
[0132]值得說明的是,降級處理模塊120還包括第二降級處理單元122和第二降級冗余處理單元123,其中:
[0133]第二降級處理單元122,用于在校驗節(jié)點112故障或者校驗信息重構(gòu)未完成狀態(tài)時,控制數(shù)據(jù)節(jié)點111執(zhí)行RAIDl降級寫操作或讀操作;
[0134]第二降級冗余處理單元123,用于在校驗節(jié)點112故障或者校驗信息重構(gòu)未完成狀態(tài)下,將應(yīng)用服務(wù)器200發(fā)送的寫操作的數(shù)據(jù)塊寫入第一緩存單元1111,然后返回寫操作請求完成信息。
[0135]相應(yīng)的,基于上述RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)100的原理,本發(fā)明還提供了一種RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法,由于該RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法的構(gòu)思原理與RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng)100的原理基本相同,因此重復(fù)之處不再贅述。
[0136]參見圖4,一種RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法,包括如下步驟:
[0137]S100,在與應(yīng)用服務(wù)器連接進行數(shù)據(jù)的寫操作或讀操作過程中,冗余組的數(shù)據(jù)節(jié)點接到應(yīng)用服務(wù)器的寫操作請求時,將寫操作的數(shù)據(jù)塊緩存;并使用RAIDl方式,將寫操作的數(shù)據(jù)塊發(fā)送到對應(yīng)冗余組的校驗節(jié)點中,形成RAIDl鏡像;
[0138]S200,校驗節(jié)點將寫操作的數(shù)據(jù)塊緩存,并與對應(yīng)冗余組的其他數(shù)據(jù)節(jié)點中的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行異步冗余計算,計算完成后將校驗信息存儲,并在異步冗余計算及校驗信息更新存儲后,向數(shù)據(jù)節(jié)點發(fā)送數(shù)據(jù)遷移命令;
[0139]S300,數(shù)據(jù)節(jié)點在接到校驗節(jié)點發(fā)送的數(shù)據(jù)遷移命令后,將相應(yīng)的寫操作請求的數(shù)據(jù)塊遷移至RAID4數(shù)據(jù)集;
[0140]其中,冗余組為多個邏輯上相互獨立的具有多個數(shù)據(jù)節(jié)點和一個校驗節(jié)點的RAIDl和RAID4混合結(jié)構(gòu)的冗余組。
[0141]值得說明的是,還包括如下步驟:
[0142]S400,在冗余組接到應(yīng)用服務(wù)器的讀操作請求時,從數(shù)據(jù)節(jié)點讀取讀操作的數(shù)據(jù)塊,并將讀操作的數(shù)據(jù)塊發(fā)送給應(yīng)用服務(wù)器。即在保證冗余組與應(yīng)用服務(wù)器之間能夠進行數(shù)據(jù)的寫操作的同時,還實現(xiàn)了數(shù)據(jù)的讀操作。
[0143]參見圖5至圖6,作為本發(fā)明RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法的一具體實施例,還包括RAID正常狀態(tài)下的寫操作和RAID正常狀態(tài)下的讀操作,其中:
[0144]參見圖5,RAID正常狀態(tài)下的寫操作包括如下步驟:
[0145]S210,數(shù)據(jù)節(jié)點接收應(yīng)用服務(wù)器的寫操作請求;
[0146]S230,將寫操作的數(shù)據(jù)塊存儲至第一緩存單元中,同時將寫操作的數(shù)據(jù)塊轉(zhuǎn)發(fā)至校驗節(jié)點;
[0147]S250,數(shù)據(jù)節(jié)點向應(yīng)用服務(wù)器發(fā)送完成確認信息;
[0148]值得說明的是,數(shù)據(jù)節(jié)點將寫操作的數(shù)據(jù)塊存儲至第一緩存單元中,同時將寫操作的數(shù)據(jù)塊轉(zhuǎn)發(fā)至校驗節(jié)點具體包括:S231,控制寫操作的數(shù)據(jù)存儲至校驗節(jié)點的第二緩存單元中;S232,第二緩存單元對寫操作的數(shù)據(jù)塊從空間維度進行合并;S233,并根據(jù)緩存策略,對寫操作的數(shù)據(jù)塊中符合異步冗余計算條件的數(shù)據(jù)塊進行緩存回寫;在緩存回寫中執(zhí)行RAID4冗余計算,冗余計算與應(yīng)用寫操作請求異步執(zhí)行。需要說明的是,緩存回寫包括全條帶寫和半條帶寫,其中,全條帶寫指的是執(zhí)行一次RAID4冗余計算所需的數(shù)據(jù)塊;S2330,當緩存回寫的數(shù)據(jù)塊滿足全條帶時,直接用全條帶的數(shù)據(jù)塊進行RAID4冗余計算新的校驗信息,當緩存回寫的數(shù)據(jù)塊為半條帶寫時,則讀取相關(guān)的舊數(shù)據(jù)塊,將讀取的舊數(shù)據(jù)塊和新數(shù)據(jù)塊一起進行RAID4冗余計算得到新的校驗信息;S2331,將計算得到的新的校驗信息存儲至校驗節(jié)點的第二校驗卷中,返回寫請求完成;之后,S2332,校驗節(jié)點向數(shù)據(jù)節(jié)點發(fā)送數(shù)據(jù)遷移命令,S2333,數(shù)據(jù)節(jié)點接收到該數(shù)據(jù)遷移命令后,將寫操作的數(shù)據(jù)遷移至RAID4數(shù)據(jù)集中,并向校驗節(jié)點發(fā)送確認信息;校驗節(jié)點接收到確認信息后,從而完成冗余計算及校驗信息的更新。
[0149]參見圖6,RAID正常狀態(tài)下的讀操作包括如下步驟:[0150]S220,數(shù)據(jù)節(jié)點接收應(yīng)用服務(wù)器的讀操作請求;
[0151]S240,根據(jù)讀操作請求,檢測第一緩存單元中是否存在讀操作的數(shù)據(jù)塊;
[0152]S260,當?shù)谝痪彺鎲卧写嬖谧x操作的數(shù)據(jù)塊時,將讀操作的數(shù)據(jù)塊發(fā)送給應(yīng)用服務(wù)器;當?shù)谝痪彺鎲卧胁淮嬖谧x操作的數(shù)據(jù)塊時,從數(shù)據(jù)節(jié)點的第一邏輯卷中讀取讀操作的數(shù)據(jù)塊,然后返回給應(yīng)用服務(wù)器。
[0153]參見圖7至圖10,作為本發(fā)明RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法的一具體實施例,還包括RAID降級狀態(tài)下的寫操作和RAID降級狀態(tài)下的讀操作,其中:
[0154]參見圖7至圖8,RAID降級狀態(tài)下的寫操作包括如下步驟:
[0155]參見圖7,當冗余組的數(shù)據(jù)節(jié)點故障或數(shù)據(jù)重構(gòu)未完成時,S310,校驗節(jié)點接收應(yīng)用服務(wù)器下發(fā)的寫操作請求;S330,校驗節(jié)點將寫操作的數(shù)據(jù)塊寫入校驗節(jié)點的第二緩存單元后;S350,向應(yīng)用服務(wù)器返回完成確認信息;
[0156]也就是當冗余組內(nèi)任意數(shù)據(jù)節(jié)點故障或數(shù)據(jù)重構(gòu)未完成時,應(yīng)用服務(wù)器與冗余組之間的數(shù)據(jù)訪問路徑由數(shù)據(jù)節(jié)點切換到校驗節(jié)點,校驗節(jié)點接收到應(yīng)用服務(wù)器的寫操作請求后,將寫操作的數(shù)據(jù)塊存儲至第二緩存單元;需要說明的是,在RAID降級狀態(tài)下的寫操作過程中的緩存回寫的步驟與RAID正常狀態(tài)下的寫操作過程中的緩存回寫步驟一致,不同點在于:將計算得到的新的校驗信息存儲至校驗節(jié)點的第二校驗卷后,由于數(shù)據(jù)節(jié)點故障或數(shù)據(jù)重構(gòu)未完成,數(shù)據(jù)節(jié)點不能接收數(shù)據(jù)遷移命令,因此校驗節(jié)點將不再向數(shù)據(jù)節(jié)點發(fā)送數(shù)據(jù)遷移命令;其通過在數(shù)據(jù)節(jié)點故障或數(shù)據(jù)重構(gòu)未完成時,將數(shù)據(jù)訪問路徑切換到校驗節(jié)點,通過校驗節(jié)點執(zhí)行RAID降級寫操作,完成用戶層的寫請求,有效地解決了在數(shù)據(jù)節(jié)點故障時,數(shù)據(jù)不能正常訪問的問題。
[0157]同理,參見圖8,當校驗節(jié)點故障或校驗信息重構(gòu)未完成時,S320,數(shù)據(jù)節(jié)點接收應(yīng)用服務(wù)器下發(fā)的寫操作請求;S340,數(shù)據(jù)節(jié)點將寫操作的數(shù)據(jù)塊寫入數(shù)據(jù)節(jié)點的第一緩存單元后,S360,向應(yīng)用服務(wù)器返回寫操作請求完成信息;即當校驗節(jié)點故障或校驗信息重構(gòu)未完成時,數(shù)據(jù)節(jié)點接收應(yīng)用服務(wù)器的寫操作請求,并將寫操作的數(shù)據(jù)塊存儲至其第一緩存單元中,從而完成數(shù)據(jù)的寫操作;由于校驗節(jié)點故障,因此不再進行異步冗余計算。
[0158]參見圖9至圖10,RAID降級狀態(tài)下的讀操作包括如下步驟:
[0159]參見圖9,當數(shù)據(jù)節(jié)點故障或數(shù)據(jù)重構(gòu)未完成時,S410,校驗節(jié)點接收應(yīng)用服務(wù)器下發(fā)的讀操作請求;S430,校驗節(jié)點檢測第二緩存單元;S450,當?shù)诙彺鎲卧写嬖谧x操作的數(shù)據(jù)塊時,校驗節(jié)點將讀操作的數(shù)據(jù)塊返回給應(yīng)用服務(wù)器;
[0160]同理,當數(shù)據(jù)節(jié)點故障或數(shù)據(jù)重構(gòu)未完成時,應(yīng)用服務(wù)器的數(shù)據(jù)訪問路徑切換到校驗節(jié)點,同樣有效地解決了在節(jié)點故障時數(shù)據(jù)不能正常訪問的問題。
[0161]值得說明的是,當校驗節(jié)點檢測到第二緩存單元中不存在讀操作的數(shù)據(jù)塊時,通過校驗節(jié)點根據(jù)RAID4恢復(fù)算法重構(gòu)出數(shù)據(jù)節(jié)點上的所有數(shù)據(jù)塊,并將讀操作的數(shù)據(jù)塊返回給應(yīng)用服務(wù)器,完成用戶層的讀操作請求。校驗節(jié)點重構(gòu)出數(shù)據(jù)節(jié)點上的數(shù)據(jù)塊的具體步驟為:S451,當?shù)诙彺鎲卧胁淮嬖谧x請求的數(shù)據(jù)塊時,校驗節(jié)點向冗余組的其他數(shù)據(jù)節(jié)點發(fā)送讀相同邏輯地址的數(shù)據(jù)塊的請求;S452,校驗節(jié)點讀取第二校驗卷中與讀操作的數(shù)據(jù)塊相應(yīng)的校驗信息后,返回讀校驗完成信息;S453,數(shù)據(jù)節(jié)點讀取第一邏輯卷中的讀操作的數(shù)據(jù)塊,并返回給校驗節(jié)點;S454,當冗余組的其他數(shù)據(jù)節(jié)點的所有讀操作的數(shù)據(jù)塊返回后,校驗節(jié)點根據(jù)RAID4恢復(fù)算法重構(gòu)出數(shù)據(jù)節(jié)點上的讀操作的數(shù)據(jù)塊。其通過校驗節(jié)點對數(shù)據(jù)節(jié)點上的數(shù)據(jù)塊進行重構(gòu),從而實現(xiàn)在數(shù)據(jù)節(jié)點故障時,應(yīng)用服務(wù)器仍然能夠執(zhí)行數(shù)據(jù)的正常訪問。
[0162]參見圖10,當校驗節(jié)點故障或校驗信息重構(gòu)未完成時,S420,數(shù)據(jù)節(jié)點接收應(yīng)用服務(wù)器下發(fā)的讀操作請求;S440,數(shù)據(jù)節(jié)點讀取第一緩存單元中讀操作的數(shù)據(jù)塊;S460,數(shù)據(jù)節(jié)點將讀操作的數(shù)據(jù)塊返回給應(yīng)用服務(wù)器。
[0163]較佳地,參見圖11,作為本發(fā)明RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法的一具體實施例,還包括數(shù)據(jù)節(jié)點的數(shù)據(jù)重構(gòu)步驟,數(shù)據(jù)節(jié)點的數(shù)據(jù)重構(gòu)步驟包括RAIDl數(shù)據(jù)恢復(fù)步驟和RAID4同步恢復(fù)的第一步驟,其中:
[0164]RAIDl數(shù)據(jù)恢復(fù)步驟包括:
[0165]S500,校驗節(jié)點收集所有與故障數(shù)據(jù)相關(guān)的數(shù)據(jù)集合,并根據(jù)數(shù)據(jù)集合,設(shè)置校驗節(jié)點中RAIDl第一數(shù)據(jù)位圖,校驗節(jié)點控制RAIDl第一數(shù)據(jù)位圖中的所有數(shù)據(jù)塊進行恢復(fù);
[0166]S510,校驗節(jié)點發(fā)送寫操作的數(shù)據(jù)塊至數(shù)據(jù)節(jié)點;
[0167]S520,數(shù)據(jù)節(jié)點將校驗節(jié)點的寫操作的數(shù)據(jù)塊存儲至第一緩存單元中,并返回寫請求完成信息;
[0168]按照上述步驟,當RAIDl的所有數(shù)據(jù)塊恢復(fù)完成后,進行RAID4同步恢復(fù)的第一步驟,其過程具體包括:
[0169]S530,阻塞校驗節(jié)點的用戶訪問,S540,并獲取校驗節(jié)點上與故障數(shù)據(jù)相應(yīng)的未進行異步冗余計算的第二數(shù)據(jù)位圖;
[0170]S550,數(shù)據(jù)節(jié)點將第二數(shù)據(jù)位圖的數(shù)據(jù)遷移至RAID4數(shù)據(jù)集;
[0171]S560,恢復(fù)校驗節(jié)點的用戶訪問,S570,校驗節(jié)點重新構(gòu)建RAID4 ;
[0172]S580,將第二數(shù)據(jù)位圖設(shè)置到RAID4中,RAID4根據(jù)第二數(shù)據(jù)位圖設(shè)置同步校驗信息,直至RAID4的校驗信息同步完成。
[0173]參見圖12,作為本發(fā)明RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法的一種可實施方式,還包括校驗節(jié)點的校驗信息重構(gòu)步驟,校驗節(jié)點的校驗信息重構(gòu)步驟包括冗余組的所有數(shù)據(jù)節(jié)點的數(shù)據(jù)遷移步驟和RAID4同步恢復(fù)的第二步驟,其中:
[0174]冗余組的所有數(shù)據(jù)節(jié)點的數(shù)據(jù)遷移步驟包括:
[0175]S600,控制冗余組的所有數(shù)據(jù)節(jié)點中RAIDl第一數(shù)據(jù)位圖為clean ;
[0176]S610,冗余組的所有數(shù)據(jù)節(jié)點將校驗節(jié)點導(dǎo)出到數(shù)據(jù)節(jié)點的設(shè)備以re-add方式加入到RAIDl中;
[0177]S620,阻塞冗余組的所有數(shù)據(jù)節(jié)點的用戶訪問;
[0178]S630,冗余組的所有數(shù)據(jù)節(jié)點將未進行異步冗余計算的數(shù)據(jù)遷移至RAID4數(shù)據(jù)集后,S640,恢復(fù)冗余組的所有數(shù)據(jù)節(jié)點的用戶訪問;
[0179]待冗余組的所有數(shù)據(jù)節(jié)點的數(shù)據(jù)遷移完成后,執(zhí)行RAID4同步恢復(fù)的第二步驟,其具體包括:
[0180]S650,收集冗余組的所有數(shù)據(jù)節(jié)點中已進行異步冗余計算的數(shù)據(jù)信息,并將數(shù)據(jù)信息進行合并,形成并集;
[0181]S650’,根據(jù)并集,設(shè)置校驗節(jié)點中RAID4重構(gòu)位圖;
[0182]S660,校驗節(jié)點向冗余組的所有數(shù)據(jù)節(jié)點發(fā)送讀取已進行異步冗余計算的數(shù)據(jù)塊的請求;
[0183]S670,冗余組的所有數(shù)據(jù)節(jié)點接收到請求之后,將已進行異步冗余計算的數(shù)據(jù)塊返回給校驗節(jié)點;
[0184]S680,校驗節(jié)點根據(jù)已進行異步冗余計算的數(shù)據(jù)塊,進行RAID4冗余計算;
[0185]S690,將計算得到的校驗信息存儲至校驗節(jié)點中的第二校驗卷中;
[0186]按照上述步驟,控制RAID4重構(gòu)位圖中的校驗數(shù)據(jù)全部進行重構(gòu)。
[0187]以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準。
【權(quán)利要求】
1.一種RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng),用于與應(yīng)用服務(wù)器連接進行數(shù)據(jù)的寫操作或讀操作,其特征在于,包括多個邏輯上相互獨立的冗余組: 所述冗余組的結(jié)構(gòu)為RAIDl和RAID4的混合結(jié)構(gòu); 所述冗余組包括多個數(shù)據(jù)節(jié)點和一個校驗節(jié)點: 所述數(shù)據(jù)節(jié)點,用于在所述冗余組接到所述應(yīng)用服務(wù)器的寫操作請求時,將寫操作的數(shù)據(jù)塊緩存;并使用RAIDl方式,將所述寫操作的數(shù)據(jù)塊發(fā)送到所述校驗節(jié)點中,形成RAIDl鏡像; 所述校驗節(jié)點,用于將所述寫操作的數(shù)據(jù)塊緩存,并與對應(yīng)所述冗余組的其他數(shù)據(jù)節(jié)點的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行異步冗余計算,計算完成后將校驗信息存儲,并在所述異步冗余計算及所述校驗信息更新存儲后,向所述數(shù)據(jù)節(jié)點發(fā)送數(shù)據(jù)遷移命令; 所述數(shù)據(jù)節(jié)點,還用于在接到所述校驗節(jié)點發(fā)送的所述數(shù)據(jù)遷移命令后,將相應(yīng)的所述寫操作的數(shù)據(jù)塊遷移至RAID4數(shù)據(jù)集。
2.根據(jù)權(quán)利要求1所述的RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng),其特征在于,在所述冗余組接到所述應(yīng)用服務(wù)器的讀操作請求時,從所述數(shù)據(jù)節(jié)點讀取讀操作的數(shù)據(jù)塊,發(fā)送給所述應(yīng)用服務(wù)器。
3.根據(jù)權(quán)利要求2所述的RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng),其特征在于,所述冗余組為分層存儲的多緩存的R AIDl和RAID4混合結(jié)構(gòu); 所述數(shù)據(jù)節(jié)點包括第一數(shù)據(jù)收發(fā)模塊、第一緩存單元和第一邏輯卷,其中: 所述第一數(shù)據(jù)收發(fā)模塊,用于接收所述應(yīng)用服務(wù)器的所述寫操作請求或者所述讀操作請求;在接收到所述寫操作請求后,將所述寫操作的數(shù)據(jù)塊寫入到所述第一緩存單元,并使用RAIDl方式,將所述寫操作的數(shù)據(jù)塊寫入到所述校驗節(jié)點;在接收到所述讀操作請求后,將所述讀操作的數(shù)據(jù)塊發(fā)送給所述應(yīng)用服務(wù)器; 所述第一緩存單元,用于緩存所述寫操作的數(shù)據(jù)塊或所述讀操作的數(shù)據(jù)塊,并在所述校驗節(jié)點進行所述異步冗余計算之前,將緩存的所述寫操作的數(shù)據(jù)塊根據(jù)緩存策略,獨立下刷至所述第一邏輯卷中; 所述第一邏輯卷,用于存儲所述第一緩存單元獨立下刷的所述寫操作的數(shù)據(jù)塊,并在接收到所述校驗節(jié)點發(fā)送的所述數(shù)據(jù)遷移命令后,將相應(yīng)的所述寫操作的數(shù)據(jù)塊遷移至所述RAID4數(shù)據(jù)集; 所述校驗節(jié)點包括第二緩存單元、第二冗余計算單元和第二校驗卷,其中: 所述第二緩存單元,用于緩存所述數(shù)據(jù)節(jié)點發(fā)送的所述寫操作的數(shù)據(jù)塊; 所述第二冗余計算單元,用于將所述第二緩存單元發(fā)送的所述寫操作的數(shù)據(jù)塊與對應(yīng)的所述冗余組的其他數(shù)據(jù)節(jié)點的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行所述異步冗余計算,計算完成后將所述校驗信息寫到所述第二校驗卷中,并發(fā)送所述數(shù)據(jù)遷移命令給所述第一邏輯卷; 所述第二校驗卷,用于存儲所述校驗信息。
4.根據(jù)權(quán)利要求3所述的RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng),其特征在于,還包括降級處理模塊和路徑轉(zhuǎn)換模塊,其中: 所述降級處理模塊,用于在所述冗余組中某個所述數(shù)據(jù)節(jié)點,或者所述校驗節(jié)點出現(xiàn)故障時,控制所述冗余組進入降級狀態(tài),進行降級寫操作或讀操作; 所述路徑轉(zhuǎn)換模塊,用于在所述數(shù)據(jù)節(jié)點故障情況下,將所述應(yīng)用服務(wù)器和所述冗余組之間的數(shù)據(jù)訪問路徑從所述數(shù)據(jù)節(jié)點切換到所述校驗節(jié)點,控制將所述寫操作請求或所述讀操作請求下發(fā)到所述校驗節(jié)點;并在所述數(shù)據(jù)節(jié)點重新接入,進行數(shù)據(jù)重構(gòu)完成后,將所述數(shù)據(jù)訪問路徑從所述校驗節(jié)點切換回所述數(shù)據(jù)節(jié)點。
5.根據(jù)權(quán)利要求4所述的RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲系統(tǒng),其特征在于,所述降級處理模塊包括第一降級處理單元;其中: 所述第一降級處理單元,用于在所述數(shù)據(jù)節(jié)點故障或者數(shù)據(jù)重構(gòu)未完成狀態(tài)下,所述數(shù)據(jù)訪問路徑從所述數(shù)據(jù)節(jié)點切換到所述校驗節(jié)點后,控制所述校驗節(jié)點執(zhí)行所述降級寫操作或讀操作; 所述校驗節(jié)點還包括第二數(shù)據(jù)收發(fā)模塊,其中: 所述第二數(shù)據(jù)收發(fā)模塊,用于在所述數(shù)據(jù)節(jié)點故障或者數(shù)據(jù)重構(gòu)未完成狀態(tài)下,接收所述應(yīng)用服務(wù)器的所述寫操作請求或者所述讀操作請求;在接收到所述寫操作請求后,使用降級的RAIDl方式,將所述寫操作的數(shù)據(jù)塊寫入到所述第二緩存單元;在接收到所述讀操作請求后,將所述讀操作的數(shù)據(jù)塊發(fā)送給所述應(yīng)用服務(wù)器; 所述第二冗余計算單元,還用于在所述數(shù)據(jù)節(jié)點故障或者數(shù)據(jù)重構(gòu)未完成狀態(tài)下,按照RAID4降級處理方式,將所述第二緩存單元的所述寫操作的數(shù)據(jù)塊與對應(yīng)所述冗余組的其他數(shù)據(jù)節(jié)點的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行所述異步冗余計算,計算完成后將所述校驗信息寫入所述校驗節(jié)點的所述第二校驗卷中; 所述降級處理模塊還包括第二降級處理單元和第二降級冗余處理單元,其中: 所述第二降級處理單元,用于在所述校驗節(jié)點故障或者校驗信息重構(gòu)未完成狀態(tài)下,控制所述數(shù)據(jù)節(jié)點執(zhí)行RAIDl降級寫操作或讀操作; 所述第二降級冗余處理單元,用于在所述校驗節(jié)點故障或者校驗信息重構(gòu)未完成狀態(tài)下,將所述應(yīng)用服務(wù)器發(fā)送的所述寫操作的數(shù)據(jù)塊寫入所述第一緩存單元,然后返回寫操作請求完成信息。
6.一種RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法,其特征在于,包括如下步驟: 在與應(yīng)用服務(wù)器連接進行數(shù)據(jù)的寫操作或讀操作過程中,所述冗余組的數(shù)據(jù)節(jié)點接到所述應(yīng)用服務(wù)器的寫操作請求時,將寫操作的數(shù)據(jù)塊緩存;并使用RAIDl方式,將所述寫操作的數(shù)據(jù)塊發(fā)送到對應(yīng)所述冗余組的校驗節(jié)點中,形成RAIDl鏡像; 所述校驗節(jié)點將所述寫操作的數(shù)據(jù)塊緩存,并與對應(yīng)所述冗余組的其他數(shù)據(jù)節(jié)點中的相同邏輯地址的數(shù)據(jù)塊一起,組成RAID4冗余條帶,進行異步冗余計算,計算完成后將校驗信息存儲,并在所述異步冗余計算及所述校驗信息更新存儲后,向所述數(shù)據(jù)節(jié)點發(fā)送數(shù)據(jù)遷移命令; 所述數(shù)據(jù)節(jié)點在接到所述校驗節(jié)點發(fā)送的所述數(shù)據(jù)遷移命令后,將相應(yīng)的所述寫操作的數(shù)據(jù)塊遷移至RAID4數(shù)據(jù)集; 其中,所述冗余組為多個邏輯上相互獨立的具有多個所述數(shù)據(jù)節(jié)點和一個所述校驗節(jié)點的RAIDl和RAID4混合結(jié)構(gòu)的冗余組。
7.根據(jù)權(quán)利要求6所述的RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法,其特征在于,還包括如下步驟:在所述冗余組接到所述應(yīng)用服務(wù)器的讀操作請求時,從所述數(shù)據(jù)節(jié)點讀取讀操作的數(shù)據(jù)塊,并將所述讀操作的數(shù)據(jù)塊發(fā)送給所述應(yīng)用服務(wù)器。
8.根據(jù)權(quán)利要求7所述的RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法,其特征在于,還包括RAID正常狀態(tài)下的寫操作和所述RAID正常狀態(tài)下的讀操作,其中: 所述RAID正常狀態(tài)下的寫操作包括如下步驟: 所述數(shù)據(jù)節(jié)點接收所述應(yīng)用服務(wù)器的所述寫操作請求; 將所述寫操作的數(shù)據(jù)塊存儲至所述第一緩存單元中,同時將所述寫操作的數(shù)據(jù)塊轉(zhuǎn)發(fā)至所述校驗節(jié)點; 所述數(shù)據(jù)節(jié)點向所述應(yīng)用服務(wù)器發(fā)送完成確認信息; 所述RAID正常狀態(tài)下的讀操作包括如下步驟: 所述數(shù)據(jù)節(jié)點接收所述應(yīng)用服務(wù)器的讀操作請求; 根據(jù)所述讀操作請求,檢測所述第一緩存單元中是否存在所述讀操作的數(shù)據(jù)塊; 當所述第一緩存單元中存在所述讀操作的數(shù)據(jù)塊時,將所述讀操作的數(shù)據(jù)塊發(fā)送給所述應(yīng)用服務(wù)器;當所述第一緩存單元中不存在所述讀操作的數(shù)據(jù)塊時,從所述數(shù)據(jù)節(jié)點的第一邏輯卷讀取所述讀操作的數(shù)據(jù)塊,然后返回給所述應(yīng)用服務(wù)器; 所述將所述寫操作的數(shù)據(jù)塊轉(zhuǎn)發(fā)至所述校驗節(jié)點,包括如下步驟: 控制所述寫操作的數(shù)據(jù)塊存儲至第二緩存單元中; 所述第二緩存單元對所述寫操作的數(shù)據(jù)塊從空間維度進行合并; 根據(jù)緩存策略,對所述寫操作的數(shù)據(jù)塊中符合異步冗余計算條件的數(shù)據(jù)塊進行緩存回與O
9.根據(jù)權(quán)利要求8所述的RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法,其特征在于,還包括RAID降級狀態(tài)下的寫操作和所述RAID降級狀態(tài)下的讀操作,其中: 所述RAID降級狀態(tài)下的寫操作包括如下步驟: 當所述冗余組的所述數(shù)據(jù)節(jié)點故障或數(shù)據(jù)重構(gòu)未完成時,所述校驗節(jié)點接收所述應(yīng)用服務(wù)器下發(fā)的所述寫操作請求;所述校驗節(jié)點將所述寫操作的數(shù)據(jù)塊寫入所述校驗節(jié)點的所述第二緩存單元后,向所述應(yīng)用服務(wù)器返回完成確認信息; 當所述校驗節(jié)點故障或校驗信息重構(gòu)未完成時,所述數(shù)據(jù)節(jié)點接收所述應(yīng)用服務(wù)器下發(fā)的所述寫操作請求;所述數(shù)據(jù)節(jié)點將所述寫操作的數(shù)據(jù)塊寫入所述數(shù)據(jù)節(jié)點的所述第一緩存單元后,向所述應(yīng)用服務(wù)器返回寫操作請求完成信息; 所述RAID降級狀態(tài)下的讀操作包括如下步驟: 當所述數(shù)據(jù)節(jié)點故障或數(shù)據(jù)重構(gòu)未完成時,所述校驗節(jié)點接收所述應(yīng)用服務(wù)器下發(fā)的所述讀操作請求;所述校驗節(jié)點檢測所述第二緩存單元;當所述第二緩存單元中存在所述讀操作的數(shù)據(jù)塊時,所述校驗節(jié)點將所述讀操作的數(shù)據(jù)塊返回給所述應(yīng)用服務(wù)器; 當所述校驗節(jié)點故障或校驗信息重構(gòu)未完成時,所述數(shù)據(jù)節(jié)點接收所述應(yīng)用服務(wù)器下發(fā)的所述讀操作請求,并將所述讀操作的數(shù)據(jù)塊返回給所述應(yīng)用服務(wù)器; 當所述第二緩存單元中不存在所述讀操作的數(shù)據(jù)塊時,所述校驗節(jié)點向所述冗余組的其他數(shù)據(jù)節(jié)點發(fā)送讀所述相同邏 輯地址的數(shù)據(jù)塊的請求; 所述校驗節(jié)點讀取第二校驗卷中與所述讀操作的數(shù)據(jù)塊相應(yīng)的校驗信息后,返回讀校驗完成信息;所述數(shù)據(jù)節(jié)點讀取所述第一邏輯卷中的所述讀操作的數(shù)據(jù)塊,并返回給所述校驗節(jié)占.當所述冗余組的其他數(shù)據(jù)節(jié)點的所有所述讀操作的數(shù)據(jù)塊返回給所述校驗節(jié)點后,所述校驗節(jié)點根據(jù)RAID4恢復(fù)算法重構(gòu)出所述數(shù)據(jù)節(jié)點上的所述讀操作的數(shù)據(jù)塊。
10.根據(jù)權(quán)利要求9所述的RAIDl和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲方法,其特征在于,還包括所述數(shù)據(jù)節(jié)點的數(shù)據(jù)重構(gòu)步驟; 所述數(shù)據(jù)節(jié)點的數(shù)據(jù)重構(gòu)步驟包括RAIDl數(shù)據(jù)恢復(fù)步驟和RAID4同步恢復(fù)的第一步驟,其中: 所述RAIDl數(shù)據(jù)恢復(fù)步驟包括: 所述校驗節(jié)點收集所有與故障數(shù)據(jù)相關(guān)的數(shù)據(jù)集合,并根據(jù)所述數(shù)據(jù)集合,設(shè)置所述校驗節(jié)點中RAIDl第一數(shù)據(jù)位圖; 控制所述RAIDl第一數(shù)據(jù)位圖中的所有數(shù)據(jù)塊進行恢復(fù); 所述數(shù)據(jù)節(jié)點將所述校驗節(jié)點的所述寫操作的數(shù)據(jù)塊存儲至所述第一緩存單元中,并返回寫操作請求完成信息; 所述RAID4同步恢復(fù)的第一步驟包括: 阻塞所述校驗節(jié)點的用戶訪問,并獲取所述校驗節(jié)點上與所述故障數(shù)據(jù)相應(yīng)的未進行所述異步冗余計算的 第二數(shù)據(jù)位圖; 所述數(shù)據(jù)節(jié)點將所述第二數(shù)據(jù)位圖的數(shù)據(jù)遷移至所述RAID4數(shù)據(jù)集; 恢復(fù)所述校驗節(jié)點的用戶訪問,所述校驗節(jié)點重新構(gòu)建所述RAID4 ; 將所述第二數(shù)據(jù)位圖設(shè)置到所述RAID4中; 所述RAID4根據(jù)所述第二數(shù)據(jù)位圖設(shè)置同步校驗信息,直至所述RAID4的所述校驗信息冋步完成; 以及, 還包括所述校驗節(jié)點的校驗信息重構(gòu)步驟; 所述校驗節(jié)點的校驗信息重構(gòu)步驟包括所述冗余組的所有數(shù)據(jù)節(jié)點的數(shù)據(jù)遷移步驟和所述RAID4同步恢復(fù)的第二步驟,其中: 所述冗余組的所有數(shù)據(jù)節(jié)點的數(shù)據(jù)遷移步驟包括: 控制所述冗余組的所有數(shù)據(jù)節(jié)點中所述RAIDl第一數(shù)據(jù)位圖為clean ; 所述冗余組的所有數(shù)據(jù)節(jié)點將所述校驗節(jié)點導(dǎo)出到所述數(shù)據(jù)節(jié)點的設(shè)備以re-add方式加入到所述RAIDl中; 阻塞所述冗余組的所有數(shù)據(jù)節(jié)點的用戶訪問; 所述冗余組的所有數(shù)據(jù)節(jié)點將未進行所述異步冗余計算的數(shù)據(jù)遷移至所述RAID4數(shù)據(jù)集后,恢復(fù)所述冗余組的所有數(shù)據(jù)節(jié)點的用戶訪問; 所述RAID4同步恢復(fù)的第二步驟包括: 收集所述冗余組的所有數(shù)據(jù)節(jié)點中已進行所述異步冗余計算的數(shù)據(jù)信息,并將所述數(shù)據(jù)信息進行合并,形成并集; 根據(jù)所述并集,設(shè)置所述校驗節(jié)點中所述RAID4重構(gòu)位圖; 所述校驗節(jié)點向所述冗余組的所有數(shù)據(jù)節(jié)點發(fā)送讀取所述已進行所述異步冗余計算的數(shù)據(jù)塊的請求;所述冗余組的所有數(shù)據(jù)節(jié)點接收到所述請求之后,將所述已進行所述異步冗余計算的數(shù)據(jù)塊返回給所述校驗節(jié)點; 所述校驗節(jié)點根據(jù)所述已進行所述異步冗余計算的數(shù)據(jù)塊,進行所述RAID4冗余計算,并將計算得到的所述校驗信息存儲至所述第二校驗卷中; 控制所述RAID4重構(gòu)位圖中的校驗數(shù) 據(jù)全部進行重構(gòu)。
【文檔編號】G06F3/06GK103761058SQ201410033455
【公開日】2014年4月30日 申請日期:2014年1月23日 優(yōu)先權(quán)日:2014年1月23日
【發(fā)明者】許魯, 郭明陽, 楊琳 申請人:天津中科藍鯨信息技術(shù)有限公司