用于非平衡raid管理的系統和方法
【專利摘要】一種在具有多個RAID裝置的多個物理數據存儲裝置中動態平衡數據分配的方法,其中多個RAID裝置中的至少一個由至少一個不同類型的物理存儲裝置或相比于多個RAID裝置中的至少另外一個的不同數量的物理存儲裝置的構成,其可包括唯一地對每個RAID裝置確定其使用系數;以及至少部分的基于該使用系數平衡數據I/O。
【專利說明】用于非平衡RAID管理的系統和方法
【技術領域】
[0001] 本發明一般地涉及數據存儲系統。更特別地,本發明涉及用于數據在非平衡磁盤 /RAID配置中的分配的系統和方法。
【背景技術】
[0002] 隨著信息的價值和使用逐漸增加,個人和商業都在尋找其他的方式來處理和存儲 信息。適合于用戶的一個選項是信息處理系統。信息處理系統一般地處理、編譯、存儲和 /或傳輸信息或數據,用于商業、個人或其他目的,因此允許用戶充分利用信息的優點。因 為技術和信息處理的需要和要求在不同用戶和應用間的而不同,信息處理系統也可隨著被 處理信息、如何處理、被處理、存儲或傳輸的信息的數量以及信息可以被多快速和有效地處 理、存儲或傳輸是等而不同。不同的信息處理系統考慮到信息處理系統產生和配置用于特 定的用戶或特定的使用,例如金融事務處理、航空預定、企業數據存儲或全球通信。另外,信 息處理系統可包括多個硬件和軟件組件,它們用于處理、存儲和傳輸信息,并且可包括一個 或多個計算機系統、數據存儲系統和網絡系統。
[0003] 關于這些,RAID,獨立冗余磁盤陣列(Redundant Array of Independent Disks) 的首字母縮寫,是一種技術,其通過冗余提供了增強的存儲性能和增強的可靠性,并且如此 可有利地用于信息處理系統中。RAID裝置中的冗余可通過將多個磁盤組件結合成邏輯單 元,其可包括一個或多個不同類型、尺寸或分類的磁盤,其中數據越過磁盤器被分配到被 稱作"RAID等別(RAIDlevels)"的幾種方式的一種上。數據分配確定了 RAID類型,例如 RAIDO, RAID5, RAID10 等等。
[0004] RAID包括數據存儲方案,其可以在多個物理磁盤磁盤上劃分和復制數據。物理磁 盤在RAID陣列中,其通過操作系統作為單個的磁盤進行尋址。RAID裝置的很多不同的方案 或體系結構對那些本領域普通技術人員來說是已知的。每一個不同的體系結構或方案可在 存儲數據上達到多種目標上提供不同的平衡,其包括,但不限于,增強的數據可靠性和增強 的輸入/輸出(在下文中是"I/O")性能。進一步地,RAID裝置可歸組于一個或多個"分 層(tiers) ",其較高重要的數據可存儲在較高性能的RAID分層中,并且較低重要的數據可 存儲在較低性能的RAID分層中。
[0005] 自存儲器的一個或多個虛擬空間(virtual volume)中創造存儲器的"頁面池 (page pool)"是本領域中已知的,其中虛擬空間包括一個或多個相同類型或不同類型的 RAID裝置。美國專利US7398418,其內容通過引用的方式并入本文,公開了數據存儲系統 的實施例,其使用了虛擬空間的頁面池,并基于該頁面池動態分配數據空間。如圖1中實 施例所示,磁盤存儲系統110包括存儲頁面池112,例如數據存儲池包括能自由存儲數據的 數據存儲空間。頁面池112可從多個RAID裝置114保留存儲空間的自由列,并可基于用戶 的需要管理讀/寫分配。用戶請求的數據存儲空間116可被發送到頁面池112來得到存儲 空間。每一卷可從相同或不同類的存儲裝置中請求存儲空間,存儲裝置具有相同或不同的 RAID 分層,例如 RAID10, RAID5, RAID0 等等。
[0006] 如圖2中進一步所示的,可提供虛擬空間或區塊的矩陣204,并與物理磁盤相關 聯。虛擬空間或區塊的矩陣204可通過一個或多個磁盤存儲系統控制器202來動態監控/ 控制。每一個虛擬空間204的尺寸可被預設,并且對于每個虛擬空間204,數據的位置可缺 省為空。虛擬空間204中的每一個可為空直到數據被分配。數據可被分配到矩陣或"頁面 池"的任何一格中(例如數據一旦被分配到格中,該格中就有一圓點)。一旦數據被刪除, 虛擬空間204可再一次是可利用的并指示為"空"。因而,額外的和有時昂貴的數據存儲裝 置,例如RAID裝置,可在隨后的一段時間內在需要的基礎上獲取,或者一旦不再需要就移 除。在這種方式下,映像到一個或多個RAID裝置的虛擬空間的頁面池可提供高地靈活和有 效的數據存儲系統。
[0007] 相應地,這樣的基于RAID的據存儲系統能夠使用RAID技術遍及任何數量的虛擬 空間磁盤。剩余存儲空間是自由地可被利用。通過監控存儲空間和確定RAID子系統的存 儲空間的占用率,用戶不必分配大量的昂貴但購買時沒有用磁盤。因而,當需要滿足實際上 存儲空間的需求時才增加額外的磁盤,可有效地減少磁盤的整體成本,并且當不再需要時 移除磁盤以釋放珍貴的存儲空間。磁盤的使用的效率也可以充分地改善。
[0008] 在現有的RAID配置中,例如美國專利US7398418中公開的,數據分配可通過計分 系統來確定,其在數據存儲系統中將一個或多個分數評估給每一個RAID裝置,并且基于數 據優先級(例如其訪問的頻率)數據被分配給特別的RAID裝置,和/或通過分數評估給 RAID裝置。例如,在一個實施例的結構中,分配較高優先級的數據給較高分數RAID裝置,并 且分配較低優先級數據給較低分數RAID裝置。計分和數據分配的進一步的實施例在美國 專利US7398418中公開。
[0009] 在平衡RAID配置(balanced RAID configurations)中,每個RAID裝置在數據存儲 系統中被分割成"寬條帶"(wide-striped)跨越所有的磁盤,磁盤具有相同的尺寸和類型, 現有的數據分配和存儲方法提供一種準確的和有效的方式用于在大多數適當的RAID裝置 中存儲這樣的數據。然而,常見的是,數據存儲系統中,并不是所有包括的磁盤都具有相同 的類型或相同的尺寸,并因此,不可能在系統中每個RAID裝置的寬條帶跨越所有的磁盤, 導致"非平衡"RAID配置。非平衡RAID配置也可由磁盤從數據存儲系統中的增加或移除所 導致,這里RAID裝置在增加或移除后沒有重新分割(re-striped)。由于這種非平衡結構, 現有的數據分配和存儲方法不能對每個RAID裝置確定準確的分數,或者對特定的RAID裝 置可以大多數有效的方式來分配數據。本領域缺少的是在基于RAID據存儲系統的非平衡 屬性的系統和方法中,于各自的RAID裝置進行評估計分中和分配數據存儲到那RAID裝置 上。
【發明內容】
[0010] 在一個實施方式中,這里公開的是一種信息處理系統,包括:多個RAID裝置,其 中,定義了多個物理數據存儲裝置,其中至少一個RAID裝置由至少一個不同類型的物理存 儲裝置或相比于多個RAID裝置中的至少另外一個的不同數目的物理存儲裝置構成;以及 處理單元,其中該處理單元配置為動態地分配數據到所述多個RAID裝置,以便平衡數據1/ 0跨越多個RAID裝置。
[0011] 在這個實施方式的變形中,平衡數據I/O可包括確定每個RAID裝置的使用系數 (usage factor)。該使用系數可用于在頁面池種類自由表上分類多個RAID裝置。所述使 用系數至少部分地基于每個所述RAID裝置的使用率,其包括通過將所述RAID裝置的使用 率除以磁盤的數量,所述RAID裝置是被分割成跨越所述數量的磁盤。所述使用系數進一步 至少部分地基于重疊磁盤使用率,其包括每個所述RAID裝置的所述RAID裝置磁盤使用率 的總和,所述RAID裝置是被分割成跨越物理磁盤。所述使用系數包括每個所述物理磁盤的 重疊磁盤使用率的總和,所述RAID裝置是被分割成跨越每個物理磁盤。所述處理單元可進 一步配置為基于各自的所述使用系數來排序所述多個RAID裝置。所述處理單元可進一步 配置為當所述RAID裝置跨越數據存儲邊界時平衡數據I/O。處理單元可進一步配置為當從 所述信息處理系統中增加或移除物理磁盤時平衡數據I/O。
[0012] 一種在具有定義多個RAID裝置的多個物理數據存儲裝置中動態平衡數據分配的 方法,其中,多個RAID裝置中的至少一個由至少一個不同類型的物理存儲裝置或相比于多 個RAID裝置中的至少另外一個的不同數量的物理存儲裝置的構成,包括對每個RAID裝置 確定其各自的使用系數;以及至少部分的基于所述使用系數平衡數據I/O。
[0013] 在這個實施方式的變形中,進一步包括基于所述使用系數來移除RAID裝置。移除 具有最低所述使用系數的RAID裝置。在RAID裝置跨越數據存儲邊界時發生平衡。
[0014] 在至今另一個實施方式中,這里公開的是一種在包括了多個RAID裝置的存儲系 統中用于從RAID裝置分配空間的方法,所述RAID裝置具有多個物理磁盤,該方法包括計 算由所述RAID裝置于每個所述多個物理磁盤中使用的空間的大小;通過對由所述RAID裝 置于每個所述多個物理磁盤中使用的空間的大小求和來計算由所述RAID裝置使用的空間 的總量;基于計算得到的所述空間的總量和每個所述多個物理磁盤的相對性能參數計算所 述RAID裝置的使用系數;基于計算得到的所述使用系數在所述多個RAID裝置中排序所述 RAID裝置;以及基于上述排序從所述多個RAID裝置中的一個分配空間。
[0015] 在該實施方式的變形中,所述多個物理磁盤中的至少一個相比于所述多個物理磁 盤中的至少另外一個是不同類型的。所述多個物理磁盤中的至少一個相比于所述多個物理 磁盤中的至少另外一個是不同尺寸的。進一步包括:新增磁盤給所述多個物理磁盤;定義 包括所述新增磁盤的新的RAID裝置;基于所述多個RAID裝置與所述新的RAID裝置的各自 的使用系數來排序多個RAID裝置與所述新的RAID裝置;以及基于上述排序從RAID裝置 中分配空間。所述新的RAID裝置可包括所述新增磁盤與所述多個物理磁盤中的至少一個。 所述新的RAID裝置可從所述多個RAID裝置歸類到單獨的組中。
[0016] 盡管公開多個實施例,但是根據以下詳細描述本公開的其它實施例對于本領域技 術人員將變得顯而易見,該詳細示出并描述本發明的說明性實施例。如將實現,本公開的各 種實施例能夠在完全不脫離本發明的精神及范疇的情況下在各種明顯態樣上修改。因此, 附圖及詳細描述將被視為本質上說明性的而非限制性的。
【專利附圖】
【附圖說明】
[0017] 盡管說明書以權利要求特別指出了主題并明確了要求保護的主題,該主題被視為 形成了本公開內容的多個實施方式,但是應當相信的是,從下面參照附圖的描述中將更好 地理解本發明,其中:
[0018] 圖1示出了具有頁面池結構的數據存儲系統的現有技術的實施例;
[0019] 圖2示出了根據頁面池結構的虛擬空間的矩陣的現有技術的實施例;
[0020] 圖3示出了具有寬條帶的平衡RAID配置的實施例;
[0021] 圖4示出了具有不同尺寸磁盤的非平衡RAID配置的實施例;
[0022] 圖5和圖6示出了具有不同組的RAID配置非平衡RAID配置的實施例;
[0023] 圖7和8示出了非平衡RAID配置的進一步實施例;
[0024] 圖9示出了根據本公開的一個實施方式的平衡算法的實施例;
[0025] 圖10a-b示出了根據本公開的一個實施方式的基于RAID配置(10b)的實施例的 平衡計算(l〇a)的實施例;
[0026] 圖11示出了根據本公開的一個實施方式的自由表排序的實施例,并且;
[0027] 圖12示出了根據本公開的一個實施方式的自動評估邊界配置的實施例。
【具體實施方式】
[0028] 本公開描述了系統和方法的實施方式,其中數據存儲的頁面池可用于非平衡RAID 管理(unbalanced RAID management,在下文中稱作"URM")以最大化數據存儲系統的性能, 其不使用或不能使用以寬條帶分割RAID裝置,由于,除了別的事情以外,例如,使用不同尺 寸、不同類型的數據存儲磁盤、或增加或移除磁盤后沒有重新分割的RAID裝置磁盤。當本 公開描述了使用RAID磁盤的實施例時,應當意識到的是,本公開可用于與任何磁盤管理形 式的連接上。如這里使用的,數據存儲系統的"性能",除了別的參數以外,可涉及讀/寫速 度、存儲性能、冗余水平中的任一個。本公開的URM技術和方法可周期性地或基本上連續地 在非平衡RAID數據存儲系統中評估磁盤的分配負載,以及可確定和控制物理磁盤頁面池 進行后續的頁面分配,以維持高效率的系統結構。
[0029] 現有的數據分配方法中可能沒有優化的RAID配置的概沭
[0030] 在現有使用平衡RAID配置的結構中,數據分配和管理技術通常使用以寬條帶分 割RAID裝置以平衡磁盤上的負載。如先前討論的,寬條帶位于有很多磁盤可用的RAID上。 寬條帶分割的優勢包括相對直接地創造在多個磁盤上的均衡的負載。這就是,如果所有的 磁盤是RAID裝置的一部分,那么頁面的分配將使用所有的磁盤。
[0031] 圖3示出了使用寬條帶分割的數據存儲系統結構300的實施例。如圖3所示,每 個RAID裝置RA-1、RA-2、RA-3以及RA-4(各自的參考標記為301-304)被分割成跨越(例 如由至少部分的組成)每個物理磁盤DA-1、DA-2、DA-3、DA-1、DA-2、DA-3以及DA-7 (各自 的參考標記為311-317)。每個磁盤311-317具有相同的尺寸和類型。這個特殊的數據存儲 系統配置在本領域是公知的"平衡RAID",而每個RAID裝置由與存儲系統有關的每個物理 磁盤的部分組成。平衡RAID配置在系統中通過確保每個物理磁盤包括至少部分RAID裝置 來有益地減少RAID裝置的數量。
[0032] 然而,理想的平衡RAID配置是不可能在所有的數據存儲系統中。通過實施例的方 式,圖4描述了 RAID配置,其中磁盤中的三個(例如DB-5、DB-6和DB-8,各自的參考標記為 415-417)比所示的其余四個(例如DB-l、DB-2、DB-3和DB-4,各自的參考標記為411-414) 要大。在這個結構中,現有的數據分配和分類系統不能提供最有效的結果。在一個實施例 中,現有的RAID分類方法可將最高的分數給分割成跨越最多磁盤和/或具有最大尺寸的磁 盤的RAID裝置。使用該方法,因此,系統可以將裝置排序成:RB-1到RB-4,所有都被分割 成跨越所有磁盤;接著,通過RB-5到RB-6,條帶僅僅跨越磁盤DB-5到DB-7 (各自的參考標 記為401-406)。使用現有的數據分配方法,只有一旦頁面大體上從使用所有的磁盤(RB-1、 RB-2、RB-3和RB-4)的RAID上用完,自由列表使用以限制數量的磁盤分割的RAID來分配 頁面到這些RAID上(由于它們具有較低分數)。因而,這種配置可能得出具有低效數據分 配(例如在所有可用的RAID裝置中缺乏適當的平衡的數據)的數據存儲系統,以及可能導 致降低系統性能,因為計分系統在其計分算法中不適于說明RAID裝置RB-5和RB-6僅分割 成跨越DB-5到DB-7。
[0033] 在另一個實施例中,圖5描述了 RAID配置,其中磁盤中的三個(例如,DC-5、DC-6 和DC-7,各自的參考標記為415-417)具有與圖中所示的其他四個磁盤(例如DC-1、DC-2、 DC-3、以及DC-4,各自的參考標記為401-404)相比不同的類型。當多個磁盤類型存在于相 同的RAID分層中時,自由列表的平衡RAID組織結構具有問題;這就是,RAID不允許創造 使用多個類型的磁盤的RAID。因而,如圖5所示,RAID裝置不能分割成跨越所有磁盤,相 反RAID裝置RC-1、RC-2、RC-3和RC-4 (各自的參考標記為501-504)屬于SATA磁盤,然而 RC-5、RC-6、和RC-7 (各自的參考標記為505-507)屬到FATA磁盤。這里,沒有單個的RAID 裝置在同一分層中跨越所有的磁盤,并因此現有的數據分配方法不能得到最有效的結果。 更確切地,在一些現有的系統中,當兩種類型的磁盤不平衡時,計分系統再一次可能首先使 用磁盤分類分割成跨越最大數量的磁盤,因為這些磁盤上的RAID裝置可能得分較高。當較 高得分的空間完全耗盡后,頁面池將從較低得分的裝置中分配空間,并由此設置成第二組 磁盤。這導致了在兩個磁盤間可能存在的低效平衡,并且對于系統性能不是最佳的。
[0034] 在進一步的實施例中,RAID "組"或子集劃分及分配相似磁盤,例如為了管理故障 區域。其中利用分組,這些組可由用戶根據需要的保護來設置。分組可因而限制系統產生 跨越所有磁盤的寬條帶的性能,并由此影響自由列表的管理。其中一實施例表示用戶設定 的分組是RAID封裝級別容錯(Enclosure Level Fault Tolorance) (ELFT)方法,在一些實 施例中可僅使用封裝內的單個磁盤的條帶。不同的條帶可在封裝中使用不同的磁盤。如 圖6所示,分組的RAID配置的實施例被描述(例如,基于用戶選擇的ELFT)。磁盤DE-1到 DE-8(各自的參考標記為611-618)被提供,在第一組631中RAID裝置RE-l到RE-4(各自 的參考標記為601-604)由磁盤DE-1到DE-4組成,并且,在第二組632中RAID裝置RE-5 到RE-7(各自的參考標記為605-607)由磁盤DE-5到DE-8組成。雖然這種結構允許整個 封裝以失效而沒有任何給出RAID被接受的可能,但這不可能應用到已知平衡RAID技術的 優點。因而,使用分組,當封裝不具有平等配置磁盤設置時,這就不可能最大化空間使用的 效率。
[0035] 在進一步的實施例中,在需要通過磁盤的增加或移除來產生更多或更少的數據存 儲性能或產生更高質量的RAID裝置的情形下,現有的數據分配方法不是最優的。例如,對 于數據存儲系統來說,從系統中移除低質量或無用的RAID空間以產生更高質量的RAID是 有利的。可選擇地,當需要增加存儲時可增加磁盤。在這些實例中,磁盤必須是"重新分割 (re-striped) "的以保持傳統上的RAID配置。應當意識到,重新分割程序會使用大量系統 資源來移動數據到最優的配置。另外地,對于較大的配置來說,完成重新分割程序需要用很 長的時間。當磁盤完全滿時,重新分割可進一步需要首先移動到臨時空間,并由此數據頁 面在其找到永久位置之前會被移動兩次。因此,在一些情形下,由于這些約束,存儲系統在 一個或多個磁盤的增加或移除后,不能合適地重新分割。圖7提供了一種實施例結構,這 里增加了三個磁盤沒有重新分割。RAID裝置RD-l、RD-2、RD-3和RD-4(各自的參考標記為 701-704)是分割成僅僅跨越首四個物理磁盤DA-l、DA-2、DA-3以及DA-4 (各自的參考標記 為711-714)。磁盤DA-5、DA-6和DA-7(各自的參考標記為715-717)沒有被分配。進一步 的地,這里有多個連續的磁盤的增加或移除,系統不能重新分割,高度欠組織的結構可導致 地適于傳統的數據分配方法尤其不好。參考圖8,磁盤DA-1到DA-10 (各自的參考標記為 811-820)與分割成跨越多個磁盤的RAID裝置RG-A到RG-G (各自的參考標記為801-807) 一起被提供。在這樣的數據存儲裝置上,已知的數據分配方法可導致高度低效的數據分配。
[0036] 非平衡RAID管理的概述
[0037] 在一些實施例中,URM可管理自由頁面(數據)分配排序以平衡磁盤的利用,在由 多個RAID裝置組成的數據存儲裝置中,或在由多個RAID存儲裝置組成的單個RAID分層 中。URM可至少部分地基于磁盤的空間使用上實現平衡。平衡頁面分配可更佳地使用多個 磁盤尺寸和/或類型,在數據存儲裝置或單個RAID分層中,并也可減少重新分割RAID裝置 的必要性。
[0038] 在一些實施例中,URM可配置為操作多種類型、共享相同磁盤設置的RAID裝置。這 種配置包括不同類型RAID裝置的標準化,應當明白的是不同的RAID等別可以不同的方式 管理數據。進一步,每個RAID等別可具有不同的I/O寫模式和讀取加載在磁盤上。仍進一 步,不同頁面尺寸可個別地管理數據。例如,可以包括多個頁面池和/或數據壓縮。因此, URM可使用常規方法來同時管理多種類型的RAID裝置、自由列表、頁面尺寸等。
[0039] 為了處理不同的頁面尺寸,在一個實施方式中,URM可通過使用磁盤分離(disk segregation)技術,例如磁盤區塊或磁盤字節,將磁盤空間的利用標準化。這樣的標準化可 用于平衡I/O負載跨越所有的磁盤。進一步,標準化可用于包含了多種類型磁盤的數據存 儲系統或RAID分層以及需要它們適當地用于I/O性能的地方。如前面討論的,傳統的RAID 配置不允許跨越多個磁盤類型的分配,所以本公開的系統和方法可利用平衡來分配存儲空 間跨越多個磁盤類型。例如,這里FATA和SATA磁盤連接進RAID分層中,URM可在頁面池 分類確定分配下一個頁面到哪個RAID裝置中,基于下面更詳細描述的平衡。
[0040] 進一步地,在一些實施方式中,多個頁面池分類可存在于單個數據存儲系統或單 個RAID分層中,而分類和與其有關的自由列表可管理由RAID等別、頁面尺寸等確定的單個 類型空間。每個分類可單獨地管理其自由列表。在這種配置中,URM可命令RAID空間來達 到期望的平衡,然后允許每個分類來從其自己的RAID空間中來指令分配。
[0041] 與寬條帶相反的,這里RAID裝置是被分割成跨越所有可用的磁盤,依照本公開的 URM,在一個實施方式中,可劃分平衡方法到兩個或更多單獨的程序中。這些程序可包括一 個或多個下面的步驟,但不限于此:1) RAID裝置重疊(overlap)程序,這里RAID裝置和數 據存儲系統的磁盤管理器可互相通信,以確定可用的自由空間。重疊可用來從一組磁盤中 確定空間分配的數量并在RAID裝置之間與其通信。2)平衡運算程序,這里運算可用于確定 計分來對給出的一組RAID裝置平衡頁面分配。計算以確定最少使用的RAID裝置。3)自由 列表平衡,這里系統可確定哪個RAID裝置進行下一個頁面分配。該確定可部分地基于來自 平衡運算中計分信息來進行。通過周期性地或連續地監控頁面分配并當裝置移動到平衡之 外時返回請求,RAID裝置可被命令用于進一步的分配。4)磁盤增加,這里,如前面討論的, 新的物理磁盤可增加到數據存儲系統或一單獨的RAID分層中,不需要重新分割RAID裝置。 5)裝置修整(pruning),當多余空間存在時,URM可決定移除一個或多個RAID裝置。在一 些實施方式中,從大量使用的磁盤中移除空間可優選為跨越的磁盤保持平衡。6)用戶加入 的配置,用戶可得到信息以控制URM的多個方面;例如,用戶能夠監控磁盤負載,并能啟動 或停止任何上述的性能。這些和其他包括URM的程序在下面的部分中被更詳細地討論。
[0042] 平衡運算程序
[0043] 在一些實施方式中,依照本公開的URM系統的平衡運算可通過使用現有的用 于每個RAID的頁面分配和總計其跨越的磁盤以確定每個RAID裝置的使用系數(usage factor)。由此,其可平衡從每個磁盤分配的空間的大小。為了確定現有的分配,依照本公 開的URM系統可對RAID裝置發送頁面分配信息給磁盤。這是令人滿意的,因為在虛擬化環 境中的頁面不知道在哪個特定的磁盤上,這些頁面可保留)。在所有的RAID裝置發送頁面 分配信息給磁盤之后,URM可總結每個磁盤的使用以產生使用系數。使用系數隨后被用于 在頁面池分類自由列表上排序RAID裝置。
[0044] 在一個實施方式中,當分配被改變時,URM系統可大體連續地或周期性地平衡自由 列表。因此,周期性地發生平衡并僅僅需要最小的CPU、內存和磁盤I/O影響。如此,系統可 大體連續地或周期性地分配和返回頁面到/從自由列表中。
[0045] 平衡可與一單獨的RAID分層有關的局部地發生,或者整體地發生,這里輸入可從 多個頁面池中得出,并且輸出可轉發到多個頁面池。然后輸出可局部地用在各自的頁面池 分類中以命令分配自由列表。
[0046] 參考圖9,參照本公開的一個實施例的平衡運算900可包括一個或多個操作,包 括,但不限于清空磁盤使用程序(方框901),計算每個磁盤使用程序(方框902),總重疊磁 盤使用程序(方框903),產生裝置使用系數程序(方框904)以及通過使用系數排序裝置程 序(方框905)。每個程序在下面更詳細地討論。
[0047] 參考圖10a和10b,平衡運算900在以下描述,基于圖10b中所述的裝置實現圖10a 中所示的實施例。關于程序901,運算可構成為清空系統中每個磁盤的使用信息。這個程序 可運行以清空任何從先前計算中殘留的保留信息。
[0048] 關于程序902,運算可構成為計算每個裝置磁盤的使用率(usage)。每個裝置磁 盤的使用率可通過將特定磁盤的使用率除以RAID裝置分割所跨越的磁盤的數量(例如其 上頁面分配的數量,也可為邏輯塊(extents))來計算出。如圖10b所示,例如,RAID裝置 RG-A的使用率是40, RAID裝置RG-B的使用率是42。其他使用率類似地示出。RAID裝置 RG-A是分割成跨越三個磁盤,DA-1到DA-3,反之,RG-B分割成跨越四個磁盤,DA-1到DA-4。 如此,RG-A的每個裝置磁盤使用率是40除以3, RG-B的每個裝置磁盤使用率是42除以4。 每個RAID裝置磁盤使用率已經湊整以易于參考。圖10a示出了用于所有RAID裝置RG-A 到RG-B1的這種計算;對于RG-A,結果是13,對于RG-B,結果是10,以此類推。
[0049] 關于程序903,運算可構成為計算重疊磁盤使用率。重疊磁盤使用率是分割成跨越 給定磁盤的單個RAID裝置中的每個裝置磁盤使用率的總和。例如,如圖10b所示,RAID裝 置RG-A、RG-B、RG-D和RG-E是分割成跨越磁盤DA-1。如進一步所示,僅有RAID裝置RG-C 和RG-E是分割成跨域磁盤DA-10。與每個這樣RAID裝置有關的每個裝置磁盤使用率的求 和,磁盤DA-1在RG-A中為13,在RG-B中為10,在RG-D中為11和在RG-E中為12,其總和 是46,如圖10a中所示(步驟2,第一張表)。類似地,如圖10a所示,對于磁盤DA-10,僅僅 RG-C和RG-E的每個裝置的總和是23。對于其他磁盤的重疊磁盤使用率的計算可類似地進 行,如圖10a中所示。然后對給定磁盤的重疊磁盤使用率應用到或發送到給定磁盤的每個 RAID邏輯塊。例如,與磁盤DA-1有關的重疊磁盤使用率可應用到或發送到DA-1磁盤上的 RAID裝置RG-A,RG-B,RG-D和RG-E。類似地,與磁盤DA-10有關的重疊磁盤使用率可應用 到或發送到DA-10磁盤上的RAID裝置RG-C和RG-E。所有這些結果顯示在圖10A步驟二的 第二表內。
[0050] 關于程序904,在一個實施方式中,運算可配置為產生每個RAID裝置的使用系數。 該使用系數是通過將給定RAID裝置的邏輯塊的重疊磁盤使用率的總和,除以分割跨越的 磁盤的數目來計算。如圖l〇b所示,例如,RAID裝置RG-A分割成跨越磁盤DA-1到DA-3。類 似地,RAID裝置RG-B分割成跨越磁盤DA-1到DA-4。為了執行這種計算,如圖10a中所示 (步驟2,表2),對每個RAID裝置的重疊磁盤使用率進行求和。這種求和,對于每個RAID裝 置,存在于方塊904.例如,對于RAID裝置RG-A,46加上46加上46 (對于磁盤DA-1到DA-3 的RAID裝置RG-A的重疊磁盤使用率)是138。對于RAID裝置RG-B,46加上46加上46加 上33(對于磁盤DA-1到DA-4的RG-B的重疊磁盤使用率)是171。通過除以磁盤的數目, 分別為3和4, RAID裝置RG-A的使用系數是46, RAID裝置RG-B的使用系數是42。這些結 果已經湊整以易于參考。如方塊904中所示的,類似的計算可被執行用于每個RAID裝置。 在一些實施方式中,磁盤的數量(上述等式中的除數)可先于進行除法前乘以磁盤值。該 磁盤值可表示特定磁盤的主觀評價的值,基于其類型、尺寸、結構等。在這些實施方式中,使 用系數可以是重疊磁盤使用率的總和除以RAID裝置的邏輯塊的數量和磁盤值的積。
[0051] 關于程序905,在一些實施方式中,運算可配置為根據先前的計算來分類RAID裝 置,例如,根據最低使用系數。他們可被單獨地排序以用于頁面池分類,如每個分類可配置 為管理其自身的自由列表并分配頁面。當壓縮被應用時,一個頁面分類可具有多個頁面尺 寸,并且這些列表中的每一個可單獨地被排序。
[0052] 與本公開一致的運算900可僅使用最小的內存、CPU負載和磁盤I/O。如描述的, 其計算可僅需要很少數量的值。對于CPU負載,其可使用簡單的倍增、除法和增加來確定平 衡。對于磁盤1/0,其可訪問有限存儲固有的信息的內存。因此,該運算可如期望的或需要 的一樣頻繁執行來實現這里描述的URM方法而不需要顯著的計算資源。
[0053] 自由列表平衡程序
[0054] 在一些實施方式中,可包括自由列表平衡程序為URM的一部分,以確定自由列表 分配的命令。自由列表平衡可基于輸入(如前述的使用運算來計算)的使用系數以確定自 由列表分配的命令。自由列表可從最低使用系數的RAID裝置中分配頁面,盡管其他的分配 是可能的。當確定了使用系數,系統會檢查所有類型的RAID裝置,包括那些具有不同RAID 等別和頁面尺寸的。
[0055] 圖11描述了自由列表命令進一步分配的實施例,包括3個RAID5裝置(各自的參 考標記為1101,1102和1104)和3個RAID10裝置(各自的參考標記為1103, 1105和1106)。 如描述的,基于所示的使用系數(在這個實施例中,分配是如前述的首先給具有最低使用 系數的裝置),對于RAID5的分配將首先分配給頂部RAID5裝置1101。另外,如所示的,例 如基于使用系數,對于RAID10空間的分配可首先分配給頂部RAID裝置1103。如所示的,因 使用URM,命令不必須與RAID類型相一致,因而進行更靈活的分配以達到一更佳平衡的系 統。
[0056] 在一些實施方式中,對于每個RAID裝置的自由列表可產生自動評估邊界 (auto evaluation boundaries)。自動評估邊界可為自由列表平衡評估提供滯后機構 (hysteresis mechanism)以及可能的重新排序。如果分配到給定RAID裝置的頁面的數量 高于預定上邊界或低于預定下邊界,平衡的自動評估可發生。邊界可通過使用當前分配頁 面數量在平衡時加上或減去邊界差值來確定。所有的RAID裝置可使用相同的邊界差值,或 它們可使用不同的差值。邊界差值可通過將頁面池總共頁面數量除以用戶配置值來計算。 這樣的值可以例如是10000或其他任何由用戶期望的值。自動評估可發生在跨過邊界時, 導致自由列表的重新排序以達到更佳的平衡。
[0057] 如此,邊界可被提供為"觸發器"來執行如上所述的邊界評估。如圖12所示,表示 邊界的實施例示出具有上評估邊界1201,下評估邊界1202,以及平衡點的分配1203,其與 裝置中可用空間有關(這里"0"代表一空裝置(參考標記為1211)和"滿"代表完全被使 用的裝置(參考標記為1212))。頁面分配可由此繼續直到RAID裝置耗盡頁面或不同的裝 置在自由列表中更高具有可用的頁面。在一個實施方式中,雖然平衡運算900在運行,但是 分配可繼續發生,使用以前可用的使用系數。
[0058] 增加/移除磁盤空間程序
[0059] 在一些實施方式中,依照本公開的URM可配置為允許額外的物理磁盤增加到存儲 系統中(或可選擇地移除),甚至這里相關的磁盤分配大大地異于磁盤。當一組新磁盤增加 到系統中時,RAID裝置可被分配在這組新磁盤上。例如,如圖7所示,磁盤DA-5到DA-7增 加到已經具有分割成跨越磁盤DA-1到DA-5的RAID裝置的系統中。一個或多個RAID裝置 可產生在這些新磁盤DA-5到DA-7上,并且此后URM可平衡磁盤上的頁面分配,不需要重新 分割RAID裝置。
[0060] 在相反的情形下,磁盤被從存儲系統中移除,磁盤空間分配由于部分RAID裝置的 移除變得不平衡。其中一組磁盤可能大量地被分配,并且另一組輕微地被分配。這種情形 下,分配可使得輕微分配的磁盤運行URM來平衡頁面分配。當給磁盤配置評估時,頁面池需 要檢查磁盤空間分配的平衡,使用上述的運算。如果存在失衡,頁面池可執行為磁盤分類增 加空間程序。增加空間程序可導致RAID裝置使用較少被利用的磁盤,或者較少利用或被大 量利用的磁盤。磁盤空間分配的失衡可導致產生多個RAID裝置。因此,頁面池可要求額外 空間直到磁盤大體上接近平衡。在一個實施方式中,頁面池全面的配置可包括參數來控制 增加空間程序。這個參數可確定為大量分配與輕微分配的比率。如果該比率在失衡控制之 上,則啟動增加空間程序。如果其維持在某個值之下,則不啟動增加空間程序。
[0061] 裝置"修整(Pruning) "程序
[0062] 在一些實施方式中,依照本公開的URM可包括裝置"修整"程序,其中RAID裝置可 按照相關計分順序被移除,如使用上述公開的運算確定的。修整也可考慮在RAID裝置上分 配的空間,為了移動最少數量的頁面。進一步,當確定移除哪個RAID裝置時,修整也可考慮 磁盤的利用。可以知道的是,從大量使用的磁盤中減少分配可改善給定RAID分層中的平衡 和磁盤的性能。修整程序可配置為以下列次序來移除RAID裝置,其最優化到以最少次數來 移動頁面:1)移除低計分的空間,其可包括沒有滿足預期RAID參數或沒有使用預期磁盤數 量的RAID裝置;2)移除低計分的多余空間;3)移除不是低計分的多余空間;4)移除大量使 用磁盤的多余空間;5)移除臨時空間;6)移除需要臨時空間使用的裝置。
[0063] 上述的對于每種類型裝置的移除,頁面池可包括裝置尺寸和/或自由頁面百分比 以便從可能大量RAID裝置中選擇要移除的RAID裝置。磁盤使用系數,如上所述的,可增加 到這種移除裝置的確定中以允許系統從避免大量被使用的磁盤,如排除具有高磁盤使用系 數的RAID裝置可改善系統的性能。
[0064] 在一些實施方式中,裝置修整程序可使用品質計分來確定哪個RAID裝置是配置 為用戶所需要的。品質計分可比較當前的RAID裝置配置和假設的"最好"的可能的RAID配 置。例如,如果多個磁盤是可用的,RAID裝置品質計分可相對地較低,因為更多空間可從這 些磁盤中被分配。在一些實施方式中,品質計分可給下述參數評估以便確定品質計分:RAID 類型,條帶寬度,重復系數(repeat factor),磁盤類型,以及磁盤活頁夾等。利用URM,沒有 適當地配置的RAID具有低品質計分,其可被移除出系統。
[0065] 這里描述的非平衡RAID管理程序的優點
[0066] 依照本公開的非平衡RAID管理可要求處理數據存儲系統內或單個RAID分層內不 同磁盤類型的組合,并用于額外磁盤組織邊界,如上所述。這是因為傳統的"寬條帶"方法 不能用于這樣的配置內,或者由于RAID裝置需要大量計算資源以進行重新分割。因此,URM 可被使用以便在傳統RAID配置不能產生使用多個磁盤類型的裝置時,平衡分配。
[0067] 依照本公開的URM可被使用在任何使用RAID裝置的數據存儲系統或任何RAID分 層上。關于不同的RAID分層,在一些實施方式中,優選在分層上使用URM,而不是在最高分 層上,如對于最高分層磁盤的頁面分配要求由傳統寬條帶方法得到的最佳性能。如此,在一 些實施方式中,對于URM依靠分層來不同地操作是有利的。對于最高分層,例如,用戶想得 到寬條帶的優點(在一些實例中,其可要求RAID裝置是可重新分割的)。例如,對于最低分 層,用戶想最小化重新分割,由于對于最低分層,性能不是重要的,所以一些潛在的頁面分 配失衡是可容忍的。應當明白的是,在一些配置中,最低分層具有大多數空間并且使用最長 的時間來重新分割。如此,避免在這個空間上使用現在描述的URM方法重新分割可節省系 統資源。在任何分層上,其中使用URM,執行并不需要大量資源來平衡頁面分配,因為額外的 數據要求不會產生大結構,并且平衡運算不需要大量存儲器和處理資源來完成這些功能。 [0068] 在一些實施方式中,數據存儲系統使用依照本公開的URM程序,可成為信息處理 系統的一部分。對于本公開的目的,信息處理系統看包括任何手段或手段的集成,操作為計 算、分類、處理、傳輸、接收、恢復、開始、開關、存儲、顯示、證明、檢測、記錄、復制、處理,或使 用用于商業、科學、空著或其他目的的任何形式的信息、情報或數據。例如,信息處理系統可 以是個人電腦,網絡存儲裝置或任何其他合適的裝置,以及可在尺寸、形狀、性能、功能和價 格上變化。信息處理系統可包括隨機存取存儲器(RAM),一個或多個處理資源例如中央處 理單元(CPU)或硬件或軟件控制邏輯,R0M,和/或其他類型的非易失性存儲器。信息處理 系統的額外組件可包括一個或多個磁盤,一個或多個網絡端口用于與外界裝置通信以及多 個輸入和輸出(I/O)裝置,例如鍵盤、鼠標和視頻顯示器。信息處理系統也可包括一個或多 個總線,操作為存在多個硬件組件間傳輸通信。
[〇〇69] 雖然已經參照各種實施方式描述了本公開,但本領域普通技術人員將會意識到在 不偏離本發明的精神和范圍的情況下,可在形式和細節上作出改變。
【權利要求】
1. 一種信息處理系統,包括: 多個RAID裝置,其中,定義了多個物理數據存儲裝置,其中至少一個RAID裝置由至少 一個不同類型的物理存儲裝置或相比于多個RAID裝置中的至少另外一個的不同數目的物 理存儲裝置構成; 以及處理單元,其中該處理單元配置為動態地分配數據到所述多個RAID裝置,以便平 衡數據I/O跨越多個RAID裝置。
2. 如權利要求1所述的信息處理系統,其中平衡數據I/O包括確定每個所述RAID裝置 的使用系數。
3. 如權利要求2所述的信息處理系統,其中所述使用系數用于在頁面池排序自由列表 上分類所述多個RAID裝置。
4. 如權利要求2所述的信息處理系統,其中,所述使用系數至少部分地基于每個所述 RAID裝置的使用率,其包括通過將所述RAID裝置的使用率除以磁盤的數量,所述RAID裝置 是被分割成跨越所述數量的磁盤。
5. 如權利要求4所述的信息處理系統,其中,所述使用系數進一步至少部分地基于重 疊磁盤使用率,其包括每個所述RAID裝置的所述RAID裝置磁盤使用率的總和,所述RAID 裝置是被分割成跨越物理磁盤。
6. 如權利要求5所述的信息處理系統,其中,所述使用系數包括每個所述物理磁盤的 重疊磁盤使用率的總和,所述RAID裝置是被分割成跨越每個物理磁盤。
7. 如權利要求2所述的信息處理系統,其中,所述處理單元可進一步配置為基于各自 的所述使用系數來排序所述多個RAID裝置。
8. 如權利要求1所述的信息處理系統,其中,所述處理單元可進一步配置為當所述 RAID裝置跨越數據存儲邊界時平衡數據I/O。
9. 如權利要求1所述的信息處理系統,其中,所述處理單元可進一步配置為當從所述 信息處理系統中增加或移除物理磁盤時平衡數據I/O。
10. -種在具有定義多個RAID裝置的多個物理數據存儲裝置中動態平衡數據分配的 方法,其中,多個RAID裝置中的至少一個由至少一個不同類型的物理存儲裝置或相比于多 個RAID裝置中的至少另外一個的不同數量的物理存儲裝置的構成,包括 對每個RAID裝置確定其各自的使用系數;以及 至少部分的基于所述使用系數平衡數據I/O。
11. 如權利要求10所述的方法,其中,所述使用系數可用于在頁面池分類自由列表上 排序所述多個RAID裝置。
12. 如權利要求10所述的方法,進一步包括基于所述使用系數來移除RAID裝置。
13. 如權利要求12所述的方法,其中,移除具有最低所述使用系數的RAID裝置。
14. 如權利要求10所述的方法,其中,在RAID裝置跨越數據存儲邊界時發生平衡。
15. -種在包括了多個RAID裝置的存儲系統中用于從RAID裝置分配空間的方法,所述 RAID裝置具有多個物理磁盤,該方法包括: 計算由所述RAID裝置于每個所述多個物理磁盤中使用的空間的大小; 通過對由所述RAID裝置于每個所述多個物理磁盤中使用的空間的大小求和來計算由 所述RAID裝置使用的空間的總量; 基于計算得到的所述空間的總量和每個所述多個物理磁盤的相對性能參數計算所述 RAID裝置的使用系數; 基于計算得到的所述使用系數在所述多個RAID裝置中排序所述RAID裝置;以及 基于上述排序從所述多個RAID裝置中的一個分配空間。
16. 如權利要求15所述的方法,其中,所述多個物理磁盤中的至少一個相比于所述多 個物理磁盤中的至少另外一個是不同類型的。
17. 如權利要求15所述的方法,其中,所述多個物理磁盤中的至少一個相比于所述多 個物理磁盤中的至少另外一個是不同尺寸的。
18. 如權利要求15所述的方法,其中,進一步包括: 新增磁盤給所述多個物理磁盤; 定義包括所述新增磁盤的新的RAID裝置; 基于所述多個RAID裝置與所述新的RAID裝置的各自的使用系數來排序多個RAID裝 置與所述新的RAID裝置;以及 基于上述排序從RAID裝置中分配空間。
19. 如權利要求18所述的方法,其中,所述新的RAID裝置可包括所述新增磁盤與所述 多個物理磁盤中的至少一個。
20. 如權利要求18所述的方法,其中,所述新的RAID裝置可從所述多個RAID裝置歸類 到單獨的組中。
【文檔編號】G06F17/30GK104094254SQ201280059163
【公開日】2014年10月8日 申請日期:2012年11月30日 優先權日:2011年12月2日
【發明者】M·J·克勒姆, M·H·皮特爾科 申請人:康佩倫特科技公司