中文字幕无码日韩视频无码三区

在raid數據重建和轉移中使用文件系統信息的制作方法

文檔序號:7338514閱讀:210來源:國知局
專利名稱:在raid數據重建和轉移中使用文件系統信息的制作方法
背景技術
1.發明領域本發明涉及在RAID數據重建和轉移(migration)中使用文件系統信息。
2.相關技術在計算機系統中保存大量存儲的一個已知方法被稱作RAID(“廉價磁盤冗余陳列”)。RAID存儲器包括一個磁盤群,其中至少部分被用來儲存數據和至少部分被用來存儲與那些數據相關的奇偶信息,其中數據和奇偶性被分配到多個磁盤。如果那個儲存數據或奇偶性的磁盤塊故障或整個磁盤都出現故障,則允許RAID存儲系統(從剩余的存儲數據和奇偶信息)重建原始數據。在被稱作RAID條帶的一組磁盤塊中,數據和奇偶性是彼此相關的。
RAID存儲器的一個已知問題是,如果驅動器出現故障,則RAID存儲系統不再具有相同的冗余度,而如果希望保存相同的冗余度,則必須對其做出調整。即,希望RAID存儲系統允許遲些的第二磁盤故障而不造成數據丟失,但是重建RAID條帶中兩個分離的故障磁盤的數據是不可能的。為了保存相同的冗余度,RAID存儲系統具有從故障磁盤重建數據到其上的備用磁盤,或(如果存在足夠的可用空間),則從故障磁盤把數據轉移到其它磁盤。在后一種情況中,與每個RAID條帶相關的奇偶性必須響應于所分配數據的轉移而被調整。然而,數據重建和奇偶性重算包括實質性的磁盤驅動器讀寫操作,并且最小化磁盤訪問量和在磁盤和其余的計算機系統之間來回傳送的信息量將是有利的。
因此,有利的是提供一個存儲系統(其可能是RAID存儲系統或另一類型的存儲系統),其保存數據的可靠性、允許邏輯上刪除故障磁盤、和最小化計算量、執行數據轉移或重建的磁盤存取量,或奇偶性調整量。這些和其它優點在本發明實施例中被提供,其中,文件系統保存的信息(包括磁盤塊實際上用于記錄所存儲的數據的相關信息)被用于和轉移,以及奇偶性的重算。本發明最小化計算和磁盤存取的優點也可以用于存儲系統的一般操作,以及用于把存儲卷從源存儲系統鏡像到目標存儲系統。

發明內容
本發明提供一種方法和系統,它保持數據可靠性、允許邏輯刪除故障磁盤、和最小化執行數據轉移或重建或奇偶性重算所需的計算量和磁盤存取量。在優選實施例中,當執行數據重建和轉移,以及奇偶性重算時,存儲系統使用實質上只和所分配的磁盤塊有關的信息,并忽略未分配的磁盤塊,未分配的磁盤塊已經被設置為一個預定值,例如零。當磁盤故障時,存儲系統只轉移故障磁盤上已分配數據的那些磁盤塊,而在可能的情況下把未分配的磁盤塊視為邏輯上為零。
在本發明的一方面中,文件系統保存的信息識別在故障磁盤上實際被分配的磁盤塊。當有備用磁盤或沒有備用磁盤時,RAID群中的磁盤都可能出現故障。當磁盤塊將從故障磁盤被轉移而沒有備用磁盤時,那些磁盤塊從故障磁盤被轉移到RAID群中的其它未故障磁盤,因而減少了RAID群中的磁盤數量。當那些磁盤塊被轉移時(即,數據被重建和拷貝到目標磁盤塊上),源磁盤塊邏輯上被設置為零并且為與源磁盤塊相關的RAID條帶重新計算奇偶性。一旦所有已分配磁盤塊都已經從故障磁盤被轉移,故障磁盤就可以邏輯上從RAID群中除去。當磁盤塊將從故障磁盤被轉移到備用磁盤時,那些磁盤塊用類似方法被轉移,不同在于,當轉移的時候,備用磁盤上未分配的存儲塊邏輯上或物理上被設置成選定值(零)。
在本發明的一方面中,通過重定向寫入操作(預定用于故障磁盤上的磁盤塊)到其它未故障磁盤,文件系統主動地協助RAID存儲系統。文件系統還保持一個記錄,即哪些使用中的磁盤塊已經被這樣“轉移”到那些其它的未故障磁盤,因而提供了一個指示符,其指示最初保存在故障磁盤上的存儲數據已經完全被轉移。當寫入磁盤時,文件系統提前主動把未使用磁盤塊設置為選定值(零),從而在寫入以及遲些寫入的時候最小化奇偶性的重算量。在優選實施例中,至少在下列情況中,文件系統把未使用磁盤塊設置為零(1)當新磁盤被添加到RAID群時,(2)當包括未使用磁盤塊的RAID條帶被寫入時。在優選實施例中,文件系統保存“一致性點”,其中已存儲的數據被確保自相一致,并在將一致性點寫入磁盤時把未使用磁盤塊設置為零。
在本發明的一方面中,RAID存儲系統可能使用一種技術(比如RAID級別5),其中,奇偶性存儲塊可能在不同的磁盤上被找到。當那些磁盤之一故障時,文件系統識別與故障磁盤上奇偶信息相關的RAID條帶,并把整組磁盤塊從那些條帶轉移到其它磁盤,以便把那些全部條帶的奇偶信息保存在未故障磁盤上。
在本發明的一方面中,存儲系統使用已分配磁盤塊的相關信息來改進RAID存儲系統執行的操作。當寫入任何一個RAID條帶時,存儲系統響應于磁盤塊被分配而確定通過減去還是重新計算來計算奇偶性更加有效。
在本發明的一方面中,通過拷貝(到鏡像拷貝)那些包括已分配數據和奇偶性的那些存儲塊,和通過清除(在鏡像拷貝)那些不包括任何已分配數據或奇偶性的存儲塊,存儲卷的目標鏡像拷貝可以使用與已分配磁盤塊相關的文件系統信息而被創建。因此,目標存儲卷可以響應于源存儲卷而被構造,而不需要任何奇偶性重算。
本發明通常適用于文件系統和存儲系統,其中,數據被保存在多個裝置上,和其中,那些多個裝置上的至少一部分記錄信息可以被丟棄(例如不是文件系統的一部分或可以被逐出高速緩存的高速緩存對象)。這些應用沒有被具體限制到保存一致性點的文件系統,也沒有被具體限制到RAID存儲系統,它們也不局限于與在此公開的具體應用相關的系統。
附圖簡述

圖1示出文件系統和RAID存儲系統的框圖,包括在RAID數據重建中使用文件系統信息。
圖2示出包括在RAID數據重建中使用文件系統信息的方法的處理流程圖。
圖3示出一個系統框圖,該系統不重新計算奇偶性就能夠鏡像。
圖4示出不用重新計算奇偶性的鏡象方法的處理流程圖。
優選實施例具體描述在此處的說明書中,本發明的優選實施例被描述,包括優選的處理步驟和數據結構。所屬領域技術人員在細讀此申請之后將會了解,本發明的那些實施例可以使用沒有具體描述的多種其它技術來實現,而不用過度的試驗或進一步發明,而且這類其它技術將在本發明的范圍和精神內。
詞匯下列術語涉及或者是指本發明的方面或其實施例。其中每個術語的一般意義被定為說明性的而絕不是限制性的。
一致性點-通常,這指的是由自相一致的文件系統保存的可識別數據集,因此它可以被保存在磁盤上而不用擔心一致性點內的數據引用會導致文件系統錯誤。詞組“一致性點”被定為足夠寬以覆蓋有其自相一致性的文件系統以及那些原子地自相一致的文件系統,該自相一致性由用于近期改變的一組日志項來保證。
磁盤塊-通常,這指的是存儲數據的大容量存儲系統中可分配的部分。詞組“磁盤塊”被定為足夠寬以覆蓋磁盤上量化或未量化的可分配空間。
文件系統-通常,這指的是直接在存儲系統上管理磁盤塊的任何應用程序,包括保存命名方案和在大容量存儲器上保存的文件數據之間的關聯的系統。詞組“文件系統”被定為足夠寬以覆蓋文件系統的變形,包括那些直接對磁盤讀寫的系統和那些允許不同的子系統或操作系統其它部分來讀寫磁盤的系統。
存儲系統-通常是用于儲存數據的系統,例如在RAID陣列中排列的一組一個或多個磁盤。存儲系統可以被分成一個或多個卷,每個卷起一個存儲系統的作用。術語“存儲系統”和“卷”或“存儲卷”可以被可交換地使用。
磁盤塊的轉移-通常,這指的是用于從已被丟失的磁盤塊把數據拷貝或重建數據到大容量存儲系統不同部分上的任何技術,比如沒有故障因而可用的磁盤。
奇偶性重算-通常,這指的是用于在丟失之后響應于已存儲的數據重建奇偶信息或其它冗余信息的任何技術,無論是否與其它冗余信息結合。
RAID群-通常,這指的是RAID存儲系統內包括的和RAID存儲系統用來保存數據冗余性的磁盤組。一部分系統可能包括RAID存儲系統,RAID存儲系統把它們的磁盤分成多于一個的RAID群。
RAID存儲系統-通常,這指的是用于在大容量存儲系統上保存數據的任何技術,它包括一組冗余信息(比如可能的奇偶信息、漢明碼、或類似實際數據拷貝的其它冗余形式),并響應于丟失提供重建數據的可能性。
RAID條帶-通常,這指的是磁盤塊和冗余信息之間的任何關聯,其中,磁盤塊和冗余信息是相互依賴的因此至少一部分可以在丟失之后被重建。
重建-通常,這指的是用于在丟失之后響應于冗余信息來重建數據的任何技術,無論是否與其它已存儲的數據結合。
零值映射(zeromap)-通常,這指的是具有一組指示磁盤塊邏輯上或物理上已經被設置為零的項目的表。
條帶映射(stripmap)-通常,這指的是具有一組指示哪些RAID條帶已經從故障磁盤被轉移的項目的表。
本發明的范圍和精神不受限于任何這些定義,不受限于其中提及的具體例子,而是打算包括這些和其它術語具體化的最廣泛的概念。
系統元件圖1示出文件系統和RAID存儲系統的框圖,包括在RAID數據重建中使用文件系統信息。
系統100包括文件系統120、存儲系統140和上面兩者之間的通信鏈路160。系統還包括用于運行文件系統120的處理器(未示出)、程序和數據存儲器(未示出)。
文件系統120包括一組文件系統信息表121,其指示關于存儲系統140中磁盤塊(不管其是個別的還是成群的)的信息。文件系統信息表121可以被記錄在存儲器中,或者可以被記錄在存儲系統140被選擇的部分中,或者其它方式(比如在非易失性存儲器或其它輔助存儲器裝置中),只要即使存儲系統140丟失了數據,那些文件系統信息表121仍然是文件系統120可訪問的。文件系統信息表121中的特定信息進一步被說明如下。
存儲系統140包括一組磁盤141,其中每個包括一組磁盤塊142,磁盤塊142包括數據(存儲在至少一些磁盤塊142內),在RAID條帶組中排列的磁盤塊142包括至少一些冗余信息(存儲在至少一些磁盤塊142內)。RAID條帶143被處理,從而使得在任何個別磁盤141上的任何個別磁盤塊142上的信息與在其它磁盤141上的其它磁盤塊142上的信息相關。如果任何磁盤塊142乃至整個磁盤141丟失,這允許任何個別磁盤塊142上的信息被重建或者重新計算。RAID存儲系統在大容量存儲系統的技術領域中是已知的。
通信鏈路160連接文件系統120和存儲系統140,并包括文件系統120和存儲系統140可用來交換磁盤塊142的信息和系統100操作信息的任何技術。在優選實施例中,通信鏈路160包括連接到文件系統120和存儲系統140的總線。
文件系統信息表121包括塊映射(blockmap)表122,塊映射表122具有一組塊映射項目123,其指示哪個磁盤塊142被已分配的文件系統數據所使用。從而,塊映射表122為每個磁盤141上的每個磁盤塊142指示該磁盤塊142是被文件系統120使用(例如由邏輯“1”值指示)還是不由文件系統120使用(例如由邏輯“0”值指示)。說明書中所用的“已分配的文件系統數據”不同于可能由文件系統120保存的任何臨時數據結構,臨時數據結構可能包括磁盤上分量。已分配的文件系統數據也不同于可能由文件系統120保存的文件系統數據的備份拷貝,比如在關于優選“WAFL”文件系統120的公開說明中描述的“瞬態(snapshot)”數據。
文件系統信息表121包括零值映射表124,其具有一組零值映射項目125,它指示哪個磁盤塊142已經邏輯上或物理上被置零。
文件系統信息表121包括條帶映射表126,其具有一組條帶映射項目127,它指示哪個RAID條帶143已經從故障磁盤被轉移。在本發明的一方面中,其中,當那些RAID條帶143包括故障磁盤上的奇偶信息時,RAID條帶143被轉移,每個條帶映射項目127指示來自整個RAID條帶143的磁盤塊142是否已經被轉移(因為奇偶信息本身不被轉移)。
已分配數據的轉移如果磁盤塊142中的數據被丟失(例如磁盤塊142被損壞),或磁盤141上的所有數據都丟失(例如磁盤故障),存儲系統140能夠重建丟失數據。然而,對于任何丟失數據并在塊映射表122中被指示沒有任何已分配數據的磁盤塊142來說,不必為該磁盤塊142重建數據。從而,對于個別的磁盤塊142,如果丟失但沒有使用,則存儲系統140無須重建任何數據。對于整個磁盤141,如果丟失,則存儲系統140只須重建當時正在被使用的磁盤塊142的數據。
如果沒有備用磁盤,則文件系統120指示存儲系統140重建已分配磁盤塊142的數據(即被塊映射表122指示為已分配的磁盤塊142),并把重建數據拷貝到存儲系統140中相同RAID群中的其它未故障磁盤141上的磁盤塊142上。在替換實施例中,被重建的數據可以被拷貝到存儲系統140中不同RAID群中的其它未故障磁盤上。故障磁盤141的磁盤塊142然后不再被寫入,因此文件系統120將它們視為可用VBN(虛擬塊號)空間中的“洞”。例如,如果故障磁盤是磁盤#1、#2、#3、#4和#5(奇偶性)中的磁盤#3,則磁盤#1、#2、#3、#4的VBN將仍然有效,而磁盤#3的VBN則無效。當所有來自故障磁盤141的數據都已經被除去時,故障磁盤141邏輯上或物理上從RAID群被除去,從而把RAID群中的磁盤141的數量減1。
所屬領域技術人員將在細讀本申請之后認識到,使用塊映射表122來減少數據重建量允許存儲系統140最小化工作量,同時又保存了相同的故障容許程度。所屬領域技術人員在細讀本申請之后也將認識到,本技術可以不用過度試驗或新發明而被應用到已經容許多個故障的RAID系統和類似RAID的系統,比如科貝特(Corbett)或“偶奇的(EVENODD)”那些系統。更一般地說,所屬領域技術人員在細讀本申請之后也將認識到,本技術可以不用過度試驗或新發明而被應用到沒有其中必須放置數據或元數據的空間的所有存儲系統。
當故障磁盤141上的磁盤塊142的數據被轉移時,存儲系統140邏輯上清除了(置零)該磁盤塊142的數據。文件系統120設置對應RAID條帶143的零值映射項目125。存儲系統140重新計算對應RAID條帶143的奇偶性,并把重新計算的奇偶性寫入對應RAID條帶143中的奇偶性磁盤141。
如果存在備用磁盤,則文件系統120用同樣的方式指示存儲系統140轉移來自已分配磁盤塊142的數據。對于未分配的磁盤塊142,存儲系統140寫入另一未故障磁盤141上的對應磁盤塊142,而不嘗試重建來自于未分配的磁盤塊142的數據。相反地,存儲系統140物理上清除(置零)作為未分配磁盤塊142轉移目標的磁盤塊142。在優選實施例中,文件系統120指示存儲系統140使用SCSI“寫入相同的(write same)”命令來指導具有作為轉移目標的磁盤塊142的磁盤141;這節省了磁盤141的活動和文件系統120與存儲系統140之間的帶寬。
條帶映射表126包括每個RAID條帶143的一個條帶映射項目127,為RAID條帶143指示RAID條帶143中的磁盤塊142(來自故障磁盤141)是否已經被轉移到另一未故障磁盤141。當它的對應條帶映射項目127指示特定磁盤塊142已經從故障磁盤141轉移到另一未故障磁盤141時,存儲系統140能夠在未來的奇偶性重算期間考慮除去該特定的磁盤塊142。更確切地說,在寫入特定條帶適,存儲系統140通過假定指示的所有磁盤塊142一律為零來重新計算奇偶性。當條帶映射表126指示所有來自故障磁盤141的磁盤塊142已經被轉移到其它未故障磁盤141時,文件系統120和存儲系統140可以邏輯上全面刪除故障磁盤141。
訪問請求的重定向文件系統120在重定向請求中幫助存儲系統140訪問故障磁盤141上的磁盤塊142。在優選實施例中,文件系統120包括寫入時拷貝(copy-on-write)技術,其中,所有對磁盤塊142的寫入操作(在任何磁盤141上,不包括剛才的故障磁盤141)都通過從作為寫操作目標的磁盤塊142拷貝數據、修改該拷貝和把到目標磁盤塊142的指針調整為指向新修改過的拷貝。在優選實施例中,當產生存儲卷的一致性點時,這些修改被集合到一起;然而,對于這類集合沒有特殊的要求。
如果磁盤141故障或磁盤塊142被損壞,則文件系統120標記它的文件系統信息表(包括具有臟塊項目的臟塊表)以指示每個被丟失的磁盤塊142被標記為臟。第一結果是任何對臟磁盤塊142的寫入嘗試將導致寫入時拷貝操作將被執行。第二結果是文件系統120將不遲于下一個一致性點,作為向磁盤寫入一致性點的一部分而產生磁盤塊142的拷貝。
因為用戶對丟失磁盤塊142的請求被重定向,并且因為文件系統120將不遲于下一個一致性點產生磁盤塊142拷貝,所以存儲系統140可以等候來自于文件系統120的指令而不需要通過積極地重建丟失的磁盤塊142來響應。
磁盤塊的提前主動置零在某些情況下,文件系統120提前主動指示存儲系統140把整個磁盤塊142置零,從而允許容易地重算(或不重算)與包含磁盤塊142的條帶相關的奇偶信息。在優選實施例中,文件系統120指示存儲系統140使用SCSI“寫入相同的”命令,如上所述。
文件系統120在至少下列情況中把整個磁盤塊設置為零·當新的磁盤141被添加到RAID群中時,每個RAID條帶143從而被加寬了一個磁盤塊142,并且每個這類條帶的奇偶性從而響應于新的磁盤塊142中的數據。文件系統提前主動指示存儲系統140把新的磁盤141中的所有磁盤塊142設置為零,而不是重新計算任何奇偶信息,從而使奇偶信息保持不變。
奇偶性優選地作為RAID條帶143中磁盤塊142的所有數據的模2和來計算,模2和也被稱作異或運算(“XOR”)。因此,插入全是零的新磁盤塊142沒有改變RAID條帶143中的奇偶性。
·當包括未分配的磁盤塊142(即,沒有被文件系統120標記為“使用中”的磁盤塊142)的RAID條帶被寫入時,文件系統120提前主動指示存儲系統140把那些磁盤塊中的數據設置為零。根據實現,這允許文件系統120或存儲系統140,或者系統100的諸如fly-by XOR(快速XOR)子系統之類的其它組件重新計算那些條帶的奇偶信息,而不用讀取未使用的磁盤塊142。無須讀取未使用磁盤塊142減少了存儲系統140執行的讀取操作量,并減少了文件系統120和存儲系統140之間所用的通信帶寬量。
·當文件系統120準備向磁盤寫入一致性點時,它通常寫入磁盤141上的相對大量的磁盤塊142。文件系統120嘗試把那些磁盤塊142集合到整個RAID條帶143中,因此寫入操作可以盡可能的有效,并且因此奇偶性計算可以被最小化(被看作已分配數據的每個磁盤塊142的開銷操作)。當寫入RAID條帶143時,文件系統120指示存儲系統140清除RAID條帶中不是一致性點一部分的那些磁盤塊142(并且因此將被文件系統120標記為未分配的)。這允許奇偶性計算無須讀取那些磁盤塊142就開始進行。
奇偶性的有效計算在本發明的一方面中,RAID存儲系統執行的操作響應于目標RAID條帶143中磁盤塊142的零值映射表125。響應于那些零值映射表125,文件系統120可以對目標RAID條帶143中的非零磁盤塊的數量進行計數;這允許文件系統120或存儲系統140在寫入任何個別RAID條帶143時確定,通過減法來計算奇偶性或通過重算來計算奇偶性是否更有效。
存儲系統140可以通過減法來計算奇偶性,即當向磁盤141寫入磁盤塊142時,存儲系統140可以從相關聯的奇偶性(用于那些RAID條帶143)減去磁盤塊142中的舊數據并把將寫入磁盤塊142的新數據加到相關聯的奇偶性上。該減法和加法都是逐位模二進行。通過減法來計算奇偶性在RAID存儲系統的技術領域中是已知的。可替換地,存儲系統140可以通過加上(模二)那些RAID條帶143的所有磁盤塊142來重新計算奇偶信息。
當向磁盤141寫入一組磁盤塊142時,文件系統120確定通過減法計算奇偶性是否將需要更少的磁盤操作,或從整個RAID條帶143重新計算奇偶性是否將需要更少的磁盤操作。文件系統120可以從零值映射表124來確定這個;它可以確定RAID條帶中是否有足夠磁盤塊是零,并且可以因此徹底地省去奇偶信息的計算。則RAID系統也可以簡單地把條帶143中的未分配塊置零,如果它們沒有被預先置零(由零值映射表指示)。這對于非WAFL文件系統來說是特別有用的,其中,更可能在條帶中存在未分配塊。
奇偶性丟失時的轉移在RAID級別4系統中,奇偶性被保存在存儲系統140中的單個磁盤141上;即,所有的RAID條帶都在相同的磁盤141上具有它們的奇偶性,其可能因此被稱為“奇偶性磁盤”。在RAID級別5系統中,奇偶性分布在存儲系統140中的多個磁盤141上;即,每個RAID條帶可能在不同的磁盤141上具有其奇偶性,因此沒有單個的“奇偶性磁盤”。
如果RAID級別5系統中的一個磁盤141故障,則那些將故障磁盤141用于其奇偶性的RAID條帶不再具有奇偶性塊,并且如果它們剩下的磁盤塊142中的一個或多個丟失數據,則因此受到丟失信息的影響。文件系統120將那些RAID條帶的磁盤塊142標記為“臟”,因此下次一致性點被寫入磁盤時,那些磁盤塊142被寫入具有有效奇偶性塊的RAID條帶143中的相同或其它磁盤上的不同單元。結果,RAID條帶143中奇偶性丟失的磁盤塊142被寫入具有可用奇偶性塊的其它RAID條帶143中的磁盤塊142(不一定都寫入相同的RAID條帶143)。
操作方法圖2示出包括在RAID數據重建中使用文件系統信息的方法的處理流程圖。
方法200由系統100執行。盡管方法200被連續地描述,然而方法200的流程點和步驟可以用流水線或其它方法由串聯或并聯分離元件來執行,不管異步或同步。除非其中明確地指示,否則沒有方法20必須以與說明書列出的流程點或步驟相同的順序來執行的特定要求。
已分配數據的轉移在流程點210,系統100已經檢測到故障磁盤141。
在步驟211,文件系統120標記條帶映射表126以指示還沒有來自任何RAID條帶143的磁盤塊142已經從故障磁盤141被轉移。文件系統120還標記臟塊表以指示故障磁盤141上的所有磁盤塊142都將被當做臟塊。在方法200中,第一RAID條帶143指的是故障磁盤141上的RAID條帶。第二RAID條帶143指的是備用或其它未故障磁盤上的RAID條帶。
在步驟212,文件系統120接收訪問故障磁盤141上的磁盤塊142之一的用戶請求。因為用戶請求只適用于包括文件數據或者元數據的已分配數據,所以方法200在流程點220開始從磁盤塊142重建數據。
在流程點220,方法200準備從故障磁盤141上的磁盤塊142重建數據。
在步驟221,存儲系統140確定是否存在備用磁盤141。如果有,則方法200進行到步驟222。否則,方法200進行到步驟223。
在步驟222(存在備用磁盤141),存儲系統140把與磁盤塊142相關的第一RAID條帶143轉移到備用磁盤141,并且方法200進行到流程點230。為了執行這個步驟,存儲系統140執行下列的子步驟·在子步驟222a,存儲系統140從磁盤塊142重建數據。存儲系統140從第一RAID條帶143使用另一個磁盤塊142和奇偶性塊。然而,存儲系統140可以忽略第一RAID條帶中的那些磁盤塊142,對于該第一RAID條帶,相關聯的零值映射項目125指示磁盤塊142一律地是零。
·在子步驟222b,存儲系統140從RAID條帶143把數據拷貝到備用磁盤141上的第二目標RAID條帶143。然而,存儲系統140不拷貝未分配的那些磁盤塊142,而是使用它們相關聯的塊映射項目123來確定拷貝哪一些。通過使用SCSI“寫入相同的”命令,存儲系統140提前主動清除第二目標RAID條帶143中的那些未分配的塊映射項目123的磁盤塊142。存儲系統140響應于它對那些磁盤塊142的搶先的清除來重新計算奇偶性。
·在子步驟222c,文件系統120標記對應的條帶映射項目127以指示第一RAID條帶143被完全轉移到備用磁盤141。
在步驟223(沒有備用磁盤141),存儲系統140把磁盤塊142中的數據從故障磁盤141轉移到另一個未故障磁盤141,并且方法200進行到流程點230。為了執行這個步驟,存儲系統140執行下列的子步驟·在子步驟223a,存儲系統140從磁盤塊142重建數據。存儲系統140使用來自其它磁盤塊142和第一RAID條帶143的數據和奇偶性塊。然而,存儲系統140可以忽略第一RAID條帶143中的那些磁盤塊142,對于該第一RAID條帶143,相關聯的零值映射項目125指示磁盤塊142一律地是零。
·在子步驟223b,存儲系統140把數據拷貝到新分配的磁盤塊142中。存儲系統140重新計算原始第一RAID條帶143的奇偶性,假定故障磁盤塊142現在邏輯上是零。
·在子步驟223c,文件系統120標記與磁盤塊142相關的第一RAID條帶143的對應條帶映射項目127,從而指示來自磁盤塊142的數據被轉移到未故障磁盤141。文件系統120標記故障磁盤塊142的對應零值映射項目125以指示磁盤塊142現在邏輯上是零。
在流程點230,故障磁盤塊142或整個第一RAID條帶143的轉移已經完成。系統100重復轉移直到所有已分配的磁盤塊142都已經從故障141被轉移到備用磁盤141或其它未故障磁盤141。
無須重新計算奇偶性的鏡像圖3示出一個系統框圖,該系統不重新計算奇偶性就能夠鏡像。
如上所述,當重新建立(或最初建立)儲存卷的鏡像拷貝(“卷”有時在此可用作“系統”的同義詞)時,通過當包括那些未分配塊的條帶被寫入時保證目標存儲卷上的未分配塊被設置為零,目標存儲卷(也稱作鏡像存儲卷)可以使用來自源存儲卷的計算出的奇偶性。
無須再計算奇偶性就能夠鏡像的系統300包括含有源存儲系統305的源系統301、類似于參考圖1描述的系統100和存儲系統140,并且目標(或鏡像)系統310包括目標存儲系統320,也類似于參考圖1描述的系統100和存儲系統140。源存儲系統305包括一組含有磁盤塊331的源RAID條帶330;目標存儲系統320類似地包括一組含有磁盤塊341的目標RAID條帶。目標RAID條帶340類似于源RAID條帶330,優選地,在邏輯上和源RAID條帶330一致。
源系統301和目標系統310使用通信鏈路350連接。在優選實施例中,通信鏈路350包括光纖信道或SAN(存儲區域網)。在其它實施例中,通信鏈路350可以包括LAN(局域網)、WAN(廣域網)、或其組合,例如互聯網連接。所屬領域技術人員將認識到,通信鏈路350可能包括用于把數據從源系統301發送到目標系統310的任何技術,并且決不局限于在此描述的具體實施例。
源RAID條帶330包括一組已分配塊334、至少一個未分配塊332和一組奇偶性塊333。
當重新建立(或最初建立)源存儲系統305和目標存儲系統320之間的鏡像關系時,源系統301從源RAID條帶330選擇一組已分配塊334以發送到目標系統310。在優選實施例中,這些已分配塊334在源系統301從文件系統信息導出,并且只包括那些由源系統301處的文件系統指示為已分配的磁盤塊。
源系統301把已選擇的已分配塊334連同與RAID條帶330相關的奇偶性塊333一起發送到目標系統310。此外,源系統301置零任何沒有被預置零的未分配塊332。目標系統310從這些已分配塊334接收數據并將它們存儲在其目標RAID條帶340中的已分配塊344的對應單元內。類似地,目標系統310接收相關聯的奇偶性塊333并把它們存儲在其目標RAID條帶340中的奇偶性塊343的對應單元內。
因為目標系統310具有邏輯上和源RAID條帶330一致的目標RAID條帶340,所以目標系統310可以確定它自己所有的未分配塊342在源存儲系統305中是未分配的。目標存儲系統320因此可以使用SCSI“寫入相同的”命令把所有那些未分配塊342設置為零。
結果,在磁盤塊被發送、接收和存儲之后,目標存儲系統320和源存儲系統305基本一致;從而,源存儲系統305和目標存儲系統320之間的鏡像關系被重新建立。
鏡像方法圖4示出無須重新計算奇偶性的鏡象方法的處理流程圖。
方法400由源系統301和目標(鏡像)系統來執行。源系統包括源存儲系統305和類似于文件系統120的源文件系統(未示出)。目標系統類似于目標系統310。與方法200相似,盡管方法400被連續地描述,然而方法400的流程點和步驟可以采用流水線或其它方法由串聯或并聯的分離元件來執行,不管異步或同步。同樣類似于方法200,除非其中明確指示,否則方法400沒有必須用與說明書列出流程點或步驟相同的順序來執行的特定要求。
在流程點410,源系統301和目標系統準備重新建立鏡像關系。在優選實施例中,源系統301和目標系統已經通信以便各自達到鏡像關系即將被重新建立的狀態。此外,在優選實施例中,源系統301和目標系統已經確定將從源系統301被發送到目標系統的磁盤塊的最小集以實現鏡像的重新建立。一個用于確定磁盤塊最小集的方法在WO 02/29572A(網絡儀器公司)中被進一步描述,名稱為“Recovery of File System Data in FileServers Mirrored File System Volumes”,于2002年4月11日公布。
在步驟411,源系統301選擇將被發送到目標系統的一組信息。如上所述,只有已分配的磁盤塊需要被發送。在這個步驟,被選擇發送的信息包括(a)條帶信息和(b)奇偶信息。條帶信息描述被發送的磁盤塊在RAID條帶中怎樣組織。奇偶信息包括為那些RAID條帶計算的奇偶性。對于有關被定義RAID條帶中哪個塊是未分配塊的信息而言,源系統301明確地發送那些信息,或者目標系統響應于條帶信息和它接收的那些磁盤塊的標識來確定該信息。
在步驟412,源系統301發送(和目標系統接收)已分配的磁盤塊、在步驟411中描述的條帶信息,和在步驟411中描述的奇偶信息。在這個步驟,源系統301也可以把RAID條帶中沒有預置零的未分配塊置零。
在步驟413,目標系統把數據從已分配的磁盤塊寫入它們在指定磁盤驅動器及其存儲卷的指定RAID條帶上的指定位置。
在步驟414,目標系統把來自奇偶信息的數據寫入其存儲卷的指定RAID條帶。
在步驟415,目標系統把零值寫入其存儲卷的指定RAID條帶中的未分配塊。在優選實施例中,目標系統使用SCSI“寫入相同的”命令來把相同數據字節的拷貝(即,零)寫入每個未分配塊的每個單元;如上所述,這比向實際的磁盤塊寫零要快一些,并且占用的文件系統和存儲卷之間的通信帶寬較少。
因為在源系統301的未分配塊邏輯上或物理上為零,所以當未分配塊被假定為零時源系統301發送到目標系統的奇偶信息是正確的。因此,目標系統可以安全地把未分配塊實際上設置為零,同時使用相同的奇偶信息而無須再計算奇偶性。
在流程點420,目標系統是源系統301的物理和邏輯拷貝。源系統301和目標系統之間的任何文檔記載操作被完成,并且它們之間的鏡像關系被重新建立。
方法400可以在重新建立或最初建立源存儲卷和目標存儲卷之間的鏡像關系的任何時候被執行,只要在源存儲卷和目標存儲卷都使用了等效RAID條帶。
本發明的通用性本發明通常適用于這樣的文件系統和存儲系統,其中,數據被保存在多個裝置上,并且那些多個裝置上記錄的至少一些信息可以被丟棄(例如不是文件系統的一部分或可以被逐出高速緩存的高速緩存對象)。這些應用沒有被具體限制到保存一致性點的文件系統,也沒有被具體限制到RAID存儲系統,它們也不一定與在此公開的具體應用相關。
在細讀本申請之后,所屬領域技術人員將會清楚,本發明在其大多數一般形式中的其它和進一步的應用。無須過度試驗或進一步發明,本發明可以用于這類其它和進一步的應用。盡管優選實施例在此被公開,然而許多保持在本發明概念、范圍和精神之內的許多變化是可能的;所屬領域技術人員在細讀本申請之后將很清楚這些變化。
·本發明適用于其中數據和元數據沒有在大容量存儲器上被分配固定單元的任何存儲系統。這可以包括文件服務器、數據庫或網絡高速緩存、或另一類型的存儲裝置。盡管在優選實施例中,本發明主要是用于使用RAID存儲系統的文件服務器,然而此外也沒有特定要求來限制本發明的適用性。
·本發明適用于其中數據可以從冗余信息被重建的任何系統;這可以包括任何類型的存儲系統,乃至使用至少一些冗余信息的通信系統。盡管在優選實施例中,本發明主要是用于使用多個磁盤驅動器和奇偶性的存儲系統,然而此外也沒有特定要求來限制本發明的適用性。
·雖然術語“磁盤塊”已經遍及本公開內容被使用,然而本發明同樣適用于大容量存儲系統中的其它類型的數據塊,比如用于磁帶、光驅動器的數據塊等等。
所屬領域技術人員在細讀本申請之后將認識到,這些替換實施例是說明性并且絕不是限制性的。
權利要求
1.一種方法,包括識別第一群數據塊,所述第一群包括能夠保存與所述數據塊相關聯的冗余信息的塊;確定在所述第一群中是否存在故障的數據塊;響應于所述確定操作的結果,從所述的故障數據塊重建數據并確定是否把所述數據發送到與第二群相關聯的數據塊,所述第二群至少具有一個未故障的數據塊;通過邏輯上把所述第一群中的所述故障數據塊設置為選定值,所述第一群的所述冗余信息稍后的計算可以無須重建所述數據而進行。
2.權利要求1的方法,包括響應于關于所述故障數據塊的信息,確定是否制止把數據從所述故障數據塊發送到所述第二群,并代之以把所述第二群中的目標數據塊設置為所述選定值。
3.權利要求1的方法,包括在第一磁盤上保存關于所述故障數據塊組的信息,所述信息包括所述故障數據塊是否已經被轉移到一個或多個第二磁盤;和當所述全部故障數據塊已經充分地被轉移到一個或多個第二磁盤時,邏輯上從存儲系統除去所述的第一磁盤。
4.權利要求1的方法,包括識別訪問所述故障數據塊的嘗試;響應于所述訪問嘗試,執行所述到目標數據塊的重建操作;和把所述訪問嘗試重定向到所述目標數據塊。
5.權利要求4的方法,包括用一個指示符來標記所述故障數據塊,該指示符指示對所述故障數據塊的訪問嘗試應該被重定向;和響應于所述指示符來執行所述重定向操作。
6.一種設備,包括用于識別第一群數據塊的裝置,所述第一群包括能夠保存與所述數據塊相關聯的冗余信息的塊;用于確定在所述第一群中是否存在故障數據塊的裝置;用于響應于所述確定操作的結果從所述故障數據塊重建數據的裝置;用于把所述數據發送到與第二群相關聯的數據塊的裝置,所述第二群至少具有一個未故障數據塊;和用于邏輯上把所述故障數據塊設置為選定值的裝置,從而所述第一群的所述冗余信息稍后的計算可以無須重建所述數據而進行。
7.權利要求6的設備,包括用于響應于關于所述故障數據塊的信息,可能制止把數據從所述故障數據塊發送到所述第二群,并代之以把所述第二群中的目標數據塊設置為所述選定值的裝置。
8.權利要求6的設備,包括用于在第一磁盤上保存關于一組所述故障數據塊的信息的裝置,所述信息包括所述故障數據塊是否已經被轉移到一個或多個第二磁盤;和當所述的全部故障數據塊已經充分地被轉移到一個或多個第二磁盤時,用于邏輯上從存儲系統除去所述第一磁盤的裝置。
9.權利要求6的設備,包括用于識別訪問所述故障數據塊的嘗試的裝置;響應于所述訪問嘗試,用于執行所述到目標數據塊的重建操作的裝置;和用于把所述的訪問嘗試重定向到所述目標數據塊的裝置。
10.權利要求9的設備,包括用于給所述故障數據塊標記一個指示符的裝置,該指示符指示對所述故障數據塊的訪問嘗試應該被重定向;和用于響應于所述指示符來執行所述重定向操作的裝置。
11.一種包括指令的存儲器或大容量存儲器,所述指令能夠由一個或多個計算裝置執行,所述指令引導所述一個或多個計算裝置來識別第一群數據塊,所述第一群包括能夠保存與所述數據塊相關聯的冗余信息的塊;確定在所述第一群中是否存在故障數據塊;響應于所述確定指令的結果,從所述故障數據塊重建數據并把所述數據發送到與第二群相關聯的數據塊,所述第二群至少具有一個未故障數據塊;和通過邏輯上把所述故障數據塊設置為選定值,所述第一群的所述冗余信息稍后的計算可以無須重建所述數據而進行。
12.權利要求11的存儲器或大容量存儲器,包括指令響應于關于所述故障數據塊的信息,可能制止把數據從所述故障數據塊發送到所述第二群,并代之以把所述第二群中的目標數據塊設置為所述的選定值。
13.權利要求11的存儲器或大容量存儲器,包括指令在第一磁盤上保存關于一組所述故障數據塊的信息,所述信息包括所述故障數據塊是否已經被轉移到一個或多個第二磁盤;和當所述的全部故障數據塊已經充分地被轉移到一個或多個第二磁盤時,邏輯上從存儲系統除去所述的第一磁盤。
14.權利要求11的存儲器或大容量存儲器,包括指令識別對所述故障數據塊的訪問嘗試;響應于所述的訪問嘗試,執行所述指令來重建目標數據塊;和把所述訪問嘗試重定向到所述目標數據塊。
15.權利要求14的存儲器或大容量存儲器,包括指令用指示符來標記所述故障數據塊,該指示符指示對所述故障數據塊的訪問嘗試應該被重定向;和響應于所述指示符來執行所述重定向指令。
16.一種操作存儲系統的方法,所述方法包括把選定的數據塊設置為選定值,其中,所述存儲系統進行的奇偶性重算量被最小化。
17.權利要求16的方法,其中,所述設置操作響應于被添加到RAID群的新磁盤。
18.權利要求16的方法,其中,當新磁盤被添加到RAID群時,所述設置操作被執行。
19.權利要求16的方法,其中,當一致性點被產生時,所述設置操作被執行。
20.權利要求16的方法,其中,當寫入具有未分配塊的RAID條帶時,所述設置操作被執行。
21.權利要求16的方法,其中,所述設置操作響應于對磁盤的寫入操作,所述寫入操作與包括文件系統未使用的數據塊的RAID條帶相關聯。
22.權利要求16的方法,其中,所述設置操作響應于文件系統,所述文件系統包括一致性點,存儲的數據在該一致性點是自相一致的。
23.權利要求22的方法,其中,所述選定的數據塊包括由所述存儲系統保存的數據塊的子集,所述子集包括沒有作為寫入所述一致性點到磁盤的操作一部分而被寫入的那些數據塊。
24.權利要求16的方法,其中,所述設置操作響應于與所述選定數據塊相關聯的表,所述表包括一個指示符,它指示所述選定數據塊中的數據應該在所選擇的未來時間被拷貝。
25.權利要求24的方法,其中,所述被選擇的未來時間包括文件系統中的一致性點被寫入磁盤的時間。
26.一種方法,包括識別第一群數據塊,所述第一群包括能夠保存與所述數據塊相關聯的冗余信息的塊;確定所述冗余信息是否可訪問;響應于所述確定操作的結果,把數據從所述第一群發送到與一個或多個第二群相關聯的一組數據塊,所述第二群中每個都具有能夠保存冗余信息的可訪問數據塊。
27.權利要求26的方法,其中,所述數據發送步驟包括把數據條帶從具有對應奇偶性的磁盤發送到相同或其它磁盤上的其它條帶。
28.權利要求26的方法,其中,所述第一群包括RAID條帶。
29.權利要求26的方法,其中,所述確定操作包括確定包括能夠保存所述冗余信息的所述塊的磁盤是否存在故障。
30.權利要求26的方法,其中,所述確定操作包括確定能夠保存所述冗余信息的所述塊是否存在故障。
31.權利要求26的方法,包括接收關于與所述第一群相關聯的所述數據塊的信息;響應于所述接收操作,只對所述數據塊的子集執行所述數據發送操作。
32.權利要求31的方法,其中,所述關于所述數據塊的信息至少包括下列信息之一哪個數據塊具有已分配數據,哪個數據塊沒有已分配數據,哪個數據塊具有不再使用的數據。
33.權利要求31的方法,其中,所述信息包括哪個數據塊已知為零。
34.權利要求26的方法,其中,所述發送操作響應于所述數據應該在未來時間被發送的指示。
35.權利要求34的方法,其中,所述未來時間包括文件系統產生包括來自所述第一群的所述數據的一致性點的時間。
36.一種包括指令的存儲器或大容量存儲器,所述指令能夠由一個或多個計算裝置執行,所述的指令引導所述的一個或多個計算裝置來識別第一群數據塊,所述的第一群包括能夠保存與所述數據塊相關聯的冗余信息的塊;確定所述的冗余信息是否可訪問;響應于所述確定指令的結果,把數據從所述的第一群發送到與一個或多個第二群相關聯的一組數據塊,所述的第二群中每個都具有能夠保存冗余信息的可訪問數據塊。
37.權利要求36的存儲器或大容量存儲器,其中,所述的數據發送指令包括把數據條帶從具有對應奇偶性的磁盤發送到相同或其它磁盤上的其它條帶。
38.權利要求36的存儲器或大容量存儲器,其中,所述的第一群包括RAID條帶。
39.權利要求36的存儲器或大容量存儲器,其中,所述的確定指令包括確定包括所述能夠保存所述冗余信息的塊的磁盤是否存在故障的指令。
40.權利要求36的存儲器或大容量存儲器,其中,所述的確定指令包括確定能夠保存所述冗余信息的所述塊是否存在任何故障的指令。
41.權利要求36的存儲器或大容量存儲器,包括指令用來接收關于與所述第一群相關聯的所述數據塊的信息;響應于所述的接收指令,只對所述數據塊的子集執行所述的發送指令。
42.權利要求41的存儲器或大容量存儲器,其中,關于所述數據塊的信息包括至少下列信息之一哪個數據塊具有已分配數據,哪個數據塊沒有已分配數據,哪個數據塊具有不再使用的數據。
43.權利要求41的存儲器或大容量存儲器,其中,所述的信息包括哪個數據塊已知為零。
44.權利要求36的存儲器或大容量存儲器,其中,所述的發送指令響應于所述數據應該在未來時間被發送的指示。
45.權利要求44的方法,其中,所述的未來時間包括文件系統產生包括來自所述第一群的所述數據的一致性點的時間。
46.一種方法,包括識別一群數據塊;從文件系統接收關于所述數據塊的信息;選擇計算方法,響應于所述信息的結果,減去或重算響應于所述數據塊的一組相關聯的冗余信息;和響應于所述選擇行動的結果,使所述冗余信息和所述數據塊關聯起來。
47.權利要求46的方法,其中,所述的選擇步驟包括只選擇被分配的數據塊。
48.權利要求46的方法,其中,所述的接收操作的結果包括至少下列結果之一具有已為其分配的數據的所述數據塊的數量,具有未為其分配的數據的所述數據塊的數量,具有不再用于所述文件系統的數據的所述數據塊的數量。
49.權利要求46的方法,其中,所述的數據塊群與RAID群相關聯。
50.權利要求46的方法,其中,所述的數據塊群和所述的冗余信息與RAID條帶相關聯。
51.權利要求48的方法,其中,所述的計算方法包括至少下列方法之一通過減法來計算奇偶性、通過重算來計算奇偶性。
52.權利要求46的方法,其中,所述的接收操作的結果包括已知具有選定值的所述數據塊的數量。
53.權利要求52的方法,其中,所述的選定值是零。
54.一種設備,包括具有一組數據塊群的存儲系統,每個所述的數據塊群與能夠保存冗余信息的數據塊相關聯,這樣,響應于所述群中的至少一些信息和至少一些所述的冗余信息,每個群中的所述一個個別數據塊都可以被重建;響應于關于所述數據塊的使用的信息的一組信息;和至少一個電路,連接到所述數據塊和所述能夠保存冗余信息的數據塊,所述的電路能夠計算所述的冗余信息,其中,所述的電路至少響應于一些所述關于使用的信息。
55.權利要求54的設備,其中,所述關于使用的信息包括至少下列信息之一具有已為其分配的數據的所述數據塊的數量,具有未為其分配的數據的所述數據塊的數量,具有不再用于所述文件系統的所述數據塊的數量。
56.權利要求54的設備,其中所述的冗余信息包括奇偶信息;和所述的電路能夠下面各項中的至少一個通過減法來計算奇偶性,通過重算來計算奇偶性。
57.一種設備,包括用于識別一群數據塊的裝置;用于從文件系統接收關于所述數據塊的信息的裝置;用于響應于所述的確定行動的結果,來選擇響應于所述數據塊的一組相關聯的冗余信息的計算方法的裝置;和用于響應于所述選擇行動的結果,來使所述的冗余信息和所述的數據塊相關聯的裝置。
58.權利要求57的設備,其中,選擇裝置包括只選擇被分配了的數據塊。
59.權利要求57的設備,其中,來自所述文件系統的所述信息響應于至少識別下列之一的數據結構具有已為其分配的數據的所述數據塊組,具有未為其分配的數據的所述數據塊組,具有不再用于所述文件系統的所述數據塊組。
60.權利要求57的設備,包括用于響應于所述的選擇裝置來計算所述的冗余信息的裝置,所述的計算裝置包括以下各項中的至少一個通過減法計算奇偶性、通過重算計算奇偶性。
61.一種包括指令的存儲器或大容量存儲器,所述的指令能夠由一個或多個計算裝置來執行,所述的指令引導所述的一個或多個計算裝置來識別數據塊群;接收關于所述的數據塊的信息;響應于所述的信息選擇一個或多個所述的指令;和響應于所述的被選擇指令的執行結果,使冗余信息和所述的群相關聯。
62.權利要求61的存儲器或大容量存儲器,其中,關于所述數據塊的所述信息包括至少下列信息之一具有已分配數據的所述數據塊的數量,具有未分配數據的所述數據塊的數量,具有不再使用數據的所述數據塊的數量。
63.權利要求61的存儲器或大容量存儲器,其中,所述的數據塊群與RAID群相關聯。
64.權利要求61的存儲器或大容量存儲器,其中,所述的數據塊群和所述的冗余信息與RAID條帶相關聯。
65.權利要求61的存儲器或大容量存儲器,其中,所述的選擇指令引導所述的一個或多個計算裝置完成至少下列一個計算通過減法來計算奇偶性;通過重算來計算奇偶性。
66.權利要求61的存儲器或大容量存儲器,其中,關于所述數據塊的所述信息包括已知具有選定值的所述數據塊的數量。
67.一種方法,包括選擇將從源發送到目標的一組數據塊;把所述的數據塊發送到所述的目標;把與所述數據塊相關聯的奇偶性發送到所述目標;通過在所述目標把任何未分配塊設置為選定值,所述數據塊的奇偶性是精確的;從而建立所述源裝置和所述目標裝置之間的選定關系。
68.權利要求67的方法,包括發送有關在存儲卷上組織所述數據塊的信息。
69.權利要求67的方法,其中所述的數據塊被組織在一組條帶中,所述的條帶定義所述數據塊的被選擇群的奇偶性;和所述的未分配塊包括未給所述數據塊關聯的所述條帶中的任何塊。
70.權利要求67的方法,其中所述的數據塊組實質上是已經不在所述目標中的數據塊的最小數。
71.一種包括指令的存儲器或大容量存儲器,所述的指令能夠由一個或多個計算裝置來執行,所述的指令引導所述的一個或多個計算裝置來選擇從源發送到目標的一組數據塊;把所述的數據塊發送到所述的目標;把與所述數據塊相關聯的奇偶性發送到所述目標;在所述的目標把任何未分配塊設置為選定值,憑此所述數據塊的奇偶性是精確的;憑此所述源裝置和所述目標裝置之間選定的關系被建立。
72.權利要求71的存儲器或大容量存儲器,包括指令其用于發送關于在存儲卷上組織所述數據塊的信息。
73.權利要求71的存儲器或大容量存儲器,其中所述的數據塊被組織在一組條帶中,所述的條帶定義所述數據塊的被選擇群的奇偶性;和所述的未分配塊包括未給所述數據塊分配的所述條帶中的任何塊。
74.權利要求71的存儲器或大容量存儲器,其中所述的數據塊組實質上是已經不在所述目標中的數據塊的最小數。
75.一種設備,包括用于選擇從源發送到目標的一組數據塊的裝置;用于把所述的數據塊發送到所述目標的裝置;用于把與所述數據塊相關聯的奇偶性發送到所述目標的裝置;用于在所述目標把任何未分配塊設置為選定值的裝置,憑此所述數據塊的奇偶性是精確的;憑此所述源裝置和所述目標裝置之間的選定關系被建立。
76.權利要求75的設備,包括用于發送關于在存儲卷上組織所述數據塊的信息的裝置。
77.權利要求75的設備,其中所述的數據塊被組織在一組條帶中,所述的條帶定義所述數據塊的被選擇群的奇偶性;和所述的未分配塊包括未給所述數據塊分配的所述條帶中的任何塊。
78.權利要求75的設備,其中所述的數據塊組實質上是已經不在所述目標中的數據塊的最小數。
79.一種設備,包括零值映射表,零值映射表包括描述哪些數據塊已經被置零的一組項目;塊映射表,包括描述哪些數據塊由已分配的文件系統數據所使用的一組項目;和條帶映射表,包括對應于RAID群中故障磁盤中的一個或多個RAID條帶的一組條帶映射項目。
80.權利要求79的設備,其中,通過把所述塊映射表中與已分配數據相關聯的項目拷貝到所述RAID群中的未故障磁盤,從所述故障磁盤重建數據。
81.權利要求79的設備,其中,通過把所述塊映射表中與已分配數據相關聯的項目組拷貝到不同RAID群中的未故障磁盤,從所述故障磁盤重建數據。
82.權利要求79的設備,其中,數據在下一個一致性點被重建。
83.權利要求79的設備,其中,所述條帶映射表中的所述項目組在重建所述的塊映射表中的項目組后被更新。
84.權利要求79的設備,其中,所述條帶映射表中所述項目組中的每個項目都包括一組與RAID條帶的轉移有關的信息。
85.權利要求84的設備,其中,所述的信息組包括與所述RAID條帶相關聯的所述數據塊轉移的目標單元。
86.權利要求79的設備,其中,所述條帶映射表中所述項目組中的每個項目都對應于可以從所述故障磁盤刪除的信息。
87.權利要求79的設備,其中,所述零值映射表中項目數量和非零數據塊數量之間的相對差確定奇偶性是通過減去所有數據塊還是加上所有數據塊來計算。
全文摘要
當磁盤故障(210)時,存儲系統只轉移包括已分配數據的那些磁盤塊,并在可能的情況下把未分配的磁盤塊視為邏輯上為零。當沒有備用磁盤時,源磁盤塊被邏輯上置零并且重新計算與源磁盤塊相關聯的RAID條帶的奇偶性(223)。當存在備用時,備用上的未分配塊在轉移時邏輯上或物理上被置零(222)。故障磁盤的寫入操作被重定向到其它未故障磁盤,并且該使用中的磁盤塊的記錄已經從而被“轉移”到那些其它的未故障磁盤被保存。未使用磁盤塊被提前主動置零。使用關于已分配磁盤塊的信息,并通過拷貝那些包括已分配數據或奇偶性的數據塊,以及通過在鏡像清除那些不包括任何已分配塊的數據塊,目標鏡像拷貝被創建。
文檔編號H02H3/05GK1679000SQ03820109
公開日2005年10月5日 申請日期2003年6月24日 優先權日2002年6月24日
發明者S·R·克萊曼, S·H·斯特朗格 申請人:網絡裝置公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1