本發(fā)明涉及raid系統(tǒng)設(shè)計(jì)技術(shù),尤其涉及一種兼顧讀寫(xiě)速度與數(shù)據(jù)安全的磁盤(pán)raid冗余方法。
背景技術(shù):
目前基于硬件的磁盤(pán)raid技術(shù)一般常用的分別是raid0、raid1、raid2、raid3、raid4以及raid5,再加上二合一型raid0+1﹝或稱(chēng)raid10﹞。以上raid各有優(yōu)缺點(diǎn)。
raid0數(shù)據(jù)在磁盤(pán)間條帶化分布,對(duì)數(shù)據(jù)的讀寫(xiě)性能都有了很大的提升,但不提供冗余能力,至少要求兩塊磁盤(pán),損壞一塊盤(pán)不影響數(shù)據(jù)安全,但損壞兩塊盤(pán)可能造成數(shù)據(jù)丟失。
raid1是兩塊磁盤(pán)之間做鏡像具有冗余能力,當(dāng)磁盤(pán)中的一塊壞掉后不會(huì)損失任何數(shù)據(jù),對(duì)數(shù)據(jù)寫(xiě)入的性能下降,空間的利用率低,僅有1/2。
raid4采用校驗(yàn)技術(shù),有一個(gè)特定的磁盤(pán)作為數(shù)據(jù)的完全存儲(chǔ),其他的磁盤(pán)采用條帶技術(shù),對(duì)數(shù)據(jù)的讀寫(xiě)性能都有提高并且磁盤(pán)利用率高,磁盤(pán)損壞一個(gè)或者是校驗(yàn)盤(pán)損壞也不會(huì)造成數(shù)據(jù)的流失,但是校驗(yàn)碼盤(pán)訪問(wèn)量大的性能很大程度的牽制著整個(gè)磁盤(pán)陣列的性能校驗(yàn)碼盤(pán)很有可能會(huì)成為性能的瓶頸,并且修復(fù)損壞磁盤(pán)的數(shù)據(jù)的需要遍歷整個(gè)陣列,修復(fù)慢,性能損失大,至少三塊盤(pán)。
raid5采用校驗(yàn)技術(shù),與raid4不同的是每個(gè)磁盤(pán)都是校驗(yàn)盤(pán),輪替的當(dāng)做校驗(yàn)盤(pán)的功能,降低了對(duì)單個(gè)磁盤(pán)的巨大的訪問(wèn)量,使其讀寫(xiě)性能在raid4的基礎(chǔ)上又了提高;與raid4相同磁盤(pán)的損壞個(gè)數(shù)只能有一個(gè),校驗(yàn)盤(pán)損壞也不會(huì)造成數(shù)據(jù)的流失,都可以重新計(jì)算。修復(fù)損壞磁盤(pán)的數(shù)據(jù)的需要遍歷整個(gè)陣列,修復(fù)慢,性能損失大,相對(duì)raid4有改善,至少三塊盤(pán)。
raid01對(duì)數(shù)據(jù)的讀寫(xiě)有提升,并且對(duì)數(shù)據(jù)具有冗余能力,同組的盤(pán)損壞也不會(huì)影響數(shù)據(jù)的損壞。損壞一個(gè)盤(pán)時(shí),全部的盤(pán)都會(huì)被牽制,因?yàn)閮蓚€(gè)鏡像的條帶的方式可能不同對(duì)應(yīng)的盤(pán)數(shù)據(jù)即不相同,需要變量整個(gè)鏡像盤(pán)才能修復(fù)壞掉的盤(pán),損壞兩塊盤(pán)可能造成數(shù)據(jù)丟失??臻g利用率低僅有1/2,至少四塊磁盤(pán)。
技術(shù)實(shí)現(xiàn)要素:
為了解決以上問(wèn)題,本發(fā)明提出了一種兼顧讀寫(xiě)速度與數(shù)據(jù)安全的磁盤(pán)raid冗余方法。在磁盤(pán)損壞后數(shù)據(jù)在正常磁盤(pán)間重新構(gòu)建冗余,提高磁盤(pán)讀寫(xiě)速度。
一種兼顧讀寫(xiě)速度與數(shù)據(jù)安全的磁盤(pán)raid冗余方法,包括:
1)數(shù)據(jù)冗余機(jī)制;
2)磁盤(pán)損壞后數(shù)據(jù)的處理;
3)新添加磁盤(pán)后的冗余處理;
數(shù)據(jù)被分隔成固定大小分布式存放在各磁盤(pán),提高磁盤(pán)讀寫(xiě)速度;在不同磁盤(pán)上實(shí)現(xiàn)冗余并且當(dāng)其中磁盤(pán)損壞后數(shù)據(jù)會(huì)在剩余磁盤(pán)上重新建立冗余。
本發(fā)明是一種磁盤(pán)raid冗余技術(shù),數(shù)據(jù)被分隔成固定大小分布式存放在各磁盤(pán),提高磁盤(pán)讀寫(xiě)速度;每份數(shù)據(jù)在不同磁盤(pán)間提供兩份冗余,任何一塊磁盤(pán)損壞不影響數(shù)據(jù)安全性;當(dāng)其中一塊磁盤(pán)損壞后,根據(jù)冗余在剩余磁盤(pán)上重新構(gòu)建損壞磁盤(pán)上的數(shù)據(jù)形成新的數(shù)據(jù)冗余,構(gòu)建完畢后每份數(shù)據(jù)在不同磁盤(pán)間提供兩份冗余,當(dāng)磁盤(pán)再有損壞時(shí)按此方法重新構(gòu)建冗余直到剩余一塊磁盤(pán)或剩余磁盤(pán)無(wú)法存放所有數(shù)據(jù)冗余,根據(jù)空間實(shí)際使用情況不同可以損壞1~(n-1)塊磁盤(pán)(n為磁盤(pán)總數(shù))。
1)數(shù)據(jù)冗余機(jī)制
數(shù)據(jù)可以按128k、256k、512k等大小進(jìn)行等分,稱(chēng)之為raid數(shù)據(jù)塊,具體使用哪種大小進(jìn)行劃分可在對(duì)磁盤(pán)做raid配置的時(shí)候進(jìn)行選擇。數(shù)據(jù)被分成若干raid數(shù)據(jù)塊后,這些raid數(shù)據(jù)塊基本以隨機(jī)方式被分配到所有磁盤(pán)上存儲(chǔ),分配原則會(huì)使各磁盤(pán)使用率基本一致。每個(gè)raid數(shù)據(jù)塊還會(huì)有一個(gè)冗余數(shù)據(jù)塊即每個(gè)raid數(shù)據(jù)塊的副本,raid數(shù)據(jù)塊及副本會(huì)被存儲(chǔ)在不同磁盤(pán)上,任何一塊磁盤(pán)損壞至少系統(tǒng)中還有一個(gè)raid數(shù)據(jù)塊的冗余,不影響數(shù)據(jù)完整性可正常讀寫(xiě)。不同的讀寫(xiě)請(qǐng)求所需要的raid數(shù)據(jù)塊可能落在不同的磁盤(pán)上,也就提高了磁盤(pán)的讀寫(xiě)能力。
2)磁盤(pán)損壞后數(shù)據(jù)的處理
當(dāng)某塊磁盤(pán)損壞后,因?yàn)閞aid數(shù)據(jù)塊的冗余依然存在,所以不影響數(shù)據(jù)的正常讀寫(xiě)。發(fā)現(xiàn)有磁盤(pán)損壞后,已損壞磁盤(pán)上的raid數(shù)據(jù)塊在其它剩余磁盤(pán)上還有raid數(shù)據(jù)塊冗余,根據(jù)raid數(shù)據(jù)塊的冗余在其它剩余磁盤(pán)上重新構(gòu)建損壞磁盤(pán)上的數(shù)據(jù),構(gòu)建完畢后每份raid數(shù)據(jù)塊在不同磁盤(pán)上又重新形成了冗余,保證了再有磁盤(pán)損壞時(shí)不丟失數(shù)據(jù)。由于剩余磁盤(pán)分擔(dān)了損壞磁盤(pán)上的數(shù)據(jù),所以剩余磁盤(pán)的使用量會(huì)增加。
3)、新添加磁盤(pán)后的冗余處理
當(dāng)向系統(tǒng)中添加新磁盤(pán)時(shí),各磁盤(pán)上的raid數(shù)據(jù)塊會(huì)被重新分配,分配原則:各磁盤(pán)使用量基本相同,每個(gè)raid數(shù)據(jù)塊及其冗余被分配到不同的磁盤(pán)上。由于新增磁盤(pán)會(huì)存放raid數(shù)據(jù)塊,所以每塊磁盤(pán)的使用量會(huì)減小。
本發(fā)明的有益效果是
1)、較高的磁盤(pán)讀寫(xiě)速度
本專(zhuān)利是一種磁盤(pán)raid冗余技術(shù),數(shù)據(jù)被分隔成固定大小分布式存放在各磁盤(pán),對(duì)數(shù)據(jù)的讀寫(xiě)請(qǐng)求可能落在不同的磁盤(pán)上,提高磁盤(pán)讀寫(xiě)速度。
2)、有效保證數(shù)據(jù)安全
數(shù)據(jù)可以按128k、256k、512k等固定大小進(jìn)行等分,稱(chēng)之為raid數(shù)據(jù)塊,每份raid數(shù)據(jù)及其冗余分別存放在不同磁盤(pán)上,任何一塊磁盤(pán)損壞不影響數(shù)據(jù)安全性。
3)、更優(yōu)的磁盤(pán)損壞策略
當(dāng)其中一塊磁盤(pán)損壞后,根據(jù)冗余在剩余磁盤(pán)上重新構(gòu)建損壞磁盤(pán)上的數(shù)據(jù)形成新的數(shù)據(jù)冗余,構(gòu)建完畢后每份數(shù)據(jù)在不同磁盤(pán)間提供兩份冗余,當(dāng)磁盤(pán)再有損壞時(shí)按此方法重新構(gòu)建冗余直到剩余一塊磁盤(pán)或剩余磁盤(pán)無(wú)法存放所有數(shù)據(jù)冗余,根據(jù)空間實(shí)際使用情況不同可以損壞1~(n-1)塊磁盤(pán)(n為磁盤(pán)總數(shù))。
附圖說(shuō)明
圖1是數(shù)據(jù)冗余示意圖;
圖2是磁盤(pán)損壞后數(shù)據(jù)的處理示意圖;
圖3是新添加磁盤(pán)后的冗余處理示意圖。
具體實(shí)施方式
下面根據(jù)附圖對(duì)本發(fā)明的內(nèi)容進(jìn)行更加詳細(xì)的闡述:
圖1為數(shù)據(jù)冗余分布圖,圖中所示每個(gè)方框?yàn)橐粋€(gè)raid數(shù)據(jù)塊,每個(gè)raid數(shù)據(jù)塊及其冗余分別存放在不同磁盤(pán)上。如raid數(shù)據(jù)塊a存放在disk1上,它的冗余存放在disk2上。如raid數(shù)據(jù)塊y存放在disk2上,它的冗余存放在disk3上。
圖2為磁盤(pán)損壞后數(shù)據(jù)的處理示意圖,損壞磁盤(pán)上的數(shù)據(jù)會(huì)在剩余磁盤(pán)上進(jìn)行重新構(gòu)建。raid數(shù)據(jù)塊c及其冗余分別存放在disk1和disk3上,當(dāng)disk3損壞后,由于c在disk1上的raid數(shù)據(jù)塊狀態(tài)正常,所以不影響數(shù)據(jù)的正常訪問(wèn)。raid數(shù)據(jù)塊c的冗余被重新構(gòu)建后存儲(chǔ)到disk2上,這樣每個(gè)raid數(shù)據(jù)塊都有了新的冗余存儲(chǔ)在不同磁盤(pán)上。disk3損壞后,存儲(chǔ)在disk3上的數(shù)據(jù)重新在disk1和disk2上構(gòu)建,disk1和disk2的使用量相應(yīng)的增加。
圖3為新添加磁盤(pán)后raid數(shù)據(jù)塊的冗余處理過(guò)程。新增加磁盤(pán)disk3,disk1和disk2上的raid數(shù)據(jù)塊會(huì)被重新在disk1、disk2和disk3上分配,每個(gè)raid數(shù)據(jù)塊和它的冗余被分配到不同磁盤(pán)上。
本發(fā)明中,數(shù)據(jù)以塊的方式在不同磁盤(pán)上實(shí)現(xiàn)冗余并且當(dāng)其中磁盤(pán)損壞后數(shù)據(jù)會(huì)在剩余磁盤(pán)上重新建立冗余的機(jī)制。