專利名稱:磁盤冗余陣列的維護方法和裝置的制作方法
技術領域:
本發(fā)明涉及通信技術領域,尤其涉及一種磁盤冗余陣列的維護方法和裝置。
背景技術:
存儲系統(tǒng)中,通常使用多個廉價磁盤來組成RAID ( Redundant Arrays of Inexpensive Disks,廉價磁盤冗余陣列)。磁盤陣列有多種類型,有的類型只是 簡單的為了增加容量,有的類型則提供了數(shù)據(jù)冗余來保障用戶數(shù)據(jù)安全。以 下介紹幾種常用陣列類型的數(shù)據(jù)分布圖及數(shù)據(jù)保護原理(1) RAIDO:如圖1A所示,由兩個或兩個以上-茲盤創(chuàng)建,沒有凄t據(jù)冗 余保護,任意一個磁盤損壞將會丟失數(shù)據(jù)。(2) RAID1:如圖1B所示,只能由兩個磁盤創(chuàng)建,同一份數(shù)據(jù)復制為 二份存放,有一重數(shù)據(jù)冗余保護,支持任意一個磁盤損壞而不丟失數(shù)據(jù)。(3) RAID5:如圖1C所示,由三個或三個以上》茲盤創(chuàng)建,有一重凄丈才居 冗余保護,支持任意一個磁盤損壞而不丟失數(shù)據(jù)。每個條帶上的數(shù)據(jù)塊P/存 放的是每個條帶上的所有數(shù)據(jù)塊D/進行異或運算的結果。注意RAID5不是 直接復制數(shù)據(jù)存放,而是計算所有數(shù)據(jù)的異或值存放,磁盤空間有效利用率 高于RAID1 。任意一塊數(shù)據(jù)Dz'損壞都可以通過條帶上的其他數(shù)據(jù)計算恢復。(4) RAID6:如圖1D所示,由四個或四個以上f茲盤創(chuàng)建,有兩重凝:據(jù) 冗余保護,支持任意兩個;茲盤損壞而不丟失數(shù)據(jù)。每個條帶上的數(shù)據(jù)塊P/同 RAID5—樣,存放的是這個條帶所有數(shù)據(jù)塊D/進行異或運算的結果;數(shù)據(jù)塊 Q/存放的是所有數(shù)據(jù)塊D!'進行伽羅瓦域轉換的異或運算結果。單個條帶上的 任意兩塊it據(jù)D/, D/,損壞都可以通過條帶上的其他數(shù)據(jù)計算恢復。(5) RAID10:如圖IE所示,由四個或四個以上的偶凄史個f茲盤創(chuàng)建, 有一重數(shù)據(jù)冗余保護,任意一個磁盤損壞不會丟失數(shù)據(jù),最多可以支持陣列一半磁盤損壞而不丟失數(shù)據(jù),多個磁盤損壞丟不丟失數(shù)據(jù)視損壞磁盤的位置而定。數(shù)據(jù)保護原理類似于RAID1,也是多復制一份數(shù)據(jù)存放。以上介紹的各種陣列類型中,帶數(shù)據(jù)冗余保護的陣列包括RAID1、 RAID5、 RAID6、 RAIDIO。具體的,對于數(shù)據(jù)的冗余保護是根據(jù)同步或重建 的功能實現(xiàn)的。同步功能又稱為一致性檢查,指對冗余陣列中的多份數(shù)據(jù)進行一致性檢 查。分為創(chuàng)建陣列時候的初始化同步和陣列運行中的定時同步。初始化同步 用來保證陣列創(chuàng)建后陣列數(shù)據(jù)初始化到一致狀態(tài);定時同步用來周期性檢測 冗余陣列中的多份數(shù)據(jù)的一致性,定時檢查如果檢查到多份數(shù)據(jù)不一致,可 以選擇向用戶告警,也可以根據(jù)一定策略選擇用 一份數(shù)據(jù)覆蓋其他不同的數(shù) 據(jù)。同步功能的一示意圖見圖2A,以RAID1為例,對兩份存放的數(shù)據(jù)進行 一致性檢查。重建功能,當冗余陣列中有一個磁盤損壞導致陣列的冗余度將會降低時, 用戶可以選擇使用新的空白磁盤加入陣列,并通過重建功能從其他正常的磁 盤恢復一份完整的數(shù)據(jù)存放到空白磁盤中。重建完成后,陣列的冗余度將會 增加。重建功能的一示意圖見圖2B,以RAID1為例,將磁盤0中的數(shù)據(jù)重建 到新》茲盤1上?,F(xiàn)有技術中,處于從降低設計復雜度、簡化軟件實現(xiàn)、增加代碼重用、 及主要為支持單個磁盤損壞的冗余陣列設計等方面考慮,設計結果為所有冗 余陣列類型中同步和重建功能都不能同時進行。而對于支持多個磁盤損壞的 冗余陣列類型中,如RAID6、 RAID10,同步和重建功能可以同時出現(xiàn),并且 同步和重建同時進行的方案更優(yōu)。而現(xiàn)有技術中對同步和重建不能同時出現(xiàn) 的限制對于支持多個^茲盤損壞的陣列類型如RAID6、 RAID10并不合理。發(fā)明內容本發(fā)明提供一種磁盤冗余陣列的維護方法和裝置,用于在磁盤陣列的維 護過程中,同時實現(xiàn)同步與重建功能,提高磁盤陣列的維護效率。為達到上述目的,本發(fā)明提供一種磁盤冗余陣列的維護方法,包括以下步驟磁盤冗余陣列啟動同步進程進行一致性檢查,若期間檢測到 一磁盤損壞; 繼續(xù)所述同步進程,同時創(chuàng)建一個新的進程對所述損壞的磁盤進行重建;其中所述同步的進程與重建的進程是相互獨立的兩個進程。其中,所述磁盤冗余陣列具體為支持多個磁盤損壞的磁盤冗余陣列。 其中,所述同步以及重建進行的過程中,對所述同步、和/或重建的進程進行記錄。其中,所述同時對所述損壞的磁盤進行重建后,還包括在中斷發(fā)生并重啟后,讀取所述同步、和/或重建的進程進行記錄,并繼 續(xù)所述同步、和/或重建的進程。本發(fā)明還提供一種磁盤冗余陣列的維護裝置,包括同步單元,用于對磁盤冗余陣列進行同步,在同步進程中發(fā)現(xiàn)磁盤損壞 時,通知控制單元;控制單元,用于接收到所述同步單元的通知時,繼續(xù)所述同步進程,同 時通知重建單元對所述損壞的^F茲盤進行重建;其中所述同步的進程與重建的 進程是相互獨立的兩個進程;重建單元,用于根據(jù)所述控制單元的通知,對所述損壞的磁盤進行重建。其中,還包括進程記錄單元,用于對所述同步單元的同步進程、以及所述重建單元的 重建進程進行記錄。 其中,還包括進程讀耳又單元,用于當所述同步單元的同步進程、和/或所述重建單元的 重建進程中斷時,從所述進程記錄單元中讀取所述同步單元的同步進程、和/ 或所述重建單元的重建進程并通知所述控制單元,以供所述控制單元進行同 步進程、和/或重建進程的恢復。其中,所述磁盤冗余陣列具體為支持多個磁盤損壞的磁盤冗余陣列。與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點使得在支持多個磁盤損壞的陣列類型中,同步和重建功能可以同時進行。同時進行的同步和重建對不同的磁盤進行操作,可以提高同步和重建的效率, 縮短同步和重建的平均時間,增加陣列健壯性,更有力地保障用戶數(shù)據(jù)安全。
圖1A至圖1E分別為現(xiàn)有技術中RAID0、 RAID1、 RAID5、 RAID6以及 RAID10的陣列數(shù)據(jù)分布示意圖;圖2A是現(xiàn)有^f支術中陣列的同步功能示意圖;圖2B是現(xiàn)有技術中陣列的重建功能示意圖;圖3是本發(fā)明中磁盤冗余陣列維護方法的流程圖;圖4A是本發(fā)明中磁盤冗余陣列維護方法的應用場景示意圖;圖4B是本發(fā)明中磁盤冗余陣列維護方法的另 一應用場景示意圖;圖5是本發(fā)明中,茲盤冗余陣列維護裝置的結構示意圖。
具體實施方式
本發(fā)明提供一種磁盤冗余陣列維護方法,如圖3所示,包括以下步驟 步驟s301、磁盤冗余陣列同步進程中,發(fā)現(xiàn)一磁盤損壞。 步驟s302、繼續(xù)該同步進程,同時創(chuàng)建一個新的進程對所述損壞的磁盤進 行重建;其中同步的進程與重建的進程是相互獨立的兩個進程。具體的,對于支持多個磁盤損壞的磁盤冗余陣列,如RAID6和RAID10等, 同步功能和重建功能可以同時進行。在同步功能和重建功能同時進行的過程 中,同步功能和重建功能各自操作不同的目標磁盤,并記錄自己的進程信息。 在同步與重建的過程中,如果有中斷發(fā)生(如復位、掉電等),中斷結束后, 可以分別讀:f又出同步和重建的進程信息,并沖艮據(jù)進程信息分別繼續(xù)未完成的 同步與重建。以下結合具體的實施例,對本發(fā)明的實施方式作進一步說明。 本發(fā)明的 一 應用場景中,以對支持多個磁盤損壞的多重冗余陣列RAID6 進行的維護為例,說明本發(fā)明的實施方式。如圖4A所示,多重冗余陣列RAID6中,用戶啟動一個任務開始同步(如圖4A中的雙向箭頭所示),如果在同步進程中發(fā)現(xiàn)有一個磁盤損壞,則同步繼 續(xù)進行;如果陣列滿足重建的條件(有熱備盤并且使能自動重建、或用戶手 工開始重建),則立即啟動另外一個任務開始重建(如圖4A中的單向箭頭所 示),這不同于現(xiàn)有技術中需要將同步任務結束后才可以切換到重建任務的方 法。在同步功能和重建功能同時進行的過程中,同步和重建各自記錄自己的 進度信息,這樣即可實現(xiàn)同步和重建同時進行。另外,重建和同步操作的目 標盤可以不完全一樣,如圖4A所示,對于同步,D0/D1/P0、 D2/P1/Q1的同步 已經(jīng)完成,正在進行P2/Q2/D4間的同步;對于重建,由D0/D1/P0重建Q0已經(jīng) 完成,正在進行由D2/P1/Q1重建D3;這種同時進行、且可以對不同目標盤進 行才喿作的維護方式,可以縮短同步和重建完成的時間。本發(fā)明的另 一應用場景中,以對支持多個磁盤損壞的 一重冗余陣列 RAID10進行的維護為例,說明本發(fā)明的實施方式。如圖4B所示,多重冗余陣列RAID10中,用戶啟動一個任務開始同步(如 圖4B中的雙向箭頭所示),如果在同步進程中發(fā)現(xiàn)有一個磁盤損壞,則同步繼 續(xù)進行;如果陣列滿足重建的條件(有熱備盤并且使能自動重建、或用戶手 工開始重建),則立即啟動另外一個任務開始重建(如圖4B中的單向箭頭所 示),在同步功能和重建功能同時進行的過程中,同步和重建各自記錄自己的 進度信息。另外,重建和同步操作的目標盤可以不完全一樣,如圖4B所示, 對于同步,不同磁盤上DO/DO的同步已經(jīng)完成,正在進行不同磁盤上D2/D2間 的同步;對于重建,正在進行由磁盤2上的D1重建新磁盤3上的D1的過程。這 種同時進行、且可以對不同目標盤進行操作的維護方式,可以縮短同步和重 建完成的時間。本發(fā)明還提供一種磁盤冗余陣列維護裝置,其結構如圖5所示,包括 同步單元IO,用于對磁盤冗余陣列進行同步,在同步進程中發(fā)現(xiàn)磁盤損壞時,通知控制單元??刂茊卧?0,用于接收到同步單元10的通知時,繼續(xù)同步進程,同時通知重建單元30對損壞的磁盤進行重建。其中同步的進程與重建的進程是相互獨立的兩個進程。重建單元30,用于根據(jù)控制單元20的通知,對損壞的磁盤進行重建。 還包括進程記錄單元40,用于對同步單元10的同步進程、以及重建單元30的重 建進程進行記錄。進程讀取單元50,用于當同步單元10的同步進程、和/或重建單元30的重 建進程中斷時,從進程記錄單元40中讀取同步單元10的同步進程、和/或重建 單元30的重建進程并通知控制單元20,以供控制單元20進行同步進程、和/或 重建進程的恢復。通過使用本發(fā)明提供的方法和裝置,使得在支持多個磁盤損壞的陣列類 型中,同步和重建功能可以同時進行。重建功能對陣列內已經(jīng)損壞的-茲盤進 行重建,同步功能同時對剩余磁盤的多份數(shù)據(jù)進行一致性檢查。同時進行的 同步和重建對不同的磁盤進行操作,可以提高同步和重建的效率,縮短同步 和重建的平均時間,增加陣列健壯性,更有力地保障用戶數(shù)據(jù)安全。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發(fā) 明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過石更件, 但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案該計算機軟件產(chǎn)品存儲在一個存儲介質中,包括若千指令用以使得一臺設備 執(zhí)行本發(fā)明各個實施例所述的方法。以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此, 任何本領域的技術人員能思之的變化都應落入本發(fā)明的保護范圍。
權利要求
1、一種磁盤冗余陣列的維護方法,其特征在于,包括以下步驟磁盤冗余陣列啟動同步進程進行一致性檢查,若期間檢測到一磁盤損壞;繼續(xù)所述同步進程,同時創(chuàng)建一個新的進程對所述損壞的磁盤進行重建;其中所述同步的進程與重建的進程是相互獨立的兩個進程。
2、 如權利要求l所述磁盤冗余陣列的維護方法,其特征在于,所述磁盤 冗余陣列具體為支持多個磁盤損壞的磁盤冗余陣列。
3、 如權利要求l所述磁盤冗余陣列的維護方法,其特征在于,所述同步 以及tt進行的過程中,對所述同步、和/或重^^的進程進行記錄。
4、 如權利要求3所述磁盤冗余陣列的維護方法,其特征在于,所述同時 對所述損壞的^茲盤進行^建后,還包括在中斷發(fā)生并重啟后,讀取所述同步、和/或重建的進程進行記錄,并繼 續(xù)所述同步、和/或tt的進程。
5、 一種磁盤冗余陣列的維護裝置,其特征在于,包括同步單元,用于對磁盤冗余陣列進行同步,在同步進程中發(fā)現(xiàn)磁盤損壞 時,通知控制單元;4玄制單元,用于接收到所述同步單元的通知時,繼續(xù)所述同步進程,同 時通知重建單元對所述損壞的^f茲盤進行重建;其中所述同步的進程與重建的 進程是相互獨立的兩個進程;重建單元,用于^f艮據(jù)所述控制單元的通知,對所述損壞的》茲盤進行重建。
6、 如權利要求5所迷磁盤冗余陣列的維護裝置,其特征在于,還包括 進程記錄單元,用于對所述同步單元的同步進程、以及所述重建單元的重建進程進行記錄。
7、 如權利要求6所述磁盤冗余陣列的維護裝置,其特征在于,還包括 進程讀取單元,廚于當所述同步單元的同步進程、和/或所迷重^單元的重建進程中斷時,從所述進程記錄單元中讀取所述同步單元的同步進程、和/ 或所述重建單元的重1^進程并通知所述控制單元,以供所述控制單元進行同 步進程、和/或重建進程的恢復。
8、 如權利要求5所述磁盤冗余陣列的維護裝置,其特征在于,所述》茲盤冗余陣列具體為支持多個磁盤損壞的磁盤冗余陣列。
全文摘要
本發(fā)明公開了一種磁盤冗余陣列的維護方法和裝置。該維護方法包括以下步驟磁盤冗余陣列啟動同步進程進行一致性檢查,若期間檢測到一磁盤損壞;繼續(xù)所述同步進程,同時創(chuàng)建一個新的進程對所述損壞的磁盤進行重建;其中所述同步的進程與重建的進程是相互獨立的兩個進程。通過使用本發(fā)明提供的方法和裝置,使得在支持多個磁盤損壞的陣列類型中,同步和重建功能可以同時進行。同時進行的同步和重建對不同的磁盤進行操作,可以提高同步和重建的效率,縮短同步和重建的平均時間,增加陣列健壯性,更有力地保障用戶數(shù)據(jù)安全。
文檔編號G06F11/10GK101241453SQ20081000767
公開日2008年8月13日 申請日期2008年3月5日 優(yōu)先權日2008年3月5日
發(fā)明者董濱華 申請人:杭州華三通信技術有限公司