專利名稱:用于改善性能的raid卷和驅(qū)動器組之間松耦合的制作方法
用于改善性能的RAID卷和驅(qū)動器組之間松耦合
背景技術(shù):
驅(qū)動器組可以是用來存儲卷數(shù)據(jù)的相關(guān)驅(qū)動器的集合。驅(qū)動器組可被指定為定義 了數(shù)據(jù)結(jié)構(gòu)和冗余模型的RAID等級。RAID卷可以是目標為數(shù)據(jù)I/O的主機可訪問邏輯單 元。驅(qū)動器組可包含多個卷。所述驅(qū)動器組內(nèi)的所有卷使用相同的物理驅(qū)動器集和以相同 RAID等級運行。驅(qū)動器組的驅(qū)動器可包括不同容量。所述卷組的可用容量可以是基于所述組中最 小驅(qū)動器的RAID因數(shù)容量,除了為存儲陣列配置數(shù)據(jù)保留的區(qū)域。驅(qū)動器組的可用容量可 以是所述可用容量減去任意已定義卷的容量??捎玫尿?qū)動器組容量可被用來創(chuàng)建附加卷或 擴展已有卷的容量。RAID卷可在所述驅(qū)動器組中的每一個驅(qū)動器上占用區(qū)域。RAID卷的區(qū)域都可以 具有自所述驅(qū)動器的開端的邏輯塊地址(LBAs)中相同偏移量以及邏輯塊地址(LBAs)中相 同長度。每一個可以是給定卷的部分的這樣區(qū)域可被稱為片段。卷的片段的集合可被稱為 卷幅度。驅(qū)動器組也可具有一個或幾個可用的幅度,每一個組成所述驅(qū)動器上未使用容量 的區(qū)域,具有相同偏移量和長度。在一個驅(qū)動器組內(nèi)的物理驅(qū)動器的數(shù)量可被稱為驅(qū)動器組的寬度。所述寬度影響 了在所述驅(qū)動器組內(nèi)RAID卷的性能和可訪問性。所述驅(qū)動器組越寬,更多的物理主軸可被 并行展開并且這提升了特定主機I/O輪廓的性能。但是,所述驅(qū)動器組越寬,其物理驅(qū)動器 之一會發(fā)生故障的風險可能越高。段大小可以是在控制器將數(shù)據(jù)寫給驅(qū)動器組的下一個驅(qū)動器之前寫給單個驅(qū)動 器的數(shù)據(jù)量。條帶可以是段的集合,一個在所述驅(qū)動器組的每一個驅(qū)動器上,所有都具有從 它們的驅(qū)動器開端的相同偏移量。因此,也可將卷視為條帶的集合。圖1和圖2描述了由n+1個驅(qū)動器組成的驅(qū)動器組。卷B可構(gòu)成n+1個片段,B_0, Β-1···Β-η。每一個片段包含多個段。例如,片段B-O可包含段-B(V段-B(V··段-B0k。條帶 跨越這些驅(qū)動器,例如,段-BO2、段112夂段-Bn2組成條帶化。卷B可由k+Ι個條帶構(gòu)成。這樣的RAID布局從某種意義上可以是算法的,其可以是一種簡單的計算以確定 哪一個物理驅(qū)動器LBA在所述驅(qū)動器組的哪一個驅(qū)動器上,對應(yīng)于特定的RAID卷的虛擬 LBA。當所述驅(qū)動器組的寬度定義了所述RAID卷的寬度時,所述RAID卷也可被認為是與所 述驅(qū)動器組緊耦合。驅(qū)動器組中的一個物理驅(qū)動器可能完全發(fā)生故障,因此其上的數(shù)據(jù)會不再是能被 訪問的。如果所述驅(qū)動器組可包括具有冗余的RAID等級(S卩,非RAID 0驅(qū)動器組),在所述 剩余驅(qū)動器上仍具有足夠的數(shù)據(jù)留下使得所述主機可依舊訪問所述數(shù)據(jù)。但是,除了 RAID 6和一些特定的RAID 1/10情況,所述驅(qū)動器組可不再包括冗余直到所述故障驅(qū)動器被替 換以及所述數(shù)據(jù)被重建。對于RAID 1/10,此重建可構(gòu)成將所有數(shù)據(jù)從鏡像驅(qū)動器備份到替換的驅(qū)動器。對 于RAID 5,此重建可構(gòu)成從所述驅(qū)動器組中殘留驅(qū)動器讀出每一個條帶(即,驅(qū)動器組寬 度-1段),使用奇偶校驗來計算所述丟失的段,以及將恢復(fù)段寫入所述替換的驅(qū)動器中。
相同方式可被用于在RAID 6 P+Q驅(qū)動器組中的單個驅(qū)動器故障,除了由于冗余信 息從驅(qū)動器組寬度-2段處可能對所述丟失段進行計算時。在所述故障驅(qū)動器被替換以及完成所述重建之前,第二驅(qū)動器故障將引起在所述 驅(qū)動器組中的數(shù)據(jù)的完全丟失,除了所述驅(qū)動器組被配置成容忍多個驅(qū)動器故障(例如, RAID 6)。存儲陣列可提供在所述存儲陣列中的未使用物理驅(qū)動器池作為熱備份。當一個物 理驅(qū)動器在具有冗余RAID等級(即,非RAID 0)的驅(qū)動器組中發(fā)生故障時,所述存儲陣列 可自動從所述熱備份驅(qū)動器池處分配一個替換驅(qū)動器并在所述熱備份驅(qū)動器上執(zhí)行所述 丟失數(shù)據(jù)的重建。一旦所述故障驅(qū)動器被替換,所述熱備份驅(qū)動器的內(nèi)容會被簡單地復(fù)制給所述替 換驅(qū)動器,被稱為回寫的過程。當回寫完成時,所述熱備份可被返回給所述熱備份池。所有指向經(jīng)歷所述重建的驅(qū)動器的寫入形成了對所述過程的性能瓶頸。因此,在 受影響的驅(qū)動器組中對任意RAID卷進行驅(qū)動器重建的過程中可能存在明顯的性能衰退。另外,在物理驅(qū)動器大小保持增長時,單個驅(qū)動器的重建時間顯著增加。SATA驅(qū)動 器當前可能具有超過ITB的容量以及所有這些數(shù)據(jù)將必須被重建和被寫入單個熱備份/替 換驅(qū)動器中。這延長了主機將在受影響驅(qū)動器組中經(jīng)歷RAID卷的性能衰退,其在驅(qū)動器組 可能沒有冗余(例如,對于RAID 5驅(qū)動器組)處也延長了時間。
發(fā)明內(nèi)容
本發(fā)明描述了一種用于在廉價磁盤冗余陣列(RAID)內(nèi)分配卷片段的系統(tǒng)和方法。一種在廉價磁盤冗余陣列(RAID)內(nèi)分配卷片段的方法,可包括(a)將第一邏輯 卷的一個或多個卷片段與一驅(qū)動器組中的第一驅(qū)動器集關(guān)聯(lián);以及(b)將第二邏輯卷的一 個或多個卷片段與在所述驅(qū)動器組中的第二驅(qū)動器集關(guān)聯(lián),其中所述驅(qū)動器組中的所述第 一驅(qū)動器集包括至少一個不是所述驅(qū)動器組中所述第二驅(qū)動器集的成員的驅(qū)動器。一種在廉價磁盤冗余陣列(RAID)內(nèi)分配卷片段的系統(tǒng),可包括(a)將第一邏輯 卷的一個或多個卷片段與在一驅(qū)動器組中的第一驅(qū)動器集關(guān)聯(lián)的構(gòu)件;以及(b)將第二邏 輯卷的一個或多個卷片段與在所述驅(qū)動器組中的第二驅(qū)動器集關(guān)聯(lián)的構(gòu)件,其中所述驅(qū)動 器組中的所述第一驅(qū)動器集包括至少一個不是所述驅(qū)動器組中所述第二驅(qū)動器集的成員 的驅(qū)動器。應(yīng)當可以理解,不管是上述概括的描述還是后面詳細的描述都僅僅是示例性和說 明性的,并不會是對所請求發(fā)明的必要限制。包括并組成說明書一部分的附圖揭示了本發(fā) 明的實施例,并和說明書一起用來解釋本發(fā)明的原理。
通過參考附圖,本發(fā)明的眾多優(yōu)點可以被本領(lǐng)域的技術(shù)人員更好地理解圖1示出了 RAID的高等級系統(tǒng)圖。圖2示出了 RAID的高等級系統(tǒng)圖。圖3示出了允許卷片段分配給RAID的高等級系統(tǒng)圖。
圖4示出了 RAID的高等級系統(tǒng)圖。圖5示出了 RAID的高等級系統(tǒng)圖。圖6示出了 RAID的高等級系統(tǒng)圖。圖7示出了高等級操作流程圖。圖8示出了高等級操作流程圖。圖9示出了高等級操作流程圖。圖10示出了高等級操作流程圖。圖11示出了高等級操作流程圖。圖12示出了高等級操作流程圖。圖13示出了高等級操作流程圖。圖14示出了高等級操作流程圖。
具體實施例方式在下面具體描述中,可以參考所附圖,其組成了此處的一部分。在所述附圖中,相 同的符號通常識別為相同的組件,除非上下文另有規(guī)定。在具體實施方式
、附圖和權(quán)利要求 中所述的說明性實施例不是限制性的。可采用其它實施例,以及進行不同的變化,而不脫離 此處所公開主題的精神和范圍。參照圖3,示出了包括計算裝置301、RAID控制器302以及RAID 303的大容量存 儲系統(tǒng)300的圖示表達。RAID控制器302可包括卷管理電路/軟件,其中RAID控制器302 能夠處理計算裝置301的讀/寫請求,所述請求訪問RAID 303上配置的各種邏輯卷。所述 RAID 303可包括具有η個驅(qū)動器的驅(qū)動器組。可將所述RAID 303的RAID卷片段與所述驅(qū)動器組進行松耦合,相對于先前所述 的1:1耦合。下面會在實例中對其進行說明參照圖4,三個RAID卷(例如,卷A,B和C)可被放置在6個驅(qū)動器的驅(qū)動器組上。 每一個RAID卷可包括三個卷片段(例如,分別地,卷片段A-0、A-I和A-2,卷片段B_0、B-I 和B-2以及卷片段C-O、C-I和C-2)。每一個RAID卷可具有一個相關(guān)的RAID卷寬度。RAID卷寬度可被定義為在一個 RAID卷中片段的數(shù)量,不考慮在驅(qū)動器組中驅(qū)動器的數(shù)量。其可以是以下情況寬度(RAID卷)彡寬度(驅(qū)動器組)例如,如圖3所示,所述RAID 303可具有的驅(qū)動器組寬度為6 (例如,驅(qū)動器0到 6)以及卷寬度為3。RAID 303可以是算法布局。除了傳統(tǒng)的驅(qū)動器組的相關(guān)性,RAID卷可以與每一個 其上可包括一片段的物理驅(qū)動器相關(guān)。例如,如圖3所示,RAID卷A可與驅(qū)動器0、驅(qū)動器 1和驅(qū)動器2相關(guān),而卷B可與驅(qū)動器2、驅(qū)動器3和驅(qū)動器4相關(guān)。每一個片段也可與從其各自物理驅(qū)動器的開端處的自身偏移量相關(guān)。RAID卷中的 各種不同片段在所述RAID卷大小的增長中可具有從它們相應(yīng)物理驅(qū)動器的開端處的不同 偏移量。例如,如圖3所示,卷片段B-0、卷片段B-I和卷片段B-2具有給定的卷片段大小, 例如1Mb,可在驅(qū)動器3、4和2中分別具有0、0和1Mb的偏移量。進一步地,在同一驅(qū)動器組內(nèi)的各個卷可具有不同的片段大小。例如,卷A可包括大小為1Mb的卷片段,而卷B可包括大小為2Mb的卷片段。這樣,卷片段C-I可具有1Mb的 偏移量,而卷片段C-2可具有2Mb的偏移量。從此偏移量信息,對應(yīng)于特定RAID卷虛擬LBA的特定物理驅(qū)動器上的物理LBA可 被計算出來。這樣的片段分布可允許用戶使用可支持變化的少于或等于所述驅(qū)動器組寬度的 RAID卷寬度的給定RAID等級來定義較寬的組。RAID卷寬度和驅(qū)動器組寬度之間的差異越 大,在所述驅(qū)動器組上的RAID卷片段的分布會越佳。當創(chuàng)建了 -RAID卷時,可分布這些片段使得每一個物理驅(qū)動器可包括與所述驅(qū)動 器組中任意其它驅(qū)動器不同的片段組合。更正式地,在驅(qū)動器上的每一個片段可與其重建 集(舊)關(guān)聯(lián),所述重建集可以是包含在所述RAID卷中剩余片段的驅(qū)動器的集合。如果在 一驅(qū)動器中的片段的所有重建集不相交,所述目標驅(qū)動器中的每一個片段可與所述驅(qū)動器 上其它片段獨立地被重建(即,驅(qū)動器重建可以并行方式處理)。如果在一個驅(qū)動器組中每一個驅(qū)動器上的所有片段具有不相交的重建集,所述驅(qū) 動器組可被認為是關(guān)于重建的完全不相交。這意味著無論哪一個驅(qū)動器發(fā)生故障,其所有 片段會由不相關(guān)驅(qū)動器集進行重建。再次參照圖4,展現(xiàn)了一種理想的片段分布。在這樣的分布中,沒有物理驅(qū)動器可 包括作為所述驅(qū)動器組中的任意其它驅(qū)動器的相同片段組合。在這樣的配置中如果驅(qū)動器 發(fā)生故障,將被讀出以重建所述片段的驅(qū)動器數(shù)量將遠大于所述RAID卷寬度。例如,如果2 個驅(qū)動器發(fā)生故障,驅(qū)動器0和驅(qū)動器1會包括用來重建片段A-2的片段(即片段A-O和 A-1),以及驅(qū)動器3和驅(qū)動器4會包括用來重建片段B-2的片段(即片段B-O和B-1)。這 樣,在執(zhí)行所述重建時,可從4個而不是2個驅(qū)動器中讀出所述存儲陣列。這樣的配置可通過保持在驅(qū)動器2上的片段A-2和B-2的各自重建集(舊)進行 定義 RS (A-2) = {驅(qū)動器 0,驅(qū)動器 1}RS (B-2) = {驅(qū)動器 3,驅(qū)動器 4}在另一實施例中,先前所示的專用熱備份方式的使用會被修改。例如,當在驅(qū)動 器組中的一個驅(qū)動器發(fā)生故障時,其片段可被重新分布在所述驅(qū)動器組的剩余驅(qū)動器范圍 內(nèi),而不是被提供給單個專用的熱備份。這可用于避免與來自多個卷的片段需要在同一熱 備份上被重建的專用熱備份相關(guān)的瓶頸。使用本發(fā)明,所述片段在可能時可在分離的驅(qū)動 器上被重建。進一步地,這樣的重新分布確保了來自同一 RAID卷的兩個片段不在同一物理 驅(qū)動器上結(jié)束。驅(qū)動器組可被認為具有的熱備份覆蓋率為1,當所述驅(qū)動器組中可存在充足的可 用容量使得在所述驅(qū)動器組中的任意驅(qū)動器可發(fā)生故障并使得所述驅(qū)動器組中仍會存在 充足幅度以保存所述故障驅(qū)動器的片段時。換句話說,如果具有最高可使用容量的驅(qū)動器 發(fā)生故障,所述系統(tǒng)仍將能夠基于所述驅(qū)動器組中的剩余驅(qū)動器來重建所述驅(qū)動器的片 段,(即,所述驅(qū)動器組中的驅(qū)動器上具有充足可用幅度以保存在故障驅(qū)動器上的所有片 段)。而且,將保持一個足夠保存在所述驅(qū)動器組中最大片段(不管所述片段會在哪一個驅(qū) 動器上)的可用幅度大小。驅(qū)動器組可被認為具有的熱備份覆蓋率為n,當所述驅(qū)動器組中的η個驅(qū)動器發(fā)生故障且在所述驅(qū)動器組中仍存在必要容量使得在所述驅(qū)動器組中可用幅度內(nèi)可重新構(gòu) 建所述故障驅(qū)動器中的所有片段時。注意這不一定意味著η個驅(qū)動器會同時發(fā)生故障而沒 有數(shù)據(jù)丟失。例如,如果一個RAID 5驅(qū)動器組包括為2的熱備份覆蓋率,但最多2個負載 的驅(qū)動器包括來自相同RAID卷的片段以及2個驅(qū)動器都發(fā)生故障,使得RAID卷會不再能 被訪問,無論所述驅(qū)動器組具有多大的可用容量。用戶可為一驅(qū)動器組定義所需的熱備份覆蓋率,S卩,1,2···η。當可創(chuàng)建卷時,所述 存儲陣列會分布片段使得所述分布會盡可能地接近理想,但是在此限制下,已配置的熱備 份覆蓋率會被保持。如果所述RAID卷的創(chuàng)建會減少所述熱備份覆蓋率,會警告并要求所述 用戶清楚地認識所述RAID卷創(chuàng)建行為帶來的附加后果。另外,當來自執(zhí)行所述重建的負載會被分布在更多驅(qū)動器范圍內(nèi),而不是采用傳 統(tǒng)方式以使得可以并行方式來執(zhí)行重建時,RAID卷進行重建的性能衰退將顯著減少。驅(qū)動器重建可被認為是并行的,如果其所有片段的重建可發(fā)生在所述驅(qū)動器組中 不同驅(qū)動器上。驅(qū)動器重建可被認為是完全并行的,如果其可以是并行且無任何驅(qū)動器上 的片段將被以與所述驅(qū)動器的片段的重建集內(nèi)驅(qū)動器相重疊的方式進行重建。這意味著如 果一個驅(qū)動器發(fā)生故障,每一個片段會以在讀和寫方面都獨立于所述驅(qū)動器上所有其它片 段的方式被重建。例如,參照圖5,展現(xiàn)了一種完全并行分布的實例。在驅(qū)動器2發(fā)生故障的情況中, 片段A-2可在驅(qū)動器5上根據(jù)片段A-O和A-2 (分別位于驅(qū)動器0和驅(qū)動器1上)來重建, 驅(qū)動器5不參與任意其它正在進行的片段重建。相同地,片段B-2可在驅(qū)動器6上根據(jù)片 段B-O和B-I (分別位于驅(qū)動器3和驅(qū)動器4上)來重建。以這樣的配置,所給驅(qū)動器僅僅 被用于讀操作或?qū)懖僮鳌⒄請D6,展現(xiàn)了一種部分并行分布的實例。在驅(qū)動器2發(fā)生故障的情況中,片段 A-2可在驅(qū)動器5上根據(jù)片段A-O和A-I (分別位于驅(qū)動器0和驅(qū)動器1上)來重建,驅(qū)動 器5不參與任意其它正在進行的片段重建。相同地,片段B-2可在驅(qū)動器1上根據(jù)片段B-O 和B-I (分別位于驅(qū)動器3和驅(qū)動器4上)來重建。但是,驅(qū)動器1也被讀出以重建片段 A-2,因此在所述分布中的重建僅僅是部分并行。在RAID卷寬度和驅(qū)動器組寬度之間的差別越大,可采用允許完全并行驅(qū)動重建 的配置的可能性越大。額外的驅(qū)動器會被添加給驅(qū)動器組以增加容量和寬度,因此重建可 盡可能快地進行。無論何時一驅(qū)動器被添加給驅(qū)動器組,所述存儲陣列可從現(xiàn)有驅(qū)動器中選出片段 并將它們移送給新驅(qū)動器,以更接近于在保持用戶限定熱備份覆蓋率同時展現(xiàn)完全并行特 性的理想片段分布。注意也有可能限定RAID卷,以使其布局降低到最初緊耦合RAID布局。例如,如果 RAID 5驅(qū)動器組可包括3個未使用的ITB驅(qū)動器以及用戶將RAID卷的寬度定義為3和容 量=3xlTB-3x為配置數(shù)據(jù)保留的容量。在這樣情況中,所述存儲陣列可為每一個ITB的驅(qū) 動器分配一個卷片段,且任意重建會完全類似傳統(tǒng)布局的方式進行。因此,為了完全利用本 發(fā)明特征的優(yōu)點,用戶應(yīng)定義一個卷寬度使得每一個片段會小到能與來自其它卷的其它片 段共享驅(qū)動器。圖7描述了一種展現(xiàn)與RAID內(nèi)分配卷片段相關(guān)的示范操作的操作流程700。在圖7和隨后附圖中包括了各種操作流程的實例,可參照圖3-6的上述實例和/或其它實例和語 境來提供討論和說明。但是,應(yīng)當理解,所述操作流程可被執(zhí)行于多個其它環(huán)境和語境,和/ 或在圖3-6的修改版本中。同樣,雖然以所示順序來展現(xiàn)所述各種操作流程,應(yīng)當理解,所 述各種操作可被執(zhí)行于其它而不是那些所示的順序,或可被同時地執(zhí)行。在開始的操作后,所述操作710描述了將第一邏輯卷的一個或多個卷片段與驅(qū)動 器組內(nèi)的第一驅(qū)動器集相關(guān)。例如,如圖3-6所示,RAID控制器302可使得所述RAID 303 將一個或多個卷片段(例如,卷片段A-0、A-1和A-2)與第一驅(qū)動器集(例如,分別地,驅(qū)動 器0、驅(qū)動器1和驅(qū)動器2、相關(guān)。操作720描述了將第二邏輯卷的一個或多個卷片段與所述驅(qū)動器組內(nèi)的第二驅(qū) 動器集相關(guān)。例如,如圖3-6所示,所述RAID控制器302可使得所述RAID 303將一個或多 個卷片段(例如,卷片段B-0、B-1和B-2)與第二驅(qū)動器集(例如,分別地,驅(qū)動器3、驅(qū)動 器4和驅(qū)動器幻相關(guān)。所述第一驅(qū)動器集(例如,與卷B相關(guān)的驅(qū)動器0、驅(qū)動器1和驅(qū)動器2、可包括至 少一個驅(qū)動器(例如,驅(qū)動器0),其不是所述驅(qū)動器組內(nèi)的第二驅(qū)動器集的成員(例如,與 卷B相關(guān)的驅(qū)動器3、驅(qū)動器4和驅(qū)動器2)。圖8描述了圖7的示范性操作流程700的替換實施例。圖8描述了其中所述相關(guān) 操作710可包括至少一個附加操作的示范性實施例。附加操作可包括操作802、操作804和 /或操作806。操作802描述了將所述第一驅(qū)動器集上的存儲空間分配給第一邏輯卷。例如,如 圖3-6所示,所述RAID控制器302可使得所述RAID 303分配第一驅(qū)動器集(例如,驅(qū)動器 0、驅(qū)動器1和驅(qū)動器幻上的存儲空間以存儲與給定邏輯卷(例如,卷A)相關(guān)的數(shù)據(jù)。所 述RAID控制器302可將各種存儲器地址指定為給定卷的成員地址。操作804描述了將卷片段大小指定給所述第一邏輯卷的一個或多個卷片段。例 如,如圖3-6所示,所述RAID控制器302可使得所述RAID 303將卷片段(例如,卷片段B-2) 指定為一存儲器大小(例如,1Mb)。在特定卷中的一個或多個卷片段的卷片段大小可具有 相同大小(例如,1Mb)。所有卷(例如,卷A、卷B和卷C)的卷片段大小可具有相同大小(例 如,1Mb)??商鎿Q地,在同一驅(qū)動器組中的不同卷可具有不同大小的片段(例如,卷A可具有 大小為1MB的卷片段,而卷B可具有大小為2MB的卷片段)。所述RAID控制器302可保持 每一個卷的元數(shù)據(jù),跟蹤它們各自片段、大小和每一個片段離所述驅(qū)動器開端處的偏移量 (以區(qū)段/邏輯塊)。操作806描述了將物理驅(qū)動器偏移量指定給所述第一邏輯卷的一個或多個卷片 段。例如,如圖3-6所示,所述RAID控制器302可使得所述RAID 303為卷片段指定物理驅(qū) 動器偏移量。所述偏移量可定義卷片段的第一地址距離驅(qū)動器物理開端的偏移。所述偏移 量可包括多個卷片段大小增量,卷片段的第一地址通過所述大小增量來偏移物理驅(qū)動器的 開端。例如,如圖3所示,卷片段B-2可具有關(guān)于驅(qū)動器2開端的1Mb偏移量。所述給定邏輯卷的第一卷片段(例如,卷片段B-O可具有為0的物理驅(qū)動器偏移 量)的物理驅(qū)動器偏移量可不同于所述邏輯卷的第二卷片段(例如,卷片段B-2可具有為 1的物理驅(qū)動器偏移量)的物理驅(qū)動器偏移量。
圖9描述了圖7的示范性操作流程700的替換實施例。圖9描述了其中所述操作 流程700可包括至少一個附加操作的示范性實施例。附加操作可包括操作910。操作910描述了將第一邏輯卷的一個或多個卷片段重建給所述驅(qū)動器組內(nèi)第二 驅(qū)動器集的一個或多個驅(qū)動器。例如,如圖3-6所示,當包括一個或多個卷(例如,卷B)的 卷片段的驅(qū)動器(例如,驅(qū)動器幻發(fā)生故障時,所述RAID控制器302可使得所述RAID 303 將一個或多個卷片段(例如,卷片段B-2)重建給不包括所述目標卷的另一片段的驅(qū)動器 (例如,僅僅包含卷A片段的驅(qū)動器1)。圖10描述了圖7的示范性操作流程700的替換實施例。圖10描述了其中所述操 作流程700可包括至少一個附加操作的示范性實施例。附加操作可包括操作1010。操作1010描述了將第一邏輯卷的一個或多個卷片段重建給不被包括在所述第一 驅(qū)動器集或所述第二驅(qū)動器集中的一個或多個驅(qū)動器。例如,如圖3-6所示,當包括一個或 多個卷(例如,卷A和卷B)的卷片段的驅(qū)動器(例如,驅(qū)動器2)發(fā)生故障時,所述RAID控 制器302可使得所述RAID 303將所述故障驅(qū)動器的一個或多個卷片段(例如,卷片段A-2 和卷片段B-幻重建給不包括所述故障驅(qū)動器的卷的另一片段的驅(qū)動器(例如,一個或多個 卷片段A-2和卷片段B-2可被重建給僅僅包含卷C片段的驅(qū)動器5)。圖11描述了圖7的示范性操作流程700的替換實施例。圖11描述了其中所述操 作流程700可包括至少一個附加操作的示范性實施例。附加操作可包括操作1110。操作1110描述了定義一個熱備份覆蓋率值。例如,如圖3-6所示,所述RAID控制 器302可接收來自所述計算裝置301的輸入(例如,用戶輸入)或可包括用來自動定義熱 備份覆蓋率值的內(nèi)部電路系統(tǒng)。驅(qū)動器組可被認為具有熱備份覆蓋率為n,當所述驅(qū)動器組 中的η個驅(qū)動器發(fā)生故障且在所述驅(qū)動器組中仍存在必要容量使得在所述驅(qū)動器組中可 用幅度內(nèi)可重新構(gòu)建所述故障驅(qū)動器中的所有片段時。例如,如圖3-6所示,所述RAID 303 可具有為1的熱備份覆蓋率,當為具有最高使用的容量的驅(qū)動器(例如,驅(qū)動器0、驅(qū)動器 2和驅(qū)動器3)存在必要驅(qū)動器空間以用來重建給剩余驅(qū)動器時(例如,驅(qū)動器1、驅(qū)動器4 或驅(qū)動器5必須具有必要存儲空間以提供驅(qū)動器0、驅(qū)動器2和驅(qū)動器3的重建)。進一步 地,足夠保存在所述驅(qū)動器組中最大片段的可用幅度大小可被保持(例如,如果卷片段A-O 大于卷片段C-1,會需要與卷片段A至少相同大小的可用幅度)。驅(qū)動器組可被認為具有熱 備份覆蓋率為n,當所述驅(qū)動器組中的η個驅(qū)動器發(fā)生故障且在所述驅(qū)動器組中仍存在必 要容量使得在所述驅(qū)動器組中可用幅度內(nèi)可重新構(gòu)建所述故障驅(qū)動器中的所有片段時。圖12描述了一種展現(xiàn)與RAID內(nèi)分配卷片段相關(guān)的示范操作的操作流程1200。在 圖12和隨后附圖中包括了各種操作流程的實例,可參照圖3-6的上述實例和/或其它實例 和語境來提供討論和說明。但是,應(yīng)當理解,所述操作流程可被執(zhí)行于多個其它環(huán)境和語 境,和/或在圖3-6的修改版本中。同樣,雖然以所示順序來展現(xiàn)所述各種操作流程,應(yīng)當 理解,所述各種操作可被執(zhí)行于其它而不是那些所示的順序,或可被同時地執(zhí)行。在開始的操作后,所述操作1210描述了為第一邏輯卷的第一卷片段定義一重建 集。例如,如圖3-6所示,所述RAID控制器302可使得所述RAID 303為第一邏輯卷的第一 卷片段定義一重建集。重建集可包括包含在上述RAID卷中剩余片段的驅(qū)動的集合。例如, 卷片段A-2的重建集可以是驅(qū)動器0和驅(qū)動器1。操作1220描述了根據(jù)所述第一邏輯卷的卷片段的重建集將第二邏輯卷的一卷片段指定給驅(qū)動器組中的一驅(qū)動器。例如,如圖3-6所示,所述RAID控制器302可使得所述 RAID 303將第一邏輯卷的一個或多個卷片段(例如,卷片段A-0、A-1和A-2)指定給一個 或多個驅(qū)動器(例如,分別地,驅(qū)動器0、驅(qū)動器1和驅(qū)動器幻。所述RAID控制器302可使 得所述RAID 303將第二邏輯卷的一個或多個卷片段(例如,卷片段B-0、B-I和B-幻指定 給一個或多個驅(qū)動器使得所述第一邏輯卷和所述第二卷的卷片段的重疊最少。圖13描述了圖12的示范性操作流程1200的替換實施例。圖13描述了其中所述 定義的操作1210可包括至少一個附加操作的示范性實施例。附加操作可包括操作1302。操作1302描述了定義在所述驅(qū)動器組中的包括與所述第一邏輯卷的第一卷片段 不同的所述第一邏輯卷的一個或多個卷片段的驅(qū)動器集。例如,如圖3-6所示,所述RAID 控制器302可使得所述RAID 303為第一邏輯卷的第一卷片段定義一重建集。重建集可包 括包含了上述RAID卷中剩余片段的驅(qū)動器集。例如,卷片段A-2的重建集可以是驅(qū)動器0 和驅(qū)動器1。進一步地,在一驅(qū)動器組中的兩個或多個卷的卷片段的重建集可以是不相交的 (例如,在所述驅(qū)動器組中的所有驅(qū)動器包括最多一個來自特定卷的卷片段)。圖14描述了圖12的示范性操作流程1200的替換實施例。圖12描述了其中所述 操作流程100可包括至少一個附加操作的示范性實施例。附加操作可包括操作1410、操作 1412和/或操作1414。操作1410描述了根據(jù)所述第一邏輯卷的卷片段的重建集來重建所述第一邏輯卷 的卷片段。例如,如圖3-6所示,在包括一個或多個卷(例如,卷B)的卷片段的驅(qū)動器(例 如,驅(qū)動器幻發(fā)生故障時,所述RAID控制器302可使得所述RAID 303將一個或多個卷片 段(例如,卷片段B-2)重建給不包括所述目標卷的另一片段的驅(qū)動器(例如,給一個未被 包括在其重建集中的驅(qū)動器)。操作1412描述了將所述第一邏輯卷的一個或多個卷片段重建給所述驅(qū)動器組中 第二驅(qū)動器集的一個或多個驅(qū)動器。例如,如圖3-6所示,在包括一個或多個卷(例如,卷 B)的卷片段的驅(qū)動器(例如,驅(qū)動器幻發(fā)生故障時,所述RAID控制器302可使得所述RAID 303將一個或多個卷片段(例如,卷片段B-2)重建給不包括所述目標卷的另一片段的驅(qū)動 器(例如,僅僅包含卷A片段的驅(qū)動器1)。操作1414描述了將所述第一邏輯卷的一個或多個卷片段重建給未被包括在所述 第一驅(qū)動器集或所述第二驅(qū)動器集中的一個或多個驅(qū)動器。例如,如圖3-6所示,在包括 一個或多個卷(例如,卷A和卷B)的卷片段的驅(qū)動器(例如,驅(qū)動器幻發(fā)生故障時,所述 RAID控制器302可使得所述RAID 303將所述故障驅(qū)動器的一個或多個卷片段(例如,卷片 段A-2和卷片段B-幻重建給不包括所述故障驅(qū)動器的卷的另一片段的驅(qū)動器(例如,將一 個或多個卷片段A-2和卷片段B-2重建給僅僅包含卷C片段的驅(qū)動器5)。圖15描述了圖12的示范性操作流程1200的替換實施例。圖12描述了其中所述 操作流程100可包括至少一個附加操作的示范性實施例。附加操作可包括操作1510。操作1510描述了定義一熱備份覆蓋率值。例如,如圖3-6所示,所述RAID控制器 302可接收來自所述計算裝置301的一輸入(例如,用戶輸入)或可包括用來自動定義熱備 份覆蓋率值的內(nèi)部電路系統(tǒng)。當驅(qū)動器組中的η個驅(qū)動器發(fā)生故障且在所述驅(qū)動器組中仍 存在必要容量使得在所述驅(qū)動器組中可用幅度內(nèi)可重新構(gòu)建所述故障驅(qū)動器中的所有片段時,驅(qū)動器組可被認為具有熱備份覆蓋率為η。例如,如圖3-6所示,當為具有最高可使用 容量的驅(qū)動器(例如,驅(qū)動器0、驅(qū)動器2和驅(qū)動器3)存在必要驅(qū)動器空間以用來重建給剩 余驅(qū)動器時(例如,驅(qū)動器1、驅(qū)動器4或驅(qū)動器5必須具有必要存儲空間以提供驅(qū)動器0、 驅(qū)動器2和驅(qū)動器3的重建),所述RAID303可具有為1的熱備份覆蓋率。進一步地,足夠 保存在所述驅(qū)動器組中最大片段的可用幅度大小可被保持(例如,如果卷片段A-O大于卷 片段C-I,則需要與卷片段A至少相同大小的可用幅度)。當驅(qū)動器組中的η個驅(qū)動器發(fā)生 故障且在所述驅(qū)動器組中仍存在必要容量使得在所述驅(qū)動器組中可用幅度內(nèi)可重新構(gòu)建 所述故障驅(qū)動器中的所有片段時,驅(qū)動器組可被認為具有熱備份覆蓋率為η。應(yīng)當相信,通過前述將理解本公開和許多其伴隨的優(yōu)點。同樣應(yīng)當相信,顯而易 見,其組成的形式、結(jié)構(gòu)和布置可以進行不同的變化而不脫離本公開的范圍和精神或不犧 牲所有其物質(zhì)優(yōu)點。這里以前所述的形式只是示例說明,下列權(quán)利要求的目的是包含和包 括此類變化。上述具體描述可包括通過使用方框圖、流程圖和/或示例提出所述裝置和/或過 程的不同實施例。在這樣方框圖、流程圖和/或示例的范圍內(nèi)包含一個或多個功能和/或 操作,應(yīng)當理解,本領(lǐng)域技術(shù)人員可實施在這樣方框圖、流程圖和/或示例的內(nèi)的每一個功 能和/或操作,獨立地和/或共同地,使用寬范圍的硬件、軟件、固件或?qū)嶋H上它們的任意組 合。在一實施例中,此處所述主題的幾個部分可通過專用集成電路(ASICs)、現(xiàn)場可編程門 陣列(FPGAs)、數(shù)字信號處理器(DSPs)或其它集成形式來進行實施。但是,本領(lǐng)域技術(shù)人員 將認識到,此處公開的實施例的某些方面,整體地或部分地、可等效地以集成電路來實施, 類似于在一個或多個計算機上運行的一個或多個計算機程序(例如,在一個或多個計算機 系統(tǒng)上運行的一個或多個程序)、在一個或多個處理處理器上運行的一個或多個程序(例 如,在一個或多個微處理器上運行的一個或多個程序)、固件或?qū)嶋H上它們的任意組合,以 及上述設(shè)計電路和/或為軟件和或固件寫代碼很好地處于根據(jù)本發(fā)明的本領(lǐng)域技術(shù)人員 的技能內(nèi)。另外,本領(lǐng)域技術(shù)人員將領(lǐng)會到,此處所述主題的結(jié)構(gòu)會能夠被分布為各種形式 的程序產(chǎn)品,以及其被此處所述主題的示范性實施例所采用而不考慮用來實際執(zhí)行所述分 布的信號承載媒體的特定類型。信號承載媒體的示例包括,但可不限于可記錄類型的媒 體,例如軟盤、硬盤、光盤(⑶)、數(shù)字視頻光盤(DVD)、數(shù)字磁帶、計算機存儲器等;和傳輸類 型的媒體,例如數(shù)字和/或模擬通信媒體(例如,光纜、波導(dǎo)、有線通信鏈路、無線通信鏈路 (例如,發(fā)送器、接收器、發(fā)送邏輯、接收邏輯等)等)。本領(lǐng)域技術(shù)人員將認識到,所述技術(shù)的狀態(tài)可包括被處理到在系統(tǒng)各個方面的硬 件、軟件和/或固件實施中保留較少區(qū)別處的位置;所述硬件、軟件和/或固件的使用一般 (但不總是,其中在特定語境中,在硬件和軟件之間的選擇會變得有意義)可以是一種展現(xiàn) 成本效率平衡的設(shè)計選擇。本領(lǐng)域技術(shù)人員將領(lǐng)會到,存在各種工具可被用來影響到這里 所述的過程和/或系統(tǒng)和/或其它技術(shù)(例如,硬件、軟件和/或固件),以及優(yōu)選工具將隨 語境而變化,所述語境中所述過程和/或系統(tǒng)和/或其它技術(shù)會被展現(xiàn)。例如,如果實施者 確定速度和精確度會是最重要的,實施者會選擇大體上為硬件和/或固件的工具;或者,如 果靈活性會是最重要的,實施者會選擇大體上為軟件的實施方案;或許,仍可選擇地,實施 者會選擇硬件、軟件和/或固件的一些組合。因此,存在幾種可能的工具可被用來影響到這里所述的過程和/或系統(tǒng)和/或其它技術(shù),沒有一個會在本質(zhì)上優(yōu)于其它,其中任意將被使 用工具的選擇可以基于其中所述工具將被展現(xiàn)的語境以及實施者所關(guān)注的具體對象(例 如,速度、靈活性或可預(yù)測性),其中的任意一個可發(fā)生變化。本領(lǐng)域技術(shù)人員將認識到,所 述實現(xiàn)方案的視覺方面將一般地采用視覺主導(dǎo)的硬件、軟件和或固件。
權(quán)利要求
1.一種在廉價磁盤冗余陣列(RAID)內(nèi)分配卷片段的方法,所述方法包括將一第一邏輯卷的一個或多個卷片段與一驅(qū)動器組中的一第一驅(qū)動器集關(guān)聯(lián);將一第二邏輯卷的一個或多個卷片段與所述驅(qū)動器組中的一第二驅(qū)動器集關(guān)聯(lián),其中,所述驅(qū)動器組中的所述第一驅(qū)動器集包括至少一個不是所述驅(qū)動器組中的所述 第二驅(qū)動器集的一成員的驅(qū)動器。
2.如權(quán)利要求1所述的方法,其中將第一邏輯卷的一個或多個卷片段與驅(qū)動器組中的 第一驅(qū)動器集關(guān)聯(lián)進一步包括將所述第一驅(qū)動器集上的存儲空間分配給所述第一邏輯卷。
3.如權(quán)利要求2所述的方法,其中將所述第一驅(qū)動器集上的存儲空間分配給所述第一 邏輯卷進一步包括將一卷片段大小指定給所述第一邏輯卷的所述一個或多個卷片段;和將一物理驅(qū)動器偏移量指定給所述第一邏輯卷的所述一個或多個卷片段。
4.如權(quán)利要求3所述的方法,其中所述第一邏輯卷的所述一個或多個卷片段的第一卷 片段的物理驅(qū)動器偏移量不同于所述第一邏輯卷的所述一個或多個卷片段的第二卷片段 的物理驅(qū)動器偏移量。
5.如權(quán)利要求1所述的方法,進一步包括將所述第一邏輯卷的一個或多個卷片段重建給所述驅(qū)動器組中所述第二驅(qū)動器集的 一個或多個驅(qū)動器。
6.如權(quán)利要求1所述的方法,進一步包括將所述第一邏輯卷的一個或多個卷片段重建給一個或多個未被包括在所述第一驅(qū)動 器集或所述第二驅(qū)動器集中的驅(qū)動器。
7.如權(quán)利要求1所述的方法,進一步包括定義一熱備份覆蓋率值。
8.一種在廉價磁盤冗余陣列(RAID)內(nèi)分配卷片段的系統(tǒng),其包括用于將一第一邏輯卷的一個或多個卷片段與在一驅(qū)動器組中的一第一驅(qū)動器集關(guān)聯(lián) 的構(gòu)件;用于將一第二邏輯卷的一個或多個卷片段與在所述驅(qū)動器組中的一第二驅(qū)動器集關(guān) 聯(lián)的構(gòu)件,其中,所述驅(qū)動器組中的所述第一驅(qū)動器集包括至少一個不是所述驅(qū)動器組中的所述 第二驅(qū)動器集的一成員的驅(qū)動器。
9.一種在廉價磁盤冗余陣列(RAID)內(nèi)分配卷片段的方法,所述方法包括為一第一邏輯卷的一第一卷片段定義一重建集;根據(jù)所述第一邏輯卷的所述卷片段的所述重建集將一第二邏輯卷的一卷片段指定給 一驅(qū)動器組內(nèi)的一驅(qū)動器。
10.如權(quán)利要求9所述的方法,其中為第一邏輯卷的第一卷片段定義重建集包括定義所述驅(qū)動器組內(nèi)的一驅(qū)動器集,該驅(qū)動器集包括不同于所述第一邏輯卷的所述第 一卷片段的所述第一邏輯卷的一個或多個卷片段。
11.如權(quán)利要求9所述的方法,其中所述第一邏輯卷的所述第一卷片段的所述重建集 與所述第二邏輯卷的一個或多個卷片段的一重建集不相交。
12.如權(quán)利要求9所述的方法,進一步包括根據(jù)所述第一邏輯卷的所述卷片段的所述重建集重建所述第一邏輯卷的一卷片段。
13.如權(quán)利要求12所述的方法,其中所述根據(jù)所述第一邏輯卷的所述卷片段的所述重 建集重建所述第一邏輯卷的卷片段進一步包括將所述第一邏輯卷的一個或多個卷片段重建給所述驅(qū)動器組內(nèi)的所述第二驅(qū)動器集 的一個或多個驅(qū)動器。
14.如權(quán)利要求12所述的方法,其中所述根據(jù)所述第一邏輯卷的所述卷片段的所述重 建集重建所述第一邏輯卷的卷片段進一步包括將所述第一邏輯卷的一個或多個卷片段重建給一個或多個未被包括在所述第一驅(qū)動 器集或所述第二驅(qū)動器集中的驅(qū)動器。
15.如權(quán)利要求9所述的方法,進一步包括 定義一熱備份覆蓋率值。
16.一種廉價磁盤冗余陣列(RAID),其包括分布在一驅(qū)動器組的一第一驅(qū)動器集內(nèi)的一第一邏輯卷的一個或多個卷片段; 分布在所述驅(qū)動器組的一第二驅(qū)動器集內(nèi)的一第二邏輯卷的一個或多個卷片段; 其中所述第一驅(qū)動器集包括一個或多個未被包括在所述第二驅(qū)動器集中的磁盤。
全文摘要
本公開描述了一種在廉價磁盤冗余陣列(RAID)內(nèi)分配卷片段的系統(tǒng)和方法。所述在廉價磁盤冗余陣列(RAID)內(nèi)分配卷片段的系統(tǒng)和方法可包括(a)將第一邏輯卷的一個或多個卷片段與在驅(qū)動器組中的第一驅(qū)動器集關(guān)聯(lián);以及(b)將第二邏輯卷的一個或多個卷片段與在所述驅(qū)動器組中的第二驅(qū)動器集關(guān)聯(lián),其中所述驅(qū)動器組中的第一驅(qū)動器集包括至少一個不是所述驅(qū)動器組中第二驅(qū)動器集的成員的驅(qū)動器。
文檔編號G06F12/00GK102150137SQ200980136022
公開日2011年8月10日 申請日期2009年3月31日 優(yōu)先權(quán)日2008年10月31日
發(fā)明者馬丁·杰斯 申請人:Lsi公司