一種基于hdd和ssd的混合存儲備份方法及系統的制作方法
【專利摘要】本發明提供一種基于HDD和SSD的混合存儲備份方法及系統,應用于計算機應用【技術領域】,上述方法包括以下步驟:單個或多個HDD的線性地址空間被劃分成若干等份;其中,所述每一等份包括數據段和空閑段;若寫請求到達時,所述HDD按照預設策略將數據寫入對應的數據段中。通過實施本發明的技術方案,能夠用HDD及時地備份SSD上的數據,該混合結構實現了一種低價格、高性能的可靠存儲系統數據備份。
【專利說明】—種基于HDD和SSD的混合存儲備份方法及系統
【技術領域】
[0001]本發明涉及計算機應用【技術領域】,尤其涉及一種基于HDD和SSD的混合存儲備份方法及系統。
【背景技術】
[0002]近年來,基于閃存的固態盤(SSD)因其優越的性能已受到廣泛的關注和使用在當前的存儲系統備份中,但是,由于壽命有限,SSD的可靠性備受質疑;HDD陣列(RAID)是一種傳統的用來提高可靠性的手段,但并不適用于SSD。首先,RAID機制需要額外的存儲空間保存校驗信息,然而配備額外的SSD存儲校驗信息會顯著增加系統成本;其次,傳統的RAID機制傾向于在各盤之間均衡地分布寫請求,在基于SSD的RAID中,這種做法導致各SSD的壽命均勻地損耗,當某一 SSD由于壽命耗盡而出現故障時,其他的SSD也達到壽命極限,從而可能出現多盤故障,引發數據丟失。
[0003]在現階段,傳統RAID機制主存儲系統備份和SSD在讀寫方面主要存在以下3個方面的問題:
[0004]1、在基于SSD的RAID中,因為同一類型的SSD壽命基本上一致,各SSD的壽命均勻地損耗,當某一 SSD由于壽命耗盡而出現故障時,其他的SSD也達到壽命極限,從而可能出現多盤故障,引發數據丟失。
[0005]2、RAID機制需要額外的存儲空間保存校驗信息,相比于HDD,SSD價格依然昂貴,配備額外的SSD存儲校驗信息會顯著增加系統成本。
[0006]3、傳統的HDD在讀寫速度上無法滿足用戶的需求,現在的SSD高速的特性的混合使用在性能上總是存在一些欠缺。
【發明內容】
[0007]本發明提供一種基于HDD和SSD的混合存儲備份方法及系統,以解決上述問題。
[0008]本發明提供一種基于HDD和SSD的混合存儲備份方法。上述方法包括以下步驟:
[0009]單個或多個HDD的線性地址空間被劃分成若干等份;其中,所述每一等份包括數據段和空閑段;
[0010]若寫請求到達時,所述HDD按照預設策略將數據寫入對應的數據段中。
[0011]本發明還提供一種基于HDD和SSD的混合存儲備份系統,包括:一個或多個HDD,一個或多個SSD,主機端;
[0012]所述主機端發出的讀請求僅由SSD響應,寫請求由SSD和備份模塊同時響應;其中,備份模塊中含有非易失內存和HDD,非易失內存用來橋接HDD與SSD的延遲差距;
[0013]所述HDD按照預設策略將數據寫入對應的數據段中。
[0014]通過實施本發明的技術方案,能夠用HDD及時地備份SSD上的數據,該混合結構實現了一種低價格、高性能的可靠存儲系統數據備份;本發明采用非易失內存橋接HDD和SSD之間的速度差距,大大提高了存儲系統備份對用戶的讀寫請求的響應速度和性能要求;本發明還采用了一種I/O重組策略,該策略可以增強HDD內部操作的順序性,使HDD盡可能的順序讀寫,增強HDD的寫性能;另外,本發明為了降低單塊SSD上出現的突發寫請求的情況,采用多塊HDD備份多塊SSD,保證某一 SSD上的突發寫數據能夠及時分散備份到多個HDD中,實現了一種低價格、高性能的可靠存儲系統備份。
【專利附圖】
【附圖說明】
[0015]此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
[0016]圖1所示為本發明的實施例1的混合存儲系統備份機制的總體架構示意圖;
[0017]圖2所示為本發明的實施例2的HDD內的I/O重組示意圖;
[0018]圖3所示為本發明的實施例3的多塊HDD協同備份架構示意圖;
[0019]圖4所示為本發明的實施例4的基于HDD和SSD的混合存儲備份方法處理流程圖。
【具體實施方式】
[0020]下文中將參考附圖并結合實施例來詳細說明本發明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0021]本發明提供了一種基于HDD和SSD的混合存儲備份方法,包括以下步驟:
[0022]單個或多個HDD的線性地址空間被劃分成若干等份;其中,所述每一等份包括數據段和空閑段;
[0023]若寫請求到達時,所述HDD按照預設策略將數據寫入對應的數據段中。
[0024]其中,若寫請求到達時,所述HDD按照預設策略將數據寫入對應的數據段中的過程為:若單個HDD備份單個SSD并且寫請求到達時,所述HDD將數據寫入對應的數據段中;其中,所述SSD地址與所述HDD上數據段的地址——對應。
[0025]其中,若寫請求到達時,所述HDD按照預設策略將數據寫入對應的數據段中的過程為:若單個HDD備份單個SSD并且寫請求到達時,若數據不能寫到相應的數據段中,則將數據寫到離磁頭最近的空閑段上;
[0026]所述HDD空閑時將數據從所述空閑段上讀到非易失內存中;
[0027]所述HDD將非易失內存中的數據最終寫到相應的數據段內。
[0028]其中,所述非易失內存包括一個映射表,其中,所述映射表記錄了所述數據寫入的目的空閑段。
[0029]其中,若客戶端發出多個寫請求并且目標為不同的數據段,則將所述多個寫請求合并,寫到離磁頭最近的同一空閑段中。
[0030]其中,對于一個特定的線程,它在一段時間內發出多個寫請求,這些數據被寫到同一空閑段內,或者被寫到相鄰的幾個空閑段內。
[0031]其中,將幾個連續空閑段中的數據讀到內存,在內存中找出某個特定線程的多個寫請求,并將這些請求恢復成一個長序列。
[0032]其中,若為3個寫請求:請求1、請求2、請求3 ;其中,請求I和請求3屬于同一連續序列,但被請求2中斷了,則3個請求都被寫到同一空閑段中,當所述空閑段中的數據被讀到內存時,請求I和請求3的順序性得到恢復,將內存中的數據寫回HDD時,將多個寫請求合并成一個長序列。
[0033]其中,按照HDD和SSD的容量大小來選擇HDD數量;
[0034]所述HDD按照SSD的數量將自己的空間劃分成若干等份,分別提供給每塊SSD ;SSD按照HDD的數量將自己的數據劃分成若干等份,分別備份到每塊HDD上。
[0035]圖1所示為本發明的實施例1的混合存儲系統備份機制的總體架構示意圖,如圖1所示,用一塊HDD備份一塊SSD,主機端發出的讀請求僅由SSD響應,寫請求由SSD和備份模塊同時響應;備份模塊中含有一片非易失內存和HDD,非易失內存用來橋接HDD與SSD的延遲差距;在HDD內部,提出了一種I/O重組策略(詳見實施例2的描述)來增強操作的順序性,使數據能夠及時備份到HDD。
[0036]圖2所示為本發明的實施例2的HDD內的I/O重組示意圖,單塊HDD內的I/O調度機制如圖2所示:在圖2(a)中,HDD的線性地址空間被劃分成許多段,其中,標記為D的為數據段,標記為F的為空閑段,數據段和空閑段在線性空間上交替排列,每兩個數據段后面有一空閑段(實際系統中,數十個數據段后面才有一個空閑段),SSD的數據備份在數據段上,空閑段則用來暫時保存數據。該機制的設計有兩個特征:1)數據段與空閑段規則地分布在HDD地址空間上,數據段用來備份SSD的數據,數據段組成的地址空間與SSD的地址空間一一對應,且這種對應關系可以直接計算出來,無需額外的地址映射表;2)該機制中,HDD任意位置附近都存在一個空閑,當寫請求到達時,無論磁頭處于線性地址空間的何處,附近都存在一個空閑段,數據能夠及時地寫到該空閑段中,任何寫請求都可以不用調度磁頭而順序地完成。
[0037]圖2(b)介紹了這種順序寫請求產生的策略,一個寫請求本應寫到D1,但磁頭現在正處于D2位置,為了避免磁頭調度,數據不直接寫到Dl中,相反,我們找到離磁頭最近的空閑段F3,將數據寫入其中,這樣,數據段Dl的數據被寫入空閑段F3中,需要維護一張表記錄這種對應關系;空閑段只是臨時的保存用戶數據,當HDD空閑時用戶數據被轉移到數據段上,以上舉例說明的HDD內I/O重組過程可歸納為3個步驟:①寫請求到達時將數據寫到離磁頭最近的空閑段上HDD空閑時將數據從空閑段上讀到非易失內存中;③將非易失內存中的數據最終寫到相應的數據段內,這3個步驟涉及的I/O操作都是順序的。本實施例中關于HDD內的I/O重組策略主要通過兩種手段實現順序化:首先是減少磁頭的調度;其次是將多個短請求合并成一個長請求,實現步驟為:(1)如果數據能夠寫到相應的數據段中,由于SSD地址與HDD上數據段的地址一一對應,不需要映射表來記錄這種對應關系;相反,如果數據不能寫到相應的數據段中,則需要寫到離磁頭最近的空閑段中,此時,需要一個映射表來記錄這些數據寫到哪些空閑段中(該映射表保存在非易失內存中):寫請求到達時,數據被寫到離磁頭最近的空閑段上,避免了一次磁頭調度,客戶端往往在短時間內發出多個寫請求,如果將這些寫請求打包成一個長請求,寫到同一個空閑段中,可以有效減少寫操作的數目,增強寫操作的順序性。如圖2(c)所示,客戶端發出兩個寫請求,請求I和請求2,他們的目標為不同的數據段,此時磁頭處于D2位置,本策略將這兩個寫請求合并,寫到空閑段F3 (離磁頭最近的空閑段)中,每個段的容量較大(在本發明中設定為2MB),這樣,數十個用戶寫請求可以打包成一個長請求寫到同一空閑段中;(2)將空閑段中的數據讀到內存:多個用戶請求合并寫到同一空閑段中之后,可以通過一次讀操作將這些數據全部讀出,減少了讀操作的次數;另外,相鄰的數個空閑段也可被一同讀出,這樣可以進一步減少磁頭調度的概率,例如:3個相鄰的空閑段F1,F2,F3被同時讀出,由于這些空閑段順序地分布在HDD空間上,磁頭調度可以避免;(3)將內存中的數據寫回HDD:多個連續空閑段中的數據被同時讀到內存,這些數據最終會寫到各自的數據段中,這些數據可以順序寫到HDD中;對于一個特定的線程,它在一段時間內可能發出多個寫請求,這些數據被寫到同一空閑段內,或者被寫到相鄰的幾個空閑段內。
[0038]上述步驟中,將幾個連續空閑段中的數據讀到內存,在內存中可以找出某個特定線程的多個寫請求,并將這些請求恢復成一個長序列,圖2 (d)舉例說明了這個過程,3個寫請求,請求I,請求2和請求3,其中請求I和請求3屬于同一連續序列,但被請求2中斷了,3個請求都被寫到空閑段F3中,當F3中的數據被讀到內存時,請求I和請求3的順序性得到恢復,所以將內存中的數據寫回HDD時,可將多個寫請求合并成一個長序列,減少寫操作。
[0039]本發明實施例設計的一種多塊HDD之間的協作機制按照HDD和SSD的容量大小來選擇HDD數量,任意HDD按照SSD的數量將自己的空間劃分成若干等份,分別提供給每塊SSD ;SSD按照HDD的數量將自己的數據劃分成若干等份,分別備份到每塊HDD上,該機制可將特定SSD上的突發寫請求分散到多塊HDD上,從而有效抑制單一 HDD上的負載峰值。
[0040]單塊HDD內部的寫優化策略存在單塊HDD的空間遠大于單塊SSD,導致HDD空間的浪費;以及HDD和SSD之間存在性能差距,如果上層主機發出大量的突發寫請求,HDD不能及時處理這些數據,導致大量數據累積在內存中,如果內存壓力過大,SSD必須停止響應用戶的寫請求,為了解決這一問題,本發明實施例設計了一種多塊HDD之間的協作機制,如圖3所示,2塊HDD為3塊SSD提供備份,每塊HDD被分成3個部分,分別備份3塊SSD上的數據,每一部分將地址空間劃分成數據段和空閑段,數據段為特定的SSD提供備份,如圖3中,標記為Dl的數據段僅供SSDl使用,標記為D2的數據段僅供SSD2使用,而空閑段為所有SSD共享,這樣,無論磁頭處于什么位置,針對任意SSD的寫請求都可及時地備份到磁頭附近的空閑段中,本發明實施例的多個HDD的協作可以從容處理針對某個SSD的突發寫請求。
[0041 ] 圖4所示為本發明的實施例4的基于HDD和SSD的混合存儲備份方法處理流程圖,包括以下步驟:
[0042]步驟401:單個或多個HDD的線性地址空間被劃分成若干等份;其中,所述每一等份包括數據段和空閑段;
[0043]步驟402:若寫請求到達時,所述HDD按照預設策略將數據寫入對應的數據段中。
[0044]本發明還提供了一種基于HDD和SSD的混合存儲備份系統,包括:一個或多個HDD, 一個或多個SSD,主機端;
[0045]所述主機端發出的讀請求僅由SSD響應,寫請求由SSD和備份模塊同時響應;其中,備份模塊中含有非易失內存和HDD,非易失內存用來橋接HDD與SSD的延遲差距;
[0046]所述HDD按照預設策略將數據寫入對應的數據段中。
[0047]通過實施本發明的技術方案,能夠用HDD及時地備份SSD上的數據,該混合結構實現了一種低價格、高性能的可靠存儲系統數據備份;本發明采用非易失內存橋接HDD和SSD之間的速度差距,大大提高了存儲系統備份對用戶的讀寫請求的響應速度和性能要求;本發明還采用了一種I/O重組策略,該策略可以增強HDD內部操作的順序性,使HDD盡可能的順序讀寫,增強HDD的寫性能;另外,本發明為了降低單塊SSD上出現的突發寫請求的情況,采用多塊HDD備份多塊SSD,保證某一 SSD上的突發寫數據能夠及時分散備份到多個HDD中,實現了一種低價格、高性能的可靠存儲系統備份。
[0048]以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種基于HDD和SSD的混合存儲備份方法,其特征在于,包括以下步驟: 單個或多個HDD的線性地址空間被劃分成若干等份;其中,所述每一等份包括數據段和空閑段; 若寫請求到達時,所述HDD按照預設策略將數據寫入對應的數據段中。
2.根據權利要求1所述的方法,其特征在于,若寫請求到達時,所述HDD按照預設策略將數據寫入對應的數據段中的過程為: 若單個HDD備份單個SSD并且寫請求到達時,所述HDD將數據寫入對應的數據段中;其中,所述SSD地址與所述HDD上數據段的地址——對應。
3.根據權利要求1所述的方法,其特征在于,若寫請求到達時,所述HDD按照預設策略將數據寫入對應的數據段中的過程為: 若單個HDD備份單個SSD并且寫請求到達時,若數據不能寫到相應的數據段中,則將數據寫到離磁頭最近的空閑段上; 所述HDD空閑時將數據從所述空閑段上讀到非易失內存中; 所述HDD將非易失內存中的數據最終寫到相應的數據段內。
4.根據權利要求3所述的方法,其特征在于,所述非易失內存包括一個映射表,其中,所述映射表記錄了所述數據寫入的目的空閑段。
5.根據權利要求4所述的方法,其特征在于, 若客戶端發出多個寫請求并且目標為不同的數據段,則將所述多個寫請求合并,寫到離磁頭最近的同一空閑段中。
6.根據權利要求4所述的方法,其特征在于, 對于一個特定的線程,它在一段時間內發出多個寫請求,這些數據被寫到同一空閑段內,或者被寫到相鄰的幾個空閑段內。
7.根據權利要求6所述的方法,其特征在于, 將幾個連續空閑段中的數據讀到內存,在內存中找出某個特定線程的多個寫請求,并將這些請求恢復成一個長序列。
8.根據權利要求7所述的方法,其特征在于, 若為3個寫請求:請求1、請求2、請求3 ;其中,請求I和請求3屬于同一連續序列,但被請求2中斷了 ; 貝U 3個請求都被寫到同一空閑段中,當所述空閑段中的數據被讀到內存時,請求I和請求3的順序性得到恢復,將內存中的數據寫回HDD時,將多個寫請求合并成一個長序列。
9.根據權利要求1所述的方法,其特征在于, 按照HDD和SSD的容量大小來選擇HDD數量; 所述HDD按照SSD的數量將自己的空間劃分成若干等份,分別提供給每塊SSD ;SSD按照HDD的數量將自己的數據劃分成若干等份,分別備份到每塊HDD上。
10.一種基于HDD和SSD的混合存儲備份系統,其特征在于,包括:一個或多個HDD,一個或多個SSD,主機端; 所述主機端發出的讀請求僅由SSD響應,寫請求由SSD和備份模塊同時響應;其中,備份模塊中含有非易失內存和HDD,非易失內存用來橋接HDD與SSD的延遲差距; 所述HDD按照預設策略將數據寫入對應的數據段中。
【文檔編號】G06F3/06GK103713973SQ201410009126
【公開日】2014年4月9日 申請日期:2014年1月8日 優先權日:2014年1月8日
【發明者】張硯波, 吳丙濤 申請人:浪潮(北京)電子信息產業有限公司