專利名稱:數(shù)據(jù)存儲備份方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實施例涉及存儲技術(shù)領(lǐng)域,尤其涉及ー種數(shù)據(jù)存儲備份方法及裝置。
背景技術(shù):
磁盤冗余陣列(RedundantArray of Independent Disks,簡稱RAID)技術(shù)是存儲領(lǐng)域最為常用的技術(shù)之一,它將多塊硬盤虛擬成ー個單臺大容量的硬盤進行使用。利用多塊硬盤來提升系統(tǒng)容量,利用同時讀寫來加快整體的存儲速度,并利用其冗余設(shè)置來實現(xiàn)一定的容錯能力。根據(jù)RAID級別的不同,其讀寫性能、容錯能力等有所差別,其中使用ー份校驗數(shù)據(jù)的RAID5較為常用。以RAID5為例,設(shè)置有ー份校驗數(shù)據(jù),在RAID組中任何ー塊成員盤發(fā)生損壞以后,RAID組處于降級運行狀態(tài),但仍然可以對外提供正常的數(shù)據(jù)讀寫,保證數(shù)據(jù)不丟失。但是,如果不能及時的發(fā)現(xiàn)并使用新盤替換掉損壞的成員盤,當再次出現(xiàn)成員盤損壞時,RAID組將不能成功的完成數(shù)據(jù)重構(gòu),從而產(chǎn)生數(shù)據(jù)丟失。 為了避免上述無法及時替換成員盤,造成系統(tǒng)容錯能力降低,現(xiàn)有技術(shù)采用配置熱備盤的方法,也就是使用額外的一塊硬盤,在出現(xiàn)成員盤損壞的情況下,自動的替換損壞的成員盤,使RAID組的容錯能力及時得到恢復。上述方案必須預先配置好熱備盤,如果沒有配置將不能進行及時替換。同時熱備盤不參與正常的讀寫操作,且需要正常上電,并占用ー塊硬盤槽位。
發(fā)明內(nèi)容
本發(fā)明實施例提供ー種數(shù)據(jù)存儲備份方法及裝置,用以解決現(xiàn)有技術(shù)中在成員盤損壞的情況下需要熱備盤替換才能恢復RAID組容錯能力的缺陷。一方面,本發(fā)明實施例提供的ー種數(shù)據(jù)存儲備份方法,應(yīng)用于RAID組中,所述RAID組中各成員盤的容量相同,每個成員盤均包括使用空間和預留空間,每個成員盤的預留空間的地址范圍相同,所述方法包括在成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù);將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中,以使所述未損壞的成員盤的預留空間構(gòu)成第二 RAID組;其中,所述未損壞的成員盤的預留空間的總?cè)萘坎恍∮谝粋€成員盤中的使用空間的容量和與所述第二 RAID組的級別相對應(yīng)的校驗數(shù)據(jù)的容量的和。另ー方面,本發(fā)明實施例提供的ー種數(shù)據(jù)存儲備份裝置,包括應(yīng)用于磁盤冗余陣列RAID組中,所述RAID組中各成員盤的容量相同,每個成員盤均包括使用空間和預留空間,每個成員盤的預留空間的地址范圍相同,所述裝置包括重構(gòu)模塊,用于在成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù);存儲模塊,用于將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中,以使所述未損壞的成員盤的預留空間構(gòu)成第二 RAID組;其中,所述未損壞的成員盤的預留空間的總?cè)萘坎恍∮谝粋€成員盤中的使用空間的容量和與所述第二 RAID組的級別相對應(yīng)的校驗數(shù)據(jù)的容量的和。以上多個技術(shù)方案中的至少ー個技術(shù)方案具有如下優(yōu)點或有益效果本發(fā)明實施例在RAID組的各成員盤中均設(shè)置地址范圍相同的預留空間,在成員盤損壞后,根據(jù)未損壞的成員盤使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤使用空間中的數(shù)據(jù),并將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中,以使所述未損壞的成員盤的預留空間構(gòu)成第二 RAID組。使得在RAID組在成員盤損壞后無需使用熱備盤替換就可以恢復存儲在RAID組中的數(shù)據(jù),不會降低容錯能力,即使再次發(fā)生成員盤損壞,仍然可以根據(jù)剰余未損壞的成員盤的預留空間中的數(shù)據(jù) 重構(gòu)得到上一次損壞的成員盤使用空間中的數(shù)據(jù),進而根據(jù)重構(gòu)得到的上一次損壞的成員盤使用空間中的數(shù)據(jù)以及剰余未損壞的成員盤的使用空間的數(shù)據(jù)重構(gòu)得到本次損壞的成員盤使用空間中的數(shù)據(jù),使得在不能及時更換熱備盤的情況下,依然能夠保持系統(tǒng)運行的穩(wěn)定性。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作ー簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的ー些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實施例提供的ー種數(shù)據(jù)存儲備份方法的流程示意圖;圖2為本發(fā)明實施例的一種應(yīng)用示意圖;圖3為本發(fā)明實施例提供的又ー種數(shù)據(jù)存儲備份方法的流程示意圖;圖4為本發(fā)明實施例提供的又ー種數(shù)據(jù)存儲備份方法的流程示意5為本發(fā)明實施例提供的再ー種數(shù)據(jù)存儲備份方法的流程示意圖;圖6為本發(fā)明實施例提供的另ー種數(shù)據(jù)存儲備份方法的流程示意圖;圖7為本發(fā)明實施例提供的ー種數(shù)據(jù)存儲備份裝置的結(jié)構(gòu)示意圖;圖8為本發(fā)明實施例提供的又ー種數(shù)據(jù)存儲備份裝置的結(jié)構(gòu)示意圖;圖9為本發(fā)明實施例提供的再ー種數(shù)據(jù)存儲備份裝置的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖I為本發(fā)明實施例提供的ー種數(shù)據(jù)存儲備份方法的流程示意圖。本發(fā)明實施例應(yīng)用于RAID組中,所述RAID組中各成員盤的容量相同,每個成員盤均包括使用空間和預留空間,每個成員盤的預留空間的地址范圍相同,如圖I所示,所述方法包括
步驟101、在成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù)。具體的,為了便于說明,本發(fā)明人實施例以N個成員盤組成的RAID組為例進行說明,其中N為不小于3的自然數(shù)。若步驟101之前未發(fā)生成員盤損壞,則步驟101中損壞的成員盤可以是N個成員盤中的任ー個,對應(yīng)地,未損壞的成員盤為除所述損壞的成員盤之外的(N-I)個成員盤。若步驟101之前已發(fā)生成員盤損壞,則步驟101中損壞的成員盤可以是之前發(fā)生成員盤損壞后未損壞的成員盤中的任ー個,對應(yīng)地,未損壞的成員盤為除損壞的2個成員盤之外的(N-2)個成員盤。在沒有成員盤損壞時,不使用各成員盤的預留空間,僅使用各成員盤的使用空間。需要說明的是,上述RAID組是具有容錯能力的RAID組,上述RAID組可以通過保存ー份或多份校驗數(shù)據(jù)來獲得容錯能力,舉例 來說,該RAID組的級別可以是RAID4、RAID5、RAID6 等。進ー步地,當本發(fā)明實施例應(yīng)用的RAID組的級別為RAID4或RAID5,由于RAID4、RAID5有ー份校驗數(shù)據(jù),可以在第一次發(fā)生成員盤損壞時即進行數(shù)據(jù)重構(gòu),對應(yīng)地,步驟101具體為在第一次發(fā)生成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù)。當本發(fā)明實施例應(yīng)用的RAID組的級別為RAID6吋,由于RAID6有兩份校驗數(shù)據(jù),因此可以在第一次發(fā)生成員盤損壞時即進行數(shù)據(jù)重構(gòu),也可以第二次發(fā)生成員盤損壞時再進行數(shù)據(jù)重構(gòu),對應(yīng)地,步驟101具體為在第一次或第二次發(fā)生成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù)。具體的,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù)的方法取決于所述RAID組的級別,舉例來說,若所述RAID組的級別為RAID5,由于RAID5的校驗方法是使所有成員盤中的同一地址存儲的數(shù)據(jù)的異或值為0,則當ー個成員盤損壞時,可以基于上述RAID5校驗方法,根據(jù)未損壞的(N-I)個成員盤的使用空間中的數(shù)據(jù)確定損壞的成員盤的使用空間中的數(shù)據(jù)。步驟102、將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中,以使所述未損壞的成員盤的預留空間構(gòu)成第二 RAID組;其中,所述未損壞的成員盤的預留空間的總?cè)萘坎恍∮谝粋€成員盤中的使用空間的容量和與所述第二 RAID組的級別相對應(yīng)的校驗數(shù)據(jù)的容量的和。具體地,當將重構(gòu)得到的數(shù)據(jù)按照RAID4的組織形式存儲到所述未損壞的成員盤的預留空間中時,所述第二 RAID組的級別為RAID4 ;當將重構(gòu)得到的數(shù)據(jù)按照RAID5的組織形式存儲到所述未損壞的成員盤的預留空間中時,所述第二 RAID組的級別為RAID5 ;當將重構(gòu)得到的數(shù)據(jù)按照RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中時,所述第二 RAID組的級別為RAID6。通常,按RAID4或RAID5的組織形式存儲數(shù)據(jù)時,需要至少3個待寫入的成員盤,同時會生成與該待存儲的數(shù)據(jù)對應(yīng)的ー份校驗數(shù)據(jù),該校驗數(shù)據(jù)的大小等于待存儲的數(shù)據(jù)的大小與待寫入的成員盤(即未損壞的成員盤)的個數(shù)減I的值的商,并將該校驗數(shù)據(jù)和待存儲的數(shù)據(jù)ー并存儲到未損壞的成員盤的預留空間中;若按RAID6的組織形式存儲數(shù)據(jù)時,需要至少4個待寫入的成員盤,同時會生成與該待存儲的數(shù)據(jù)對應(yīng)的兩份校驗數(shù)據(jù),每份校驗數(shù)據(jù)的大小等于待存儲的數(shù)據(jù)的大小與待寫入的成員盤的個數(shù)減2的值的商,并將兩份校驗數(shù)據(jù)和待存儲的數(shù)據(jù)ー并存儲到未損壞的成員盤的預留空間中。其中,在一種情形下,可以在第一次發(fā)生成員盤損壞后即重構(gòu)損壞的成員盤的使用空間中的數(shù)據(jù),若將重構(gòu)得到的數(shù)據(jù)按照RAID4或RAID5的組織形式存儲在未損壞的成員盤的預留空間(第二 RAID組)中,則需要設(shè)置每個成員盤的預留空間的容量不小于每個成員盤的容量除以(N-1),以使得未損壞的(N-I)個成員盤的預留空間足夠存儲該損壞的成員盤使用空間的數(shù)據(jù)和對應(yīng)的校驗數(shù)據(jù),其中N為所述RAID組中成員盤的個數(shù),通常為不小于3的自然數(shù),具體的,每個成員盤的預留空間的容量可以通過下面的計算方法獲得假設(shè)每個成員盤的容量為T,其中預留空間的容量為X,則成員盤使用空間的容量為T-x,而Τ-χ大小的待存儲數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù)的大小 為(T-x)/ (N-2),因此需滿足(T-x)+ (T-x)/(N-2)彡(N-l)*x,即X彡T/ (N-1)。若將重構(gòu)得到的數(shù)據(jù)按照RAID6的組織形式存儲在未損壞的成員盤的預留空間中,則需要設(shè)置每個成員盤的預留空間的容量不小于每個成員盤的容量除以(N-2);具體的,假設(shè)每個成員盤的容量為T,其中預留空間的容量為X,則使用空間的容量為T-x,而T-x大小的待存儲數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù)的大小為2* (T-x) / (N-3),因此需滿足(T-x)+2* (T-x) / (N-3)彡(N-l)*x,即 X 彡 T/ (N-2)。在另ー種情形下,當本發(fā)明實施例所應(yīng)用的RAID組為RAID6時,可以在第二次發(fā)生成員盤損壞后才重構(gòu)數(shù)據(jù)。若將重構(gòu)得到的數(shù)據(jù)按照RAID4或RAID5的組織形式存儲在未損壞的成員盤的預留空間(第二 RAID組)中,則為了保證未損壞的(N-2)個成員盤的預留空間足以存儲該損壞的成員盤使用空間的數(shù)據(jù)和對應(yīng)的ー份校驗數(shù)據(jù),這種情況下,需設(shè)置各成員盤的預留空間的容量不小于每個成員盤的容量除以(N-2)。若將重構(gòu)得到的數(shù)據(jù)按照RAID6的組織形式存儲在未損壞的成員盤的預留空間中,則為了保證未損壞的(N-2)個成員盤的預留空間足以存儲該損壞的成員盤使用空間的數(shù)據(jù)和對應(yīng)的兩份校驗數(shù)據(jù),這種情況下,需設(shè)置各成員盤的預留空間的容量不小于每個成員盤的容量除以(N-3)。圖2為本發(fā)明實施例的一種應(yīng)用示意圖。在圖2所示應(yīng)用場景中,以6個成員盤A、B、C、D、E、F組成的RAID組來進行說明,各成員盤中虛線以上部分表示使用空間,虛線以下部分表示預留空間。其中,步驟101中損壞的成員盤為成員盤C,步驟102中按照RAID4或RAID5的組織形式存儲數(shù)據(jù),也就是將損壞的成員盤C的使用空間中的數(shù)據(jù)1、2、3、4及對應(yīng)的ー份校驗數(shù)據(jù)P存儲到未損壞的成員盤A、B、D、E、F的預留空間中。需要說明的是,步驟102中按照何種RAID級別的組織形式存儲重構(gòu)得到的數(shù)據(jù),與本發(fā)明實施例應(yīng)用的RAID組的級別無關(guān),只要未損壞的成員盤的預留空間的總?cè)萘坎恍∮讴`個成員盤中的使用空間的容量和與所述第二 RAID組的級別相對應(yīng)的校驗數(shù)據(jù)的容量的和即可。舉例來說,若應(yīng)用的RAID組的級別為RAID5,步驟102中可以按照RAID4、RAID5或RAID6的組織形式存儲重構(gòu)得到的數(shù)據(jù)。無論應(yīng)用的RAID組的級別如何,為了節(jié)省存儲空間,步驟102中優(yōu)選地按照RAID4或RAID5的組織形式存儲重構(gòu)得到的數(shù)據(jù)。本發(fā)明實施例,通過將重構(gòu)得到的損壞的成員盤的數(shù)據(jù)存儲到未損壞的成員盤的預留空間中,以使未損壞的成員的預留空間構(gòu)成第二 RAID組,利用該第二 RAID組來代替損壞的成員盤,使得當RAID組中有成員盤發(fā)生損壞而不能及時更換熱備盤的情況下,依然不會降低RAID組的容錯能力,保持系統(tǒng)運行的穩(wěn)定性。圖3為本發(fā)明實施例提供的又ー種數(shù)據(jù)存儲備份方法的流程示意圖。具體地,如圖3所示,在圖I所示的步驟102之后還包括步驟1031、接收讀操作指令;步驟1032、確定所述讀操作指令指向的所述本次損壞的成員盤的使用空間中的讀取地址范圍;步驟1033、根據(jù)所述本次損壞的成員盤的使用空間中的讀取地址范圍確定所述第ニ RAID組中的讀取地址范圍;具體地,可以根據(jù)第二 RAID組的級別來確定與所述本次損壞的成員盤的使用空間中的讀取地址范圍對應(yīng)的所述第二 RAID組中的讀取地址范圍。步驟1034、將所述第二 RAID組中的讀取地址范圍的數(shù)據(jù)和未損壞的成員盤的使用空間中的讀取地址范圍的數(shù)據(jù)進行重組; 步驟1035、將重組后的數(shù)據(jù)返回給用戶。本發(fā)明實施例提供的方法,使得在發(fā)生成員盤損壞后而無熱備盤替換的情況下,當需要讀取損壞的成員盤中的數(shù)據(jù)時,可以根據(jù)第二 RAID組中存儲的數(shù)據(jù)向用戶提供數(shù)據(jù)。使得當RAID組中的成員盤發(fā)生損壞而不能及時更換熱備盤的情況下,不會影響RAID組的使用。在另ー種情況下,為了保證性能,當針對RAID組進行讀操作時,還可以采用數(shù)據(jù)重構(gòu)的方式向外提供數(shù)據(jù),以減少對小RAID組的一次讀操作。圖4為本發(fā)明實施例提供的又ー種數(shù)據(jù)存儲備份方法的流程示意圖。具體地,如圖4所示,步驟102之后還可以包括步驟1041、接收讀操作指令;步驟1042、確定所述讀操作指令指向的所述本次損壞的成員盤的使用空間中的讀取地址范圍;步驟1043、根據(jù)所述未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)所述本次損壞的成員盤的使用空間中所述讀取地址范圍的數(shù)據(jù);步驟1044、將所述未損壞的成員盤的使用空間中所述讀取地址范圍的數(shù)據(jù)和重構(gòu)得到的所述本次損壞的成員盤的使用空間中所述讀取地址范圍的數(shù)據(jù)按進行重組;步驟1045、將重組后的數(shù)據(jù)返回給用戶。圖5為本發(fā)明實施例提供的再ー種數(shù)據(jù)存儲備份方法的流程示意圖。具體地,如圖5所示,在圖I所示的步驟102之后還可以包括步驟1051、接收寫操作指令;步驟1052、確定所述寫操作指令對應(yīng)的需寫入所述本次損壞的成員盤的使用空間中的數(shù)據(jù)及寫入地址;步驟1053、根據(jù)所述寫入地址將所述需寫入所述本次損壞的成員盤的使用空間中的數(shù)據(jù)寫入所述第二 RAID組中。本發(fā)明實施例所示方法,使得在RAID組中發(fā)生成員盤損壞后而無熱備盤替換的情況下,當需要往損壞的成員盤中寫入數(shù)據(jù)時,可以將針對損壞的成員盤的數(shù)據(jù)寫入到第ニ RAID組(即未損壞的成員盤的預留空間)中,使得數(shù)據(jù)不會丟失,不會影響RAID組的使用。圖6為本發(fā)明實施例提供的另ー種數(shù)據(jù)存儲備份方法的流程示意圖。如圖6所示,在圖I所示的步驟102之后還包括
步驟1061、再次發(fā)生成員盤損壞后,根據(jù)所述第二 RAID組中的數(shù)據(jù)重構(gòu)得到上一次損壞的成員盤的使用空間中的數(shù)據(jù);步驟1062、根據(jù)所述未損壞的成員盤的使用空間中的數(shù)據(jù)和重構(gòu)得到的所述上ー次損壞的成員盤的使用空間中的數(shù)據(jù),重構(gòu)得到本次損壞的成員盤的使用空間中的數(shù)據(jù)。具體地,上述上次損壞的成員盤指的是步驟101中損壞的成員盤。若步驟101中是第一次發(fā)生成員盤損壞,則步驟1062中再次發(fā)生成員盤損壞就是第二次,此時未損壞的成員盤的個數(shù)為(N-2);若步驟101中是第二次發(fā)生成員盤損壞,則步驟1062中再次發(fā)生成員盤損壞就是第三次,此時未損壞的成員盤的個數(shù)為(N-3)。本發(fā)明實施例所示方法,由于將損壞的成員盤的數(shù)據(jù)重構(gòu)到第二 RAID組中,恢復了 RAID組的容錯能力,則當再次發(fā)生成員盤損壞時,還可以根據(jù)第二 RAID組重構(gòu)本次損壞的成員盤的數(shù)據(jù),使得RAID組仍然可以向外提供完整的數(shù)據(jù),保證了整個RAID組的數(shù)據(jù)不會丟失,從而提聞了 RAID組容錯能力,提聞了系統(tǒng)運行的穩(wěn)定性。進ー步地,由于再次發(fā)生成員盤損壞后,已沒有預留空間可以存儲重構(gòu)得到的此次損壞的成員盤的數(shù)據(jù),因此,可以在接收到讀操作指令時再重構(gòu)此次損壞的成員盤中相應(yīng)地址的數(shù)據(jù),并提供給用戶。本發(fā)明實施例采用在RAID組的各成員盤中均設(shè)置地址范圍相同的預留空間,在發(fā)生成員盤損壞后,根據(jù)未損壞的成員盤使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤使用空間中的數(shù)據(jù),將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中,以使所述未損壞的成員盤的預留空間構(gòu)成第二 RAID組。使得在成員盤損壞后無需使用熱備盤替換就可以恢復存儲在RAID組中的數(shù)據(jù),不會降低RAID組的容錯能力,即使再次發(fā)生成員盤損壞,仍然可以根據(jù)剰余未損壞的成員盤的預留空間中的數(shù)據(jù)重構(gòu)上一次損壞的成員盤使用空間中的數(shù)據(jù),進而根據(jù)重構(gòu)得到的上一次損壞的成員盤使用空間中的數(shù)據(jù)、剰余未損壞的成員盤的使用空間的數(shù)據(jù)重構(gòu)本次損壞的成員盤使用空間中的數(shù)據(jù),解決了現(xiàn)有技術(shù)中在成員盤損壞的情況下需要熱備盤替換才能恢復RAID組容錯能力的缺陷。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于ー計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。圖7為本發(fā)明實施例提供的ー種數(shù)據(jù)存儲備份裝置的結(jié)構(gòu)示意圖。本發(fā)明實施例應(yīng)用于具有容錯能力的RAID組中,所述RAID組中各成員盤的容量相同,每個成員盤均包括使用空間和預留空間,每個成員盤的預留空間的地址范圍相同,如圖7所示,裝置包括重構(gòu)模塊31,用于在成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù);存儲模塊32,用于將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中,以使所述未損壞的成員盤的預留空間構(gòu)成第二 RAID組;其中,所述未損壞的成員盤的預留空間的總?cè)萘坎恍∮谝粋€成員盤中的使用空間的容量和與所述第二 RAID組的級別相對應(yīng)的校驗數(shù)據(jù)的容量的和。圖8為本發(fā)明實施例提供的又ー種數(shù)據(jù)存儲備份裝置的結(jié)構(gòu)示意圖。在圖7所示實施例的基礎(chǔ)上,裝置還包括讀操作模塊33,用于在存儲模塊32將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中之后,接收讀操作指令;確定所述讀操作指令對應(yīng)的所述N個成員盤的使用空間中的讀取地址范圍;根據(jù)所述本次損壞的成員盤的使用空間中的讀取地址范圍確定所述第二 RAID組中的讀取地址范圍;將確定的所述第二 RAID組中的讀取地址范圍的數(shù)據(jù)和未損壞的成員盤的使用空間中的讀取地址范圍的數(shù)據(jù)進行重組;并將重組后的數(shù)據(jù)返回給用戶。可選地,讀操作模塊33還用干,在存儲模塊32將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中之后,接收讀操作指令;確定所述讀操作指令對應(yīng)的所述N個成員盤的使用空間中的讀取地址范圍;根據(jù)所述未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)所述本次損壞的成員盤的使用空間中所述讀取地址范圍的數(shù)據(jù);將所述未損壞的成員盤的使用空間中所述讀取地址范圍的數(shù)據(jù)和重構(gòu)得 到的所述本次損壞的成員盤的使用空間中所述讀取地址范圍的數(shù)據(jù)按進行重組;將重組后的數(shù)據(jù)返回給用戶。圖9為本發(fā)明實施例提供的再ー種數(shù)據(jù)存儲備份裝置的結(jié)構(gòu)示意圖。在圖7所示實施例的基礎(chǔ)上,裝置還包括寫操作模塊34,用于在存儲模塊32將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中之后,接收寫操作指令;確定所述寫操作指令對應(yīng)的需寫入所述本次損壞的成員盤的使用空間中的數(shù)據(jù)及寫入地址;將所述需寫入所述本次損壞的成員盤的使用空間中的數(shù)據(jù)寫入所述未損壞的成員盤的預留空間中與所述寫入地址相應(yīng)的位置。進ー步地,重構(gòu)模塊31還用于,再次發(fā)生成員盤損壞后,根據(jù)所述第二 RAID組中的數(shù)據(jù)重構(gòu)得到上一次損壞的成員盤的使用空間中的數(shù)據(jù);根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)和重構(gòu)得到的上一次損壞的成員盤的使用空間中的數(shù)據(jù),重構(gòu)得到本次損壞的成員盤的使用空間中的數(shù)據(jù)。進ー步地,所述RAID組為具有容錯能力的RAID組,舉例來說,所述RAID組的級別可以為 RAID4、RAID5、RAID6。當所述RAID組的級別為RAID4或RAID5時,重構(gòu)模塊31具體用于在第一次發(fā)生成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù);當所述RAID組的級別為RAID6時,重構(gòu)模塊31具體用于在第一次或第二次發(fā)生成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù)。上述裝置可以是管理所述RAID組的硬盤陣列裝置或者文件系統(tǒng)。在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。本發(fā)明實施例采用在RAID組的各成員盤中均設(shè)置地址范圍相同的預留空間,在發(fā)生成員盤損壞后,根據(jù)未損壞的成員盤使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤使用空間中的數(shù)據(jù),將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中,以使所述未損壞的成員盤的預留空間構(gòu)成第二 RAID組。使得在成員盤損壞后無需使用熱備盤替換就可以恢復存儲在RAID組中的數(shù)據(jù),不會降低容錯能力,即使再次發(fā)生成員盤損壞,仍然可以根據(jù)剰余未損壞的成員盤的預留空間中的數(shù)據(jù)重構(gòu)上一次損壞的成員盤使用空間中的數(shù)據(jù),進而根據(jù)重構(gòu)得到的上一次損壞的成員盤使用空間中的數(shù)據(jù)、剰余未損壞的成員盤的使用空間的數(shù)據(jù)重構(gòu)本次損壞的成員盤使用空間中的數(shù)據(jù),解決了現(xiàn)有技術(shù)中在成員盤損壞的情況下需要熱備盤替換才能恢復RAID組容錯能力的缺陷。 最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
權(quán)利要求
1.ー種數(shù)據(jù)存儲備份方法,其特征在于,應(yīng)用于磁盤冗余陣列RAID組中,所述RAID組中各成員盤的容量相同,每個成員盤均包括使用空間和預留空間,每個成員盤的預留空間的地址范圍相同,所述方法包括 在成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù); 將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中,以使所述未損壞的成員盤的預留空間構(gòu)成第二 RAID組; 其中,所述未損壞的成員盤的預留空間的總?cè)萘坎恍∮谝粋€成員盤中的使用空間的容量和與所述第二 RAID組的級別相對應(yīng)的校驗數(shù)據(jù)的容量的和。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中之后,還包括 接收讀操作指令; 確定所述讀操作指令指向的所述本次損壞的成員盤的使用空間中的讀取地址范圍; 根據(jù)所述本次損壞的成員盤的使用空間中的讀取地址范圍確定所述第二 RAID組中的讀取地址范圍; 將所述第二 RAID組中的讀取地址范圍的數(shù)據(jù)和未損壞的成員盤的使用空間中的讀取地址范圍的數(shù)據(jù)進行重組; 將重組后的數(shù)據(jù)返回給用戶。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中之后,還包括 接收寫操作指令; 確定所述寫操作指令對應(yīng)的需寫入本次損壞的成員盤的使用空間中的數(shù)據(jù)及寫入地址; 根據(jù)所述寫入地址將所述需寫入本次損壞的成員盤的使用空間中的數(shù)據(jù)寫入所述第ニ RAID組中。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括 再次發(fā)生成員盤損壞后,根據(jù)所述第二 RAID組中的數(shù)據(jù)重構(gòu)得到上一次損壞的成員盤的使用空間中的數(shù)據(jù); 根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)和重構(gòu)得到的上一次損壞的成員盤的使用空間中的數(shù)據(jù),重構(gòu)得到本次損壞的成員盤的使用空間中的數(shù)據(jù)。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述RAID組為RAID4、RAID5或RAID6。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,當所述RAID組的級別為RAID4或RAID5時,所述在成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù)具體包括在第一次發(fā)生成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù); 當所述RAID組的級別為RAID6時,所述在成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù)具體包括在第一次或第二次發(fā)生成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù)。
7.一種數(shù)據(jù)存儲備份裝置,其特征在于,應(yīng)用于磁盤冗余陣列RAID組中,所述RAID組中各成員盤的容量相同,每個成員盤均包括使用空間和預留空間,每個成員盤的預留空間的地址范圍相同,所述裝置包括 重構(gòu)模塊,用于在成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù); 存儲模塊,用于將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中,以使所述未損壞的成員盤的預留空間構(gòu)成第二 RAID組; 其中,所述未損壞的成員盤的預留空間的總?cè)萘坎恍∮谝粋€成員盤中的使用空間的容量和與所述第二 RAID組的級別相對應(yīng)的校驗數(shù)據(jù)的容量的和。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括 讀操作模塊,用于接收讀操作指令;確定所述讀操作指令指向的所述本次損壞的成員盤的使用空間中的讀取地址范圍;根據(jù)所述本次損壞的成員盤的使用空間中的讀取地址范圍確定所述第二 RAID組中的讀取地址范圍;將所述第二 RAID組中的讀取地址范圍的數(shù)據(jù)和未損壞的成員盤的使用空間中的讀取地址范圍的數(shù)據(jù)進行重組;并將重組后的數(shù)據(jù)返回給用戶。
9.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,還包括 寫操作模塊,用于接收寫操作指令;確定所述寫操作指令對應(yīng)的需寫入本次損壞的成員盤的使用空間中的數(shù)據(jù)及寫入地址;根據(jù)所述寫入地址將所述需寫入本次損壞的成員盤的使用空間中的數(shù)據(jù)寫入所述第二 RAID組中。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述重構(gòu)模塊還用干, 再次發(fā)生成員盤損壞后,根據(jù)所述第二 RAID組中的數(shù)據(jù)重構(gòu)得到上一次損壞的成員盤的使用空間中的數(shù)據(jù); 根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)和重構(gòu)得到的上一次損壞的成員盤的使用空間中的數(shù)據(jù),重構(gòu)得到本次損壞的成員盤的使用空間中的數(shù)據(jù)。
11.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述RAID組為RAID4、RAID5或RAID6。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,當所述RAID組的級別為RAID4或RAID5時,所述重構(gòu)模塊具體用于在第一次發(fā)生成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù); 當所述RAID組的級別為RAID6時,所述重構(gòu)模塊具體用于在第一次或第二次發(fā)生成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù)。
全文摘要
本發(fā)明實施例提供一種數(shù)據(jù)存儲備份方法及裝置。方法應(yīng)用于RAID組中,所述RAID組中各成員盤的容量相同,每個成員盤均包括使用空間和預留空間,每個成員盤的預留空間的地址范圍相同,所述方法包括在成員盤損壞后,根據(jù)未損壞的成員盤的使用空間中的數(shù)據(jù)重構(gòu)本次損壞的成員盤的使用空間中的數(shù)據(jù);將重構(gòu)得到的數(shù)據(jù)按照RAID4、RAID5或RAID6的組織形式存儲到所述未損壞的成員盤的預留空間中,以使所述未損壞的成員盤的預留空間構(gòu)成第二RAID組;其中,所述未損壞的成員盤的預留空間的總?cè)萘坎恍∮谝粋€成員盤中的使用空間的容量和與所述第二RAID組的級別相對應(yīng)的校驗數(shù)據(jù)的容量的和。
文檔編號G06F11/14GK102681918SQ201210153820
公開日2012年9月19日 申請日期2012年5月17日 優(yōu)先權(quán)日2012年5月17日
發(fā)明者蒲貴友, 陳祖飛 申請人:華為技術(shù)有限公司