專利名稱:廉價磁盤冗余陣列重構(gòu)方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實施例涉及存儲技術(shù)領(lǐng)域,尤其涉及一種廉價磁盤冗余陣列(Redundant Array of Inexpensive Disks,簡稱RAID)重構(gòu)方法、裝置及系統(tǒng)。
背景技術(shù):
在RAID技術(shù)中,可以直接在物理磁盤上存儲和讀取數(shù)據(jù)。在物理磁盤失效或者處 于半命狀態(tài)時,可以啟動重構(gòu),將失效或即將失效的物理磁盤中的數(shù)據(jù)恢復(fù)到熱備盤中,將 物理磁盤的邏輯單元號(Logic UnitNumber,簡稱LUN)恢復(fù)為正常狀態(tài),保證整個存儲系 統(tǒng)的可靠性?,F(xiàn)有的RAID中,如果有物理磁盤失效,則從RAID的其他物理磁盤上讀取數(shù)據(jù),將 讀取到的數(shù)據(jù)進行異或后寫入熱備盤。這種方法存在一個問題從多個物理磁盤上的數(shù)據(jù) 都需要寫入到一個熱備盤中,熱備盤的寫入速度就成為一個瓶頸,從而導(dǎo)致RAID重構(gòu)速度 很慢。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種RAID重構(gòu)方法、裝置及系統(tǒng),用于解決現(xiàn)有技術(shù)中有物理 磁盤失效的情況下RAID重構(gòu)速度慢的問題,提高RAID重構(gòu)速度。本發(fā)明實施例提供了一種RAID重構(gòu)方法,包括當?shù)谝晃锢泶疟P出現(xiàn)故障時,從預(yù)先生成的布局模板的各個邏輯模塊中找出與所 述第一物理磁盤的DU處于同一 LDS的其他物理磁盤的DU,將從所述其他物理磁盤的DU讀 出的數(shù)據(jù)進行異或后寫入第二物理磁盤的熱備DU中;在所述布局模板中,用第二物理磁盤的DU的標識替換所述第一物理磁盤的DU的 標識;所述布局模板包括m個邏輯模塊,每個邏輯模塊包括2個LDS,每個LDS包括 (m+l)/2或者(m-l)/2個DU的標識,每個LDS中的DU的標識對應(yīng)的DU均屬于不同的物理 磁盤,并且同一個邏輯模塊中的每個LDS中包含的DU的標識均不相同;所述第二物理磁盤 的DU的標識和第一物理磁盤的DU的標識在所述邏輯模塊中處于同一列,并且第一物理磁 盤和第二物理磁盤的DU的標識屬于不同的LDS ;所述RAID包括N個物理磁盤,當N為偶數(shù)時,m取值為N-I ;當N為奇數(shù)時,m取值為N。本發(fā)明實施例還提供了一種RAID重構(gòu)裝置,包括 存儲模塊,用于存儲布局模板,所述布局模板包括m個邏輯模塊,每個邏輯模塊包 括2個LDS,每個LDS包括(m+1) /2或者(m_l) /2個DU的標識,每個LDS中的DU的標識對 應(yīng)的DU均屬于不同的物理磁盤,并且同一個邏輯模塊中的每個LDS中包含的DU的標識均 不相同;當N為偶數(shù)時,m取值為N-I ;當N為奇數(shù)時,m取值為N ;N為RAID中的物理磁盤 總數(shù);
第一處理模塊,用于當?shù)谝晃锢泶疟P出現(xiàn)故障時,從所述存儲模塊存儲的布局模 板的各個邏輯模塊中找出與所述第一物理磁盤的DU處于同一 LDS的其他物理磁盤的DU,將 從所述其他物理磁盤的DU讀出的數(shù)據(jù)進行異或后寫入第二物理磁盤的DU中;第二處理模塊,用于在所述布局模板中用所述第二物理磁盤的DU的標識替換所 述第一物理磁盤的DU的標識;所述第二物理磁盤的DU的標識和第一物理磁盤的DU的標 識在所述邏輯模塊中處于同一列,第一物理磁盤和第二物理磁盤的DU的標識屬于不同的 LDS。本發(fā)明實施例還提供了一種RAID系統(tǒng),包括如前所述的RAID重構(gòu)裝置。本發(fā)明實施例提供的RAID重構(gòu)方法、裝置及系統(tǒng),預(yù)先生成布局模板,當有某一 物理磁盤出現(xiàn)故障時,從布局模板中找出與出現(xiàn)故障的物理磁盤的DU的標識處于同一 LDS 的其他的物理磁盤的DU的標識,從與出現(xiàn)故障的物理磁盤的DU的標識處于同一 LDS的其 他的物理磁盤的DU的標識對應(yīng)的DU中讀出數(shù)據(jù),將讀出的數(shù)據(jù)異或后寫入在布局模板中 與出現(xiàn)故障的物理磁盤對應(yīng)的DU的標識處于同一列的另一物理磁盤的DU的標識對應(yīng)的DU 中。布局模板包括m個邏輯模塊,每個邏輯模塊包括2個LDS,每個LDS包括(m+1) /2或者 (m-1) /2個DU,每個DU屬于不同的物理磁盤。由于邏輯模塊包括多個與發(fā)生故障的物理磁 盤對應(yīng)的DU的標識處于同一列的物理磁盤的DU的標識就有多個,這樣,寫入數(shù)據(jù)時分別就 可以寫入不同物理磁盤對應(yīng)的DU中,而不是寫入到同一塊熱備物理磁盤中,與現(xiàn)有技術(shù)相 比,減少了寫入數(shù)據(jù)所需的時間,縮短了 RAID重構(gòu)恢復(fù)所需的時間,提高了重構(gòu)速度,減小 雙盤失效的概率,提高RAID系統(tǒng)的可靠性。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā) 明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。圖1所示為本發(fā)明RAID重構(gòu)方法實施例一的流程圖;圖2所示為本發(fā)明實施例中物理磁盤的空間劃分示意圖;圖3所示為將6個物理磁盤對應(yīng)的DU的標識以各個標識中的數(shù)字的大小順序排 列的示意圖;圖4所示為對如圖3所示的DU進行第一次輪轉(zhuǎn)后的排列示意圖;圖5所示為對如圖3所示的DU進行第二次輪轉(zhuǎn)后的排列示意圖;圖6所示為對如圖3所示的DU進行第三次輪轉(zhuǎn)后的排列示意圖;圖7所示為對如圖3所示的DU進行第四次輪轉(zhuǎn)后的排列示意圖;圖8所示為本發(fā)明實施例中包括6個物理磁盤的情況下形成的布局模板的示意 圖;圖9所示為本發(fā)明實施例中包括N個物理磁盤的情況下形成的布局模板的示意 圖;圖10所示為本發(fā)明實施例中將10個物理磁盤對應(yīng)的DU的標識以各個標識中的 數(shù)字的大小順序排列的示意6
圖11所示為本發(fā)明實施例中包括9個物理磁盤的情況下生成的9個邏輯模塊的 示意圖;圖12所示為本發(fā)明實施例中包括9個物理磁盤的情況下生成的布局模板的示意 圖;圖13所示為本發(fā)明實施例中對發(fā)生故障的物理磁盤進行恢復(fù)后的布局模板示意 圖;圖14所示為本發(fā)明實施例中Pl和P2所在的物理磁盤均出現(xiàn)故障后進行數(shù)據(jù)重 構(gòu)時的布局模板示意圖;圖15所示為本發(fā)明RAID重構(gòu)裝置實施例一的結(jié)構(gòu)示意圖;圖16所示為本發(fā)明RAID重構(gòu)裝置實施例二的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是 本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如圖1所示為本發(fā)明RAID重構(gòu)方法實施例一的流程圖,包括步驟101、當?shù)谝晃锢泶疟P出現(xiàn)故障時,從預(yù)先生成的布局模板的各個邏輯模塊中 找出與第一物理磁盤的磁盤單元(Disk Unit,簡稱DU)處于同一LDS的其他物理磁盤的DU, 將從其他物理磁盤的DU讀出的數(shù)據(jù)進行異或后寫入第二物理磁盤的熱備DU中。步驟102、在布局模板中,用第二物理磁盤的DU的標識替換第一物理磁盤的DU的 標識;第二物理磁盤的DU的標識和第一物理磁盤的DU的標識在邏輯模塊中處于同一列,第 一物理磁盤和第二物理磁盤的DU的標識屬于不同的LDS。其中,布局模板包括m個邏輯模塊,每個邏輯模塊包括2個邏輯磁盤條帶(Logic Disk Stripe,簡稱LDS),每個LDS包括(m+l)/2或者(m_l)/2個DU,每個LDS中的DU的標 識對應(yīng)的DU均屬于不同的物理磁盤,并且同一個邏輯模塊中的每個LDS中包含的DU的標 識均不相同,N為RAID中物理磁盤的數(shù)目,較佳地,N可以大于或等于6。當N為偶數(shù)時,m 取值為N-I ;當N為奇數(shù)時,m取值為N。在本發(fā)明的實施例中,物理磁盤劃分為多個區(qū)域,如圖2所示為本發(fā)明實施例中 物理磁盤的空間劃分示意圖,物理磁盤包括數(shù)據(jù)空間、熱備空間和備份(Data Backup,簡稱 DB)空間。數(shù)據(jù)空間用于存儲正常的數(shù)據(jù)。熱備空間用于存儲從其他失效盤恢復(fù)出來的數(shù) 據(jù)。備份空間用于存儲系統(tǒng)的DB壓縮包。每一個存儲系統(tǒng)都需要一個文件記錄和存放當 前的系統(tǒng)狀態(tài)、配置數(shù)據(jù)等,這些系統(tǒng)狀態(tài)、配置數(shù)據(jù)可以統(tǒng)稱為DB。為了保證這個文件的 安全性,在DB保存時會將它使用壓縮算法進行壓縮,再存入裸盤,壓縮好的DB文件就是DB 壓縮包。本發(fā)明的實施例中,數(shù)據(jù)空間、熱備空間和備份空間均包括多個DU,也就是說,本發(fā) 明的實施例中,數(shù)據(jù)存儲和讀取是以DU為粒度進行的。熱備空間的DU稱為熱備DU。在本發(fā)明的實施例中,可以在創(chuàng)建RAID時預(yù)先生成一個布局模板。通常在需要組 建RAID時需要確定該RAID包括哪些物理磁盤,確定包括哪些物理磁盤后,用于管理各個物 理磁盤的裝置可以在創(chuàng)建RAID時生成一個布局模板。生成布局模板的方法具體可以包括將N個物理磁盤的DU的標識依照預(yù)設(shè)順序排列,并且分成兩行,如果N為偶數(shù),那么每行包 括N/2個DU的標識;如果N為奇數(shù),那么一行包括((N+1) /2)-1個DU的標識和一個虛擬的 DU的標識,另一行包括((N+l)/2)個DU的標識;固定第一DU的標識,當N為偶數(shù)時,將其余DU的標識順序移位(N-1次,生成(N_l) 個邏輯模塊;當N為奇數(shù)時,將其余DU的標識順序移位N次,生成N個邏輯模塊,并去掉各 個邏輯模塊中包含有所述虛擬的DU的標識的列。下面詳細描述該布局模板的生成方法。RAID可以包括多個物理磁盤,假設(shè)RAID包括6個物理磁盤,以Pl、P2、P3、P4、P5 和P6分別作為各個物理磁盤上的DU的標識。將這6個物理磁盤對應(yīng)的DU的標識依照預(yù) 設(shè)順序排列,例如,預(yù)設(shè)順序可以是各個標識中的數(shù)字的大小順序,或者,也可以是各個標 識中字母的先后順序。將排序后的各個DU的標識并分成兩行,每行均包括3個DU的標識, 如圖3所示為將6個物理磁盤對應(yīng)的DU的標識以各個標識中的數(shù)字的大小順序排列的示 意圖。然后,固定Pl的位置不動,將其他各個DU的標識的位置依次輪轉(zhuǎn),也可以叫做順 序移位,即P4移動到P2的位置,P2移動到P3的位置,P3移動到P6的位置,P6移動到P5 的位置,P5移動到P4的位置。通過這種方式,得到第一次輪轉(zhuǎn)后的DU排列示意圖,如圖4 所示。然后,繼續(xù)固定Pl的位置不動,將其他各個DU的標識的位置依次輪轉(zhuǎn),得到第二 次輪轉(zhuǎn)后的磁盤排列示意圖,如圖5所示。繼續(xù)固定Pl的位置不動,將其他各個DU的標識的位置依次輪轉(zhuǎn),以此類推,分別 可以得到第三次和第四次輪轉(zhuǎn)后的DU的標識的排列示意圖如圖6和圖7所示。初始形成的DU的標識排列以及各次輪轉(zhuǎn)后的DU的標識的排列分別形成一個邏輯 模塊,每個邏輯模塊包括2個LDS,每個LDS包括3個DU的標識,各個DU的標識對應(yīng)的DU 分別屬于不同的物理磁盤。各次輪轉(zhuǎn)后的DU的標識排列以及初始形成的DU的標識的排列形成的邏輯模塊可 以組成一個布局模板,如圖8所示為本發(fā)明實施例中包括6個物理磁盤的情況下形成的布 局模板的示意圖,該布局模板包括5個邏輯模塊,每一行DU的標識形成一個LDS,每一列DU 的標識對應(yīng)的DU形成一個虛擬磁盤。對于用戶來說,用戶看到的是這三個虛擬磁盤,實際 上這三個虛擬盤是由分散在各個物理磁盤上的DU組成的。上述例子中以RAID包括6個物理磁盤為例進行介紹,如果RAID包括N (假設(shè)N為 偶數(shù))個物理磁盤,則可以如圖9所示的方式進行輪轉(zhuǎn)產(chǎn)生布局模板,如圖9所示為本發(fā)明 實施例中包括N個物理磁盤的情況下生成布局模板的示意圖,具體的生成方法與前述6個 物理磁盤的例子相同,不再贅述。下面再以RAID中包括奇數(shù)個物理磁盤為例來說明。假設(shè)RAID包括9個物理磁盤, 以P1、P2、P3、P4、P5、P6、P7、P8和P9分別作為各個物理磁盤上的DU的標識。為例進行后 續(xù)的輪轉(zhuǎn)的步驟,可以增加一個虛擬的DU的標識P10,將這10個物理磁盤對應(yīng)的DU的標 識依照預(yù)設(shè)順序排列,例如,預(yù)設(shè)順序可以是各個標識中的數(shù)字的大小順序。將排序后的各 個DU的標識并分成兩行,每行均包括5個DU的標識,其中,第一行包括5個物理磁盤的DU 的標識,第二行包括4個物理磁盤的DU的標識,以及一個虛擬的DU的標識。如圖10所示
8為本發(fā)明實施例中將10個物理磁盤對應(yīng)的DU的標識以各個標識中的數(shù)字的大小順序排列 的示意圖。需要說明的是,圖10中,虛擬的DU的標識排序時排在了最后一個,因此,虛擬的 DU的標識被分在第二行。如果按照其他的方式排序,虛擬的DU的標識,也可以在第一行。
固定Pl的位置不動,將其他各個DU的標識的位置依次輪轉(zhuǎn),依次輪轉(zhuǎn)9次之后, 生成9個邏輯模塊,生成的9個邏輯模塊如圖11所示,如圖11所示為本發(fā)明實施例中包括 9個物理磁盤的情況下生成的9個邏輯模塊的示意圖。再去掉各個邏輯模塊中含有PlO的 列,生成布局模板,如圖12所示為本發(fā)明實施例中包括9個物理磁盤的情況下生成的布局 模板的示意圖。當某個物理磁盤出現(xiàn)故障時,就可以從布局模板中找出與出現(xiàn)故障的磁盤 處于同一 LDS的其他物理磁盤,將從與出現(xiàn)故障的磁盤的DU的標識處于同一 LDS的其他物 理磁盤的DU的標識對應(yīng)的DU中讀出的數(shù)據(jù)進行異或后寫入另一物理磁盤的熱備DU中,寫 入數(shù)據(jù)的物理磁盤的DU的標識可以與發(fā)生故障的物理磁盤的DU的標識在一個邏輯模塊中 處于同一列,并且分別處于不同的LDS。 例如,第一物理磁盤是Pl所在的物理磁盤,可以通過與Pl處于相同LDS的其他DU 的標識對應(yīng)的物理磁盤來恢復(fù)Pi所在的物理磁盤的數(shù)據(jù)。如圖8所示的布局模板包括5個邏輯模塊,對于第一個邏輯模塊來說,Pl和P2以 及P3處于同一 LDS,可以將P2和P3的數(shù)據(jù)讀出,將讀出的數(shù)據(jù)異或后寫入P4中,在布局表 中用P4替換P1,P4與Pl在第一個邏輯模塊中處于同一列,并且P4和Pl屬于不同的LDS。 如圖13所示為本發(fā)明實施例中對發(fā)生故障的物理磁盤進行恢復(fù)后的布局模板示意圖。對于第二個邏輯模塊來說,P1、P4和P2處于同一個LDS,P5與Pl處于同一列,可以 將P4和P2的數(shù)據(jù)讀出,將讀出的數(shù)據(jù)進行異或后寫入P5中,在布局模板中用P5替換Pl, 如圖13所示。對于第三個邏輯模塊來說,Pl、P5和P4處于同一個LDS,P6與Pl處于同一列,可以 將P5和P4的數(shù)據(jù)讀出,將讀出的數(shù)據(jù)進行異或后寫入P6中,在布局模板中用P6替換Pl, 如圖13所示。對于第四個邏輯模塊來說,P1、P6和P5處于同一個LDS,P3與Pl處于同一列,可以 將P6和P5的數(shù)據(jù)讀出,將讀出的數(shù)據(jù)進行異或后寫入P3中,在布局模板中用P3替換Pl, 如圖13所示。對于第五個邏輯模塊來說,P1、P3和P6處于同一個LDS,P2與Pl處于同一列,可以 將P3和P6的數(shù)據(jù)讀出,將讀出的數(shù)據(jù)進行異或后寫入P2中,在布局模板中用P2替換Pl, 如圖13所示。經(jīng)過上述的處理后,分別通過其他的物理磁盤的DU中的數(shù)據(jù)恢復(fù)出了 Pl所在的 物理磁盤上的數(shù)據(jù),恢復(fù)出的數(shù)據(jù)分別寫入P2、P3、P4、P5和P6中,而不是將恢復(fù)出的數(shù)據(jù) 寫入同一個磁盤,提高了數(shù)據(jù)寫入的速度,能夠縮短RAID故障恢復(fù)的時間,從而減小雙盤 失效的概率,提高RAID系統(tǒng)的可靠性。在前述各實施例中,由于布局模板包括多個邏輯模塊,每個邏輯模塊中均包括出 現(xiàn)故障的物理磁盤,在各個邏輯模塊中,與出現(xiàn)故障的物理磁盤對應(yīng)的DU的標識處于同一 列的DU的標識所對應(yīng)的物理磁盤均可以看做是第二物理磁盤。例如,對于第一邏輯模塊來 說,P4所在的物理磁盤可以看做第二物理磁盤。對于第二邏輯模塊來說,P5所在的物理磁 盤可以看做第二物理磁盤。
在本發(fā)明的實施例中,在第一物理磁盤重構(gòu)完成后下(即第一物理磁盤故障恢復(fù) 后),還可以允許另一個物理磁盤出現(xiàn)故障。如果第一物理磁盤故障恢復(fù)后,第三物理磁盤 出現(xiàn)故障,則從布局模板的各個邏輯模塊中找出與第三物理磁盤的DU的標識處于同一 LDS 的其他物理磁盤的DU的標識,將從其他物理磁盤的DU的標識對應(yīng)的讀出的數(shù)據(jù)進行異或 后寫入第四物理磁盤的熱備DU中;布局模板中,用第四物理磁盤的DU的標識替換第三物理 磁盤的DU的標識;所述第四物理磁盤的DU的標識和第三物理磁盤的DU的標識在所述邏輯 模塊中處于同一列,第三物理磁盤和第四物理磁盤的DU的標識屬于不同的LDS。如果一個 邏輯模塊中,與第三物理磁盤對應(yīng)的DU的標識包括兩個,則在該邏輯模塊中,將與第三物 理磁盤的DU的標識處于同一 LDS的其他物理磁盤的DU的標識讀出的數(shù)據(jù)進行異或后,寫 入第五物理磁盤的DU中,第五物理磁盤的DU的標識是在該邏輯模塊中除了與第三物理磁 盤的DU的標識處于同一 LDS的物理磁盤的DU的標識之外的其他的標識。例如,第一物理磁盤是Pl所在的物理磁盤,第三物理磁盤是P2所在的物理磁盤, 這種情況下仍然可以采用前述方法來進行故障恢復(fù),即從布局模板中找出與Pi處于同一 LDS的其他物理磁盤的DU的標識,將從其他物理磁盤的DU讀出的數(shù)據(jù)進行異或后寫入與 Pl處于相應(yīng)位置的物理磁盤的熱備DU中。由于Pl所在的物理磁盤發(fā)生故障后,布局模板發(fā)生了變化,所以,P2所在的物理 磁盤也發(fā)生變化后,進行數(shù)據(jù)恢復(fù)時需要基于發(fā)生了變化的布局模板進行,即,基于如圖13 所示的模板。圖13中,對于第一個邏輯模塊來說,P2、P4和P3處于同一個LDS,P5與P2處于同 一列,可以將P4和P3的數(shù)據(jù)讀出,將讀出的數(shù)據(jù)進行異或后寫入P5中,在布局模板中用P5 替換P2,如圖14所示,圖14所示為本發(fā)明實施例中Pl和P2所在的物理磁盤均出現(xiàn)故障后 進行數(shù)據(jù)重構(gòu)時的布局模板示意圖。對于第二個邏輯模塊來說,P5、P4和P2處于同一個LDS,P3與P2處于同一列,可 以將P5和P4的數(shù)據(jù)讀出,將讀出的數(shù)據(jù)進行異或后寫入P3中,在布局模板用P3替換P2, 如圖14所示。對于第三個邏輯模塊來說,P6、P3和P2處于同一個LDS,P4與P2處于同一列,可以 將P6和P3的數(shù)據(jù)讀出,將讀出的數(shù)據(jù)進行異或后寫入P4中,在布局模板中用P4替換P2, 如圖14所示。對于第四個邏輯模塊來說,P2、P3和P4處于同一個LDS,P6與P2處于同一列,可以 將P4和P3的數(shù)據(jù)讀出,將讀出的數(shù)據(jù)進行異或后寫入P6中,在布局模板中用P6替換P2, 如圖14所示。對于第五個邏輯模塊來說,P2、P3和P6處于同一個LDS,而布局模板中之前替換了 Pl的P2與布局模板中本來就存在的P2處于同一列,這時可以將布局模板中任意兩個其他 DU的數(shù)據(jù)讀出后進行異或?qū)懭肓硗庖粋€DU中,例如,如圖14所示,可以將P3和P6的數(shù)據(jù) 讀出并進行異或后寫入P4中,將P4和P5的數(shù)據(jù)讀出并進行異或后寫入P3中,在布局模板 中用P3和P4替換了 P2?;蛘?,可以將P3和P6的數(shù)據(jù)讀出并進行異或后寫入P5中,將P4 和P5的數(shù)據(jù)讀出并進行異或后寫入P6中,在布局模板中用P5和P6替換P2。通過上述的步驟,P2所在的物理磁盤的數(shù)據(jù)分別通過其他各個物理磁盤進行了恢 復(fù),恢復(fù)后的數(shù)據(jù)分別存儲在其他物理磁盤的DU中。
10
在前述各實施例中,由于布局模板包括多個邏輯模塊,每個邏輯模塊中均包括出 現(xiàn)故障的物理磁盤,在各個邏輯模塊中,與第三物理磁盤的DU的標識處于同一列的DU的標 識所對應(yīng)的物理磁盤均可以看做是第四物理磁盤。例如,對于第一邏輯模塊來說,P5所在 的物理磁盤可以看做第四物理磁盤。對于第二邏輯模塊來說,P3所在的物理磁盤可以看做 第四物理磁盤。對于第五個邏輯模塊,P5、P4、P6或P3所在的物理磁盤可以看做是第五物 理磁盤。第一物理磁盤、第二物理磁盤、第三物理磁盤、第四物理磁盤和第五物理磁盤是同 一個RAID中的組成物理磁盤。本發(fā)明實施例提供的方法,由于數(shù)據(jù)存儲的粒度是DU,一個物理磁盤中有專門的 熱備DU用于存儲其他物理磁盤恢復(fù)出的數(shù)據(jù),這樣可以允許有多個物理磁盤出現(xiàn)故障。出 現(xiàn)故障后的恢復(fù)方法與前述方法相同。本發(fā)明實施例提供的方法、裝置及系統(tǒng),預(yù)先生成布局模板,當有某一物理磁盤出 現(xiàn)故障時,從布局模板中找出與出現(xiàn)故障的物理磁盤的DU的標識處于同一 LDS的其他的物 理磁盤的DU的標識,從與出現(xiàn)故障的物理磁盤的DU的標識處于同一 LDS的其他的物理磁 盤的DU的標識對應(yīng)的DU中讀出數(shù)據(jù),將讀出的數(shù)據(jù)異或后寫入在布局模板中與出現(xiàn)故障 的物理磁盤對應(yīng)的DU的標識處于同一列的另一物理磁盤的DU的標識對應(yīng)的DU中。布局 模板包括m個邏輯模塊,每個邏輯模塊包括2個LDS,每個LDS包括(m+1) /2或者(m_l) /2 個DU,每個DU屬于不同的物理磁盤。由于邏輯模塊包括多個與發(fā)生故障的物理磁盤對應(yīng)的 DU的標識處于同一列的物理磁盤的DU的標識就有多個,這樣,寫入數(shù)據(jù)時分別就可以寫入 不同物理磁盤對應(yīng)的DU中,而不是寫入到同一塊熱備物理磁盤中,與現(xiàn)有技術(shù)相比,減少 了寫入數(shù)據(jù)所需的時間,縮短了 RAID重構(gòu)恢復(fù)所需的時間,提高了重構(gòu)速度,減小雙盤失 效的概率,提高RAID系統(tǒng)的可靠性。本發(fā)明實施提供的RAID重構(gòu)方法,在重構(gòu)完成后,重新插入用于替換發(fā)生故障的 第一物理磁盤的正常磁盤,這時需要進行回拷,即將第二物理磁盤的熱備DU中的數(shù)據(jù)回拷 到重新插入的用于替換第一物理磁盤的物理磁盤中,并將布局模板恢復(fù)到?jīng)]有進行替換之 前的狀態(tài)。例如圖8所示。如圖15所示為本發(fā)明RAID重構(gòu)裝置實施例一的結(jié)構(gòu)示意圖,該裝置包括存儲 模塊11、第一處理模塊12和第二處理模塊13。存儲模塊11用于存儲布局模板,布局模板 包括m個邏輯模塊,每個邏輯模塊包括2個LDS,每個LDS包括(m+1) /2或者(m_l) /2個DU 的標識,每個LDS中的DU的標識對應(yīng)的DU均屬于不同的物理磁盤,并且同一個邏輯模塊中 的每個LDS中包含的DU的標識均不相同,當N為偶數(shù)時,m取值為N-I ;當N為奇數(shù)時,m取 值為N ;N為RAID中的物理磁盤總數(shù)。第一處理模塊12與存儲模塊11連接,用于當?shù)谝?物理磁盤出現(xiàn)故障時,從存儲模塊11存儲的布局模板的各個邏輯模塊中找出與第一物理 磁盤的DU處于同一 LDS的其他物理磁盤的DU,將從其他物理磁盤的DU讀出的數(shù)據(jù)進行異 或后寫入第二物理磁盤的熱備DU中。第二處理模塊13用于在布局模板中用第二物理磁盤 的DU的標識替換第一物理磁盤的DU的標識;第二物理磁盤的DU的標識和第一物理磁盤的 DU的標識在所述邏輯模塊中處于同一列,第一物理磁盤和第二物理磁盤的DU的標識屬于 不同的LDS。第一處理模塊12還可以用于當?shù)谝晃锢泶疟P故障恢復(fù)后,第三物理磁盤出現(xiàn)故 障時,從布局模板的各個邏輯模塊中找出與所述第三物理磁盤的DU處于同一 LDS的其他物理磁盤的DU,將從其他物理磁盤的DU讀出的數(shù)據(jù)進行異或后寫入第四物理磁盤的熱備DU 中。第二處理模塊13還可以用于在布局模板中,用第四物理磁盤的DU的標識替換第三物 理磁盤的DU的標識;第四物理磁盤的DU的標識和第三物理磁盤的DU的標識在邏輯模塊中 處于同一列;并且用于對于一個邏輯模塊中與第三物理磁盤對應(yīng)的DU的標識包括兩個的 情況,將與第三物理磁盤的DU處于同一 LDS的其他物理磁盤的DU讀出的數(shù)據(jù)進行異或后, 寫入第五物理磁盤的DU中,第五物理磁盤的DU的標識是在該邏輯模塊中除了與第三物理 磁盤的DU的標識處于同一 LDS的物理磁盤的DU的標識之外的其他的標識。如圖16所示為本發(fā)明RAID重構(gòu)裝置實施例二的結(jié)構(gòu)示意圖,該實施例中,RAID重 構(gòu)裝置還包括創(chuàng)建模塊14,在創(chuàng)建RAID時生成布局模板。具體地,創(chuàng)建模塊14具體可以用于將N個物理磁盤的DU的標識依照預(yù)設(shè)順序 排列,并且分成兩行,當N為偶數(shù)時,每行包括N/2個DU的標識;當N為奇數(shù)時,一行包括 ((N+l)/2)-l個DU的標識和一個虛擬的DU的標識,另一行包括((N+l)/2)個DU的標識; 固定第一 DU的標識,當N為偶數(shù)時,將其余DU的標識順序移位(N-1次,生成(N-I)個邏輯 模塊;當N為奇數(shù)時,將其余DU的標識順序移位N次,生成N個邏輯模塊,并去掉各個邏輯 模塊中包含有所述虛擬的DU的標識的列。該實施例還可以包括第三處理模塊15,第三處理模塊與存儲模塊11、第一處理模 塊12和第二處理模塊13連接,用于在第一處理模塊12和第二處理模塊13的處理完成后, 將第二物理磁盤的熱備DU中的數(shù)據(jù)回拷到重新插入的用于替換第一物理磁盤的物理磁盤 中,并將布局模板恢復(fù)到?jīng)]有進行替換之前的狀態(tài)。RAID重構(gòu)裝置中各個模塊的工作原理與前述方法實施例部分描述,不再贅述。本發(fā)明實施例還提供一種RAID重構(gòu)系統(tǒng),包括前述各個實施例中的RAID重構(gòu)裝 置。該RAID重構(gòu)裝置可以與各個物理磁盤連接,實現(xiàn)對RAID中各個物理磁盤的處理。本發(fā)明實施例提供的裝置及系統(tǒng),預(yù)先生成布局模板,當有某一物理磁盤出現(xiàn)故 障時,從布局模板中找出與出現(xiàn)故障的物理磁盤的DU的標識處于同一 LDS的其他的物理磁 盤的DU的標識,從與出現(xiàn)故障的物理磁盤的DU的標識處于同一 LDS的其他的物理磁盤的 DU的標識對應(yīng)的DU中讀出數(shù)據(jù),將讀出的數(shù)據(jù)異或后寫入在布局模板中與出現(xiàn)故障的物 理磁盤對應(yīng)的DU的標識處于同一列的另一物理磁盤的DU的標識對應(yīng)的DU中。布局模板包 括m個邏輯模塊,每個邏輯模塊包括2個LDS,每個LDS包括(m+1) /2或者(m_l) /2個DU, 每個DU屬于不同的物理磁盤。由于邏輯模塊包括多個與發(fā)生故障的物理磁盤對應(yīng)的DU的 標識處于同一列的物理磁盤的DU的標識就有多個,這樣,寫入數(shù)據(jù)時分別就可以寫入不同 物理磁盤對應(yīng)的DU中,而不是寫入到同一塊熱備物理磁盤中,與現(xiàn)有技術(shù)相比,減少了寫 入數(shù)據(jù)所需的時間,縮短了 RAID重構(gòu)恢復(fù)所需的時間,提高了重構(gòu)速度,減小雙盤失效的 概率,提高RAID系統(tǒng)的可靠性。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過 程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序 在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者 光盤等各種可以存儲程序代碼的介質(zhì)。最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡 管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解其依然
12可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替 換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精 神和范圍。
權(quán)利要求
一種廉價磁盤冗余陣列重構(gòu)方法,其特征在于,包括當?shù)谝晃锢泶疟P出現(xiàn)故障時,從預(yù)先生成的布局模板的各個邏輯模塊中找出與所述第一物理磁盤的磁盤單元處于同一邏輯磁盤條帶的其他物理磁盤的磁盤單元,將從所述其他物理磁盤的磁盤單元讀出的數(shù)據(jù)進行異或后寫入第二物理磁盤的熱備磁盤單元中;在所述布局模板中,用第二物理磁盤的磁盤單元的標識替換所述第一物理磁盤的磁盤單元的標識;所述布局模板包括m個邏輯模塊,每個邏輯模塊包括2個邏輯磁盤條帶,每個邏輯磁盤條帶包括(m+1)/2或者(m 1)/2個磁盤單元的標識,每個邏輯磁盤條帶中的磁盤單元的標識對應(yīng)的磁盤單元均屬于不同的物理磁盤,并且同一個邏輯模塊中的每個邏輯磁盤條帶中包含的磁盤單元的標識均不相同;所述第二物理磁盤的磁盤單元的標識和第一物理磁盤的磁盤單元的標識在所述邏輯模塊中處于同一列,并且第一物理磁盤和第二物理磁盤的磁盤單元的標識屬于不同的邏輯磁盤條帶;所述廉價磁盤冗余陣列包括N個物理磁盤,當N為偶數(shù)時,m取值為N 1;當N為奇數(shù)時,m取值為N。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,如果第一物理磁盤故障恢復(fù)后,第三物理 磁盤出現(xiàn)故障,則從所述布局模板的各個邏輯模塊中找出與所述第三物理磁盤的磁盤單元 處于同一邏輯磁盤條帶的其他物理磁盤的磁盤單元,將從所述其他物理磁盤的磁盤單元中 讀出的數(shù)據(jù)進行異或后寫入第四物理磁盤的磁盤單元中;在所述布局模板中,用所述第四 物理磁盤的磁盤單元的標識替換所述第三物理磁盤的磁盤單元的標識;所述第四物理磁盤 的磁盤單元的標識和第三物理磁盤的磁盤單元的標識在所述邏輯模塊中處于同一列;所述 第三物理磁盤和第四物理磁盤的磁盤單元的標識屬于不同的邏輯磁盤條帶;如果一個邏輯模塊中與第三物理磁盤對應(yīng)的磁盤單元的標識包括兩個,則在該邏輯模 塊中,將與第三物理磁盤的磁盤單元的標識處于同一邏輯磁盤條帶的其他物理磁盤的磁盤 單元的標識對應(yīng)的磁盤單元讀出的數(shù)據(jù)進行異或后,寫入第五物理磁盤的磁盤單元中,所 述第五物理磁盤的磁盤單元的標識是在所述邏輯模塊中除了與第三物理磁盤的磁盤單元 的標識處于同一邏輯磁盤條帶的物理磁盤的磁盤單元的標識之外的其他的標識。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括在創(chuàng)建廉價磁盤冗余陣列時生成 布局模板。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,生成布局模板包括將N個物理磁盤的磁盤單元的標識依照預(yù)設(shè)順序排列,并且分成兩行,如果N為偶數(shù), 那么每行包括N/2個磁盤單元的標識;如果N為奇數(shù),那么一行包括((N+l)/2)-l個磁盤單 元的標識和一個虛擬的磁盤單元的標識,另一行包括((N+l)/2)個磁盤單元的標識;固定第一磁盤單元的標識,當N為偶數(shù)時,將其余磁盤單元的標識順序移位(N-1次,生 成(N-I)個邏輯模塊;當N為奇數(shù)時,將其余磁盤單元的標識順序移位N次,生成N個邏輯 模塊,并去掉各個邏輯模塊中包含有所述虛擬的磁盤單元的標識的列。
5.根據(jù)權(quán)利要求1-4中任一權(quán)利要求所述的方法,其特征在于,還包括在廉價磁盤 冗余陣列重構(gòu)完成后,將所述第二物理磁盤的熱備磁盤單元中的數(shù)據(jù)回拷到重新插入的用 于替換所述第一物理磁盤的物理磁盤中,并將所述布局模板恢復(fù)到?jīng)]有進行替換之前的狀 態(tài)。
6.一種廉價磁盤冗余陣列重構(gòu)裝置,其特征在于,包括存儲模塊,用于存儲布局模板,所述布局模板包括m個邏輯模塊,每個邏輯模塊包括2 個邏輯磁盤條帶,每個邏輯磁盤條帶包括(m+l)/2或者(m-1)/2個磁盤單元的標識,每個邏 輯磁盤條帶中的磁盤單元的標識對應(yīng)的磁盤單元均屬于不同的物理磁盤,并且同一個邏輯 模塊中的每個邏輯磁盤條帶中包含的磁盤單元的標識均不相同;當N為偶數(shù)時,m取值為 N-I ;當N為奇數(shù)時,m取值為N ;N為廉價磁盤冗余陣列中的物理磁盤總數(shù);第一處理模塊,用于當?shù)谝晃锢泶疟P出現(xiàn)故障時,從所述存儲模塊存儲的布局模板的 各個邏輯模塊中找出與所述第一物理磁盤的磁盤單元處于同一邏輯磁盤條帶的其他物理 磁盤的磁盤單元,將從所述其他物理磁盤的磁盤單元讀出的數(shù)據(jù)進行異或后寫入第二物理 磁盤的磁盤單元中;第二處理模塊,用于在所述布局模板中用所述第二物理磁盤的磁盤單元的標識替換所 述第一物理磁盤的磁盤單元的標識;所述第二物理磁盤的磁盤單元的標識和第一物理磁盤 的磁盤單元的標識在所述邏輯模塊中處于同一列,第一物理磁盤和第二物理磁盤的磁盤單 元的標識屬于不同的邏輯磁盤條帶。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一處理模塊還用于當?shù)谝晃锢泶?盤故障恢復(fù)后,第三物理磁盤出現(xiàn)故障時,從所述布局模板的各個邏輯模塊中找出與所述 第三物理磁盤的磁盤單元處于同一邏輯磁盤條帶的其他物理磁盤的磁盤單元,將從所述其 他物理磁盤的磁盤單元讀出的數(shù)據(jù)進行異或后寫入第四物理磁盤的熱備磁盤單元中;所述第二處理模塊還用于在所述布局模板中,用所述第四物理磁盤的磁盤單元的標識 替換所述第三物理磁盤的磁盤單元的標識;所述第四物理磁盤的磁盤單元的標識和第三物 理磁盤的磁盤單元的標識在所述邏輯模塊中處于同一列;并且用于對于一個邏輯模塊中與 第三物理磁盤對應(yīng)的磁盤單元的標識包括兩個的情況,將第三物理磁盤的磁盤單元處于同 一邏輯磁盤條帶的其他物理磁盤的磁盤單元讀出的數(shù)據(jù)進行異或后,寫入第五物理磁盤的 磁盤單元中,第五物理磁盤的磁盤單元的標識是在所述邏輯模塊中除了與第三物理磁盤的 磁盤單元的標識處于同一邏輯磁盤條帶的物理磁盤的磁盤單元的標識之外的其他的標識。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括創(chuàng)建模塊,用于在創(chuàng)建廉價磁盤冗 余陣列時生成布局模板。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述創(chuàng)建模塊具體用于將N個物理磁盤的 磁盤單元的標識依照預(yù)設(shè)順序排列,并且分成兩行,當N為偶數(shù)時,每行包括N/2個磁盤單 元的標識;當N為奇數(shù)時,一行包括((N+1)/2)-1個磁盤單元的標識和一個虛擬的磁盤單元 的標識,另一行包括((N+l)/2)個磁盤單元的標識;固定第一磁盤單元的標識,當N為偶數(shù) 時,將其余磁盤單元的標識順序移位(N-1次,生成(N-I)個邏輯模塊;當N為奇數(shù)時,將其 余磁盤單元的標識順序移位N次,生成N個邏輯模塊,并去掉各個邏輯模塊中包含有所述虛 擬的磁盤單元的標識的列。
10.根據(jù)權(quán)利要求6-9中任一權(quán)利要求所述的裝置,其特征在于,還包括第三處理模 塊,用于在所述第一處理模塊和第二處理模塊的處理完成后,將所述第二物理磁盤的熱備 磁盤單元中的數(shù)據(jù)回拷到重新插入的用于替換所述第一物理磁盤的物理磁盤中,并將所述 布局模板恢復(fù)到?jīng)]有進行替換之前的狀態(tài)。
11.一種廉價磁盤冗余陣列系統(tǒng),其特征在于,包括如權(quán)利要求6-10中任一權(quán)利要求所述的廉價磁盤冗余陣列重構(gòu)裝置。
全文摘要
本發(fā)明實施例提供一種RAID重構(gòu)方法、裝置及系統(tǒng),其中方法包括當?shù)谝晃锢泶疟P出現(xiàn)故障時,從預(yù)先生成的布局模板的各個邏輯模塊中找出與第一物理磁盤的DU處于同一LDS的其他物理磁盤的DU,將從其他物理磁盤的DU讀出的數(shù)據(jù)進行異或后寫入第二物理磁盤的熱備DU中;在布局模板中,用第二物理磁盤的DU的標識替換第一物理磁盤的DU的標識;布局模板中每個LDS中的DU的標識對應(yīng)的DU均屬于不同的物理磁盤,并且同一個邏輯模塊中的每個LDS中包含的DU的標識均不相同;第一物理磁盤和第二物理磁盤的DU的標識屬于不同的LDS。本發(fā)明能夠減少寫入數(shù)據(jù)所需的時間,縮短了RAID重構(gòu)恢復(fù)所需的時間,提高了重構(gòu)速度。
文檔編號G06F11/16GK101980137SQ201010516539
公開日2011年2月23日 申請日期2010年10月19日 優(yōu)先權(quán)日2010年10月19日
發(fā)明者關(guān)偉平 申請人:成都市華為賽門鐵克科技有限公司