專利名稱:磁盤陣列的重新生成新數據的架構與方法
技術領域:
本發明涉及一種磁盤陣列的重新生成新數據的架構與方法,尤指一種提供磁盤陣 列的新硬盤重新生成數據的架構與方法,將舊有磁盤陣列運算式儲存于隨機存取存儲器 中,而隨機存取存儲器中的運算式的運算結果儲存于一非揮發性存儲器中,再將非揮發性 存儲器運算結果寫入新的硬盤中,由該非揮發性存儲器來儲存新硬盤的數據,可確保不會 因電力消失而產生數據流失的情況,故可達到節省新硬盤生成時間及系統當機后不需重新 生成新生成數據的目的。
背景技術:
一磁盤陣列系統中除了 RAIDO之外,如果發生了某顆硬盤(Hard Disk)毀損的情 況,而必須更換新硬盤的時候,就必須有Rebuilding的動作,Rebuilding的意思就是將利 用原有硬盤的數據去生成新硬盤該有的數據并且儲存在該新硬盤之上。請參閱圖1所示,是現有磁盤陣列進行重新生成新數據的架構圖,其中一磁盤陣 列中包括有二個具有數據硬盤11、12及一未儲存任何數據的硬盤13,系統則必須先將具有 數據硬盤11、12的數據讀進一揮發性存儲器(可為一動態隨機存取存儲器(DRAM)) 2中,然 后根據磁盤陣列1的不同(RAID1/RAID5..)進行新生成數據的運算,將該運算數據存該未 儲存任何數據的硬盤13,由于硬盤容量遠大于容量,這動作將會分段進行,進行運算之后且 寫入未儲存任何數據的硬盤13之后,才能算是完成重新生成的一個區段(block),且重新 生成進度(Progress)才會增加,可以說是一個繁瑣的過程。倘若在運算或是寫入硬盤的過 程之中,發生了系統故障導致關機或存儲器數據流失,那么該重新生成進度是未完成的,且 還必須重新從原有硬盤重新再讀取一次,非常的不便,而十分的耗時及費工,本發明正為解 決此一問題的方法。
發明內容
基于解決以上所述現有技術的缺失,本發明為一種磁盤陣列的重新生成新數據的 架構與方法,主要目的為提供磁盤陣列的新硬盤重新生成數據的架構與方法,將舊有磁盤 陣列運算式儲存于隨機存取存儲器中,而隨機存取存儲器中的運算式的運算結果儲存于一 非揮發性存儲器中,再將非揮發性存儲器運算結果寫入新的硬盤中,由該非揮發性存儲器 來儲存新硬盤的數據,可確保不會因電力消失而產生數據流失的情況,故可達到節省新硬 盤生成時間及系統當機后不需重新生成新生成數據的目的。為達上述目的,本發明為一種磁盤陣列的重新生成新數據的架構,其包含有一磁盤陣列,包括有多個具有數據硬盤;—揮發性存儲器,用以暫存該些具有數據硬盤中需要重建的數據;一非揮發性存儲器,取得該隨機存取存儲器中多個硬盤數據進行數據運算后的新 生成數據;以及一未儲存任何數據的硬盤,接收該新生成數據的非揮發性存儲器的數據至對應的區段。為達上述目的,本發明為一種磁盤陣列的重新生成新數據的方法,其是包含有下 列步驟將磁盤陣列中多個具有數據硬盤的需要重建的數據復制到隨機存取存儲器之 中;將不需要運算的數據直接儲存于非揮發性存儲器中;將存儲器中所有硬盤數據進行異或運算得出新生成數據;將運算后的數據儲存于非揮發性存儲器之中;將儲存于非揮發性存儲器的數據搬移至新硬盤的對應的區段之中;以及直接往上層回報該區段重建完成,可進行下區段數據的復制。
圖1為現有磁盤陣列進行重新生成新數據的架構圖;圖2為本發明磁盤陣列進行重新生成新數據的架構圖;圖3為本發明磁盤陣列的重新生成新數據的方法流程圖。附圖標記說明1、3 磁盤陣列;11、12、31、32 具有數據硬盤;13、33 未儲存 任何數據的硬盤;2、4 揮發性存儲器;5 非揮發性存儲器;61 將磁盤陣列中多個具有 數據硬盤的需要重建的數據復制到隨機存取存儲器之中;62 將不需要運算的數據直接 儲存于非揮發性存儲器中;63 將存儲器中所有硬盤數據進行異或運算得出新生成數據; 64 將運算后的數據儲存于非揮發性存儲器之中;65 將儲存于非揮發性存儲器的數據 搬移至新硬盤的對應的區段之中;66 直接往上層回報該區段重建完成,可進行下區段數 據的復制。
具體實施方式
以下結合附圖,對本發明上述的和另外的技術特征和優點作更詳細的說明。請參閱圖2所示,為本發明磁盤陣列進行重新生成新數據的架構圖,其是包含有 一磁盤陣列3,包括有多個具有數據硬盤31、32 ;—揮發性存儲器4,用以暫存這些具有數 據硬盤中需要重建的數據,該揮發性存儲器4是指一動態隨機存取存儲器(DRAM);—非揮 發性存儲器5,取得該隨機存取存儲器中這些硬盤數據進行數據運算后的新生成數據,該這 些硬盤數據進行數據運算方式是利用異或(XOR)運算方式取得;一未儲存任何數據的硬盤 33,接收該新生成數據的非揮發性存儲器5的數據至對應的區段。上述所指的非揮發性的存儲器5,可為一揮發性的存儲器使用電池來提供電力來 保存數據,使之成為非揮發性存儲器,或是利用一般的記憶卡(例如CF Card,SD Card),甚 至于是內部快閃存儲器(NAND Flash)進行運算過程中存儲的角色,該種存儲器或是記憶卡 容量不需要太大,只拿來利用于儲存控制器(Storage Controller)使用即可。請參閱圖3所示,為本發明磁盤陣列的重新生成新數據的方法流程圖,其包含有 下列步驟61 將磁盤陣列中多個具有數據硬盤的需要重建的數據復制到隨機存取存儲器 之中,這個步驟是將原有磁盤的需要重建的數據拷貝到隨機存取存儲器之中,根據RAID型態不同進行運算,而RAIDl 第一步的時候可直接將數據儲存于非揮發性存儲器中;RAID5 將存儲器中所有硬盤數據進行異或(XOR)運算得出新生成數據。62 將不需要 運算的數據直接儲存于非揮發性存儲器中;63 將存儲器中所有硬盤數據進行異或運算得出新生成數據;64 將運算后的數據儲存于非揮發性存儲器之中;65 將儲存于非揮發性存儲器的數據搬移至新硬盤的對應的區段之中,這項動作 對于即時的輸入/出要求(I/O Request)并沒有產生影響;在讀取方面(Read)輸入/出讀 取(I/O Read)并不會對新硬盤進行讀取(Read)動作;于寫入方面(Write)寫入(Write) 的時候如果需要寫到新硬盤的數據,則可以先寫入非揮發性存儲器之中,類似于一般快速 暫存區(Cache);66 直接往上層回報該區段重建完成,可進行下區段數據的復制。整理上述流程,本發明的重新生成新數據的方法如下列1.將原有硬盤中需要重建的部分讀取出來放置在存儲器之中;2.經由計算得出應該放置于新硬盤的數據,并且放置于非揮發性存儲器之中;3.再處理新硬盤I/O之間的空檔將數據放置于新硬盤;4.再處理完st印2之后其實還可以同步的再執行st印1并不見得要等待st印3完 成,所以重新生成進度(Rebuilding Progress)是以處理完st印2的完成度來做為依據,比 之前的架構與方法來說加速許多。5.本發明與現有技藝相較,優勢在于倘若系統發生了非預期錯誤導致關機,下次 重起的時候只需要針對step2未完成的部分進行重新讀取計算即可。以上說明對本發明而言只是說明性的,而非限制性的,本領域普通技術人員理解, 在不脫離以下所附權利要求所限定的精神和范圍的情況下,可做出許多修改,變化,或等 效,但都將落入本發明的保護范圍內。
權利要求
1.一種磁盤陣列的重新生成新數據的架構,其特征在于,其包含有 一磁盤陣列,其包括有多個具有數據硬盤;一揮發性存儲器,用以暫存所述多個具有數據硬盤中需要重建的數據; 一非揮發性存儲器,取得所述揮發性存儲器中多個硬盤數據進行數據運算后的新生成 數據;以及一未儲存任何數據的硬盤,接收所述新生成數據的非揮發性存儲器的數據至對應的區段。
2.如權利要求1所述的磁盤陣列的重新生成新數據的架構,其特征在于,該揮發性存 儲器是指一動態隨機存取存儲器。
3.如權利要求1所述的磁盤陣列的重新生成新數據的架構,其特征在于,該非揮發性 存儲器中的多個硬盤數據進行數據運算方式是利用異或運算方式取得。
4.如權利要求1所述的磁盤陣列的重新生成新數據的架構,其特征在于,該非揮發性 存儲器為一揮發性存儲器使用電池來提供電力來保存數據所構成。
5.如權利要求1所述的磁盤陣列的重新生成新數據的架構,其特征在于,該非揮發性 存儲器為一般的記憶卡或是內部快閃存儲器所構成。
6.一種磁盤陣列的重新生成新數據的方法,其特征在于,其是包含有下列步驟(a)將磁盤陣列中多個具有數據硬盤的需要重建的數據復制到隨機存取存儲器之中;(b)將不需要運算的數據直接儲存于非揮發性存儲器中;(c)將存儲器中所有硬盤數據進行異或運算得出新生成數據;(d)將運算后的數據儲存于非揮發性存儲器之中;(e)將儲存于非揮發性存儲器的數據搬移至新硬盤的對應的區段之中;以及(f)直接往上層回報該區段重建完成,可進行下區段數據的復制。
全文摘要
本發明是一種磁盤陣列的重新生成新數據的架構與方法,其包含有一磁盤陣列,包括有多個具有數據硬盤;一隨機存取存儲器,用以暫存多個具有數據硬盤中需要重建的數據;一非揮發性存儲器,取得該隨機存取存儲器中多個硬盤數據進行數據運算后的新生成數據;一未儲存任何數據的硬盤,接收該新生成數據的非揮發性存儲器的數據至對應的區段。
文檔編號G11B5/00GK102034517SQ20091017781
公開日2011年4月27日 申請日期2009年9月25日 優先權日2009年9月25日
發明者陳重江 申請人:英業達股份有限公司