專利名稱:半靜態(tài)奇偶性分布技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲系統(tǒng)陣列,具體而言,涉及一種在存儲陣列的存儲設(shè)備中高效地分配奇偶性塊(parity block)的系統(tǒng)。
背景技術(shù):
存儲系統(tǒng)通常包括一個或多個可以按需要將信息輸入到其中以及從其中獲取信息的存儲設(shè)備。存儲系統(tǒng)包括存儲操作系統(tǒng),所述存儲操作系統(tǒng)尤其通過啟用支持由系統(tǒng)實現(xiàn)的存儲服務(wù)的存儲操作功能性地組織該系統(tǒng)。可以根據(jù)各種存儲結(jié)構(gòu)實現(xiàn)所述存儲系統(tǒng),包括但不限于網(wǎng)絡(luò)連接存儲(network-attached storage)環(huán)境、存儲區(qū)域網(wǎng)絡(luò)和直接連接到客戶端或者主機的磁盤組件。存儲設(shè)備通常是組成磁盤陣列的磁盤驅(qū)動器,其中術(shù)語“磁盤”通常描述獨立旋轉(zhuǎn)磁介質(zhì)存儲設(shè)備。在本文中的術(shù)語磁盤的意義和硬盤驅(qū)動器(HDD)或者直接存取存儲設(shè)備(DASD)是一樣的。
磁盤陣列上的信息的存儲優(yōu)選地是以一個或多個存儲“卷”的方式實現(xiàn)的,所述存儲“卷”包括一簇物理磁盤,定義了磁盤空間的總體邏輯配置。卷內(nèi)的磁盤通常組成一個或多個組,其中每個組作為獨立(或者廉價)磁盤冗余陣列(RAID)工作。在這里,RAID組被定義為多個磁盤和與那些磁盤有關(guān)的地址/塊空間。術(shù)語“RAID”和它的各種實現(xiàn)方式是公知的,并且已經(jīng)在由D.A.Patterson、G.A.Gibson和R.H.Katz所撰寫的“A Case for Redundant Arrays ofInexpensive Disks(RAID)”(Proceeding of the InternationalConference on Management of data(SIGMOD),June 1988)中公開。
存儲系統(tǒng)的存儲操作系統(tǒng)可以實現(xiàn)文件系統(tǒng)以便將信息邏輯組織為磁盤上的目錄、文件和塊的分級結(jié)構(gòu)。例如,每個“磁盤上(on-disk)”文件可以以配置成存儲諸如文件實際數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu)集的方式實現(xiàn),也就是磁盤存儲塊。存儲操作系統(tǒng)還可以實現(xiàn)根據(jù)寫入和讀出操作對向磁盤存儲信息或者從磁盤檢索信息進(jìn)行管理的RAID系統(tǒng)。在存儲在例如磁盤塊號空間中的磁盤上的信息和文件系統(tǒng)組織的信息之間通常存在一對一的映射。
一種常用類型的文件系統(tǒng)是“原地寫入(write in-place)”文件系統(tǒng),這種文件系統(tǒng)的一個實例是傳統(tǒng)的伯克利(Berkeley)快速文件系統(tǒng)。在原地寫入文件系統(tǒng)中,諸如數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)在磁盤上的位置通常是固定的。數(shù)據(jù)塊的變化“原地”進(jìn)行;如果對文件的更新擴展了文件的數(shù)據(jù)量,那么分配另外的數(shù)據(jù)塊。另一種類型的文件系統(tǒng)是隨地寫入(write-anywhere)文件系統(tǒng),這種文件系統(tǒng)不重寫磁盤上的數(shù)據(jù)。如果磁盤上的數(shù)據(jù)塊被從磁盤檢索(讀取)到存儲系統(tǒng)的存儲器中并被新數(shù)據(jù)“弄臟”,那么數(shù)據(jù)塊被存儲(寫入)至磁盤上新的位置以便借此優(yōu)化寫入性能。隨地寫入文件系統(tǒng)最初可以假定最優(yōu)布局以便數(shù)據(jù)基本上連續(xù)地排列在磁盤上。特別對順序讀出操作而言,該最優(yōu)磁盤布局導(dǎo)致指向磁盤的有效存取操作。配置成對存儲系統(tǒng)進(jìn)行操作的隨地寫入文件系統(tǒng)的實例是隨地寫入文件布局(WriteAnywhere File Layout,WAFLTM)文件系統(tǒng),其可以從NetworkAppliance公司(Sunnyvale,California)獲得。
大多數(shù)RAID的實施方式通過下述方式改善數(shù)據(jù)存儲的可靠性/完整性跨越RAID組中指定數(shù)目的物理磁盤冗余寫入數(shù)據(jù)“條”;以及適當(dāng)存儲關(guān)于條帶化數(shù)據(jù)的冗余信息。當(dāng)磁盤發(fā)生故障時,例如奇偶性信息之類的冗余信息使得丟失數(shù)據(jù)能夠恢復(fù)。通過跨越多個存有不同數(shù)據(jù)的類似磁盤對特殊字長(通常是一位)的數(shù)據(jù)求和(通常以2為模)、然后將結(jié)果存儲在另外的類似磁盤中,可以計算奇偶值。也就是說,在由每一個磁盤的對應(yīng)位置上的位組成的1位寬的向量上可以計算奇偶性。當(dāng)在1位寬的向量上計算時,奇偶性可以是計算而來的和或者它的補碼;這些分別被稱為偶數(shù)和奇數(shù)奇偶性。在1位向量上的加減法都等于異-或(XOR)邏輯操作。然后數(shù)據(jù)被保護(hù)以避免任一個磁盤,或者任一個磁盤上任一部分?jǐn)?shù)據(jù)的丟失。如果存儲奇偶性的磁盤丟失,那么可以根據(jù)數(shù)據(jù)重新生成奇偶性。如果一個數(shù)據(jù)磁盤丟失,那么通過將幸存數(shù)據(jù)磁盤的內(nèi)容加在一起然后從所存儲的奇偶性減去所述結(jié)果,可以重新生成數(shù)據(jù)。
通常,磁盤被分成奇偶性組,每個奇偶性組包括一個或多個數(shù)據(jù)磁盤和奇偶性磁盤。奇偶性集合是塊的集合,包括若干數(shù)據(jù)塊和一個奇偶性塊,其中奇偶性塊是所有數(shù)據(jù)塊的XOR。奇偶性組是從其中選擇一個或多個奇偶性集合的磁盤的集合。磁盤空間被分成條帶,其中每個條帶包含來自每個磁盤的一個塊。一個條帶中的塊通常處于奇偶性組中每個磁盤上相同的位置。在一個條帶內(nèi),除一個塊以外全部塊都包含數(shù)據(jù)(“數(shù)據(jù)塊”),而所述一個塊包含對所有數(shù)據(jù)進(jìn)行XOR計算而來的奇偶性(“奇偶性塊”)。
如在此使用的,術(shù)語“編碼”意指對預(yù)定數(shù)據(jù)塊子集計算冗余值,而術(shù)語“解碼”意指利用數(shù)據(jù)塊的子集和冗余值、通過與冗余計算相同的處理重建數(shù)據(jù)或者奇偶性塊。如果奇偶性組中的一個磁盤發(fā)生故障,那么那個磁盤的內(nèi)容可以通過計算剩余數(shù)據(jù)塊的全部內(nèi)容的總和并從奇偶性塊中減去該結(jié)果來解碼(重建)在備用的一個或者多個磁盤上。因為1位字段上的二進(jìn)制補碼和及差都等于XOR操作,所以該重建是由全部幸存數(shù)據(jù)和奇偶性塊的XOR結(jié)果組成的。類似地,如果奇偶性磁盤丟失,那么可以根據(jù)幸存的數(shù)據(jù)以同樣的方式重新計算。
如果奇偶性塊全部存儲在一個磁盤上,借此提供包含全部的(并且僅包含)奇偶性信息的單個磁盤,那么提供RAID-4級實施方式。因為RAID-4實施方式固定了每個RAID組中奇偶性信息的位置,所以其概念上是高級RAID(也就是與條帶化和鏡像相比)的最簡單形式。特別地,RAID-4實施方式避免了單個附加磁盤的單個磁盤錯誤,同時使得將數(shù)據(jù)磁盤逐漸添加到RAID組中十分容易。
如果奇偶性塊以旋轉(zhuǎn)模式包含在每個條帶的不同磁盤中,那么所述實施方式是RAID-5。使用高級RAID技術(shù)的大多數(shù)的商用實施方式使用RAID-5級實施方式,所述實施方式分布奇偶信息。選擇RAID-5實施方式的動機在于對大多數(shù)靜態(tài)文件系統(tǒng)而言利用RAID-4實施方式將限制寫入處理量。這種靜態(tài)文件系統(tǒng)趨向跨越磁盤陣列中的多個條帶分散寫入數(shù)據(jù),從而促使奇偶性磁盤找尋每個寫入條帶。然而,因為諸如WAFL文件系統(tǒng)的隨地寫入文件系統(tǒng)將寫入數(shù)據(jù)集中在少量鄰近的條帶上,所以其不具有這個問題。
在隨地寫入文件系統(tǒng)中使用RAID-4級實施方式是實現(xiàn)不斷增加容量同時保持性能的理想方式;然而存在一些“隱藏的”負(fù)面效應(yīng)。第一,在RAID-5實施方式中RAID組中的全部磁盤均可用于讀取通信量,在RAID-4實施方式中磁盤中的一個(奇偶性磁盤)不參與這種通信量。雖然對大的RAID組大小而言該效應(yīng)是可忽略的,但是由于例如有限數(shù)量的可用磁盤或更大磁盤的重建時間增加,所以那些組大小一直在減少。因為磁盤的尺寸繼續(xù)增加,所以小的RAID組配置變得更加有吸引力。但是這增加了在RAID-4配置中不能用于讀取操作的磁盤部分。因此使用RAID-4級實施方式可導(dǎo)致每秒讀取操作的不可忽略的損失。第二,當(dāng)新的磁盤被添加到完整卷中時,隨地寫入文件系統(tǒng)傾向于將大部分寫入數(shù)據(jù)通信量引導(dǎo)到新的磁盤,在所述新的磁盤中具有大部分可用空間。
在磁盤陣列的RAID-5級實施方式中,RAID系統(tǒng)通常跟蹤分配的數(shù)據(jù)。所以,RAID系統(tǒng)以固定模式保留奇偶性塊,所述固定模式易于計算并且實現(xiàn)了對非數(shù)據(jù)(奇偶性)塊的有效識別。然而,添加新的專用磁盤至RAID-5級實施方式的RAID組中通常需要跨越陣列中每個條帶的舊的和新的磁盤重新定位奇偶信息以保持該固定模式。奇偶信息的重新配置通常需要使用復(fù)雜的(并且昂貴的)奇偶性塊重新分布方案以及復(fù)制奇偶性塊和數(shù)據(jù)塊二者以符合新的分布,其中所述奇偶性塊重新分布方案“掃過”舊的和新的磁盤。該奇偶性重新分布方案還需要這樣的機制,所述機制識別哪些塊包含數(shù)據(jù)并確保對每個條帶而言沒有分配太多的數(shù)據(jù)塊以便存在充足的空間以存儲奇偶信息。由于這種方案的復(fù)雜性和成本,大多數(shù)的RAID-5實施方式放棄向RAID組中添加專用磁盤的能力,相反,使用固定的RAID組大小(通常在4-8個磁盤這樣的范圍)。然后每次磁盤容量都被增加完整的RAID組。此外,利用小的RAID組導(dǎo)致高的奇偶校驗開銷,而利用大的RAID組意味著增加容量需要花費很高的成本。
因此,希望提供一種分布系統(tǒng),其使存儲系統(tǒng)能夠平均地或者近乎平均地在系統(tǒng)的磁盤之間分布奇偶性,同時保持逐漸增加磁盤的能力。
此外,希望提供一種分布系統(tǒng),其使得存儲系統(tǒng)的隨地寫入文件系統(tǒng)能夠在更小(RAID組)配置下以更好的性能運行。
發(fā)明內(nèi)容
本發(fā)明通過提供一種跨越陣列中的磁盤分布奇偶性的半靜態(tài)(semi-static)分布技術(shù)克服了現(xiàn)有技術(shù)的缺點。根據(jù)所述技術(shù)的說明性的實施方式,以保持磁盤的條帶之間的奇偶性塊的固定模式的方式跨越陣列中的磁盤分布(分配)奇偶性。當(dāng)一個或多個磁盤被添加到陣列中時,所述半靜態(tài)技術(shù)以不需要重新計算奇偶性或者移動任何數(shù)據(jù)塊的方式重新分布奇偶性。值得注意的是,奇偶性信息實際上沒有移動;所述技術(shù)僅僅涉及將每個預(yù)先存在的磁盤中的一些奇偶性塊分配至新近添加的磁盤(或者保留)中的變化。舉例來說,例如在第一預(yù)先存在的磁盤上存儲奇偶性的預(yù)先存在的塊可以繼續(xù)存儲奇偶性;或者,新添加磁盤上的塊可以被分配用于存儲條帶的奇偶性,其“釋放”第一個磁盤上的預(yù)先存在的奇偶性塊以存儲文件系統(tǒng)數(shù)據(jù)。
有利地,當(dāng)磁盤被添加到陣列中時,半靜態(tài)分布允許那些保留(條帶中的)奇偶性的塊發(fā)生改變。在條帶的塊之間發(fā)生重新分配以重新平衡奇偶性從而避免在寫入通信期間具有奇偶性優(yōu)勢的磁盤變“熱”(即,比其它磁盤的使用更頻繁)的情況。所述新穎的分布技術(shù)適用于單個磁盤故障校正,并且可以被擴展至應(yīng)用于兩個(或者更多)磁盤丟失保護(hù)。此外,所述半靜態(tài)分布技術(shù)具有改善磁盤限制(disk-bound)結(jié)構(gòu)中的性能的潛能,并同時保持一次一個或多個磁盤地向卷添加磁盤的能力。
通過結(jié)合附圖參考以下說明可以更透徹地理解本發(fā)明的上述和其他優(yōu)點,在所述附圖中相同的附圖標(biāo)記指示相同的或者功能類似的部件圖1是可以有利地結(jié)合本發(fā)明使用的存儲系統(tǒng)的示意性方框圖;圖2是舉例說明根據(jù)本發(fā)明的半靜態(tài)分布技術(shù)的奇偶性分配的磁盤陣列的示意圖;圖3是舉例說明根據(jù)所述半靜態(tài)分布技術(shù)的說明性實施方式、在陣列的磁盤之間分布奇偶性的一系列步驟的流程圖;以及圖4是舉例說明根據(jù)所述半靜態(tài)分布技術(shù)的各種組大小的重復(fù)間隔的奇偶性分配表的框圖。
具體實施例方式
圖1是可以有利地結(jié)合本發(fā)明使用的存儲系統(tǒng)100的示意性方框圖。在該說明性的實施方式中,存儲系統(tǒng)100包括通過系統(tǒng)總線125互連的處理器122、存儲器124以及存儲裝置適配器128。存儲器124包括可由處理器和適配器尋址的存儲位置,用于存儲與本發(fā)明有關(guān)的軟件程序代碼和數(shù)據(jù)結(jié)構(gòu)。處理器和適配器可以包括被配置成執(zhí)行軟件代碼和操作數(shù)據(jù)結(jié)構(gòu)的處理元件和/或邏輯電路。對所屬領(lǐng)域的技術(shù)人員而言顯而易見的是包括各種計算機可讀介質(zhì)在內(nèi)的其他處理和存儲裝置也可以用于存儲和執(zhí)行與在此描述的具有創(chuàng)造性的技術(shù)有關(guān)的程序指令。
存儲操作系統(tǒng)150尤其通過啟用由存儲系統(tǒng)執(zhí)行的存儲操作功能性地組織系統(tǒng)100,其中存儲操作系統(tǒng)150的一部分通常駐存在存儲器中并由處理元件執(zhí)行。存儲操作系統(tǒng)實現(xiàn)高級模塊,以將信息邏輯組織為陣列中磁盤上的目錄、文件和塊的分級結(jié)構(gòu)。操作系統(tǒng)150還實現(xiàn)存儲模塊,該存儲模塊根據(jù)寫入和讀出操作管理向磁盤中存儲信息或從磁盤中檢索信息。應(yīng)當(dāng)注意的是高級模塊和存儲模塊可以以軟件、硬件、固件或者其組合的方式來實現(xiàn)。
特別地,高級模塊可以包括文件系統(tǒng)160或者諸如數(shù)據(jù)庫之類的其他模塊,所述其他模塊用于在磁盤陣列中為自身分配存儲空間并控制該陣列上的數(shù)據(jù)的布局(layout)。此外,存儲模塊可以包括被配置成利用冗余存儲算法計算冗余(例如奇偶性)信息并且恢復(fù)磁盤故障的磁盤陣列控制系統(tǒng)或者RAID系統(tǒng)170。磁盤陣列控制系統(tǒng)(“磁盤陣列控制器”)或者RAID系統(tǒng)還可以響應(yīng)于陣列上固定數(shù)據(jù)的放置而利用代數(shù)的和算法的運算計算冗余信息。應(yīng)當(dāng)注意的是術(shù)語“RAID系統(tǒng)”和“磁盤陣列控制系統(tǒng)”或“磁盤陣列控制器”的意義是一樣的,并因此術(shù)語“RAID系統(tǒng)”的使用不表示僅利用公知的RAID技術(shù)的一種。相反,本發(fā)明的RAID系統(tǒng)采用了具有創(chuàng)造性的半靜態(tài)奇偶性分布技術(shù)。如在此描述的那樣,文件系統(tǒng)或者數(shù)據(jù)庫作出關(guān)于將數(shù)據(jù)放置在陣列上哪里的決定并將所述決定發(fā)送至RAID系統(tǒng)。
在該說明性的實施方式中,存儲操作系統(tǒng)優(yōu)選地是NetAppDataONTAPTM操作系統(tǒng),其可以從Network Appliance公司(Sunnyvaly,California)獲得,所述操作系統(tǒng)實現(xiàn)了具有磁盤上(on-disk)格式表示的隨地寫入文件布局(WAFLTM)文件系統(tǒng),其是利用例如4千字節(jié)(kB)WAFL塊的基于塊的文件系統(tǒng)。然而,特別應(yīng)當(dāng)注意的是根據(jù)在此描述的發(fā)明原則可以改善例如包括原地寫入文件系統(tǒng)的任何適當(dāng)?shù)拇鎯Σ僮飨到y(tǒng)以供使用。因此,當(dāng)采用術(shù)語“WAFL”時,其應(yīng)當(dāng)被廣泛地理解為涉及以其他方式適于本發(fā)明的示范的任何存儲操作系統(tǒng)。
如在此使用的,術(shù)語“存儲操作系統(tǒng)”泛指可操作用于執(zhí)行存儲系統(tǒng)中的存儲功能的計算機可執(zhí)行代碼,例如,管理文件語義以及在文件服務(wù)器情況下可以實現(xiàn)文件系統(tǒng)語義和管理數(shù)據(jù)存取的計算機可執(zhí)行代碼。在這種意義上講,ONTAP軟件是這種存儲操作系統(tǒng)的實例,其以微核形式實現(xiàn)并包括WAFL層以實現(xiàn)WAFL文件系統(tǒng)語義并管理數(shù)據(jù)存取。存儲操作系統(tǒng)還可以實現(xiàn)為在諸如UNIX或者WindowsNT的通用操作系統(tǒng)上運行的應(yīng)用程序,或者實現(xiàn)為配置成存儲在此描述的應(yīng)用程序的具有可配置功能的通用操作系統(tǒng)。
存儲裝置適配器128與在系統(tǒng)100上執(zhí)行的存儲操作系統(tǒng)150協(xié)作以存取用戶(或者客戶端)所請求的信息。所述信息可以存儲在任何類型的可寫入存儲設(shè)備介質(zhì)的連接陣列上,所述可寫入存儲設(shè)備介質(zhì)諸如是錄像帶、光學(xué)的、DVD、磁帶、磁泡存儲器、電子隨機存取存儲器、微機電的和適合于存儲包括數(shù)據(jù)和奇偶性信息在內(nèi)的信息的任何其他類似介質(zhì)。然而,如在此所描述的那樣,信息優(yōu)選地存儲在陣列200中的諸如HDD和/或DASD的磁盤上。存儲裝置適配器包括輸入/輸出(I/O)接口電路,所述輸入/輸出(I/O)接口電路經(jīng)由諸如傳統(tǒng)高性能光纖信道串行鏈路拓?fù)?serial link topology)的I/O互連裝置連接到磁盤。
陣列200上的信息的存儲優(yōu)選地是以一個或多個存儲“卷”(例如,VOL1-2 140)的方式實現(xiàn)的,所述存儲“卷”包括一簇物理存儲磁盤,其通常以130來表示并定義磁盤空間的總體邏輯配置。盡管不是必需的,但是通常每卷與它自己的文件系統(tǒng)相關(guān)聯(lián)。卷/文件系統(tǒng)內(nèi)的磁盤通常組織為一個或多個組,其中每個組與RAID組相類似。大多數(shù)的RAID實施方式通過下述方式改善數(shù)據(jù)存儲的可靠性/完整性跨越RAID組中給定數(shù)量的物理磁盤冗余寫入數(shù)據(jù)“條帶”并適當(dāng)存儲關(guān)于條帶化數(shù)據(jù)的奇偶性信息。
特別地,每個卷140從被分成塊的物理磁盤130的陣列構(gòu)造,所述塊組織成條帶。磁盤被組織成組132、134和136。雖然這些組與RAID組相類似,但是在每個組內(nèi)使用在此描述的半靜態(tài)分布技術(shù)。每個組中的每個條帶具有一個或多個奇偶性塊,取決于所述組所需的容錯程度。在每個條帶中選擇哪個(些)磁盤包含奇偶性并不像在傳統(tǒng)RAID-4或RAID-5陣列中那樣由RAID配置決定。
本發(fā)明涉及跨越陣列中的磁盤分布奇偶性的半靜態(tài)分布技術(shù)。所述具有創(chuàng)造性的技術(shù)優(yōu)選地是由RAID系統(tǒng)170實現(xiàn)的,RAID系統(tǒng)170尤其跨越磁盤計算條帶中的奇偶性,在在此描述的那些條帶之間分布奇偶性并重建因故障導(dǎo)致丟失的磁盤。半靜態(tài)分布技術(shù)不需要文件系統(tǒng)160的參與,因此,半靜態(tài)分布技術(shù)還適用于在具體化為例如RAID控制器的RAID代碼中推廣,所述RAID控制器可以在內(nèi)部或者從外部連接于存儲系統(tǒng)100。
根據(jù)所述技術(shù),以保持磁盤的條帶之間的奇偶性塊的固定模式的方式跨越陣列中的磁盤分布(分配)奇偶性。當(dāng)一個或多個磁盤被添加到陣列時,所述半靜態(tài)技術(shù)以不需要重新計算奇偶性或者移動任何數(shù)據(jù)塊的方式重新分布奇偶性。值得注意,所述奇偶性信息實際上沒有移動;所述技術(shù)僅僅涉及將每個預(yù)先存在磁盤的一些奇偶性塊分配(或者保留)到新添加的磁盤時的變化。舉例來說,在例如第一預(yù)先存在的磁盤上存儲奇偶性的預(yù)先存在的塊可以繼續(xù)存儲奇偶性;或者,新添加的磁盤上的塊可以被指定成存儲該條帶的奇偶性,其“釋放”第一個磁盤上的預(yù)先存在的奇偶性塊以存儲文件系統(tǒng)數(shù)據(jù)。注意文件系統(tǒng)數(shù)據(jù)的引用不排除由諸如數(shù)據(jù)庫之類的其他高級模塊生成的數(shù)據(jù)。
假定跨越陣列200中的磁盤密集地分配數(shù)據(jù),那么存儲操作系統(tǒng)150可以選擇按照固定模式跨越磁盤平均地分配奇偶性。然而,當(dāng)一個或多個磁盤被添加到陣列中時該固定模式改變。作為響應(yīng),半靜態(tài)分布技術(shù)以在磁盤的條帶之間保持奇偶性塊的固定模式的方式重新分布(重新分配)奇偶性。注意每個新近添加的磁盤被初始化至預(yù)定的且固定的值,例如歸零,以便不會影響條帶的固定奇偶性。還應(yīng)該注意的是固定奇偶性可以是偶數(shù)或者奇數(shù),只要奇偶值是已知的(預(yù)定的);在此的下列說明使用偶數(shù)奇偶性。此外,新近添加磁盤的初始化允許在沒有進(jìn)行任何奇偶性運算或者寫入的情況下將一些條帶(例如,條帶的1/N,其中N等于磁盤的數(shù)目)中的奇偶性塊重新分配至新磁盤。
根據(jù)本發(fā)明,重新分配算法僅曾經(jīng)將奇偶性塊改變?yōu)閿?shù)據(jù)塊,而從不會將數(shù)據(jù)塊改變?yōu)槠媾夹詨K。例如,響應(yīng)于將新的第N個磁盤添加到組132-136中,文件系統(tǒng)160可以將每個現(xiàn)有磁盤的每第N個奇偶性塊重新分配給新的磁盤。因為新的磁盤僅僅包含空閑塊和奇偶性塊,所以這種重新分配不需要任何重新計算或者數(shù)據(jù)移動,因此存在的奇偶性塊可以得到重新分配以供數(shù)據(jù)使用,但是反過來并非如此。該重新分配(構(gòu)造)算法形成奇偶性模式,所述奇偶性模式對每種組大小而言是確定的并在組的全部磁盤之間平均地分布。
圖2是舉例說明根據(jù)本發(fā)明的半靜態(tài)分布技術(shù)的奇偶性分配的磁盤陣列200的示意圖。假定陣列200最初包括一個磁盤202并且希望存儲冗余(奇偶性)信息;因此,該磁盤上的每個塊存儲奇偶性(P)信息。當(dāng)?shù)诙€磁盤204被添加以擴展所述陣列時,可以在兩個磁盤之間分布奇偶性塊。同樣地,當(dāng)?shù)谌齻€磁盤206以及此后的第四個磁盤208被添加到擴展的陣列中時,可以在那些磁盤之間分布奇偶性決。當(dāng)磁盤被添加到陣列200中時,奇偶性沒有被存儲在包含文件系統(tǒng)數(shù)據(jù)的塊中。半靜態(tài)分布技術(shù)僅僅針對重新分配奇偶性塊,這釋放了塊以供數(shù)據(jù)使用。換句話說,所述技術(shù)從不重新分配數(shù)據(jù)塊,這和傳統(tǒng)的RAID-5級實施方式的擴展恰恰相反。
可以根據(jù)所述具有創(chuàng)造性的技術(shù)的構(gòu)造算法在磁盤之間分布奇偶性,所述算法將每個預(yù)先存在的磁盤中的N個奇偶性塊之一重新分配到新的磁盤,其中N等于擴展的陣列中的磁盤數(shù)目。總的說來,N個奇偶性塊之一被重新分配給新的磁盤,同時每個預(yù)先存在的磁盤繼續(xù)精確地保留擴展陣列中奇偶性塊的1/N。對于2個磁盤的陣列而言,在第一個磁盤202上的每隔一個奇偶性塊將一個奇偶性塊移到到第二個磁盤204。當(dāng)?shù)谌齻€磁盤206被添加到擴展的陣列200中時,由此產(chǎn)生3個磁盤的陣列,在第一個磁盤202上的每第三個剩余奇偶性塊以及在第二個磁盤204上的每第三個奇偶性塊被移到第三個磁盤206。當(dāng)?shù)谒膫€磁盤208被添加到該陣列中時,產(chǎn)生4個磁盤的陣列,來自每個磁盤(磁盤1-3)的每第四個剩余奇偶性塊被移到第四個磁盤208。作為該重新分配的結(jié)果,在每個磁盤上的奇偶性的數(shù)量基本上是相同的。奇偶性塊的位置還以一種可預(yù)測且確定的模式跨越陣列中的磁盤在條帶之間變化。
圖3是舉例說明根據(jù)本發(fā)明的半靜態(tài)分布技術(shù)的說明性的實施方式、在陣列的磁盤之間分布奇偶性的一系列步驟的流程圖。這里,新的第N個磁盤被添加到陣列的組132-136中,并且如上所述,每N個奇偶性塊中的一個被分配給新的磁盤,其中N等于陣列中的磁盤數(shù)目。應(yīng)當(dāng)注意的是,不必在磁盤之間實際地移動奇偶性信息;所述具有創(chuàng)造性的半靜態(tài)分布技術(shù)僅考慮新添加磁盤上的每個奇偶性塊的分配(或者保留)的變化。
所述序列始于步驟300并前進(jìn)至步驟302,在步驟302中新的磁盤被添加到陣列中的N個磁盤組中。在步驟304,新的磁盤被初始化(例如,調(diào)零)以保證在每個條帶上的塊的奇偶性不受影響。在條帶內(nèi)可能存在多個不包含數(shù)據(jù)并且可能存儲奇偶性的塊(也就是,未分配數(shù)據(jù)的塊)。該條帶將包含至少一個未分配的塊(其為奇偶性塊),以及一個或多個未分配的、為空閑數(shù)據(jù)塊的塊。所有塊對于例如偶數(shù)奇偶性有貢獻(xiàn),因此奇偶性塊和空閑數(shù)據(jù)塊是完全相等的。文件系統(tǒng)(或者高級模塊,如果沒有文件系統(tǒng))響應(yīng)于在條帶中存儲寫入數(shù)據(jù)的寫入請求來確定在條帶中哪些磁盤包含空閑塊。在步驟306,文件系統(tǒng)160通過冗余存儲算法按要求保留多個空閑塊以任意地存儲奇偶性。例如,諸如在第一預(yù)先存在的磁盤上存儲奇偶性的預(yù)先存在的塊可以繼續(xù)存儲奇偶性;做為選擇,在新添加的磁盤上的塊可以被分配用于存儲該條帶的奇偶性,其“釋放”第一磁盤上預(yù)先存在的奇偶性塊以用于存儲數(shù)據(jù)。
應(yīng)當(dāng)注意的,防止兩個(或更多)磁盤故障的任何奇偶性算法都可以為半靜態(tài)分布技術(shù)所用,只要所述算法允許條帶中的任何兩個(或更多)塊存儲奇偶性??梢杂欣貫楸景l(fā)明所使用的雙故障校正算法的實例是均勻并對稱行對角(symmetic row-diagonal,SRD)奇偶性,這在由Peter F.Corbett等所申請的序列號為112056-0141、標(biāo)題為“Uniform and Symmetric Double Failure Correcting Technique forProtecting against Two Disk Failures in a Disk Array”的美國專利申請中有所描述。這里,所述具有創(chuàng)造性的技術(shù)不依賴于均勻或?qū)ΨQ奇偶性算法,盡管可以利用所述奇偶性算法。當(dāng)將雙故障校正算法與所述半靜態(tài)分布技術(shù)一起使用時,文件系統(tǒng)保留兩個未分配數(shù)據(jù)的塊以分配用于存儲奇偶性。因為奇偶性塊的位置是確定的,所以非均勻的雙或者更高故障校正算法能被使用。然而,利用這種算法可能犧牲當(dāng)磁盤被添加到陣列中時不需要重新計算奇偶性的優(yōu)點。
另一種技術(shù)是采用非均勻算法,使得數(shù)據(jù)塊被寫入到陣列的任何塊中,即使那些塊通常將被用于存儲冗余信息。因為多故障校正算法可以恢復(fù)任何丟失磁盤的內(nèi)容,所以剩余塊可以用于存儲冗余信息,即使它們是利用通常用于重建丟失數(shù)據(jù)塊的技術(shù)構(gòu)造的。以這種方式利用非均勻算法可以產(chǎn)生比利用諸如SRD的均勻和對稱算法能夠?qū)崿F(xiàn)的實施方式復(fù)雜得多的實施方式。
在步驟308,文件系統(tǒng)的寫入分配器165安排寫入數(shù)據(jù)以存儲在條帶中的磁盤上。在步驟310,文件系統(tǒng)經(jīng)由由文件系統(tǒng)發(fā)出的寫入請求消息提供保留塊的指示到RAID系統(tǒng)(存儲模塊)。在步驟312,RAID系統(tǒng)提供奇偶性信息(和寫入數(shù)據(jù))到磁盤驅(qū)動器系統(tǒng)以存儲在磁盤上。特別地,在步驟314,在磁盤的塊之間分布奇偶性以便在每個磁盤上存儲1/N的奇偶性塊,從而由此跨過陣列中的磁盤平衡數(shù)據(jù)。此外,以似乎復(fù)雜化但易于計算的可預(yù)測模式在陣列的條帶之間“移動”奇偶性塊的位置。接著在步驟316所述序列結(jié)束。
借由其可以在雙故障校正陣列中實現(xiàn)冗余或者奇偶性塊的平衡半靜態(tài)分布的其他技術(shù)包括簡單地利用雙故障校正陣列中的一對磁盤替換單故障校正半靜態(tài)陣列中的每個單個磁盤的技術(shù),其中所述雙故障校正陣列在每個條帶具有兩個冗余塊。這里,每對磁盤的角色與單故障校正陣列中的相應(yīng)單一磁盤的角色相類似。通過利用與在單故障校正陣列中所使用的相同數(shù)目的行來保持平衡;然而該技術(shù)限于以二的倍數(shù)向陣列中添加磁盤。
另一種技術(shù)通過下述步驟構(gòu)造平衡的或者幾乎平衡的陣列從完全充滿奇偶性塊的兩個初始(“舊”)磁盤開始,然后添加第三個磁盤并將兩個初始磁盤的每一個中的每第三個奇偶性塊移動到新的磁盤。該技術(shù)向每個磁盤分布三分之一的奇偶性塊,占據(jù)每個磁盤上三分之二的空間。當(dāng)重新分配來自舊的磁盤的奇偶性塊時,可以發(fā)現(xiàn)在新的磁盤上的塊已經(jīng)被指定為奇偶性。在這種情況下,在新的磁盤尚末包含奇偶性而舊的磁盤包含奇偶性的下一行,下一個可能的奇偶性塊被從舊的磁盤重新分配到新的磁盤,。
后面的這種技術(shù)還可以被外推到為任何數(shù)量的磁盤建立奇偶性分配的確定性集合,其中每個條帶有兩個冗余(例如奇偶性)塊并且跨越陣列冗余塊是平衡或者幾乎平衡的。類似地,對每個條帶三個或者更多數(shù)目的冗余塊的情況而言,可以采用相同的技術(shù)以通過使得每個磁盤的冗余塊的數(shù)目是平衡或者幾乎平衡的方式確定任何大小的更大陣列中冗余塊的設(shè)置。此外,所述技術(shù)允許添加任意數(shù)目的磁盤而永遠(yuǎn)不會將數(shù)據(jù)塊改變?yōu)槠媾夹詨K,同時繼續(xù)使得每個磁盤的冗余塊數(shù)目保持平衡或者幾乎平衡。
可以開發(fā)其他類似的技術(shù)以在任何大小的陣列中將塊的角色確定為數(shù)據(jù)塊或者冗余塊,同時保留在數(shù)據(jù)塊和冗余塊二者的分布保持平衡或者幾乎平衡時陣列可以增加的方式擴展的性能,并永遠(yuǎn)不會將數(shù)據(jù)塊變化為冗余塊。通過在包含特定大小陣列中特定數(shù)目的行的分配的存儲器中存儲或者生成數(shù)據(jù)結(jié)構(gòu)(例如,表格),可以實現(xiàn)這些分配技術(shù)的任何一種。還可以將直至某一極限的任何陣列大小的冗余塊的全部可能的分配存儲在單個表中。這里,例如,所述表可以為每行存儲位圖,其中選擇小于N的一個(或更多)最高編號位組,其中N是陣列中的磁盤數(shù)目。總之,無論每行中冗余塊的數(shù)目(也就是,陣列可以允許的故障的數(shù)目),本發(fā)明設(shè)想了任何一種具有如下特性的基于表格的奇偶性分配保持分布的數(shù)據(jù)和冗余塊平衡,同時允許在沒有將數(shù)據(jù)塊改變?yōu)槿哂?奇偶性)塊的情況下實現(xiàn)擴展。
為磁盤陣列的組132-136的已知大小,或者為該陣列的最大組大小計算半靜態(tài)分布技術(shù)的奇偶性分配;總之,如上所述,所計算的奇偶性分配可以存儲在表中。由所存儲的分配定義的奇偶性分布模式,特別是該模式的重復(fù)間隔可用于確定對于給定組大小和給定條帶,奇偶性存儲在陣列中的任何磁盤上的位置。也就是說,所述模式可用于指示每個條帶中哪個塊被用于奇偶性,或者幾個條帶可使用不同的模式。
圖4是舉例說明根據(jù)半靜態(tài)分布技術(shù)的各種組大小的重復(fù)間隔的奇偶性分配表400的框圖。奇偶性分布模式以取決于陣列的組大小的重復(fù)間隔重復(fù)。如果大小為N的組每K個條帶重復(fù)一次,那么大小為(N+1)的組將以為K和(N+1)所整除的最小數(shù)字重復(fù)一次。值得注意,表的內(nèi)容不重復(fù)直到其到達(dá)一個取決于N值的數(shù)(重復(fù)間隔)為止,其中N等于磁盤的數(shù)目。例如,在2個磁盤的陣列中(也就是,組大小為2),所述奇偶性分布模式每兩個條帶重復(fù)一次。當(dāng)?shù)谌齻€磁盤被添加時(組大小為3),奇偶性模式每六個條帶重復(fù)一次。當(dāng)?shù)谒膫€磁盤被添加時(組大小為4),奇偶性模式每十二個條帶重復(fù)一次。從表400可以看到對五(和六)的組大小而言,所述奇偶性模式每六十個條帶重復(fù)一次。
與組大小有關(guān)的重復(fù)間隔是根據(jù)直至N的唯一素因子(“素數(shù)”)集確定的,其中N等于磁盤的數(shù)目。重復(fù)間隔(其等于表400中的條目數(shù))少于N的階乘,實際上等于所有小于或等于N的素數(shù)的乘積,其中每個素數(shù)升到最大可能次冪以便結(jié)果小于或等于N。因為在1和N之間一些數(shù)字是素數(shù),所以很明顯重復(fù)間隔可能變得很大,導(dǎo)致表很大。例如,對N=10而言,表大小是2^3×3^2×5^1×7^1=8×9×5×7=2520。類似地,對N=32而言,表大小是2^5×3^3×5^2×7^1×11^1×13^1×17^1×19^1×23^1×29^1×31^1=32×27×25×7×11×13×17×19×23×29×31≌144×10^12。
在模式的表大小和平衡的精確性之間可以作出折中;所述表可以在一個合理的點處終止并且能使用該特定重復(fù)間隔處的組大小。此后,即使存在比組大小更多的磁盤,所述技術(shù)也可以繼續(xù)重復(fù)所述模式并仍可以在例如0.5%的范圍內(nèi)跨越陣列實現(xiàn)數(shù)據(jù)的幾乎均勻的平衡。例如,如上所述,十的組大小轉(zhuǎn)化成每2,520個條帶重復(fù)一次的奇偶性分布模式。該大小(也就是,2,520個條目)的表在存儲器124中是相對緊湊的,并且可以利用適當(dāng)?shù)能浖a在啟動時相對迅速地加以計算。相反,32的組大小(也就是,144×10^12個條目)的表太大了以至于不能夠存儲在存儲器中。
2,520個條目的表適用于任何合理數(shù)目的磁盤以提供良好的數(shù)據(jù)平衡;然而,應(yīng)當(dāng)注意的是該大小的表不是唯一的選擇,其他大小的表也可以被使用。對于直至十的N個磁盤而言2,520個條目的模式是完美平衡的;對于N大于10的情況而言,即使該模式?jīng)]有重復(fù),該模式也提供了良好的數(shù)據(jù)平衡。換句話說,雖然17個磁盤組的奇偶性分配表相當(dāng)大(7.7MB,其中每個模式5位),但是只要使用表的一部分,那么仍可以實現(xiàn)良好的奇偶性平衡。例如,在2,520處切斷所述模式得到直截至10個磁盤的所有組大小的完美平衡,對于較大組產(chǎn)生低于1%的不平衡,同時對于N=11將表大小限定為2520×4位=1260字節(jié),對于N=17至32的情況將表大小限定為5×2520位=1,575字節(jié)。
奇偶性分配表400可以被編碼為單個數(shù)字,用于表示N的特定值的奇偶性的位位置。所述表還可以被編碼為位向量,使用一到二(或更多)位的集合指示提供單或雙(或更多)磁盤故障保護(hù)的單個或者兩個(或更多)奇偶性塊的位置。此外,該表可以被編碼為單個表以指示(用于直到某些極限(例如32個磁盤)的所有磁盤陣列大小)在每個條帶中什么磁盤可以包含奇偶性。然后通過屏蔽高次序的32-N位并選擇最高次序的剩余一或二(或更多)位,確定對于N的特定值哪個磁盤實際包含奇偶性。
總而言之,半靜態(tài)分布力求跨越陣列保持每個磁盤中數(shù)據(jù)塊的數(shù)目大致匹配,由此跨越陣列中的全部磁盤“分散”讀取負(fù)載。因此,所述技術(shù)消除了在陣列中由陣列中任何一個磁盤的處理量所引起的任何“瓶頸”,同時還消除了對寫入操作而言(多個)奇偶性磁盤為(多個)熱點的問題??梢岳弥T如SRD奇偶性的對稱算法或者諸如行對角線(RD)奇偶性的不對稱雙故障校正算法來應(yīng)用所述通用技術(shù)。在2001年12月28日由Peter F.Corbett等申請的、序列號為10/035,607、標(biāo)題為“Row-Diagonal Parity Technique for Enabling EfficientRecovery from Double Failures in a Storage Array”的美國專利申請中描述了RD奇偶性技術(shù)。
當(dāng)采用諸如RD奇偶性的非均勻算法時,相對于在不對稱奇偶性算法中磁盤的典型角色,在將數(shù)據(jù)或者冗余塊存儲在任何定塊時磁盤的角色可以忽略。因為任何雙故障校正算法可以為陣列中任何兩個丟失磁盤構(gòu)造所丟失的“數(shù)據(jù)”,所以在分配了存儲數(shù)據(jù)的角色的行中的全部塊的內(nèi)容是固定的,并且利用雙故障校正算法計算兩個冗余塊的內(nèi)容,其取決于磁盤在所述行中的位置而以不同方式加以施加。已經(jīng)在每行中存儲兩個冗余塊,所以陣列可以允許兩個磁盤發(fā)生故障,從而無論在任何特定條帶中丟失塊的角色是什么都可以恢復(fù)丟失的數(shù)據(jù)塊或者冗余塊。
做為選擇,因為磁盤的角色被很確定地定義,所以可以采用允許陣列中任意兩個或更多磁盤包含冗余信息的任何算法。利用這種算法可能需要在奇偶性塊移動了的條帶中重新計算奇偶性,但是這種算法保持了本發(fā)明不移動數(shù)據(jù)塊的優(yōu)點。SRD還具有當(dāng)奇偶性塊被分配給新添加的磁盤時不需重新計算奇偶性塊的優(yōu)點。
在此描述的分布技術(shù)特別適用于具有較少磁盤還想要利用可從那些磁盤獲得的所有每秒讀取操作(ops)的系統(tǒng)。較小陣列的性能受可從磁盤獲取的ops束縛(磁盤-限制)。但是即使在大陣列中,當(dāng)磁盤變得更大時,因為重建時間的緣故,趨向于減少每組132-136的磁盤數(shù)目。這導(dǎo)致冗余開銷的增加(在組中用于冗余的磁盤的百分比增加)。因此,希望利用可以從那些冗余磁盤中獲得的讀取ops。該分布技術(shù)的另一個優(yōu)點是重建和/或恢復(fù)“盲目地”(也就是在不知道磁盤的角色的情況下)發(fā)生。
因為半靜態(tài)分布技術(shù)跨越陣列平衡數(shù)據(jù),所以該技術(shù)可以方便地為具有少量大磁盤的陣列所使用。利用較大磁盤需要獲得合理的容量,除此之外還意味利用較小的組來限制重建時間。如果14個磁盤的結(jié)構(gòu)使用兩個組和一個備用,那么20%以上的磁盤都不能夠用于存儲或者檢索數(shù)據(jù)。8個磁盤的結(jié)構(gòu)甚至更差。
如上所述,半靜態(tài)分布技術(shù)允許將磁盤逐漸增加到磁盤陣列的分布奇偶性實施方式中。在RAID-5級實施方式上,本發(fā)明的分布技術(shù)的優(yōu)點是其允許很容易地擴展陣列,避免了添加整個組到陣列中或者執(zhí)行昂貴的RAID-5重組的需要。所述半靜態(tài)分布技術(shù)可以結(jié)合單/雙故障錯誤校正一起使用。此外,所述技術(shù)允許在相同的組132-136中使用多種磁盤大小。
雖然已經(jīng)顯示和描述了跨越磁盤分布奇偶性的半靜態(tài)分布技術(shù)的說明性的實施方式,但是應(yīng)當(dāng)理解的是在本發(fā)明的精神和范圍內(nèi)可以作出各種其他的改進(jìn)和修改。例如,在此描述的分布技術(shù)可以應(yīng)用于基于塊的RAID陣列,以例如允許很容易地將磁盤添加到RAID組中。基于塊的RAID陣列通常不知道它們被要求存儲的哪些塊包含文件系統(tǒng)數(shù)據(jù)。相反,陣列必須假定沒有被預(yù)先指定為奇偶性塊的全部塊包含文件系統(tǒng)數(shù)據(jù)。因此,他們通常預(yù)先分配哪些塊將被用于奇偶性。對給定陣列而言,這些預(yù)先分配的塊保持固定。通常這是以一些預(yù)定算法實現(xiàn)的以便系統(tǒng)無須跟蹤每個奇偶性塊。
根據(jù)本發(fā)明,RAID系統(tǒng)可以利用半靜態(tài)分布技術(shù)將現(xiàn)有磁盤中的一些塊的奇偶性指定移動至新的磁盤。RAID系統(tǒng)還必須保證現(xiàn)有磁盤中的非奇偶性塊的邏輯單元號(1un)塊偏移量不改變。然后在全部磁盤之間分布新空間。在基于塊的陣列中這種非線性映射通常不是所希望的,因為文件系統(tǒng)不能補償它。然而,如果奇偶性塊被大塊地(例如至少磁道大小)連續(xù)分配,那么可以減輕該效應(yīng)。
對所屬技術(shù)領(lǐng)域的工作人員應(yīng)當(dāng)理解的是在此描述的本發(fā)明的技術(shù)可以應(yīng)用于任何類型的具體化為存儲系統(tǒng)100或者包括存儲系統(tǒng)100的專用計算機(例如,文件服務(wù)器、文件管理器或者多協(xié)議存儲設(shè)備)或者通用計算機,包括獨立計算機及其部件??梢杂欣厥褂帽景l(fā)明的多協(xié)議存儲設(shè)備的實例在2002年8月8日申請的、序列號為10/215,917、標(biāo)題為“Multi-Protocol Storage Appliance that providesIntegrated Support for File and Block Access Protocols”的美國專利申請中已經(jīng)描述。此外,本發(fā)明的示范可以適合于各種存儲系統(tǒng)結(jié)構(gòu),包括但不限于網(wǎng)絡(luò)連接的存儲環(huán)境、存儲區(qū)域網(wǎng)絡(luò)和直接連接于客戶端或者主機的磁盤集合。術(shù)語“存儲系統(tǒng)”因此應(yīng)該被廣泛理解為包括除任何配置成執(zhí)行存儲功能的子系統(tǒng)之外的這種裝置并與其它設(shè)備或系統(tǒng)相關(guān)聯(lián)。
上述說明已經(jīng)涉及了本發(fā)明的特定實施方式。然而,顯而易見的是可以對所描述的實施方式作出其他變化和修改,且保持一些或全部其優(yōu)點。例如,所述半靜態(tài)分布技術(shù)可以普及為涉及在系統(tǒng)的諸如磁盤的持久存儲裝置或者例如存儲器的非持久存儲裝置之間分布數(shù)據(jù)結(jié)構(gòu)的其他應(yīng)用。廣義上,所述技術(shù)可以應(yīng)用于當(dāng)更多貯存器被添加到系統(tǒng)中時,任何物品(commodity)在任何貯存器集合上的重新分配。舉例來說,半靜態(tài)技術(shù)可以應(yīng)用于具有單元和貯存器的系統(tǒng),其中所述單元被均勻地分布在貯存器上并且希望保持沿一些編號的維度向貯存器分配單元的平衡率。當(dāng)新的貯存器被添加到系統(tǒng)中時,所述技術(shù)可以被采用以保持總體和局部平衡的方式將一些現(xiàn)有單元傳送至新的貯存器中。
更具體地,半靜態(tài)技術(shù)可以被用于在陣列的持久存儲設(shè)備(諸如磁盤)之間分布諸如信息節(jié)點文件塊的數(shù)據(jù)結(jié)構(gòu),其中所述陣列同諸如存儲“頭(head)”的多個存儲實體相連接。注意“頭”被定義為除磁盤之外的存儲系統(tǒng)中的全部部件。這種應(yīng)用的實例涉及所述多個(N個)存儲頭上分布現(xiàn)有信息節(jié)點文件塊,其包括一個或多個新添加的存儲頭。這里,本發(fā)明的半靜態(tài)分布技術(shù)可以用于將任何現(xiàn)有信息節(jié)點文件塊的僅1/N移動到新添加的存儲頭。
可以清楚理解的是本發(fā)明的示范可以以軟件、硬件、固件或者其組合的方式加以實現(xiàn),其中所述軟件包括具有在計算機上執(zhí)行的程序指令的計算機可讀取介質(zhì)。因此本說明僅僅是示例性的而非以其它方式限制本發(fā)明的范圍。因此,所附權(quán)利要求的目的在于覆蓋所有這類落入本發(fā)明的真實精神和范圍內(nèi)的變化和修改。
權(quán)利要求
1.一種用于跨越磁盤陣列分布奇偶性的方法,所述方法包括下述步驟將新的磁盤添加至陣列中預(yù)先存在的磁盤;將每個磁盤分成塊,所述塊被組織成條帶使得每個條帶包含來自每個磁盤的一個塊;以及在不重新計算或者移動任何包含數(shù)據(jù)的塊的情況下在新的和預(yù)先存在的磁盤的塊之間分布奇偶性。
2.根據(jù)權(quán)利要求1所述的方法,其中所述分布步驟包括以在磁盤的條帶之間保持奇偶性塊的固定模式的方式在新的和預(yù)先存在的磁盤的塊之間分布奇偶性的步驟。
3.根據(jù)權(quán)利要求1所述的方法,其中所述分布步驟包括如下步驟改變每個預(yù)先存在的磁盤的一個或多個包含奇偶性的塊向新添加的磁盤的分配。
4.根據(jù)權(quán)利要求2所述的方法,其中所述添加步驟包括初始化添加的磁盤以便不會影響條帶的奇偶性的步驟。
5.根據(jù)權(quán)利要求4所述的方法,其中所述初始化步驟包括在不計算或?qū)懭肫媾夹缘那闆r下將某些條帶中的包含奇偶性的塊重新分配到新的磁盤步驟。
6.根據(jù)權(quán)利要求5所述的方法,其中所述某些條帶包括1/N的條帶,其中N等于陣列中的磁盤數(shù)目。
7.根據(jù)權(quán)利要求5所述的方法,其中所述重新分配步驟包括將包含奇偶性的塊(奇偶性塊)改變?yōu)榘瑪?shù)據(jù)的塊(數(shù)據(jù)塊)而不將數(shù)據(jù)塊改變?yōu)槠媾夹詨K的步驟。
8.根據(jù)權(quán)利要求1所述的方法,其中所述分布步驟包括將N個包含奇偶性的塊(奇偶性塊)之一從每個預(yù)先存在的磁盤重新分配至所添加的磁盤的步驟,其中N等于陣列中的磁盤數(shù)目。
9.根據(jù)權(quán)利要求8所述的方法,其中所述重新分配步驟包括將N個奇偶性塊之一重新分配給新磁盤的步驟,同時每個預(yù)先存在的磁盤繼續(xù)保持陣列中1/N的奇偶性塊。
10.一種適合于跨越存儲系統(tǒng)的磁盤分布奇偶性的系統(tǒng),所述系統(tǒng)包括磁盤陣列,包括預(yù)先存在的磁盤以及至少一個新磁盤;以及存儲模塊,配置成跨越磁盤計算條帶的塊中的奇偶性以及重建由于故障而丟失的磁盤的塊,所述存儲模塊還被配置成在不重新計算或者移動任何數(shù)據(jù)塊的情況下在新的和預(yù)先存在的磁盤的塊之間分配奇偶性。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),還包括配置成存儲為磁盤陣列的已知組大小和該陣列的最大組大小之一所計算的奇偶性分配的表,所存儲的奇偶性分配定義奇偶性分布模式的重復(fù)間隔,所述奇偶性分布模式用于確定奇偶性在陣列中的任何磁盤上的存儲位置。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述存儲模塊具體化為存儲系統(tǒng)的RAID系統(tǒng)。
13.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述存儲模塊具體化為存儲系統(tǒng)的內(nèi)部磁盤陣列控制器。
14.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述存儲模塊具體化為從外部耦合到存儲系統(tǒng)的磁盤陣列控制系統(tǒng)。
15.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述磁盤陣列是基于塊的RAID陣列。
16.一種用于在系統(tǒng)的貯存器上分布物品的方法,所述方法包括下述步驟將新貯存器添加到系統(tǒng)的預(yù)先存在的貯存器,由此提供N個貯存器;以及僅將1/N的物品移至新貯存器。
17.根據(jù)權(quán)利要求16所述的方法,其中所述系統(tǒng)是存儲系統(tǒng),所述物品是適合于存儲在陣列中的存儲設(shè)備上的數(shù)據(jù)結(jié)構(gòu),以及所述貯存器是與陣列耦合的存儲實體。
18.根據(jù)權(quán)利要求17所述的方法,其中所述存儲實體是存儲頭。
19.根據(jù)權(quán)利要求17所述的方法,其中所述數(shù)據(jù)結(jié)構(gòu)是信息節(jié)點文件塊。
20.一種用于跨越磁盤陣列分布奇偶性的設(shè)備,所述設(shè)備包括用于添加新磁盤至陣列中的預(yù)先存在的磁盤的裝置;用于將每個磁盤分成塊的裝置,所述塊被組織成條帶使得每個條帶都包含來自每個磁盤的一個塊;以及用于在不重新計算或者移動任何包含數(shù)據(jù)的塊的情況下在新的和預(yù)先存在的磁盤的塊之間分布奇偶性的裝置。
21.一種包含用于跨越磁盤陣列分布奇偶性的可執(zhí)行程序指令的計算機可讀介質(zhì),所述可執(zhí)行指令包括用于實現(xiàn)下述操作的一個或多個程序指令將新磁盤添加至陣列中的預(yù)先存在的磁盤;將每個磁盤分成塊,所述塊被組織成條帶使得每個條帶包含來自每個磁盤的一個塊;以及在不重新計算或者移動任何包含數(shù)據(jù)的塊的情況下在新的和預(yù)先存在的磁盤的塊之間分布奇偶性。
全文摘要
半靜態(tài)分布技術(shù)跨越陣列中的磁盤分布奇偶性。根據(jù)所述技術(shù),以保持磁盤的條帶之中的奇偶性塊的固定模式的方式跨越陣列中的磁盤分布(分配)奇偶性。當(dāng)一個或多個磁盤被添加到陣列中時,所述半靜態(tài)技術(shù)以不需要重新計算奇偶性或者移動任何數(shù)據(jù)塊的方式重新分布奇偶性。值得注意的,奇偶性信息實際上沒有被移動;所述技術(shù)僅僅涉及在將每個預(yù)先存在的磁盤中的一些奇偶性塊分配(或者保留)至新添加的磁盤時的變化。
文檔編號G06F11/10GK101023412SQ200480034712
公開日2007年8月22日 申請日期2004年11月24日 優(yōu)先權(quán)日2003年11月24日
發(fā)明者P·F·科爾貝特, R·M·思格利什, S·R·克萊曼 申請人:網(wǎng)絡(luò)裝置公司