專利名稱:一種raid的數(shù)據(jù)并行重構(gòu)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于陣列數(shù)據(jù)重構(gòu)技術(shù)領(lǐng)域,特別是涉及一種支持并行數(shù)據(jù)重構(gòu)的方法。
背景技術(shù):
磁盤失效將使得存儲系統(tǒng)工作在降級模式下,系統(tǒng)工作在該模式下將導(dǎo)致的整體 性能下降問題,因此為了保證系統(tǒng)的性能和可靠性,必須對失效磁盤的數(shù)據(jù)進(jìn)行重構(gòu)。如何 能在數(shù)據(jù)重構(gòu)期間保證系統(tǒng)的性能的同時又加快重構(gòu)速度是數(shù)據(jù)重構(gòu)需要考慮的兩個方 面,由此涉及到了許多數(shù)據(jù)重構(gòu)技術(shù),目前數(shù)據(jù)重構(gòu)針對重構(gòu)時間和用戶平局響應(yīng)時間兩 個指標(biāo),主要從數(shù)據(jù)或校驗(yàn)塊分布和數(shù)據(jù)流分析兩個方面做優(yōu)化改進(jìn),以此提高系統(tǒng)性能。數(shù)據(jù)重構(gòu)的第一種方式主要是利用數(shù)據(jù)或校驗(yàn)塊的分布來提高重構(gòu)的性能。有 研究提出了分散熱備份盤的(Distributed sparing)方法,該方式提高了熱備份spare盤 的空間利用率在一定程度上加快重構(gòu)的速度,該方法主要將陣列中平時不工作的spare 盤也應(yīng)用到陣列RAID的數(shù)據(jù)分布中,在陣列中的每個磁盤中都保留部分空閑區(qū)域用 作spare盤使用,出現(xiàn)數(shù)據(jù)失效時同一條帶的數(shù)據(jù)經(jīng)過校驗(yàn)后寫入同一條帶中的空閑區(qū) 域,該方法有效避免了傳統(tǒng)spare盤的寫瓶頸問題,縮短了數(shù)據(jù)重構(gòu)時間,但由于需要大 量讀操作用以完成數(shù)據(jù)恢復(fù)操作,對單盤的讀操作依然是一個瓶頸。而校驗(yàn)數(shù)據(jù)分散 ParityDeclustering方法則均衡了數(shù)據(jù)重構(gòu)時間和用戶平均響應(yīng)時間兩方面的,其校驗(yàn) 數(shù)據(jù)分布方式與傳統(tǒng)RAID分布(特別是RAID5)的主要區(qū)別在于,校驗(yàn)數(shù)據(jù)分散度比傳統(tǒng) RAID 5方式要小,即數(shù)據(jù)與其校驗(yàn)數(shù)據(jù)分布的磁盤數(shù)目比RAID 5方式要少,這種特點(diǎn)也使 得在磁盤失效后,系統(tǒng)既能完成數(shù)據(jù)重構(gòu)同時也可以利用沒有參與重構(gòu)的磁盤響應(yīng)前臺的 用戶請求。采用這種分布方式的數(shù)據(jù)重構(gòu)性能相對于傳統(tǒng)的重構(gòu)性能差不多,只是其在用 戶平均響應(yīng)時間性能指標(biāo)上要好于前者。利用數(shù)據(jù)流特點(diǎn),對存儲分布進(jìn)行優(yōu)化是目前數(shù) 據(jù)重構(gòu)的另一種方式。而基于指令流的數(shù)據(jù)重構(gòu)(Pipelined Reconstruction)方法主要針 對流媒體類(Continuous-media Servers)應(yīng)用提出的,該應(yīng)用場合對系統(tǒng)的可靠性要求較 高,如果出現(xiàn)磁盤失效狀況必須保證對前臺用戶請求的響應(yīng)沒有影響或者影響不大,因此 該方法的磁盤重構(gòu)充分利用了媒體數(shù)據(jù)的順序性特點(diǎn),進(jìn)行重構(gòu)的讀操作以磁道為單元, 并將多余的數(shù)據(jù)存入緩存以備下次重構(gòu)操作使用。除此之外利用數(shù)據(jù)流特點(diǎn)的還有基于熱 點(diǎn)數(shù)據(jù)的重構(gòu)算法(Popularity-based multithreaded Reconstruction Optimization) 等。盡管上述方法在重構(gòu)時間和平均響應(yīng)時間上都有或多或少的改進(jìn)或提升,但重構(gòu)時間 依然很長,這也對系統(tǒng)的可靠性構(gòu)成了威脅。
發(fā)明內(nèi)容
本發(fā)明提出一種RAID的數(shù)據(jù)并行重構(gòu)方法,成倍減小了磁盤重構(gòu)時間,有效平衡 重構(gòu)時間和用戶平均響應(yīng)時間,提高了系統(tǒng)的可靠性。一種RAID的數(shù)據(jù)并行重構(gòu)方法,涉及兩個以上的數(shù)據(jù)盤和至少一個熱備份盤,將 各數(shù)據(jù)盤劃分為相同數(shù)量的區(qū)塊,利用各區(qū)塊構(gòu)建子陣列,使得任何一個數(shù)據(jù)盤的各區(qū)塊分屬于不同的子陣列且只屬于一個子陣列;單個數(shù)據(jù)盤的數(shù)據(jù)重構(gòu)按照如下方式進(jìn)行對于該數(shù)據(jù)盤中的每一個區(qū)塊,分別 同時尋找與其構(gòu)成同一子陣列的其它區(qū)塊,依據(jù)其它區(qū)塊的數(shù)據(jù)對該區(qū)塊的數(shù)據(jù)進(jìn)行重 構(gòu),并將重構(gòu)結(jié)果保存到熱備份盤或沒有參與此次重構(gòu)的數(shù)據(jù)盤。作為優(yōu)化,對于任意兩個子陣列,其中一個子陣列最多只有一個區(qū)塊與另一個子 陣列的一個區(qū)塊同屬于一個數(shù)據(jù)盤。所述數(shù)據(jù)盤采用RAID 1 6數(shù)據(jù)存儲級別,所述子陣列按照如下方式構(gòu)造(11)將數(shù)據(jù)盤均分為c組,第1到第c組數(shù)據(jù)盤Hic^m1.....Hic^1的區(qū)塊分別構(gòu)成
第1、2.....c組區(qū)塊分布矩陣,若數(shù)據(jù)盤不能均分為c組,則通過添加與數(shù)據(jù)盤相同區(qū)塊劃
分的虛擬盤或減少數(shù)據(jù)盤滿足均分要求,c大于2 ;(12)初始化第一區(qū)塊分布矩陣中的各區(qū)塊編號,第i+Ι組分布矩陣的第j行元素 由第i組矩陣的第j行元素循環(huán)右移或左移j_l位,i = 1,. . .,c-1,j = 1,. . .,η,η為數(shù) 據(jù)盤被劃分的區(qū)塊數(shù);(13)選取各數(shù)據(jù)盤具有相同編號的區(qū)塊構(gòu)成一個子陣列。所述數(shù)據(jù)盤采用RAID 10數(shù)據(jù)存儲級別,數(shù)據(jù)盤數(shù)為不小于4的偶數(shù),所述子陣列 按照如下方式構(gòu)造(21)將數(shù)據(jù)盤均分為兩組,第一,二組數(shù)據(jù)盤叫、Hi1的區(qū)塊分別構(gòu)成第一、二組區(qū) 塊分布矩陣;(22)對第一組區(qū)塊分布矩陣的第χ行各區(qū)塊進(jìn)行形如χ. y形式的初始化編號,χ =0,1,..., m/2-1, y = 0,1,. . .,m/2_l,第二組區(qū)塊分布矩陣的第χ行各區(qū)塊編號由第一 組分布矩陣的第X行各區(qū)塊編號循環(huán)右移或左移X位;(23)從各數(shù)據(jù)盤中選取具有相同編號的區(qū)塊構(gòu)成一個子陣列。本發(fā)明的技術(shù)效果體現(xiàn)在通過并行重構(gòu)算法對磁盤進(jìn)行分區(qū),然后根據(jù)分區(qū)表 選擇合適的RAID級別將磁盤組成多個子RAID,當(dāng)陣列中有磁盤失效時,這種分布方式區(qū)別 于傳統(tǒng)陣列重構(gòu),其對磁盤的重構(gòu)將不會產(chǎn)生讀寫磁盤沖突,因此重構(gòu)速度將會成倍提高, 同時在重構(gòu)過程中,不參與重構(gòu)的磁盤還可以響應(yīng)前臺用戶請求,本發(fā)明可以有效平衡重 構(gòu)時間和用戶平均響應(yīng)時間,從而提高了系統(tǒng)的性能。
圖1為16個磁盤的矩陣分布圖; 圖2為10個磁盤的矩陣分布圖; 圖3為10個磁盤的矩陣分布優(yōu)化結(jié)構(gòu)圖; 圖4為并行重構(gòu)RAID 5數(shù)據(jù)重構(gòu)結(jié)構(gòu)圖;
圖5為并行重構(gòu)RAID 5的邏輯映射圖6為并行重構(gòu)RAID 5重構(gòu)流程圖;圖7為并行重構(gòu)RAID 5熱備份盤優(yōu)化策略圖 圖8為并行重構(gòu)RAID 10數(shù)據(jù)重構(gòu)流程圖; 圖9為測試系統(tǒng)結(jié)構(gòu) 圖10為并行重構(gòu)重構(gòu)時間測試圖(單位秒)
圖11為并行重構(gòu)用戶平均響應(yīng)時間測試圖(單位毫秒)
具體實(shí)施例方式1、理論基礎(chǔ)本發(fā)明主要實(shí)現(xiàn)的是RAID的并行重構(gòu),傳統(tǒng)的RAID數(shù)據(jù)分布形式不足以實(shí)現(xiàn)的 真正意義上的并行重構(gòu),例如標(biāo)準(zhǔn)的RAID 5分布形式在系統(tǒng)進(jìn)入降級模式后將啟動數(shù)據(jù) 重構(gòu),但因?yàn)檫@一過程中存在數(shù)據(jù)的讀寫沖突,因此整個數(shù)據(jù)重構(gòu)的時間將會非常漫長;特 別是對于在線重構(gòu),其在重構(gòu)的同時還要相應(yīng)前臺用戶請求,這將進(jìn)一步增加了重構(gòu)的時 間。而本發(fā)明的提出主要是針對這一問題,通過采用并行重構(gòu)數(shù)據(jù)塊分布策略并組建標(biāo)準(zhǔn) 的RAID結(jié)構(gòu),通過將磁盤分成若干區(qū)塊并以區(qū)塊為單位組成RAID,這種RAID方式本發(fā)明稱 之為子陣列(也可以稱為subRAID),這種RAID組織方式可以實(shí)現(xiàn)并行的數(shù)據(jù)重構(gòu),且這一 重構(gòu)過程中不存在讀寫沖突,從而可以成倍的縮短重構(gòu)時間;表1符號定義
符號描述N子陣列所需磁盤區(qū)塊數(shù)M全區(qū)塊表的分布方式Di數(shù)據(jù)盤數(shù)目描述符,D1表示第i個磁盤
Ini表示子區(qū)塊表的分布方式,Jfi1表示編號 為1的子區(qū)塊表的分布方式PiJ區(qū)塊分布描述符,Py表示編號為1的子 區(qū)塊表中的第J行的分布方式SHkX )循環(huán)平移函數(shù),紐丨(^)表示將編號為ι 的子區(qū)塊表的j行的分布方式向右平移k 位首先以標(biāo)準(zhǔn)RAID 5構(gòu)成方式來介紹并行重構(gòu)的分布,我們進(jìn)行如下定義。下面將就D = 9,N = 3的情況對并行重構(gòu)數(shù)據(jù)塊分布做一個描述。首先將初始分 布表劃分為3組子區(qū)塊表,每組3個磁盤,將第一組標(biāo)記為3X3列的矩陣形式,用Hitl表示 第一組子區(qū)塊表,并對Hltl進(jìn)行初始化編號,具體分布方式如下所示
5O12、
m0345,Pthl =(3 4 5), P0j2 =(6 7 8)I678V 上式中Hitl分布矩陣中的元素編號表示的是子陣列的區(qū)塊編號,構(gòu)造分布矩陣Hi1, Hl2采用)函數(shù)可以最終確定第i + Ι個分布矩陣的第j行即Pi,」的分布方式,即通過對 第i個分布矩陣的第j行通過循環(huán)移位操作得到第i+Ι個分布矩陣第j行的分布形式,依 次類推從而可以構(gòu)造出完整的分布表。這里的循環(huán)移位函數(shù))將根據(jù)Pi,j的不同移位
位數(shù)有所不同,且移位方向必須統(tǒng)-循環(huán)右移操作生成。
-,可以為循環(huán)左移或循環(huán)右移,本實(shí)例中的%,Hl2采用
^0 (Po,of廣012I
Jfll =SH1r (Ρο, )-534,shHAuLV786JrSH0r (A,Q)、ro12I
rn2 =SH1r (Α,ι)-453、風(fēng)2(P^) JI867J
iSH^p0 SH2r (p,,] SH^p02
-般情況下若已知初始分布矩陣Hltl的分布方式,則編號為i的矩陣的分布方式為 M1 =
SH^p1 SH1r (Ρι_γ
-1,2 ,
SHriP1-
或叫=
SH^pl., SH^pl.,
i e [1,N-1] 公式 1 N = 3,M =
■I,N )1 {Pi-\,N t公式1中)函數(shù)參數(shù)r和1分別表示為右循環(huán)和左循環(huán),從而得到最終的矩 陣分布表為 M= (m0, Iii1, ... ,。則9個磁盤的并行重構(gòu)分布方式為, "0 1 2 0 1 2 0 1 2" 345534453 公式 2 678786867對于子陣列的構(gòu)成則是通過選取每個分布矩陣m中的相同區(qū)塊編號構(gòu)成即選取 最終生成的矩陣分布表M中的相同編號組子陣列,公式2中生成的矩陣分布表M可以構(gòu)成 9個子陣列,對這9個子陣列可以采用類似subRAID 0, subRAID 1,. . .,subRAID 8來表示。2、理論證明本發(fā)明可以從理論上證明,理論上假定構(gòu)成子陣列的數(shù)據(jù)盤數(shù)目(也可以理解 為區(qū)塊數(shù))N為質(zhì)數(shù),則可以通過平移方式構(gòu)造出具有并行重構(gòu)特性的陣列分布形式。例 如采用9個磁盤構(gòu)成的陣列,每3個磁盤構(gòu)成一組,其并行分布的集合方式可以表示為將每個磁盤看作一列,每一列的編號表示為該磁盤的區(qū)塊號,比如% =
(0 \ 2\ 3 4 5 6 7 8
,矩陣
mO =
mQ表示陣列初始分布,其中設(shè)集合Utl,C1, uoa, %2分別表示Hitl初始分布矩陣的的三列,則 f0 \
3 4 5的集合表示為Utl = (u0j0, uoa, u0j2),同理Hi1, m2的集合表示為U1 = (ulj0, U1,
、6 7 8 J
!,Uu2),^ = (W-Uu,!!”)。H^m2的矩陣分布方式如上述所示;若要實(shí)現(xiàn)并行重構(gòu)則必須 滿足條件組間Ui, j η Uj, i = {e}且組內(nèi)W,,y η Wu =0,i, j,k e
,即組間列有且 只有一個相同元素,組內(nèi)列元素沒有交集。 下面將就上述的集合表達(dá)方式進(jìn)行證明,為了方便證明此時的矩陣下標(biāo)從1開 始,而不是上述的0。設(shè)符號Ip表示第i個子矩陣的第ρ列,m“表示第j個子矩陣的第q
列,若已知Hii,D的第ρ列表示為W
up
aIP aR’P
ι m“的第q列表示為W
JA
h
h
2,<
b
3’<
K
bl 和
31
j分別表示分布矩陣Hli的第i行第j列,由于相同行是通過循環(huán)平移操作完成的,所以我們 可以使用II^p來表示IIlj, ^。 b^ q = au q, b2j q = a2, (q+J-i) χ N bEj q = aR, [q+2x o-i)]%N' · · · ' bE, [q+(R-i) χ (j-i)]% n,艮口有下 面的式子成立。 m
JA
b
U
2,q
K
αΛ
a2,(q+j-i)%N a3,[(q+2)x(j-i)%N]
aR,[q+(R-\)x(j-i)]%N
R e [l,N]且 R e I 我們知道任意的W2/』^mj q Φ 0,則可知mi p和mj (i同一行中有相同的元素c
~αι,Ρ~a2,Pa2,(q+j-i)%N
a3,Pa3lq+2x(j-i)]%NP _aRlq+(R-l)x(j-i)]%N 假設(shè)存在兩行元素相同,分別設(shè)為m和n,且m興n,則有條
件
\[q + mx (j - i)]%N = ρ \[q + nx{j-i)f/oN = p
成立,即[(m-n) X (j-i)] % N = 0,由于
7 Φ ,τηΦη
Γι λΠ H y i ^ , τ,則可以得出N—定不是質(zhì)數(shù),這與假設(shè)N為質(zhì)數(shù)矛盾故假
設(shè)不成立,因此和Hli, p和Hlj, q的交集只有一個相同元素,得證,故該分布方式可以實(shí)現(xiàn)無沖 突的并行重構(gòu)。3、其他情況說明由上面證明可知,若要實(shí)現(xiàn)最優(yōu)的并行重構(gòu)性能,構(gòu)成子陣列所需區(qū)塊數(shù)N必須 為質(zhì)數(shù),且由構(gòu)成并行重構(gòu)分布矩陣的過程可以得出需要的數(shù)據(jù)盤數(shù)為N2,這也將無形中 增加系統(tǒng)的成本,因此本發(fā)明也提出了一種針對數(shù)據(jù)盤數(shù)不足的情況下仍能進(jìn)行高性能并 行重構(gòu)的的權(quán)衡方案,若要構(gòu)成并行重構(gòu)陣列,可以采用兩種策略實(shí)現(xiàn),即減小構(gòu)成子陣列 的區(qū)塊或者磁盤劃分區(qū)塊數(shù)兩種方式。下面舉例說明減小構(gòu)成子陣列的區(qū)塊策略,若此時系統(tǒng)中的數(shù)據(jù)盤為16個,由于 所需數(shù)據(jù)盤數(shù)16介于32和52之間,在這種情況下,這16個數(shù)據(jù)盤的分布方式可以采用25 個數(shù)據(jù)盤的分布方式,即添加9個虛擬盤幫助構(gòu)建分布矩陣,最后只需要將25個磁盤的矩 陣分布表的前16列作為16個數(shù)據(jù)盤的分布。具體見附圖1所示,25塊磁盤被分成5組, 通過對Hi0的初始化,并通過循環(huán)移位操作生成Hi1, m2, m3, m4矩陣分布表。由于目前只有16 個磁盤,此時則采用前16列分布形式作為已有16個磁盤的分布形式。圖中一共有25個 subRAID,但此時構(gòu)成subRAID的區(qū)塊數(shù)則沒有上述要求的必須為質(zhì)數(shù),例如圖中subRAID 0由4個編號為0的區(qū)塊構(gòu)成,而subRAIDl由3個編號為1的區(qū)塊構(gòu)成,采用這種方式本質(zhì) 上是采用減小子陣列區(qū)塊數(shù)方式實(shí)現(xiàn)并行重構(gòu)。一般地情況下若此時系統(tǒng)中數(shù)據(jù)盤數(shù)為m,若m e (a2,b2],a,b為大于2的質(zhì)數(shù)且 a2和b2個磁盤的并行重構(gòu)分布分別為Ma和Mb,構(gòu)成方式由公式1得到,則此時m個磁盤的 分布形式采用b2個磁盤的分布Mb的前m列構(gòu)成。但這種分布方式也不是適合每一種m的 情況,比如m= 10的情況,此時滿足10 e (32,52],若仍取52個磁盤分布的前10列則不能 構(gòu)成子陣列,如圖2所示,因?yàn)槊恳粋€子陣列都有要求的最低區(qū)塊數(shù),就如傳統(tǒng)的RAID 5至 少需要3塊磁盤一樣,為了解決m= 10這一特殊情況,本發(fā)明給出了 42個磁盤的并行重構(gòu) 分布形式,生成方式仍然采用公式1生成,但為了實(shí)現(xiàn)無沖突的最優(yōu)并行重構(gòu)這里采取了 減小磁盤劃分區(qū)塊數(shù)和子陣列區(qū)塊數(shù)相結(jié)合的方法,即將42的分布方式第三行編號去除, 此時每個磁盤被劃分為三個區(qū)塊,此時取這一分布的前10列構(gòu)成m = 10的分布形式,如圖 3 所示,subRAID 0、subRAID 1、subRAID 6、subRAID 7、subRAID 14 和 subRAID 15 均由三 個區(qū)塊構(gòu)成,而其他subRAID則不能構(gòu)成標(biāo)準(zhǔn)RAID結(jié)構(gòu),因此這些區(qū)塊編號構(gòu)不成子整列, 10塊磁盤只構(gòu)成了 6個子陣列,空間利用率只占到了一半,這種構(gòu)成方式不推薦,可以采用 32的分布來解決這一問題,但僅鑒于m = 10的情況如此。本發(fā)明的子陣列的數(shù)據(jù)組織方式除了常用的RAID 2 6結(jié)構(gòu)外,本發(fā)明也給出了 RAID 10的并行重構(gòu)分布方式,該方式要求數(shù)據(jù)盤數(shù)m為不小于4的偶數(shù),其不像其他常用 RAID級別如RAID 5對構(gòu)造并行重構(gòu)磁盤陣列要求較苛刻,而對于RAID 10的并行重構(gòu)分 布則沒有這樣的要求,且其并行倍數(shù)僅與組成該分布陣列磁盤數(shù)有關(guān),為其一半。下面將就 RAID 10分布方式的區(qū)塊表構(gòu)造過程做詳細(xì)說明。以8個磁盤構(gòu)成子陣列為例,每個子陣列采用RAID 10級別,則為了實(shí)現(xiàn)最大的 并行倍數(shù),需要將磁盤區(qū)塊數(shù)劃分為總磁盤數(shù)的一半即4,同時將所有主盤邏輯上劃分為一組,鏡像盤劃分為另一組,并對區(qū)塊進(jìn)行標(biāo)號< 主盤組的區(qū)塊分布矩陣表示方式為叫=
'0.00.10.20.3、1.01.11.21.32.02.12.22.3v3.03.13.23.3y
,其中該矩陣的每-
列表示磁盤所劃分的區(qū)塊,即劃分為0. 0,1. 0,2. 0和3. 0四個區(qū)塊,形如X. y形式中的X表 示子陣列的編號,y表示構(gòu)成χ子陣列的區(qū)塊編號,0.0表示構(gòu)成子陣列0的第一個區(qū)塊,可 以理解為構(gòu)成傳統(tǒng)磁盤陣列的第一個磁盤,0. 1,0. 2,0. 3類似。鏡像組的區(qū)塊分布矩陣表示 根據(jù)主盤組中構(gòu)成子陣列的區(qū)塊號進(jìn)行同樣通過公式1方式得到。
這里的盤組分布矩陣本發(fā)明中稱之為初始區(qū)塊表,若對實(shí)例中初始區(qū)塊表矩陣Hi1 采用循環(huán)右移方式構(gòu)成的鏡像組分布方式為 Ο.Ο' 0.1' 0.2' 0.3'、 1.3' 1.0' 1.1' 1.2' 2.2' 2.3' 2.0' 2.1' 3.1' 3.2' 3.3' 3.0'
πι =
,這里形如χ. ι'表示為區(qū)塊編號χ. y的鏡像,則8個
磁盤構(gòu)成的并行重構(gòu) RAID 10分布結(jié)構(gòu)為'0.00.10.20.30.0'0.1'0.21.01.11.21.31.3'1.0'1.1
M =2.02.12.22.32.2'2.3'2.0,3.03.13.23.33.1'3.2'3.3
,該表可以實(shí)現(xiàn)4倍速的并行數(shù)
0.3'、 1.2' 2.1'
v3.0',
據(jù)重構(gòu),該RAID 10結(jié)構(gòu)由四個子陣列0 4構(gòu)成,條帶跨度為4,且對磁盤的重構(gòu)訪問不存 在沖突,這里磁盤的分區(qū)塊數(shù)也可以劃分為小于4,此時的區(qū)塊表只需要在4倍速的區(qū)塊表 基礎(chǔ)上選擇其中的相應(yīng)行重新構(gòu)成新的區(qū)塊分布表即可,但此時的并行重構(gòu)速度將降低。 一般地,對于有N(N為不小于4的偶數(shù))個磁盤的并行重構(gòu)的RAID 10區(qū)塊分布表構(gòu)成形 式為,
廣 Pq ’o^oa ■■■ ^o,(、初
始
表
W0 =
>,(JV/2)-l
P,
1,0
P,
1,1
P,
HNnyi
ρP
X^1 (Α /2)-1,0 1 (Α /2)-1,1
Pr
表 像 鏡
(Α /2)-1,(Α /2Η
m,-
f SH:⑷ SHlr{Pl)
SHfUj
P0表示初始表的第一行元素,P0- · · P(NZ2)-I類似,
表示-
SH: {P)
個平移函數(shù),即將初始表中的(i+Ι)行元素循環(huán)右移η位,其中r也可以替換為1表示循環(huán)左移。4、實(shí)現(xiàn)過程(1)首先系統(tǒng)根據(jù)現(xiàn)有數(shù)據(jù)盤選擇合適的并行重構(gòu)方式,可以采用RAID 10或者 RAID 2 6方式,本實(shí)現(xiàn)過程以9個磁盤的RAID 5進(jìn)行實(shí)施。如圖4所示,圖中的9個磁盤
9的區(qū)塊編號按照公式2所示進(jìn)行分布,每個磁盤被分成三個區(qū)塊,每三個區(qū)塊構(gòu)成一個子 陣列,一共有9個子陣列,形如χ. y的形式表示為組成子陣列χ的編號為y的區(qū)塊。subRAID 6分別由磁盤D0,D5和D7中的6. 0、6. 1和6. 2區(qū)塊構(gòu)成,同理subRAID 7和subRAID 8同 樣有三個區(qū)塊構(gòu)成,這里的子陣列(subRAID)采用標(biāo)準(zhǔn)RAID 5的數(shù)據(jù)組織方式,本發(fā)明的 子陣列也可以采用其他數(shù)據(jù)組織方式。(2)所有這些RAID的邏輯映射表如圖5,圖中有9個RAID的映射表信息,這里我 們假設(shè)每個RAID的映射表大小為K個數(shù)據(jù)單元,為了達(dá)到數(shù)據(jù)分布均衡的目的,我們對每 個數(shù)據(jù)單元進(jìn)行了圖中所示的分布,這里每個數(shù)據(jù)單元中存儲著對應(yīng)的每個RAID相應(yīng)的 磁盤地址信息,這種映射方式可以保證每個磁盤的負(fù)載均衡。(3)當(dāng)并行重構(gòu)RAID配置完成后,其在正常模式下的響應(yīng)方式相對于傳統(tǒng)RAID 存在差別,由上一步映射過程可以知道,相對于傳統(tǒng)RAID,并行重構(gòu)方式的條帶跨度比傳統(tǒng) RAID窄,這種結(jié)構(gòu)對于讀寫操作性能有一定的提高,特別是在RAID處于降級或者重構(gòu)模式 時,具體相應(yīng)過程和傳統(tǒng)RAID —樣,具體過程不做介紹。(4)當(dāng)RAID中出現(xiàn)磁盤失效時,系統(tǒng)將進(jìn)入降級模式,隨后將進(jìn)行數(shù)據(jù)重構(gòu)操作, 系統(tǒng)將根據(jù)邏輯映射關(guān)系讀取相應(yīng)磁盤進(jìn)行重構(gòu),由于采用本發(fā)明提出的并行重構(gòu)分布, 使得重構(gòu)進(jìn)程對失效磁盤的數(shù)據(jù)重構(gòu)操作不存在讀寫沖突。這一過程仍將以9個磁盤組成 的RAID 5結(jié)構(gòu)為例進(jìn)行說明,DO D9是這9個磁盤的編號,SDO SD2是系統(tǒng)所需的備 用磁盤,如圖6所示,圖中類似a. b的編號,a表示subRAID的標(biāo)號,因?yàn)橛?個RAID,這里 我們稱之為subRAID a, b表示子RAID的第(b+Ι)個邏輯盤。圖中磁盤D4失效,這將導(dǎo)致 subRAID UsubRAID 3,subRAID 6的失效,分別涉及到區(qū)塊1. 1、3. 1和8. 1。對區(qū)塊1. 1的 重構(gòu),系統(tǒng)將讀取磁盤Dl上的1. 0區(qū)塊和磁盤D7上的1. 2區(qū)塊數(shù)據(jù)信息,然后將通過異或 操作將結(jié)果寫回到備用盤SD1,這一過程一直持續(xù)到整個區(qū)塊1. 1的數(shù)據(jù)都被重構(gòu)完成為 止,與此同時,另外兩個重構(gòu)進(jìn)程將分別完成對區(qū)塊3. 1和8. 1的重構(gòu),并將重構(gòu)分別寫回 到備用盤SDO和SD2。(5)重構(gòu)過程完成后,SDO SD2三個盤存儲的磁盤D4的信息,系統(tǒng)將在空閑期間 將三個備用盤的信息導(dǎo)回到替換D4的盤中,同時修改相關(guān)的映射信息。(6)鑒于這種并行重構(gòu)結(jié)構(gòu)需要的備用盤過多的問題,本發(fā)明也提出了解決方案, 注意到圖6中的磁盤D3和D5在重構(gòu)過程中沒有參與重構(gòu)操作,因此可以在并行重構(gòu)磁盤 的再分出一個區(qū)塊用于存儲重構(gòu)的信息,結(jié)構(gòu)如圖7所示,此時可以將對區(qū)塊1. 1的重構(gòu)數(shù) 據(jù)寫入到磁盤D3中,將區(qū)塊3. 1的數(shù)據(jù)重構(gòu)寫入到D5中,區(qū)塊8. 1寫入到備用盤SDO中, 這種分布方式同樣可以實(shí)現(xiàn)并行重構(gòu),同時也減少了兩個備用盤的使用。(7)這種并行重構(gòu)方式的子RAID可以使用常見的RAID 1、RAID5、RAID6等,對于 RAID 10這種組合方式,圖8給出了 RAIDlO并行重構(gòu)的數(shù)據(jù)分布方式,分布方式同樣采用移 位操作完成,圖中實(shí)施的是對磁盤D2的重構(gòu)操作,具體重構(gòu)過程和RAID 5類似。(8)為了評估本發(fā)明這種并行重構(gòu)的性能,主要依據(jù)兩個指標(biāo)即重構(gòu)時間和用戶 平均響應(yīng)時間,圖9為測試的結(jié)構(gòu)圖,采用客戶端-服務(wù)器方式進(jìn)行測試,通過ISCSI連 接,本發(fā)明主要應(yīng)用在圖中的并行RAID重構(gòu)模塊中,測試用例采用了三個標(biāo)準(zhǔn)測試用例 (Finl, Fin2, Web),對比測試對象是Linux系統(tǒng)下常用的軟RAID即MD(Multiple Device) (不需要中文)。
(9)圖10表示重構(gòu)時間測試,從圖中可以看出并行重構(gòu)RAID5相對于標(biāo)準(zhǔn)MD構(gòu)成 的RAID 5,其不論哪個測試用例,并行重構(gòu)RAID 5的重構(gòu)時間有著幾倍的提高;在用戶平 均響應(yīng)時間方面,從圖11給出的結(jié)果可以看出,同樣負(fù)載的情況下,并行重構(gòu)RAID 5的用 戶平均響應(yīng)時間也有不同程度的降低。本發(fā)明采用循環(huán)平移法構(gòu)建子陣列只是其中的一種優(yōu)選方式,所在領(lǐng)域的技術(shù)人 員可采用其它方式構(gòu)建,只要滿足子陣列構(gòu)建要求即可。
權(quán)利要求
一種RAID的數(shù)據(jù)并行重構(gòu)方法,涉及兩個以上的數(shù)據(jù)盤和至少一個熱備份盤,將各數(shù)據(jù)盤劃分為相同數(shù)量的區(qū)塊,利用各區(qū)塊構(gòu)建子陣列,使得任何一個數(shù)據(jù)盤的各區(qū)塊分屬于不同的子陣列且只屬于一個子陣列;單個數(shù)據(jù)盤的數(shù)據(jù)重構(gòu)按照如下方式進(jìn)行對于該數(shù)據(jù)盤中的每一個區(qū)塊,分別同時尋找與其構(gòu)成同一子陣列的其它區(qū)塊,依據(jù)其它區(qū)塊的數(shù)據(jù)對該區(qū)塊的數(shù)據(jù)進(jìn)行重構(gòu),并將重構(gòu)結(jié)果保存到熱備份盤或沒有參與此次重構(gòu)的數(shù)據(jù)盤。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)并行重構(gòu)方法,其特征在于,對于任意兩個子陣列,其中 一個子陣列最多只有一個區(qū)塊與另一個子陣列的一個區(qū)塊同屬于一個數(shù)據(jù)盤。
3.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)并行重構(gòu)方法,其特征在于,所述數(shù)據(jù)盤采用RAID 1 6數(shù)據(jù)存儲級別,所述子陣列按照如下方式構(gòu)造(11)將數(shù)據(jù)盤均分為C組,第1到第C組數(shù)據(jù)盤Hi^m1.....!V1的區(qū)塊分別構(gòu)成第1、2.....c組區(qū)塊分布矩陣,若數(shù)據(jù)盤不能均分為c組,則通過添加與數(shù)據(jù)盤相同區(qū)塊劃分的虛擬盤或減少數(shù)據(jù)盤滿足均分要求,c大于2 ;(12)初始化第一區(qū)塊分布矩陣中的各區(qū)塊編號,第i+Ι組分布矩陣的第j行元素由第 i組矩陣的第j行元素循環(huán)右移或左移j_l位,i = 1,. . .,c-1,j = 1,. . .,η,η為數(shù)據(jù)盤 被劃分的區(qū)塊數(shù);(13)選取各數(shù)據(jù)盤具有相同編號的區(qū)塊構(gòu)成一個子陣列。
4.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)并行重構(gòu)方法,其特征在于,所述數(shù)據(jù)盤采用RAID 10數(shù)據(jù)存儲級別,數(shù)據(jù)盤數(shù)為不小于4的偶數(shù),所述子陣列按照如下方式構(gòu)造(21)將數(shù)據(jù)盤均分為兩組,第一,二組數(shù)據(jù)盤叫、Hi1的區(qū)塊分別構(gòu)成第一、二組區(qū)塊分 布矩陣;(22)對第一組區(qū)塊分布矩陣的第χ行各區(qū)塊進(jìn)行形如χ.y形式的初始化編號,χ = 0, 1,. . .,m/2-1, y = 0,1,. . .,m/2_l,第二組區(qū)塊分布矩陣的第χ行各區(qū)塊編號由第一組分 布矩陣的第χ行各區(qū)塊編號循環(huán)右移或左移χ位;(23)從各數(shù)據(jù)盤中選取具有相同編號的區(qū)塊構(gòu)成一個子陣列。
全文摘要
本發(fā)明公開了一種RAID的數(shù)據(jù)并行重構(gòu)方法,采用子陣列分布方式實(shí)現(xiàn)并行重構(gòu)操作,子陣列由不同磁盤的區(qū)塊構(gòu)成,對于數(shù)據(jù)盤中的每一個區(qū)塊,分別同時尋找與其構(gòu)成同一子陣列的其它區(qū)塊,依據(jù)其它區(qū)塊的數(shù)據(jù)對該區(qū)塊的數(shù)據(jù)進(jìn)行重構(gòu)。本發(fā)明成倍地縮短了數(shù)據(jù)重構(gòu)過程,其所有重構(gòu)操作不論是讀或者寫相關(guān)數(shù)據(jù)都是并行操作,且在重構(gòu)過程中可以實(shí)時響應(yīng)前臺用戶的請求,有效降低了用戶平均響應(yīng)時間,在提高系統(tǒng)可靠性的同時,增強(qiáng)了系統(tǒng)的性能。
文檔編號G06F11/10GK101923496SQ20101024128
公開日2010年12月22日 申請日期2010年7月30日 優(yōu)先權(quán)日2010年7月30日
發(fā)明者萬繼光, 楊寅, 王繼彬, 謝長生, 譚志虎 申請人:華中科技大學(xué)