一種磁碟重構方法及其裝置的製作方法
2023-09-27 05:24:15
專利名稱:一種磁碟重構方法及其裝置的製作方法
技術領域:
本發明涉及存儲領域,尤其涉及一種磁碟重構方法及其裝置。
背景技術:
獨立磁碟冗餘陣列(RedundantArray of Independent Disks, RAID),舊稱廉價磁碟冗餘陣列(Redundant Array of InexpensiveDisks, RAID),是一種把多塊獨立的磁碟或硬碟組合起來形成的一個磁碟組或硬碟組,也可以稱為邏輯硬碟。一個磁碟組中的多個磁碟互為成員磁碟。RAID技術為存儲領域最常用的技術之一,它將多塊磁碟或硬碟虛擬成一個大容量的磁碟或硬碟,可以通過並行讀寫來加快整體存儲速度,並可以利用冗餘糾錯技術實現一定的容錯能力,從而提供比同等容量的單個磁碟或硬碟更高的存儲性能與數據備份能力。在現有技術當中,在某一磁碟出現故障之後,可以利用磁碟組中剩餘磁碟上的內容恢復故障磁碟的內容,並將恢復的內容寫到一個空閒盤中,這個過程稱作磁碟重構。磁碟重構過程中,如果遇到剩餘磁碟上有不可讀的區域,則在該空閒磁碟上與不可讀的區域對應的空閒區域標記為壞塊,繼續利用剩餘磁碟的其它區域進行重構,重構完成後將故障磁碟替換為空閒磁碟投入使用。然而,現有的這種處理方式,故障磁碟上部分數據會丟失,例如故障磁碟上與不可讀的區域對應的區域的數據會丟失,導致重構後的磁碟數據不完整。
發明內容
本發明的實施例提供一種磁碟重構方法及裝置,能夠減少磁碟在重構之後數據丟失。第一方面,提供一種磁碟重構方法,包括當RAID組中第一成員磁碟存在故障時,所述方法根據RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟;在第一成員磁碟的故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟;在第一成員磁碟故障恢復後,根據恢復的第一成員磁碟進行相應的重構處理。在第一種可能實現的方式中,結合第一方面,用恢復的第一成員磁碟替換包含恢復的數據的目標磁碟作為RAID組的成員磁碟。在第二種可能實現的方式中,結合第一方面,所述方法還包括根據RAID組中第一成員磁碟以外的第二成員磁碟可讀區域的數據恢復第一成員磁碟的第一區域的數據,並將恢復的數據存儲到目標磁碟,其中,在目標磁碟上與第一成員磁碟的第二區域對應的區域不寫入數據,第一區域對應第二成員磁碟的區域可讀,第二區域對應第二成員磁碟的不可讀區域。進一步的,在第一磁碟成員的故障恢復後,可以將恢復的第一成員磁碟的第二區域的數據存儲到目標磁碟。第二方面,提供一種用於實現磁碟重構的裝置,包括數據獲取單元,用於根據RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據,第一成員磁碟為RAID組中發生故障的成員磁碟;寫處理單元,用於將數據獲取單元恢復的數據寫入目標磁碟。重構控制單元,用於在第一成員磁碟故障恢復前,將RAID組的成員磁碟從第一成員磁碟切換到包含恢復的數據的目標磁碟,並在第一成員磁碟故障恢復後,根據恢復的第一成員磁碟完成重構處理。在第一種可能實現的方式中,結合第二方面,在第一成員磁碟故障恢復後,重構控制單元將RAID組的成員磁碟從包含恢復的數據的目標磁碟切換到恢復的第一成員磁碟。在第二種可能實現的方式中,結合第二方面,重構控制單元在判斷第一成員磁碟的故障可恢復的情況選擇在第一成員磁碟故障恢復後,將RAID組的成員磁碟從包含恢復的數據的目標磁碟切換到恢復的第一成員磁碟的重構方式。第三方面,提供一種存儲裝置,包括第三方面以及各種可能實現涉及的用於實現磁碟重構的裝置,以及耦合到用於實現磁碟重構的裝置的一個或多個RAID組和/或目標磁碟。第四方面,提供一種磁碟重構裝置,包括磁碟適配器,用作獨立磁碟冗餘陣列RAID組和目標磁碟的接口 ;存儲控制器,用於判斷第一成員磁碟的故障是否可恢復,如果第一成員磁碟的故障可恢復,按第一重構方式處理,如果第一成員磁碟的故障不可恢復,按第二重構方式處理;其中,在第一重構方式下,根據RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟;在第一成員磁碟的故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟;在第一成員磁碟故障恢復後,根據恢復的第一成員磁碟完成重構處理;其中,在第二重構方式下,根據第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟;在完成第一成員磁碟到目標磁碟重構後,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟,將第一成員磁碟從RAID組移除以完成磁碟重構。在第二種可能實現的方式中,結合第四方面,根據恢復的第一成員磁碟完成重構處理的操作包括用恢復的第一成員磁碟替換包含恢復的數據的目標磁碟作為RAID組的成員磁碟以完成重構處理。在第三種可能實現的方式中,結合第四方面,根據恢復的第一成員磁碟完成重構處理的操作包括將恢復的第一成員磁碟上與第二成員磁碟的不可讀區域對應的區域的數據存儲到目標磁碟以完成重構處理。第五方面,提供一種存儲裝置,包括第四方面以及各種可能實現涉及的磁碟重構裝置,以及耦合到磁碟重構裝置的一個或多個RAID組和/或目標磁碟。本發明實施例提供的各種方法和裝置,能夠減少磁碟重構之後數據的丟失,甚至實現不丟失,並且能夠快速恢復用戶的業務。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發明實施例提供的磁碟重構方法流程示意圖;圖2A為本發明另一實施例提供的磁碟重構方法流程示意圖;圖2B為本發明另一實施例提供的磁碟重構方法流程示意圖;圖3為本發明另一實施例提供的磁碟重構方法流程示意圖;圖4為本發明另一實施例提供的磁碟重構方法流程示意圖;圖5為本發明另一實施例提供的磁碟重構方法流程示意圖;圖6A為本發明實施例提供的RAID組數據存儲示意圖;圖6B為本發明另一實施例提供的磁碟重構示意圖;圖6C為本發明另一實施例提供的磁碟重構示意圖;圖7為本發明又一實施例提供的裝置示意圖;圖8為本發明又一實施例提供的裝置示意圖;圖9A為本發明實施例提供的應用系統框圖;圖9B為本發明實施例提供的應用系統框圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。本發明實施例涉及的術語「磁碟」和「硬碟」具有基本相同含義。磁碟是通過磁性進行讀寫功能的設備磁碟,其可為非易失性存儲介質,斷電後保存的文件不會丟失。硬碟是將磁碟的儲存片裝到硬質金屬盒子裡可以得到更好的保護。本發明實施例涉及的磁碟重構,是對磁碟上數據的重建或恢復。恢復的數據可以被寫入目標磁碟。目標磁碟可以是指定的備份磁碟或任何可用的空閒磁碟。本發明實施例提供的各種磁碟重構方法和裝置,可應用於包含多個成員磁碟的磁碟組,例如RAID組。該磁碟組用於分布存儲整數個數據塊以及這些數據塊形成的整數個校驗數據。在該磁碟組中,如果需要對某磁碟進行重構,可以利用磁碟組中剩餘磁碟的數據恢復該磁碟的數據,從而實現磁碟重構。本發明實施例提供的「磁碟組」,又稱作磁碟陣列,可以是基於軟體的陣列也可以是基於硬體的陣列。特別的,軟陣列通過軟體程序並由計算機的中央處理單元(CenterProcessing Unit, CPU)提供運行能力所成。例如,基於軟體的陣列通過網絡作業系統自身提供的磁碟管理功能將連接的普通小型計算機系統接口(Small ComputerSystemInterface, SCSI)卡上的多塊硬碟配置成邏輯盤,組成陣列。基於軟體的陣列可以提供數據冗餘功能。基於硬體的陣列是使用專門的磁碟陣列卡來實現的。基於硬體的陣列能夠提供在線擴容、動態修改陣列級別、自動數據恢復、驅動器漫遊、超高速緩衝等功能。它能提供性能、數據保護、可靠性、可用性和可管理性的解決方案。陣列卡專用的處理單元來進行操作,它的性能遠遠高於常規非陣列硬碟,並且更安全更穩定。本發明各實施例提供的磁碟組或磁碟陣列可以採用RAID技術,RAID可以是基於軟體的也可以是基於硬體的。本發明實施例可以應用於各種RAID組合方式,用RAID級別標識,例如 RAID-0, RAID-1, RAID-1E,RAID-5, RAID-6, RAID-7, RAID-10, RAID-50。不同的RAID級別可以滿足性能和安全的多種需要。各種RAID級別所需磁碟的數目和存儲方式為公眾所知,不再贅述。RAID組中,每一個成員磁碟包含數量相等的區塊,跨越RAID組中所有成員磁碟的對齊區塊稱為條帶。如圖4所示為一種RAID組數據存儲形式。圖6A中RAID組劃分成N個條帶,每一個條帶對應4個區塊,3個區塊存儲3個數據塊的數據,I個區塊存儲該條帶3個區塊的校驗數據。每個數據塊承載數據比特或字節的大小可以根據存儲裝置或系統設置,
可以通過本地或遠程控制接口進行設置。如圖6A所示,一組數據塊Dl,D2,......,D3N+3
以及這些數據塊形成的校驗數據Pl,P2,......,PN分布存儲到RAID組600的多個成員磁
盤601-604中。值得注意的是,RAID組包含的成員磁碟數不僅限於圖示的4個,成員磁碟的數量可以根據RAID級別的基本需要以及客戶需要確定。本發明實施例數據存儲方式不僅限於圖6A所示,可以包括現有各種RAID級別的存儲方式。在本發明的一個實施例中,當RAID組中第一成員磁碟故障,如成員磁碟604發生故障,步驟SlOl中,確定RAID組中第一成員磁碟之外的第二成員磁碟存在不可讀區域。步驟S103中,可以根據RAID組中該成員磁碟604以外的第二成員磁碟601-603的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟605。步驟S105中,在第一成員磁碟的故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟。步驟S107中,在第一成員磁碟故障恢復後,用恢復的第一成員磁碟完成相應的重構處理。如果發現第二成員磁碟存在不可讀區域,對第一成員磁碟的第一區域進行重構操作,可以不對第一成員磁碟的第二區域進行重構操作。第一區域對應第二成員磁碟的區域可讀,第二區域對應第二成員磁碟的不可讀區域。這裡的重構操作包括數據恢復處理。在目標磁碟上可以為第二區域預留磁碟空間,保證目標磁碟和第二成員磁碟之間的區塊對應關係和第一成員磁碟與第二成員磁碟之間區塊對應關係保持一致,即不改變區塊對應關係,以降低目標磁碟作為成員磁碟使用過程中存儲和數據處理複雜性。在為第二區域預留的磁碟空間上可以不進行壞塊標記。在第一成員磁碟故障恢復後,可以用恢復的第一成員磁碟替換目標磁碟作為RAID組的成員磁碟。採用這種方式,可以不考慮第二成員磁碟是否存在不可讀區域,即不管第二成員磁碟是否存在不可讀區域,在故障恢復後都能保證系統數據的完整性和安全性。當然這種方式在第二成員磁碟存在不可讀區域的情況,可以有效解決目標磁碟上存在部分數據丟失的問題。在本發明一個實施例中,在第二成員磁碟存在不可讀區域的情況,第一成員磁碟故障恢復後可以不需要將目標磁碟替換回恢復的第一成員磁碟。相應的,可以將恢復的第一成員磁碟上與第二成員磁碟不可讀區域對應的第二區域的數據存儲到目標磁碟。這樣,可以實現重構後磁碟數據的完整性,而且可以進一步減少磁碟切換帶來的時間延遲。圖2A所示為故障恢復後需要切換回原來磁碟的一個實現過程。圖2A所示的磁碟重構方法應用於包含多個成員磁碟的RAID組的存儲裝置或存儲系統。對RAID組中存在故障的第一成員磁碟進行重構的處理包括S201a、確定RAID組中第一成員磁碟之外的第二成員磁碟存在不可讀區域。S203a、根據第二成員磁碟的數據恢復第一磁碟的第一區域的數據,並將恢復的數據存儲到目標磁碟,其中,所述第一區域對應的第二成員磁碟的區域可讀。S205a、在第一成員磁碟故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟。S207a、在第一成員磁碟故障恢復後,用恢復後的第一成員磁碟替換目標磁碟作為RAID組的成員磁碟。步驟S201a中,可以根據第二成員磁碟的狀態檢測結果確定第二成員磁碟是否存在不可讀區域,狀態檢測結果用於指示條帶和/或區塊的可讀性檢測結果。步驟S203a中,可以根據狀態檢測結果確定第一區域。狀態檢測結果可以包含可讀區域和/或不可讀區域的記錄,知道可讀區域即可確定不可讀區域。狀態檢測結果可以用條帶標識符和/或區塊標識符來識別。具體的,條帶標識符和/或區塊標識符也可以用存儲地址表示,例如,條帶標識符可以是條帶編號或條帶地址(條帶的首地址和/或尾地址),區塊標識符可以是區塊編號或區塊地址(區塊的首地址和/或尾地址)。狀態檢測結果可以是存儲在存儲器中的歷史數據,例如包含該不可讀區域記錄的日誌;也可以是通過對第二成員磁碟執行狀態檢測獲得。狀態檢測結果可以是故障發生前已經獲得的歷史數據,也可以是故障發生後對第二成員磁碟啟動磁碟狀態檢測獲得的數據。可以按區域掃描,如果第二成員磁碟均可讀,其所對應的第一成員磁碟的區域可讀。或者是,先確定了第二成員磁碟上存在不可讀區域,根據第二成員磁碟的不可讀區域確定第一成員磁碟的第二區域,第一成員磁碟剩下的區域即為第一區域。在本發明的實施例中,可以包括對第一成員磁碟的故障是否可恢復的判斷操作,該操作可以通過檢測磁碟故障原因實現。磁碟故障原因包括磁碟離線、磁碟物理介質故障等一個或多個原因。例如,可以檢測RAID組中第一成員磁碟所在槽位的槽位狀態,在步驟S201a之前對第一成員磁碟執行槽位狀態檢測,如果槽位狀態檢測結果指示該第一成員磁碟不在位,則判斷第一成員磁碟可恢復。在本發明的實施例中,還可以包括對第一成員磁碟的故障是否已恢復的判斷操作,該操作可以通過檢測磁碟在位狀態、磁碟的身份信息、磁碟物理介質完整性等一個或多個內容實現。在重構的過程中,第一成員磁碟是否可恢復的判斷操作可以通過檢測第一成員磁碟的槽位狀態、第一成員磁碟的身份等確定,另外,還可以結合第一成員磁碟的物理介質完整性進行判斷。這樣可以有效解決故障磁碟誤操作拔出或接觸不良導致磁碟無法被檢測。例如,通過磁碟診斷確定某磁碟的故障是由於物理介質故障導致的,則判定該故障磁碟不可恢復。通常,在某個磁碟所在槽位沒有接入新盤,該磁碟被插回的可能性較大,則可以判定該磁碟可恢復。圖2B所示為故障恢復後不需要切換回原來磁碟的一個實現過程。圖2B所示的磁碟重構方法應用於包含多個成員磁碟的RAID組的存儲裝置或存儲系統。當RAID組中第一磁碟存在故障時,重構處理方法包括S201b、確定RAID組中第一成員磁碟之外的第二成員磁碟存在不可讀區域。S203b、利用第二成員磁碟的數據恢復第一成員磁碟的第一區域的數據,並將恢復的數據保存到目標磁碟,其中,第一成員磁碟的第一區域對應的第二成員磁碟的區域可讀。S205b、在第一成員磁碟故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟。S207b、在第一成員磁碟故障恢復後,將恢復的第一成員磁碟的第二區域的數據存儲到目標磁碟,第二區域對應第二成員磁碟的不可讀區域。步驟S201b中確定第二成員磁碟是否存在不可讀區域的操作可以採用和步驟S201a相同或類似操作,步驟S203b中確定第一區域的操作可以採用和步驟S203a相同或類似操作,不再贅述。本發明另一實施例提供一種磁碟重構方法,應用於包含多個成員磁碟的RAID組的存儲裝置或存儲系統。如圖3所示,當RAID組中第一成員磁碟存在故障時,重構處理方法包括S301、判斷第一成員磁碟是否可恢復,若第一成員磁碟可恢復,執行S303 ;若第一成員磁碟不可恢復,執行S306。其中,第一成員磁碟是否可恢復的判斷操作可以通過檢測磁碟故障原因實現,該操作可以通過檢測磁碟故障原因實現。磁碟故障原因包括磁碟離線、磁碟物理介質故障等一個或多個原因。例如,對第一成員磁碟執行槽位狀態檢測,如果槽位狀態檢測結果指示該第一成員磁碟不在位,則判斷第一成員磁碟可恢復。若第一成員磁碟是由於誤操作導致盤被拔出,且該第一成員磁碟所在槽位沒有接入新盤,該第一成員磁碟被插回的可能性較大,則可以判定第一成員磁碟可恢復;或第一成員磁碟是被拔出,且該第一成員磁碟所在槽位接入了新盤,則判定該第一成員磁碟不可恢復;或該第一成員磁碟是由於物理介質故障導致的,則判定該第一成員磁碟不可恢復。S303、根據RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據,將恢復的數據存儲到目標磁碟。該目標磁碟可以是任意可用的空閒磁碟。在存儲數據前,可以對目標磁碟的磁碟空間劃分成多個區域,劃分的多個區域保持和第一成員磁碟的多個區域對應,以保證恢復的每一個區域的數據能夠存儲到目標磁碟相應的區域。當然,劃分區域不是必須的,例如,可以按照數據塊分布規則順序存儲。具體的,如圖6A所示,一組連續的數據塊和這些數據塊形成的校驗塊分布存儲於RAID組的多個成員磁碟。這些存儲數據塊和校驗塊的磁碟區域被稱為區塊,至少一組跨越多個成員磁碟的區塊可以形成條帶。示例性的,利用第二成員磁碟上數據塊和校驗塊的分布關係恢復出第一成員磁碟的數據。當第二成員磁碟上存在不可讀區域,如存在壞道,第一成員磁碟上與不可讀區域對應的區域的數據不可恢復,不對該對應的區域進行重構處理,例如在目標磁碟不進行壞塊標記。如圖6B所示,第一成員磁碟(磁碟4)發生故障,當檢測到的第二成員磁碟(磁碟1-3)中磁碟I的區域j不可讀,其對應第一成員磁碟的區域m,不對區域m進行重構處理,即不進行數據恢復計算處理;在目標磁碟上對應的區域η也不進行壞塊標記。區域j、區域m和區域η可用區塊標識符和/或條帶標識符識別。S304、在第一成員磁碟故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟。在本實施例中,目標磁碟作為RAID組臨時的成員磁碟,可以在RAID組成員磁碟表和RAID組區域映射關係表中新增一條記錄,暫時不刪除第一成員磁碟的記錄,可以用解激活狀態表示。或者創建臨時的RAID組成員磁碟表和臨時的RAID組區域映射表。把原來的RAID組成員磁碟表和原來的RAID組區域映射關係表解激活,待故障恢復後重新激活。示例性的,RAID可以應用於通過存儲區域網絡(Storage AreaNetwork, SAN)將高速伺服器與高速存儲設備的高速互聯的網絡環境中。其中,高速存儲設備可以為基於RAID的存儲裝置或系統,這就使得物理上的遠距離存儲變得容易便捷,提高了數據的可靠性和安全性。例如,可以應用在對數據安全性和存儲性能要求很高的企業當中。譬如在企業商務數據或運營商數據的存儲和備份管理的網絡環境中,目標磁碟接替故障磁碟後,目標磁碟可以為其他設備提供業務訪問服務,從而實現數據的快速備份,快速地恢復用戶的業務,以保證企業商務數據遠程傳輸和遠程存儲的安全性和穩定性。S305、在第一成員磁碟故障恢復後,用恢復的第一成員磁碟完成磁碟重構處理。步驟S305可以有多種實現方式,例如,在第一成員磁碟故障恢復後,用恢復的第一成員磁碟替換目標磁碟作為RAID組的成員磁碟以完成磁碟重構處理。完成磁碟重構處理後,刪除或解激活目標磁碟作為RIAD組的成員磁碟的記錄。另一方面,恢復第一成員磁碟作為RAID組成員的記錄,即重新激活該第一成員磁碟。如果步驟S304中是在RAID組成員磁 盤表和RAID組區域映射關係表中新增一條記錄,在步驟S305中將新增的記錄刪除,重新激活原來地第一成員磁碟的記錄。如果步驟S304中是創建臨時的RAID組成員磁碟表和臨時的RAID組區域映射表,在步驟S305中將臨時的RAID組成員磁碟表和臨時的RAID組區域映射表刪除,重新使用原來的RAID組成員磁碟表和原來的RAID組區域映射關係表。在步驟S303中,如果第二成員磁碟存在不可讀區域,能夠恢復的數據包含第一成員磁碟的第一區域的數據,第一區域對應第二成員磁碟的區域均可讀。在第一成員磁碟故障恢復後,將恢復的第一成員磁碟的第二區域的數據存儲到目標磁碟,第二區域對應第二成員磁碟的不可讀區域。參考圖6B所示,將恢復的第一成員磁碟的區域m的數據存儲到目標磁碟的區域η。第一成員磁碟故障是否恢復可參照上文所述。當該第一成員磁碟的故障恢復後,如第一成員磁碟插回其所在RAID組的槽位,將目標磁碟替換為恢復後的第一成員磁碟。這樣防止了在重構時由於第二成員盤數據存在不可讀區域而引起第一成員磁碟的數據丟失,在第一成員磁碟故障恢復後可以保證第一成員磁碟數據的完整性,進而保證RAID組的數據完整性和安全性。另一方面,用恢復後的第一成員磁碟替換目標磁碟,可以保持RAID組原有的數據處理模式,恢復該RAID組出現故障之前的數據存儲狀態。S306、根據RAID組中第一成員磁碟之外的第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟。在步驟S306執行的過程中,第二成員磁碟可能存在不可讀區域,在目標磁碟上與不可讀區域對應的區域可以被標記為壞塊,也可以保持空閒,不寫入任何數據,或者是可以用固定的值進行填充以便於系統識別。如圖6C所示,第一成員磁碟(磁碟4)發生故障,當檢測到的第二成員磁碟(磁碟1-3)中磁碟I的區域j不可讀,其對應第一成員磁碟的區域m;在目標磁碟上對應的區域η進行壞塊標記。區域j、區域m和區域η可用區塊標識符和/或條帶標識符識別。當然,區域η上也可以採用固定值填充或保持空閒。具體的,步驟S306可以包括如下幾個子步驟S306a、判斷第二成員磁碟是否存在不可讀區域;如果第二成員磁碟存在不可讀區域,執行步驟S306b,如果第二成員磁碟不存在不可讀區域,執行步驟S306c。S306b、根據第二成員磁碟的數據恢復第一成員磁碟的第一區域的數據,並將恢復的數據存儲到目標磁碟,其中,在目標磁碟上與第一成員磁碟的第二區域對應的區域標記壞塊或不寫入數據,第一區域對應的第二成員的區域可讀,第二區域對應的第二成員磁碟的不可讀區域。S306c、根據第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟。S307、用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟。可以將第一成員磁碟從RAID組移除,不考慮第一成員磁碟的故障是否恢復。將該第一成員磁碟從該 RAID組中移除,如刪除第一成員磁碟作為RAID組的成員磁碟的記錄,用目標磁碟的信息刷新RAID組區域映射關係表,這樣,可以防止後續其他成員盤出現故障,成員信息不準確帶來的失效。這樣,當第一成員磁碟的故障可恢復時,RAID組可以保持其原有的數據存儲狀態,RAID組數據不丟失;當第一成員磁碟的故障不可恢復,根據第二成員磁碟可讀區域的數據恢復第一成員磁碟的第一區域的數據,至多丟失第一成員磁碟第二區域的數據,其中,第一區域對應的第二成員磁碟的區域均可能,第二區域對應第二成員的不可讀區域。通過RAID組中成員磁碟的狀態智能選擇重構方式,可以平衡RAID組數據完整性和不可讀區域導致重構時間浪費的問題,能夠減少RAID組重構後數據的丟失,甚至實現不丟失,並且能夠快速恢復用戶的業務。圖4為本發明另一實施例的方法流程圖。圖4所示方法與圖3類似,主要區別在於,根據第一成員磁碟的故障是否可恢復以及第二成員磁碟是否存在不可讀區域的判斷結果選擇不同的重構方式第一重構方式,應用於在第一成員磁碟的故障可恢復以及第二成員磁碟存在不可讀區域的情況。第一重構方式的處理包括步驟S403中,根據第二成員磁碟的數據恢復第一成員磁碟的數據,將恢復的數據存儲到目標磁碟;步驟S404中,在第一成員磁碟故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟;步驟S405中,在第一成員磁碟故障恢復後,用恢復的第一成員磁碟完成磁碟重構處理。步驟S405中,在第一成員磁碟故障恢復後,可以用恢復後的第一成員磁碟替換目標磁碟作為RAID組的成員磁碟以完成磁碟重構處理。步驟S403中恢復的數據包括第一成員磁碟第一區域的數據,第一區域對應的第二成員磁碟的區域均可讀。步驟S405中,在第一成員磁碟故障恢復後,可以將第一成員磁碟第二區域的數據存儲到目標磁碟以完成磁碟重構處理,第二區域對應第二成員磁碟的不可讀區域。第二重構方式,應用於第一成員磁碟的故障不可恢復以及第二成員磁碟存在不可讀區域的情況。第二重構方式的處理包括步驟S406b中,根據第二成員磁碟的數據恢復第一成員磁碟的第一區域的數據,將恢復的數據存儲到目標磁碟,其中,在目標磁碟上與第一成員磁碟的第二區域對應的區域標記壞塊或不寫入數據,第一區域對應的第二成員磁碟的區域可讀,第二區域對應第二成員磁碟的不可區域。步驟S407中,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟。第三重構方式,應用於第二成員磁碟不存在不可讀區域的情況。第三重構方式的處理包括步驟S406c中,根據第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟。步驟S407中,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟。圖5為本發明另一實施例的方法流程圖,圖5所示的方法和圖4類似。當RAID組中第一成員磁碟故障時,具體處理過程包括S501、判斷RAID組中第二成員磁碟是否存在不可讀區域,如果存在不可讀區域,執行步驟S502,如果不存在不可讀區域,執行步驟S506c。第二成員磁碟為RAID組中發生故障的第一成員磁碟以外的其他成員磁碟。S502、判斷第一成員磁碟的故障是否可恢復,如果可恢復,執行步驟S503,如果不可恢復,執行步驟S506b。S503、根據第二成員磁碟的數據恢復第一成員磁碟的數據,將恢復的數據存儲到目標磁碟。S504、在第一成員磁碟故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟。S505、在第一成員磁碟故障恢復後,用恢復的第一成員磁碟完成磁碟重構處理。—方面,在第一成員磁碟故障恢復後,可以用恢復的第一成員磁碟替換目標磁碟作為RAID組的成員磁碟以完成磁碟重構處理。另一方面,在第一成員磁碟故障恢復後,可以將用恢復的第一成員磁碟的第二區域的數據存儲到目標磁碟相應區域以完成磁碟重構處理。其中,第二區域對應第二成員磁碟的不可讀區域。S506b、根據第二成員磁碟的數據恢復第一成員磁碟的第一區域的數據,將恢復的數據存儲到目標磁碟,其中,在目標磁碟上與第一成員磁碟的第二區域對應的區域標記壞塊或不寫入數據,第一區域對應的第二成員磁碟的區域可讀。完成S506b的操作後,執行步驟 S507。S506c、根據第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟。完成S506c的操作後,執行步驟S507。S507、用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟。如圖7所示為本發明實施例提供一種裝置700,用於實現磁碟重構。裝置700耦合到包含一個或多個RAID組,每一個RAID組包含多個成員磁碟。裝置700包括數據獲取單元703,用於根據RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據。寫處理單元704,用於將數據獲取單元703恢復的數據寫入目標磁碟。重構控制單元702,用於在第一成員磁碟故障恢復前,將RAID組的成員磁碟從第一成員磁碟切換到包含恢復的數據的目標磁碟,並在第一成員磁碟故障恢復後,根據恢復的第一成員磁碟完成重構處理。重構控制單元702可以在第一成員磁碟故障恢復後,將RAID組的成員磁碟從包含恢復的數據的目標磁碟切換到恢復的第一成員磁碟。重構控制單元702也可以指示數據獲取單元703在第一成員磁碟故障恢復後,獲取第一成員磁碟的第二區域的數據,以及指示寫處理單元704將第二區域的數據存儲到目標磁碟對應區域。第二區域對應第二成員磁碟的不可讀區域。重構控制單元702在判斷第一成員磁碟的故障可恢復的情況選擇在第一成員磁碟故障恢復後,將RAID組的成員磁碟從包含恢復的數據的目標磁碟切換到恢復的第一成員磁碟的第一重構方式。重構控制單元702在判斷第一成員磁碟的故障不可恢復的情況選擇不考慮故障是否恢復的情況,在完成第一成員磁碟到目標磁碟的重構後將第一成員磁碟從RAID組刪除的第二重構方式。重構控制單元702還可以結合第一成員磁碟的故障可恢復性檢測結果和第二成員磁碟是否存在不可讀區域的檢測結果進行重構方式選擇。具體的,重構控制單元702可以包含故障狀態管理單元7022,其用於實現第一成員磁碟的故障狀態管理。故障狀態管理單元7022可以獲得第一成員磁碟的故障原因,故障是否已恢復等信息,故障原因可以包含不在位、磁碟介質故障等一個或多個。 重構控制單元702還可以包含磁碟可讀性檢測單元7021,用於獲得RAID組成員磁碟的可讀性檢測結果,包括獲得第二成員磁碟的可讀性檢測結果。重構控制單元702可以包含磁碟管理單元7023,用於管理RAID組成員磁碟,包括維護成員磁碟信息、負責成員磁碟變更或切換管理、磁碟可讀區域和/或不可讀區域管理、磁碟重構方式選擇等一個或多個方面。重構控制單元702還可以包含處理單元7024,負責根據故障管理單元7022、磁碟可讀性檢測單元7021、磁碟管理單元7023等一個或多個單元的信息或指令控制數據獲取單元703和寫入控制單元704的操作。例如,處理單元7024根據第二成員磁碟的可讀性檢測結果控制數據獲取單元703的數據恢復過程,以便於數據獲取單元703根據第二成員磁碟可讀區域的數據恢復第一成員磁碟第一區域的數據,第一區域對應第二成員磁碟的區域可讀,阻止數據獲取單元703對第一成員磁碟的第二區域進行重構,第二區域對應第二成員磁碟的不可讀區域。處理單元7024還可以根據磁碟可讀性檢測結果指示寫處理單元704不在目標磁碟上與第二區域對應的區域寫入數據或標記壞塊。具體的,處理單元7024可以根據需要執行上述方法流程的一個或多個操作。如圖8所示為本發明實施例提供一種裝置800,包括重構方式選擇單元801,用於判斷RAID組中發生故障的第一成員磁碟是否可恢復,如果第一成員磁碟的故障可恢復選擇軟重構方式,如果第一成員磁碟的故障不可恢復選擇硬重構方式。
軟重構單元802,用於在軟重構方式下,根據RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟,在第一成員磁碟故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟,在第一成員磁碟故障恢復後,用恢復後的第一成員磁碟替換包含恢復的數據的目標磁碟作為RAID組的成員磁碟。其中,如果第二成員磁碟存在不可讀區域,可以僅恢復第一成員磁碟的第一區域的數據,而對第一成員磁碟的第二區域不進行重構或數據恢復處理。其中,第一區域對應的第二成員磁碟的區域均可讀,第二區域對應第二成員磁碟的不可讀區域。硬重構單元805,用於在硬重構方式下,根據RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟,在完成恢復的數據存儲後,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟,將第一成員磁碟從RAID組移除以完成磁碟重構。第一成員磁碟故障恢復後維持目標磁碟作為RAID組的成員磁碟。其中,如果第二成員磁碟存在不可讀區域,可以僅恢復第一成員磁碟的第一區域的數據,而對第一成員磁碟的第二區域不進行重構或數據恢復處理。其中,第一區域對應的第二成員磁碟的區域均可讀,第二區域對應第二成員磁碟的不可讀區域。。軟重構單元802可以包括數據獲取單元8021,用於根據第二成員磁碟的數據恢復第一成員磁碟的數據。在第二成員磁碟存在不可讀區域時,數據獲取單元8021可以根據第二成員磁碟可讀區域的數據獲取第一成員磁碟的第一區域的數據,第一區域對應的第二成員磁碟的區域均可讀。數據獲取單元8021獲取的數據可以緩存到與裝置800耦合的緩存器中,該緩存器可以是外部連接到裝置800,也可以是集成到裝置800中。寫處理單元8023,用於控制將恢復的數據存儲到目標磁碟相應區域重構控制單元8024,用於在目標磁碟中完成對第一成員磁碟的所有可恢復數據的存儲後,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟;以及在第一成員磁碟故障恢復後,用恢復後的第一成員磁碟替換包含恢復的數據的目標磁碟作為RAID組的成員磁碟。硬重構單元805可以包括數據獲取單元8051,用於根據第二成員盤的數據恢復第一成員磁碟的數據。恢復數據的方式可以採用第二成員磁碟中數據塊和校驗塊的分布進行冗餘計算獲得。如果第第二成員磁碟存在不可讀區域,數據獲取單元8051可以僅根據第二成員磁碟可讀區域的數據獲取第一成員磁碟的第一區域的數據,第一區域對應第二成員磁碟的區域均可讀,而對第一成員磁碟的第二區域不進行數據恢復處理,第二區域對應第二成員磁碟的不可讀區域。寫處理單元8053,用於將數據獲取單元8051恢復的數據存儲到目標磁碟相應區域。硬重構單元805可以包括壞塊標記單元8052,用於在第二成員磁碟存在不可讀區域時,在目標磁碟中將與第二成員盤的不可讀區域對應的區域標記為壞塊,目標磁碟中標記壞塊處不寫入數據。硬重構單元805也可以不包含壞塊標記單元8052,而是採用一個固定值作為第一成員磁碟的第二區域的數據寫入目標磁碟中與第二區域對應的區域。當然,與第二區域對應的區域也可以不寫入任何數據。重構控制單元8054還可以在目標磁碟中完成對第一成員磁碟所有可恢復數據的存儲後,將目標盤作為成員磁碟加入RAID組中,並將第一成員磁碟從RAID組中移除。重構控制單元8054可以更新RAID組磁碟成員信息。圖9A和9B為本發明實施例提供的應用系統910a和910b的架構示意圖。圖9A中,系統900a包括一個或多個存儲裝置或存儲系統,如圖裝置910a,其通過光纖通道(Fiber Channel,FC)網絡或網際互聯協議(Internet Protocol, IP)網絡或IP網絡905連接到主機901a、901b,資料庫902等網絡設備。圖9A示意性顯示了 2個主機901a和901b,實際系統中可以包括更多類似主機,這些主機可以是完成各種功能的伺服器,如網絡伺服器(web server)、文件伺服器、業務伺服器等。資料庫902提供存儲文件的內容索弓丨、訪問地址信息、用戶信息等。裝置910a能夠實現磁碟重構功能,提供磁碟重構功能的部件主要包括 存儲控制器912a,通過一個或多個磁碟適配器913a連接到多個磁碟。其中,至少部分磁碟可以形成RAID組,如RAID組915a和915b。至少部分磁碟用作空閒磁碟,如磁碟916a和916b,其可以用作磁碟重構的目標磁碟。RAID組可以是基於軟體的RAID組,也可以是基於硬體的RAID組。磁碟適配器913a是獨立磁碟冗餘陣列RAID組和目標磁碟的接口,提供輸入和輸出適配功能,其可以作為RAID組和其它組件(如存儲控制器912、緩存器)的中介。存儲控制器912a,耦合到RAID組,用於完成RAID組的控制,能夠完成的控制操作包括磁碟重構控制操作。存儲控制器912a可執行如下操作當RAID組中第一成員磁碟故障,根據RAID組中第一成員磁碟以外的第二成員磁碟恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟;在第一成員磁碟的故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟;在第一成員磁碟故障恢復後,根據恢復後的第一成員磁碟進行相應的處理。本發明實施例至少提供兩種重構方式。第一成員磁碟故障恢復後,需要從目標磁碟切換回恢復的第一成員磁碟的重構方式被稱作第一重構方式。第一成員磁碟故障恢復後,不需要從目標磁碟切換回恢復的第一成員磁碟的重構方式被稱作第二重構方式。當然,在實施例中,也可以包含其他重構方式。存儲控制器912a可在第一成員磁碟故障恢復後,用恢復的第一成員磁碟替換包含恢復的數據的目標磁碟作為RAID組的成員磁碟。存儲控制器912a可在第一成員磁碟故障恢復後,將恢復的第一成員磁碟的第二區域的數據存儲到目標磁碟相應區域,第二區域對應第二成員磁碟的不可讀區域。該操作可以在第二成員磁碟存在不可讀區域情況下執行。第一重構方式和第二重構方式可以由存儲控制器912a選擇。存儲控制器912a可以基於第一成員磁碟的故障是否可恢復的判斷結果進行選擇,如果可以恢復選擇第一重構方式,即需要切換回恢復的第一成員磁碟,如果不可以恢復選擇第二重構方式,即不需要切換回恢復的第一成員磁碟。
存儲控制器912a可以獲得磁碟成員信息、磁碟區域信息、指示磁碟狀態是否可恢復的信息、指示磁碟可讀性檢測結果的信息、指示數據塊和校驗塊分布的信息或規則等至少部分信息,用作磁碟重構控制處理。存儲控制器912a可以從自身包含的存儲器獲得上述信息,也可以從連接其上的存儲器獲得上述信息。存儲控制器912a可基於指示磁碟狀態是否可恢復的信息判斷發生故障的第一成員磁碟的故障是否可恢復。存儲控制器912a可基於指示磁碟可讀性檢測結果的信息判斷第二成員磁碟是否存在不可讀區域。存儲控制器912a可以基於RAID組中第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟的操作。磁碟區域信息可以包括磁碟條帶或磁碟區塊信息。數據恢復處理可基於指示數據塊和校驗塊分布的信息或規則進行。存儲控制器912a典型的是一個RAID控制器,通過執行存儲於一計算機可讀取存儲介質中的程序,執行本發明上述各種磁碟重構的方法。如圖9A示例,裝置910a還可以包括如下部件一個或多個通信適配器,如通信適配器911a和911b,這些通信適配器作為FC網絡或IP網絡的網絡適配器,通過FC網絡或IP網絡與網絡設備,如主機901和資料庫902等通信。一個或多個緩存器,如緩存器914,可以作為緩存RAID組(RAID組915a或915b)與空閒磁碟(磁碟916a或916b)中間的數據,也可以緩存RAID組和其他網絡設備之間的數據。管理控制器917,可以通過用戶的管理接口對裝置910a實現管理。存儲器918,可以負責裝置910b的系統參數的存儲。總線橋接器919a,可以提供一系列數據總線、控制總線,分別實現部件之間的數據和控制指令交互。總線橋接器919a也可以包含功率總線,通過功率總線為各部件供電。具體的,存儲控制器912可以對圖1到圖3所示方法部分和全部處理步驟實現控制。圖9B提供的系統900b和900a類似,包括裝置910b,其與裝置910a類似的存儲裝置或存儲系統,其通過FC網絡905a和/或IP網絡905b連接到主機901a、901b,資料庫902等網絡設備。裝置910b包括如下部件存儲控制器912b,通過一個或多個磁碟適配器913b連接到多個磁碟。其中,至少部分磁碟可以形成RAID組,如RAID組915a和915b。至少部分磁碟用作空閒磁碟,如磁碟916a和916b,其可以用作磁碟重構的目標磁碟。RAID組可以是基於軟體的RAID組,也可以是基於硬體的RAID組。磁碟適配器913b是獨立磁碟冗餘陣列RAID組和目標磁碟的接口,提供輸入和輸出適配功能,其可以作為RAID組和存儲控制器912b的中介。存儲控制器912a的基本功能和圖9A的存儲控制器912a完成的基本功能相同,不再贅述。如圖9B示例,還可以包括如下至少一個部件一個或多個緩存器,如緩存器914,可以作為緩存RAID組(RAID組915a或915b)與空閒磁碟(磁碟916a或916b)中間的數據,也可以緩存RAID組和其他網絡設備的之間的數據。管理控制器917,可以通過用戶的管理接口對裝置910a實現管理。耦合到存儲控制器912b的一個或多個存儲器,如存儲器918a和918b。存儲器918a主要負責裝置910b的系統參數的存儲,存儲器918b可以提供RAID組控制所需的信息,具體參見存儲控制器912a控制涉及的信息。總線橋接器91%,可以提供一系列數據總線、控制總線,分別實現部件之間的數據和控制指令交互。總線橋接器919b也可以包含功率總線,通過功率總線為各部件供電。在圖9B的圖示中,存儲控制器912a、磁碟適配器913a可以集成到一起,形成磁碟重構裝置920。磁碟重構裝置920還可以集成存儲器918b。存儲器918b可以用於存儲磁碟成員信息、磁碟區域信息、指示磁碟狀態是否可恢復的信息、指示磁碟可讀性檢測結果的信息等至少部分信息。存儲器918b中以RAID組成員磁碟表形式存儲磁碟成員信息,以RAID組區域映射表形式存儲磁碟區域信息。存儲器918b可以存儲執行完成本發明至少一種方法的計算機可讀程序,以便於裝置910b中的一個或多個處理器(未示出)能夠執行該計算機可讀程序完成磁碟重構,這些處理器可以集成在控制器920內部,也可以通過接口連接到控制器920。—個或多個通信適配器,如通信適配器911a和911b。在圖9B中,通信適配器911a和911b分別是FC通信適配器和IP通信適配器。在本申請所提供的幾個實施例中,應該理解到,所揭露方法和設備,可以通過其它的方式實現。例如,以上所描述的設備實施例僅僅是示意性的,例如,單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。另外,在本發明各個實施例中的中,各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理包括,也可以兩個或兩個以上單元集成在一個單元中。且上述的各單元既可以採用硬體的形式實現,也可以採用硬體加軟體功能單元的形式實現。實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成,前述的程序可以存儲於一計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括U盤、移動硬碟、只讀存儲器(Read Only Memory,簡稱ROM)、隨機存取存儲器(Random Access Memory,簡稱RAM)、磁碟或者光碟等各種可以存儲程序代碼的介質。以上所述,僅為本發明的具體實施方式
,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應以所述權利要求的保護範圍為準。
權利要求
1.一種磁碟重構方法,其特徵在於,當獨立磁碟冗餘陣列RAID組中第一成員磁碟存在故障時,所述方法包括根據RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據, 並將恢復的數據存儲到目標磁碟;在第一成員磁碟的故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為 RAID組的成員磁碟;在第一成員磁碟故障恢復後,根據恢復的第一成員磁碟進行相應的重構處理。
2.根據權利要求1所述的磁碟重構方法,其特徵在於,所述根據恢復的第一成員磁碟進行相應的重構處理包括用恢復的第一成員磁碟替換包含恢復的數據的目標磁碟作為RAID組的成員磁碟。
3.根據權利要求1所述的磁碟重構方法,其特徵在於,根據RAID組中第一成員磁碟以外的第二成員磁碟可讀區域的數據恢復第一成員磁碟的第一區域的數據,並將恢復的數據存儲到目標磁碟,其中,在目標磁碟上與第一成員磁碟的第二區域對應的區域不寫入數據, 第一區域對應第二成員磁碟的區域可讀,第二區域對應第二成員磁碟的不可讀區域。
4.根據權利要求3所述的磁碟重構方法,其特徵在於,所述根據恢復後的第一成員磁碟進行相應的重構處理包括將恢復的第一成員磁碟的第二區域的數據存儲到目標磁碟。
5.一種用於實現磁碟重構的裝置,其特徵在於,包括數據獲取單元,用於根據獨立磁碟冗餘陣列RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據,第一成員磁碟為RAID組中發生故障的成員磁碟;寫處理單元,用於將數據獲取單元恢復的數據寫入目標磁碟;重構控制單元,用於在第一成員磁碟故障恢復前,將RAID組的成員磁碟從第一成員磁碟切換到包含恢復的數據的目標磁碟,並在第一成員磁碟故障恢復後,根據恢復的第一成員磁碟完成重構處理。
6.根據權利要求5所述的裝置,其特徵在於,在第一成員磁碟故障恢復後,重構控制單元將RAID組的成員磁碟從包含恢復的數據的目標磁碟切換到恢復的第一成員磁碟。
7.根據權利要求6所述的裝置,其特徵在於,重構控制單元在判斷第一成員磁碟的故障可恢復的情況選擇在第一成員磁碟故障恢復後,將RAID組的成員磁碟從包含恢復的數據的目標磁碟切換到恢復的第一成員磁碟的重構方式。
8.根據權利要求5所述的裝置,其特徵在於,在第一成員磁碟故障恢復後,重構控制單元將RAID組的成員磁碟從包含恢復的數據的目標磁碟切換到恢復的第一成員磁碟。
9.一種存儲裝置,其特徵在於,包括如權利要求5-8任一項所述的用於實現磁碟重構的裝置;耦合到所述用於實現磁碟重構的裝置的一個或多個獨立磁碟冗餘陣列RAID組和/或目標磁碟。
10.一種磁碟重構裝置,其特徵在於,包括磁碟適配器,用作獨立磁碟冗餘陣列RAID組和目標磁碟的接口 ;存儲控制器,用於判斷第一成員磁碟的故障是否可恢復,如果第一成員磁碟的故障可恢復,按第一重構方式處理,如果第一成員磁碟的故障不可恢復,按第二重構方式處理;其中,在第一重構方式下,根據RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟;在第一成員磁碟的故障恢復前, 用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟;在第一成員磁碟故障恢復後,根據恢復的第一成員磁碟完成重構處理;其中,在第二重構方式下,根據第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟;在完成第一成員磁碟到目標磁碟重構後,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟,將第一成員磁碟從RAID組移除以完成磁碟重構。
11.根據權利要求10所述的磁碟重構裝置,其特徵在於,根據恢復的第一成員磁碟完成重構處理的操作包括用恢復的第一成員磁碟替換包含恢復的數據的目標磁碟作為 RAID組的成員磁碟以完成重構處理。
12.根據權利要求10所述的磁碟重構裝置,其特徵在於,根據恢復的第一成員磁碟完成重構處理的操作包括將恢復的第一成員磁碟上與第二成員磁碟的不可讀區域對應的區域的數據存儲到目標磁碟以完成重構處理。
13.一種存儲裝置,其特徵在於,包括如權利要求10-12任一項所述的磁碟重構裝置;耦合到所述磁碟重構裝置的一個或多個獨立磁碟冗餘陣列RAID組和/或目標磁碟。
全文摘要
本發明實施例提供一種磁碟重構方法及裝置,涉及存儲領域,能夠減少數據的丟失,甚至實現不丟失,並且能夠快速恢復用戶的業務。其方法為當獨立磁碟冗餘陣列RAID組中第一成員磁碟存在故障時,根據RAID組中第一成員磁碟以外的第二成員磁碟的數據恢復第一成員磁碟的數據,並將恢復的數據存儲到目標磁碟;在第一成員磁碟的故障恢復前,用包含恢復的數據的目標磁碟替換第一成員磁碟作為RAID組的成員磁碟;在第一成員磁碟故障恢復後,根據恢復的第一成員磁碟進行相應的重構處理。本發明實施例用於磁碟陣列中故障磁碟的重構。
文檔編號G06F11/07GK103049400SQ20121058081
公開日2013年4月17日 申請日期2012年12月27日 優先權日2012年12月27日
發明者何孝金, 覃中, 熊偉 申請人:華為技術有限公司