專利名稱:用于提供增強的數據丟失容限的系統、設備適配器和方法
技術領域:
本發明一般涉及磁盤陣列架構,并且更特別地涉及用于在磁盤陣列 系統中提供增強的數據丟失容限的系統、方法和計算機程序產品。
背景技術:
計算機系統常常需要相當大數量的非易失性磁盤存儲裝置來存放 軟件、程序和其它數據,它們不適合存進較小的、較昂貴的隨機存取存儲器(RAM),否則當系統斷電時它們將被丟失。存儲裝置系統可包括 大量硬盤驅動器(HDD)。通常,使用一個或多個涂敷有磁性材料的盤 形盤片來構建HDD。該磁盤盤片以固定速度輪換并且帶有讀/寫磁頭的 可移動臂指向磁盤上的特定的位置以寫入或讀出數據。該磁頭就在盤片 的表面上滑動。在數據寫操作期間,將電場施加到磁盤上的特定位置, 從而在與二進制值"0"或"1"相關聯的特定方向上創建相當持久的磁 場。該磁頭被設計成通過探測在該磁頭經過該盤片上的磁化位置時由磁 場在該磁頭中所感應出的小電流來讀取所存儲的數據。當HDD斷電時, 數據被存為該磁盤上的特定位置處的比特信息的磁場特征。HDD盤片被劃分成稱為磁軌的同心圓,其與在臂組件保持不動時 磁頭在其上滑動的區域相一致。每個磁軌還被劃分成扇區。每個扇區包 含用于用戶數據的較大的固定長度的區域,還包括該HDD電子裝置在 數據存儲和檢索過程期間所使用的頭部和尾部信息。在HDD上的被稱 作等待時間(latency)的數據讀取和寫入時間不如RAM上的那樣固定 和可預測。HDD等待時間很大程度上是搜索時間的函數,搜索時間也 即是臂用于將磁頭重新定位在存儲或檢索數據的磁軌上所用的時間。搜索時間是變化的并且是臂的最后位置的函數。通常,HDD被設計成自包含的組件,其可被插入計算機機架中的 標準插槽或獨立的存儲機架中的標準插槽。在企業環境中,存儲機架具 有存儲抽屜,其通常在某處保存半打至多達五十個或更多的個體HDD。 存儲機架可以是獨立的組件或者可安裝在架子上的單元以允許多個存 儲抽屜被放入單個架子中,從而在小的物理覆蓋區域創建比較大的HDD 陣列。每單位面積場地空間的驅動器密度是竟爭性的度量,其在工業上 被用于幫助潛在客戶比較來自不同廠家的出售物。HDD是復雜的機電組件并且同樣常遭受各種故障機制。盤片上所 使用的磁涂敷材料中的細微缺陷,灰塵、污垢或磁性粒子對盤片的污染, 或者老化都可導致數據丟失。因為對于所有電子裝置,隨機故障可以產 生自與制造過程相關聯的各種基本的物理加工或小缺陷。移動部分常遭 受摩擦并且隨時間而磨損,其也可能導致HDD組件發生故障。HDD技術已經持續發展到具有更高的密度、更快的設備、利用新 的和不同的以變化的加速速率被創建的磁盤設計。因為HDD旋轉速度 持續增加并且HDD被持續設計以保存日益增長的數據量,磁盤上的保 存每個比特的磁場特征的物理區域持續變得更小,結果導致產生更大的 工程挑戰以確保可靠的寫入和讀取操作。為了降低成本,現在更廣地使 用更為廉價以及在某些應用中可靠性較低的高級技術配件(ATA)驅動 器和串行ATA (SATA)驅動器。用于檢測和糾正比特錯誤的技術在過去的幾十年中已經發展成一 門復雜的學科。最為基礎的檢測技術可能就是生成奇偶校驗,其中數據 字中的比特被異或(XOR)起來以產生奇偶校驗比特。例如,具有偶數 個'T,的數據字將具有值為"0"的奇偶校驗比特,而具有奇數個"1" 的數據字將具有值為"1"的奇偶校驗比特。通過將所計算的奇偶校驗 與數據字的原始生成奇偶校驗進行比較可以檢測數據字中的單個錯誤。人們已經認識到,錯誤檢測的奇偶校驗技術可以被擴展到不僅僅檢 測錯誤,而且還可通過將糾錯碼(ECC)字段附加到每個數據字來糾正 錯誤。ECC字段可以是被異或(XOR)起來的數據字中的不同比特的組合,從而錯誤(對數據字小的改變)可以容易地被檢測、查明和糾正。可被檢測和糾正的錯誤數目與被附加到數據字的ECC字段的長度直接 相關。為了讓ECC起作用,必須強制保證在有效數據字以及碼字組合 之間的最小分離距離。所期望檢測和糾正的錯誤數目越大,碼字越長, 結果導致有效碼字之間的距離就越大。有效碼字之間的距離也被稱為 "漢明距離"。檢錯和糾錯技術通常被用于恢復存儲介質中的數據,在該存儲介質中用于將數據存儲為表示"1"或"0"的電壓值的電路常遭受設備故障 和由于高能宇宙射線和a粒子所造成的狀態改變。存儲著作為磁性表面 上的磁場特征的"1"和"0"的HDD也常遭受磁性介質中的缺陷以及 可能導致數據式樣相對于原始所存儲的數據式樣發生改變的其它機制。存儲器ECC可在數據字中的各種比特位置中使用奇偶校驗碼的組 合以允許進行檢錯和糾錯。每次當數據字被寫入存儲器時,新的碼字被 生成并且與該數據一起存儲以支持檢測和糾正。多年以來,許多檢錯和糾錯技術已經得到演化以幫助確保HDD故 障不導致數據丟失或數據完整性問題。諸如ECC之類的內嵌的校驗機 制常常被用在HDD上以檢測壞扇區。循環冗余校驗(CRC)和縱向冗 余校驗(LRC)可被HDD電子裝置或磁盤適配器用于檢查錯誤。作為 替代,更高級別的碼字和應用可使用CRC和LRC來檢測HDD錯誤。 將CRC和LRC值與數據相一致地寫以幫助檢測數據錯誤。CRC和LRC 是哈希函數,該函數用于產生從數據生成的小的基本上唯一 的比特式 樣。當從HDD讀取數據時,相關聯的校驗值被重新生成并與盤片上所 存儲的值進行比較。該特征必須完全匹配以確保從磁盤中所檢索的數據 與原始寫入磁盤的數據相同。已經開發獨立磁盤冗余陣列(RAID)系統來改善磁盤存儲系統的 性能并增加磁盤存儲系統的可用性。RAID將數據分布在若干獨立的 HDD上。已經開發具有不同的相關聯的特性的許多不同的RAID方案。 性能、可用性和利用率/效率(實際保存用戶數據的^f茲盤的百分比)可能是在比較RAID方案時將考慮的最重要的特性。與各種方案相關聯的折 衷必須^f皮仔細考慮,因為一個特性的改善常常可能導致另一個的減少。 現在,RAID 5被廣為使用,其在性能、可用性和利用率之間實現 平衡。RAID 5使用單個奇偶檢驗字段,其通過對條帶(stripe)中的多 個HDD上的數據元進行異或(XOR)來計算。"條帶"是指完整的被連 接的一組數據元和奇偶檢驗元,其依賴于奇偶檢驗計算關系。在編碼理 論中,條帶是碼字或碼距。在單個HDD故障的情形下,在條帶中的剩 余磁盤上的數據被異或(XOR)起來以重新生成故障磁盤的數據。就像 使用許多其它的RAID方案一樣,RAID 5具有的性能優點在于每當寫 入發生時不必讀取來自條帶中的所有HDD的數據以重新計算該條帶的 新的奇偶檢驗值。當寫入少量的數據時,諸如更新單個數據元,使用被 稱為讀取-修改-寫入(RMW)的技術,其中來自單個HDD的舊數據 與來自另一 HDD的舊奇偶檢驗一起被讀取。該舊數據與新數據和舊奇 偶檢驗進行異或(XOR)以產生新奇偶檢驗值,其接著與新數據一起被 寫回磁盤。RMW可以是相當大的性能改善,特別是4吏用大寬度的RAID 5陣列時,更是如此。RAID5通常使用分布式奇偶檢驗方案,其中奇偶 檢-瞼字段被充分均勻地分布在陣列中的所有HDD上以幫助平ff對每個 HDD的讀取/寫入存取,由此確保了更加一致的性能。工作。可以通過將來自數據條帶中的剩余磁盤中的數據與奇偶檢驗字段 進行異或(XOR)來重新生成來自故障磁盤的數據。當故障HDD被替 換時或者在RAID 5陣列中存在備用HDD的條件下,來自故障磁盤的 數據可以通過使用相同的異或(XOR)處理來完整地重新創建并重新寫 入新磁盤。系統常常被被設計成故障HDD可以在正常系統操作的同時 被替換。在替換HDD上的數據在處理中被重建,這可能需要若干小時 來完成。RAID5只能容忍單個HDD故障,因為當在相同的數據條帶中 兩個HDD發生故障時,沒有任何方法來重建數據。如果在第一故障HDD 被替換和重建之前RAID 5條帶中的第二 HDD發生故障,則與該RAID 5條帶相關聯的所有數據將丟失。遇到第二 HDD故障的可能性與故障最后,需要強調的是,本發明不限于上述實施方式,諸如虛擬機類型的改變、使用的本地程序生產方法的改變等^:小變化也應該包括 在本發明的保護范圍內。加一個相同的HDD到陣列以保存該校驗和字段。換言之,對于RAID 5, 存儲N個相同的數據磁盤,將需要N+1個物理磁盤。RAID6添加兩個 相同的HDD到陣列以保存兩個校驗和字段。RAID 6需要N+2個物理 磁盤來保存N個相同的數據磁盤。在磁盤上可能發生的一種問題被稱為"條破壞(strip kill)",其中 磁盤上的數據條不再能夠被讀取。條破壞導致磁盤上的 一小部分數據的 數據丟失。使用RAID 5,條破壞中的數據丟失可通過使用標準RAID 異或(XOR)算法來糾正。條破壞雖然很少見,但是可能在故障HDD 的重建操作過程中發生。條破壞可能在重建操作過程中發生,原因是陣 列中的所有磁盤上的所有數據必須被讀取并被異或(XOR)起來以重新 構建故障磁盤上的數據。如果在RAID 5重建過程中遇到了條破壞,則 重建可能不會完成,并且RAID 5陣列上的數據將丟失。如果對兩個HDD 的重建正在進行中而且遇到了條破壞,則類似的問題也出現在RAID 6 中。然而,如果存在對RAID 6陣列上單個HDD故障的進行中的重建 并且遇到條破壞,則有可能以與RAID 6的兩個HDD恢復相類似的方 式來進行恢復。已經預期一種系統,其中水平地和對角地穿過單行磁盤中的數據條 來計算奇偶檢驗。已經預期其它系統,其使用水平和垂直的奇偶檢驗, 但是受限于平方N x N的實現,其中在一行N個磁盤上計算水平奇偶檢 驗并且在N個磁盤的行的N個條上計算垂直奇偶檢驗。此外,這種系 統不將奇偶檢驗元和數據元分布于獨立的物理磁盤上,這將故障恢復能 力限制到最大兩個HDD。前面所預期的RAID系統常常包括循環依賴 性或其它相互依賴性,其在兩個HDD發生故障后阻止了對某些塊的數 據重建。使用對角線奇偶檢驗的系統還遭受到尺寸限制,因為當對角線 奇偶檢驗隨每行進行存儲時列數目不能大于行數目。盡管RAID 6相比RAID 5提供了改善的可用性,但是當故障發生 在多個HDD中或在排列在一個HDD行的數據元中時,這兩種方法都 不能工作。對于RAID5,條帶中的兩個HDD或兩個數據元組合的行排 列(alignment)中的故障結果導致系統故障。對于RAID 6,條帶中的三個HDD或三個數據元組合的行排列中的故障結果導致系統故障。常 常將HDD故障建模成獨立隨機事件;然而,已經公知磁盤系統會展示 簇故障,其中公共問題源可摧毀一行中的多個HDD。 RAID 5和RAID 6 二者都易受簇故障影響。另外,RAID6相比RAID5的更高的可用性通 常需要更復雜和更高成本的硬件來實現第二校驗和的里德-索羅門編 碼。因此,現有技術中需要在磁盤陣列系統中提供增強的數據丟失容限。發明內容實施例包括獨立磁盤冗余陣列(RAID)存儲系統,所述獨立磁盤 冗余陣列存儲系統包括按照HDD的二維行和列結構來組織的硬盤設備 (HDD)陣列。該系統包括邏輯上將HDD的行和列劃分成元的行和列 的全跨度(full stride ),該全跨度包括來自HDD的行和列中的每個HDD 的元,在全跨度中的每個元駐留在物理上獨立的HDD上。每個元具有 元類型,其中第一種元類型是數據元而第二種元類型是校驗和元。該系 統還包括行校驗和元和列校驗和元,該行校驗和元被計算為全跨度的一 行內的所有數據元的校驗和,而該列校驗和元被計算為該全跨度的一列 內的所有數據元的校驗和,其中該行校驗和元計算和列校驗和元計算在 單個數據元處相交。該系統還包括用于控制對HDD陣列的存取的設備 適配器,該設備適配器計算行校驗和元和列校驗和元,該行校驗和元和 該列校驗和元被用于糾正HDD陣列中的一個或多個故障。另外的實施例包括用于控制對按照HDD的二維行和列結構來組織 的HDD陣列的存取的設備適配器,該設備適配器包括存取控制邏輯以 管理對該HDD陣列中的HDD的讀請求和寫請求。該存取控制邏輯將 數據元和校驗和元的全跨度映射到該HDD陣列,其中全跨度中的每個 元駐留在該HDD陣列中的物理上獨立的HDD上。該設備適配器還包 括校驗和計算邏輯以計算在全跨度中的數據元的行校驗和元和列校驗 和元。該設備適配器還包括HDD故障檢測邏輯以識別該HDD陣列中 的故障HDD。此外,該設備適配器包括糾正邏輯,該糾正邏輯響應于 HDD故障檢測邏輯識別到故障HDD,利用行校驗和元和列校驗和元中的至少一個來糾正包含故障HDD的全跨度的元。此外,實施例包括一種用于提供對HDD陣列中的三個HDD上的 數據丟失的增強的容限的方法。該方法包括按照HDD的二維行和列結 構來組織該HDD陣列,將HDD的行和列劃分成元的行和列。每個元 具有元類型,其中第一種元類型是數據元而第二種元類型是校驗和元。 該方法還包括從元的行和列創建全跨度,該全跨度包括來自HDD的行 和列中的每個HDD的元,在全跨度中的每個元駐留在物理上獨立的 HDD上。該方法還包括將行校驗和元計算為全跨度的一行中的所有數 據元的校驗和,以及將列校驗和元計算為全跨度的一列中的所有數據元 的校驗和,其中該行校驗和元計算和該列校驗和元計算在單個數據元處 相交。此外,該方法包括使用行校-驗和元和列才交-驗和元來糾正HDD陣 列中的一個或多個HDD故障。另外的實施例包括包含多個硬盤設備HDD陣列的RAID存儲系統, 每個HDD陣列按HDD的二維行和列結構來組織。每個HDD陣列包括 多個全跨度,每個全跨度邏輯上將HDD的行和列劃分成元的行和列, 每個全跨度包括來自HDD的行和列中的每個HDD的元,而且每個全 跨度中的每個元駐留在物理上獨立的HDD上。每個元具有元類型,其 中第 一種元類型是數據元而第二種元類型是校-驗和元。該系統包括被計 算為每個全跨度的一行中的所有數據元的校驗和的行校驗和元,以及被 計算為每個全跨度的一列中的所有數據元的校驗和的列校驗和元。該系統還包括用于控制對多個HDD陣列的存取的多個設備適配器,每個設 備適配器計算行校驗和元和列校驗和元,每個設備適配器以級聯的方式 操作以提供對該多個HDD陣列的冗余存取控制。附加的實施例包括一種用于提供對HDD陣列中的數據丟失的增強 的容限的計算機程序產品。該計算機程序產品包括處理電路可讀的存儲 介質以及由該處理電路執行用于使用 一種方法的存儲指令,該方法包括 按照HDD的二維行和列結構來組織該HDD陣列,以及將HDD的行和 列劃分成元的行和列。每個元具有元類型,其中第一種元類型是數據元 而第二種元類型是校驗和元。該計算機程序產品包括從元的行和列創建全跨度,該全跨度包括來自HDD的行和列中的每個HDD的元,其中 在該全跨度中的每個元駐留在物理上獨立的HDD上。該計算機程序產 品還包括將行校驗和元計算為全跨度的 一行中的所有數據元的校驗和, 以及將列校驗和元計算為全跨度的一列中的所有數據元的校驗和,其中 行校驗和元計算和列校驗和元計算在單個數據元處相交。該計算機程序 產品還包括使用行校驗和元和列校驗和元來糾正HDD陣列中的一個或 多個HDD故障。當看了以下附圖和詳細的描述時,才艮據各實施例的其它系統、方法 和/或計算機程序產品對于本領域的普通技術人員將是或將變得顯而易 見。其意思是這種附加的系統、方法和/或計算機程序產品應當被包括 在該描述內、應當屬于本發明的范圍內以及應當由所附各權利要求來保護。
現在參看各附圖,其中在若干圖中相同的元被標注相同的號。圖1是一種可由示例性實施例來實現的用于在磁盤陣列系統中提供增強的數據丟失容限的系統的框圖;圖2是可由示例性實施例來實現的雙6x6數據元配置的RADI 52系統的框圖;圖3是可由示例性實施例來實現的單個12 x 6數據元配置的RADI 52系統的框圖;圖4是可由示例性實施例來實現的單個6 x 12數據元配置的RADI 52系統的框圖;圖5是可由示例性實施例來實現的四方4 x 4數據元配置的RADI 52 系統的框圖;圖6描繪在可由示例性實施例來實現的10 x IO數據元RAID 52系 統中的連續的全跨度之間的數據和校驗和元的輪換進展。圖7是描繪用于在示例性實施例中實現RAID 52的過程的流程圖。
具體實施方式
如各附圖所示出和描述的示例性的實施例以及附帶文字提供了用 于在磁盤陣列系統中提供增強的數據丟失容限的系統、方法和計算機程 序產品。通過使用針對磁盤陣列系統中的磁盤的二維校驗和,提供了能經得起磁盤陣列中的三個硬盤驅動器(HDD)故障的改善能力。在示例 性的實施例中,生成獨立的行校驗和和列校驗和,該生成是通過對數據 執行RAID-5類型的異或(XOR)運算以便針對被組織在磁盤陣列系 統中HDD的行和列中的數據生成獨立的校驗和。因此,此處示例性實 施例被稱作"RAID 52,, ( RAID 5的平方)。現在,轉到更詳細的附圖,在圖1中將看到系統100的框圖,其中 可以根據示例性的實施例來實現磁盤陣列系統中的增強的數據丟失容 限。圖1中的系統100包括計算機系統102,其執行向非易失性存儲裝 置提交數據并從非易失性存儲裝置檢索數據的軟件。設備適配器104被 耦合到計算機系統102,控制著對HDD陣列106的存取。雖然在系統 100中只描繪了一個設備適配器104,但是應該理解可以存在以級聯方 式工作(也即,合作地或獨立地控制對HDD陣列106的存取,且同時 提供冗余保護)的多個設備適配器。在示例性實施例中,設備適配器104 是通過計算機系統102執行的一個或多個設備驅動器程序來控制的。設 備適配器104可包括處理電路可讀的并存儲著供該處理電路執行的指令 的存儲介質。設備適配器104還可包括一個或多個微控制器、直接內存 存取(DMA)控制器、專用集成電路(AISC)、以及用于才丸行各種控制、 故障檢測和糾錯功能的控制邏輯電路或軟件。在示例性的實施例中,設備適配器104包括存取控制邏輯126、校 驗和計算邏輯128、 HDD故障檢測邏輯130以及糾錯邏輯132。存取控 制邏輯126管理對HDD陣列106中的HDD的讀請求和寫請求,將數 據元和校驗和元的全跨度映射到HDD陣列106中的HDD。在示例性的 實施例中,在全跨度中的每個元駐留在物理上獨立的HDD上。在示例 性的實施例中,校驗和計算邏輯128針對全^爭度中的每行和每列計算數 據元的行校-驗和元和列校-驗和元。HDD故障4企測邏輯130識別HDD陣。糾錯邏輯132利用行校-驗和元或列校-驗 和元中的至少一個來糾正包含故障HDD的全跨度的元。在示例性的實施例中,HDD陣列106包括多個HDD 108- 122以 及可選的HDD 124。雖然系統100描繪了八個HDD 108- 122和一個可 選的HDD 124,但是應該理解可以按行和列來組織的HDD的任何組合 來配置HDD陣列106。設備適配器104通過邏輯上將HDD陣列106劃 分成行和列來將數據和校驗和分布到HDD陣列106上。在示例性的實 施例中,計算機系統102將數據塊傳遞給設備適配器104,而設備適配 器104通過存取控制邏輯126將數據映射到HDD陣列106中的多個 HDD 108 - 122。設備適配器104還將行校驗和和列校驗和寫到HDD陣 列106中的行校驗和元和列校驗和元。在HDD陣列106中數據被劃分 為數據元,諸如HDD 108上的D00、 HDDllO上的DOl、 HDD 112上 的DIO、和HDD H4上的Dll。數據元或校,瞼和元可以是任意大小,諸 如單字節或像32k字節、64k字節、128k字節等等連續字節塊。在示例性的實施例中,校驗和計算邏輯128計算行和列校驗和二者 的值。可以通過使用標準的RAID5類型異或(XOR)針對每行中的數 據元計算行校驗和,作為P校驗和元。例如,HDD 116上的PO可被計 算為DOO XORDOl,而HDD 118上的Pl可被計算為D10 XORDll。 以類似的方式,可以通過使用標準的RAID5類型異或(XOR)針對每 列中的數據元計算列校驗和,作為Q校驗和元。例如,HDD 120上的 QO可被計算為DOO XOR D10,而HDD 122上的Ql可被計算為D01 XORDll。 XOR運算還被稱為XOR求和并且可以用符號" "來表示。 因為,P校驗和是用行上的數據來生成的而Q校驗和是用列上的數據來 生成的,所以在P校驗和和Q校驗和中沒有任何數據元一皮使用超過一次 (也即,行校驗和元計算和列校驗和元計算在單個數據元處相交),并 且因此維護了獨立性而無需使用諸如里德-索羅門編碼之類的數學上更復雜的方案。雖然可使用標準的RAID 5類型XOR來計算行校驗和和 列校驗和,但是現有技術中所公知的任何校驗和技術都可以被使用在示 例性的實施例中。可選的HDD 124是占位者(保留元),其可被填充以提供對行校驗 和元(P值)、列校驗和元(Q值)或者二者組合的附加的校驗和。如果 可選的HDD 124被包括在系統100中,則三個HDD故障的任何組合都 不可能導致系統100出故障。這是非常理想的屬性;然而可能存在與更 新可選的HDD 124相關聯的性能影響,因為在可以計算可選的HDD 124 的校驗和元之前需要計算全跨度內的行校驗和元或列校驗和元。在示例 性的實施例中,可選的HDD 124內的校驗和元對其它校驗和元的依賴 性需要附加的計算時間和對HDD陣列106的附加的1/0操作,其可能 影響系統性能。然而,即使在沒有填充可選的HDD 124的條件下,RAID 52都提供了比行RAID 6好得多的對三個HDD故障的組合的容限。盡管在系統100中數據元和校驗和元被描繪成位于特定的HDD上 (例如,HDD 108上的D00),但是這種劃分不限于靜態配置。在示例 性的實施例中,HDD陣列106中的HDD 108 - 122的行和列^皮邏輯地 劃分成元的行和列,其被稱為"全跨度(foil stride )"。全跨度包括來自 每個HDD 108- 122的元,其包括數據元DOO、 DOl、 D10、 DU、行校 驗和元P0和P1、列校驗和元Q0和Q1、以及可選地包括保留元。每個 元代表在全跨度內的相對的劃分位置,并且駐留在物理上獨立的HDD 上。例如,圖1中所描繪的全跨度包括第一行元DOO、 D01和P0;第二 行元DIO、 Dll和PI;以及第三行元QO、 Ql和可選的保留元。圖1中 所描繪的全^爭度還可被稱為第一列元D00、 D10和Q0;第二列元DOl、 D11和Q1;以及第三列元PO、 PI和可選的保留元。在示例性的實施例 中,存取控制邏輯126管理元到HDD的映射,并且可在全跨度的基礎 上輪換元到HDD的映射。HDD陣列106可包括分布在HDD 108 - 122 和可選的HDD 124上的多個全跨度(例如,數千個)。當大的數據塊^^皮寫到或讀自HDD陣列106時,可能存取多個全跨 度。在示例性的實施例中,數據元和校驗和元在每個全跨度中的HDD 之間進行變換或輪換。例如,全跨度可包括32k字節的數據,其中在 DOO、 D01、 DlO和Dll上各有8k字節的數據元。如果計算機系統102 試圖將64k字節的數據塊寫到HDD陣列106,則該塊將跨過兩個全跨度。對于每個全跨度,每個元(例如DOO)的相對位置可能在HDD 108 -122之間變換。雖然每個全跨度都包含數據元DOO,但是在連續的全 跨度之間D00所映射到的特定的HDD可能發生輪換。例如,在第一全 跨度中數據元D00可以位于HDD 108上,并且在第二全跨度中D00可 以變換到HDD110。類似地,在連續的全跨度之間,每個數據和校驗和 元可以在HDD 108 - 122上輪換。這種輪換減少了由于過度使用所造成 的HDD故障的風險,因為被頻繁存取的校驗和信息在每個全跨度分布 于HDD 108 - 122之間而不是分配專用的奇偶校驗HDD。現有技術中所公知的各種技術都可被用來識別HDD陣列106內的 哪些HDD已經發生故障。例如,HDD可能停止對命令做出響應,或者 每個HDD 108 - 122上內嵌的校驗機制可使用諸如奇偶校驗、循環冗余 校驗(CRC)或縱向冗余校驗(LRC)之類的技術來識別故障驅動器。 在示例性的實施例中,設備適配器104內的HDD故障沖全測邏輯130識 別HDD陣列106中的一個或多個故障HDD。一旦識別了 HDD故障,可以通過設備適配器104內的糾正邏輯132 來糾正故障數據。通過使用存儲在HDD陣列106中的數據的行校驗和 和列校驗和,可以適應許多故障模式。不僅可以糾正所有兩個HDD故 障,而且也可以適應許多三個HDD故障的組合。例如,如果DOO、 D10 和QO發生故障,則D00可以被重構為D01 XORP0; D10可以被重構 為Dll X0RP1;而Q0可以在重構D00和D10之后^皮重構為DOO XOR D10。在示例性的實施例中,基于系統IOO所使用的具體的校驗和算法 可以使用替代的校驗和算法所特有的技術。通過分析全跨度中的故障確定糾正順序。因此,整個列可能發生故障并且該列可以被一行一行地 被糾正,因為每一行將只包含一個故障。通常,對于RAID 52,導致數據丟失的三個HDD故障組合的數目等于數據元行(A)的數目乘以數據元列(N)的數目,其產生于在數據元、行校驗和元和列校驗和元的交叉點處同時發生的故障。相反,使用雙校驗和元的RAID 6實現易受到大量的三個HDD故障的影響,其 是j[翠+,+2)。通過計算RAID 6的三個HDD故障的組合的數目除以RAID 52的三個HDD故障的組合的數目的比率,改善的幅度將顯 而易見。換言之,RAID 52的對三個HDD故障的組合的容限與陣列中 的數據元HDD的等價數目的平方成比例。因此,對于RAID 52,導致 系統故障或數據丟失的三個HDD故障的組合的數目與陣列中的HDD 的總數成線性關系。這是非常理想的屬性,因為陣列中的HDD的數目 越大,則RAID 52能經受住導致產生數據丟失事件的三個HDD故障的 能力的改善幅度就越大。系統中的HDD越多,這種改善的幅度就越大,因為RAID 6易遭受數據丟失,其組合比RAID 52的多 )個。6現在轉到圖2,現在將根據示例性的實施例來描述系統200,其中 可以實現磁盤陣列系統中的增強的數據丟失容限。系統200包括多至96 個3皮連接到一對"i殳備適配器202和204的HDD。在示例性的實施例中, 設備適配器202和204調整對HDD的存取請求,提供與單個磁盤控制 器系統相類似的行為。設備適配器202和204可級聯地工作,分享工作 負荷并提供冗余以相對于具有單個設備適配器或磁盤控制器的系統而 言改善系統的可靠性。系統200包括HDD陣列206和208,其凈皮配置 為兩個RAID 52,每個都由48個HDD塊構建。將系統200的HDD組 織成RAID 52構建塊使得能夠在存儲裝置隨時間需要進行改變時添加或 減去容量。HDD陣列206和208每個均包括36個數據HDD,其被組 織成6行數據元HDD乘以6列數據元HDD。 HDD陣列206和208每 個均還包括6個行校驗和元HDD (P值)和6個列4交'瞼和元HDD ( Q 值)。這些行校驗和元和列校驗和元按照二維方式進行計算,也被稱為 "二維三角剖分,,(2DT),如前面所描述。與圖1中的系統IOO相類似, 在全跨度之間,數據元和校驗和元到每個HDD陣列206和208內的HDD 的分配可以發生輪換。因此, 一個全跨度中的數據元HDD可能變成后續的全跨度中的校驗和元HDD,并且反之亦然。系統200的RAID 52 配置具有75 %的磁盤利用率一一可用于用戶數據的所有存儲裝置相對 于可用于校驗和數據的所有存儲裝置的百分比,其等于可比較的RAID 6配置;然而,該RAID 52配置實現了 9倍的可用性改善以經受住由于 三個HDD故障造成的數據丟失。因為RAID5^己置是用可變行和列的維數來實現的,所以方程的通 用集可以相應地按比例縮放。在示例性的實施例中,針對給定的行(r), 可以將RAID 52行的行校驗和元(P)計算為Pr = Dr。
Drl … D,.,), 其中D值表示該行的數據元而N表示數據元列的數目。當數據元(例 如Drcnew)被更新時,可以通過使用舊行校驗和元(Pr。ld)、新數據元 (Drcnew)和舊數據元(Dre_。ld)將新行校驗和元(Pr—new)計算為Pr_new =Pr—。ld Drc—new Drc—。ld,由此更新行;艮驗和元而無需讀取該行中的所有 數據元。為了重建數據元(例如Dre),可以將該行內的所有其它數據元 與該行校驗和元進行異或Drc = Dr0 … Dr(c- d Dr(c+1) … Dr(N—!) Pr。類似地,在示例性的實施例中,針對給定的列(c),可以將RAID52 列的列校驗和元(Q)計算為Qe-DocSDk④…④D(A,,其中D值表 示該列的數據元而A表示數據元行的數目。當數據元(例如Drcnew)被 更新時,可以通過使用舊列校驗和元(Qc_。ld)、新數據元(Drc_new)和舊 數據元(Drc—。ld)將新列校驗和元(Qc—new)計算為Qe一簡=Qc—。ld Drc_new Drc_。ld,由此更新該列校驗和元而無需讀耳又該列中的所有ft據元。為 了重建數據元(例如Drc),可以將該列內的所有其它數據元與該列校驗和元進行異或Dre-D。e十…十D(H)e十D(r+De十…十D(A-De0Qe。在示例性的實施例中,基于系統RAID 52系統所使用的具體的校驗和算法可以 使用替代的校驗和算法所特有的技術。現在轉到圖3,現在將根據示例性的實施例來描述系統300,其中 可以實現磁盤陣列系統中的增強的數據丟失容限。系統300包括多至96 個被連接到一對設備適配器302和304的HDD。系統300的HDD被配 置成單個RAID 52塊306。該RAID 52塊306被組織成12行數據元HDD 乘以6列數據元HDD。該RAID 52塊306還包括12個4亍4交'驗和元HDD(P值)和6個列校驗和元HDD ( Q值)。與圖1中的系統100相類似, 在全跨度之間,數據元和校驗和元到該RAID 52塊306內的HDD的分 配可以發生輪換,也即在連續的全跨度之間,每個元在每個全跨度中的 相對于HDD陣列的位置被輪換到相對于HDD陣列的不同位置。系統 300的部件提供與前面所描述的系統100和200相類似的性能特性和特 征。該RAID 5S塊306還包括多至6個在HDD發生故障時可對換的聯 機備用HDD,其用作HDD重構操作中的替換磁盤而無需技術人員的干 預。該RAID 52塊306內的這6個備用HDD中的一個可用作保留元磁 盤,其提供P校驗和元、Q校驗和元、或者二者的組合中的任何一個的 可選的校驗和。可以填充少于所有6個備用HDD以減少總的系統成本。 雖然RAID 52系統300相對于RAID 6配置的可用性改善保持在9倍, 但是80%的效率也即磁盤利用率大于具有75%的磁盤利用率的可比較 的行RAID 6配置,因為系統300中的Q校驗和元的數目減少了 。 RAID 52系統300的聯機備用HDD還極大地改善了總體可用性,因為任何 HDD發生故障時它們都可以被自動地改變進配置中,而無需等待合格 人員來進行維修。因此,聯機備用HDD通過減少故障磁盤被替換之前 的時間流逝可以極大地改善總體系統可用性。i茲盤故障和i茲盤替換之間 的時間流逝越短,則出現導致系統故障的三個磁盤故障的組合的可能性 就越小。現在轉到圖4,現在將才艮據示例性的實施例來描述系統400,其中 可以實現磁盤陣列系統中的增強的數據丟失容限。系統400包括多至96 個被連接到一對設備適配器402和404的HDD。系統400的HDD被配 置成單個RAID 52塊406。除了 RAID 52塊的維數被轉置之外,圖4中 的系統400類似于圖3中的系統300。 RAID 52塊406被組織成6行數 據元HDD乘以12列數據元HDD。 RAID 52塊406還包括6個行才交驗和 元HDD (P值)和12個列才交'驗和元HDD ( Q值)。RAID 52塊406還包 括6個備用HDD,它的使用和約束與前面參照圖3中的系統300所描 述的相類似。RAID 52系統400相對于RAID 6配置的可用性改善是30 倍。RAID 52系統400的HDD利用效率是80% ,其小于具有86%的HDD利用效率的可比較的行RAID 6配置。然而,與使用P校驗和元相 反,通過使用Q校驗和元,RAID 5^系統400的減少的HDD利用效率 導致產生2倍的HDD重建時間的改善。現在轉到圖5,現在將根據示例性的實施例來描述系統500,其中 可以實現磁盤陣列系統中的增強的數據丟失容限。系統500包括多至96 個被連接到一對設備適配器502和504的HDD。系統500的HDD被配 置成四個RAID 52塊506、 508、 510和512,其中每個RAID 52塊具有 24個HDD。每個RAID 52塊506、 508、 510和512被組織成4 4亍數據 元HDD乘以4列數據元HDD。每個RAID 52塊506、 508、 510和512 還包括4個行校-驗和元HDD ( P值)和4個列校驗和元HDD ( Q值)。 系統500的部件^是供與諸如圖1和圖2中的系統100和系統200的前述 系統相類似的特4i和功能。每個RAID 52塊506、 508、 510和512可以 被遞增地添加到系統500或從系統500移除。與圖2中的系統200相比, 系統500的較小的RAID 5"塊大小在升級RAID 52解決方案時提供增加 的靈活性以滿足各種企業的需求。RAID 52系統500具有67%的磁盤利 用率,其等于可比較的RAID6配置,然而RAID 52系統500在經受住 由于三個HDD故障所造成的數據丟失的能力方面獲得了 5倍的可用性 改善。現在轉到圖6,現在將根據示例性的實施例來描述在10x IO數據元 RAID 52系統中在連續的全跨度之間的示例性的數據和校驗和元輪換進 展。圖6提供了當數據元和校驗和元在連續的全跨度中在物理上獨立的 HDD之間進行輪換時數據元和校驗和元的進展的例子。每個柵格602、 604、 606和608代表使用RAID 52的120個HDD的公共陣列上的連續 的全跨度,所述RAID5S與前面所描述的系統一致。在示例性的實施例 中,位于該HDD陣列的左上角的HDD包含連續的元全跨度1的DOO、 全跨度2的Q9、全跨度3的Q8和全跨度4的Q7。雖然在柵格602 -換,但是可以支持在連續的全跨度中的HDD之間的任何可重復式樣的 元的變換或輪換。例如,這種順序可以被倒過來,從而全跨度l等同于柵格608、全跨度2等同于柵格606、全跨度3等同于柵格604,等等。 在示例性的實施例中,對于在圖6中所描繪的那些全跨度以外的連續的 全跨度,這種輪換式樣持續進行下去。柵格602-608中的右下角處的黑框表示與圖1中的可選的HDD 124 —致的用于保存保留元的可選的HDD。對于未4吏用可選的HDD的 配置,不存在右下角的黑框。當可選的HDD被填充時,圖6中的HDD 陣列包含121個HDD。每個全跨度中的保留元(也即右下角的黑框) 可以以與數據元和校驗和元一致的式樣發生輪換,將保留元中的校驗和 值充分均勻地分布于該HDD陣列中的所有HDD上。此外,在每個全 跨度中包括保留元將漢明距離增加到4,從而RAID 52配置可完全容忍 多至3個HDD故障,代價是增加了復雜度并減少了 HDD利用效率。現在轉到圖7,現在將根據示例性的實施例來描述用于實現RAID 52 的過程700。在示例性的實施例中,過程700提供了對HDD陣列(諸 如圖1中的HDD陣列106)中的三個HDD上的數據丟失的增強的容限。 在塊702處,HDD陣列"l安照HDD的二維^f于和列結構來組織。在塊704 處,將HDD的行和列劃分成元的行和列,其中每個元具有元類型,其 包括數據元、校驗和元和保留元。在示例性的實施例中,由圖1中的設 備適配器104的存取控制邏輯126來控制將HDD的行和列劃分成元的 行和列。在塊706處,從元的行和列創建全跨度,全跨度包括來自HDD 的行和列中的每個HDD的元,其中全跨度中的每個元駐留在物理上獨 立的HDD中。在示例性的實施例中,存取控制邏輯126將元的行和列 作為全跨度來進行管理。盡管在示例性的實施例中可創建并管理多個全 跨度,但是為了便于解釋僅參考單個全跨度來描述校驗和計算過程。在塊708處,通過校驗和計算邏輯128將行校驗和元計算為全跨度 的一行中的所有數據元的校驗和。在塊710處,通過校驗和計算邏輯128 將列校驗和元計算為全跨度的一列中的所有數據元的校驗和。在示例性 的實施例中,行校驗和元計算和列校驗和元計算在單個數據元處相交。 在示例性的實施例中,行校驗和元被存儲在與行校驗和元計算中所包括 的數據元相分離的元列中,而列校驗和元被存儲在與在列校驗和元計算中所包括的數據元相分離的元行中。針對全跨度中的數據元的每行和每列計算行校驗和和列校驗和。在塊712處,可選地,保留元用全跨度中 的所有行校驗和元的校驗和計算結果與全跨度中的所有列校驗和元的 校驗和計算結果中的至少一個來填充。在塊708、 710和可選的712中 的行校驗和計算和列校驗和計算可使用在單個數據元處相交的任何聯 立方程。在塊708、 710和可選的712中的校驗和計算可利用現有技術 中所公知的任何方法,諸如XOR求和、里德-索羅門方程或能夠檢測錯 誤并提供唯一的錯誤糾正解決方法的任何檢錯/糾錯算法。可優選使用諸 如XOR求和之類的簡單校驗和計算方法以使復雜度和系統成本達到最在塊714處,存取控制邏輯126在連續的全跨度之間輪換元位置, 其中在連續的全跨度之間在每個全跨度中的每個元相對于HDD陣列的 位置被輪換到相對于該HDD陣列的不同位置。如果保留元被填充,則 它可被包括在連續的全跨度之間的元輪換中。在塊716處,當數據元被更新時,行校驗和元和列校驗和元被存取 控制邏輯126和4交^^和計算邏輯128更新。在示例性的實施例中,當全 跨度的數據元中的舊數據被新數據替換時,在舊行檢驗和被計算為XOR 求和的情況下,新行校驗和被計算為舊行校驗和、新數據以及舊數據的 XOR求和。新行校驗和被寫到行校驗和元。類似地,在示例性的實施 例中,當舊列校驗和被計算為XOR求和時,新列校驗和被計算為舊列 校驗和、新數據以及舊數據的XOR求和。類似的計算和更新技術可被 用于其它校驗和計算算法。新列校驗和被寫到列校驗和元。如果保留元 被填充,則當該保留元所依賴的那些元發生改變時,該保留元也被更新。在塊718處,由故障檢測邏輯130來執行檢查以檢測HDD陣列中 的一個或多個HDD故障的出現并且確定在包含著該一個或多個HDD 故障的全跨度中的故障數目。糾正邏輯132基于包含著該一個或多個 HDD故障的全跨度中的故障分布,通過將包含著單個故障的行或列識 別為將糾正的初始元,來選擇糾正順序。在塊720處,行校驗和元和列 才交驗和元^f皮糾正邏輯132用于糾正HDD陣列中的一個或多個HDD故障。行校驗和元可被用于將包含著該一個或多個HDD故障的全跨度的 元行中的一個元糾正為包含著該一個或多個HDD故障的全跨度的元行 中的所有其它元的校驗和計算結果。列校驗和元可被用于將包含著該一 個或多個HDD故障的全跨度的元列中的一個元糾正為包含著該一個或 多個HDD故障的全跨度的元列中的所有其它元的校驗和計算結果。作 為替代,基于所使用的校驗和算法,可使用檢驗和算法所特有的糾正技 術來糾正HDD故障。示例性的實施例的技術效果和益處包括將雙正交校驗和值計算為 簡單的XOR計算,而相比之下RAID 6使用更加復雜的里德-索羅門編 碼。另外的技術效果和益處包括在全跨度增加中在HDD之間輪換數據 元和校驗和元,因此減少了與專用校驗和HDD相關聯的快速HDD磨 損的風險。優點包括與RAID 6相比改善的能經受住HDD陣列中的三 個HDD故障的能力,由此在示例性的實施例中提供了在防止數據丟失 方面的數量級幅度的改善且不引起性能衰減。另外的優點還包括針對 與可比較的RAID 6配置相比具有較低效率的RAID 52配置,通過使用 Q校驗和成比例縮短的重建時間。使用RAID5"所得到的更快的重建性 能還減少了在重建操作期間與條破壞相關聯的數據丟失風險。通過增加 RAID 5ZHDD行或列中的磁盤數目,可改善HDD利用率(也即可用于 用戶數據的總存儲裝置相對于可用于校驗和數據的總存儲裝置的百分 比),而同時可通過降^f氐HDD利用率來減少重建時間。如上所述,本發明的實施例可以以計算機實現的過程和用于實現那 些過程的裝置的形式來實現。本發明的實施例還可以以包含著在有形介 質中實現的指令的計算機程序代碼的形式來實現,所述有形介質諸如軟 盤、CD-ROM、硬盤驅動器、或任何其它計算機可讀存儲介質,其中當 該計算機程序代碼被裝載進計算機并被計算機執行時,該計算機就成了 用于實現本發明的裝置。本發明還可以以計算機程序代碼的形式來實 現,該計算機程序代碼例如被存儲在存儲介質中,被裝載進計算機并/ 或被計算機執行,或者諸如通過電線或電纜、通過光纖或經由電磁輻射 之類通過某些傳輸介質進行傳輸,其中當該計算機程序代碼被裝載進計算機并被該計算機執行時,該計算機就成了用于實現本發明的裝置。當 該計算機程序代碼在通用微處理器上實現時,該計算機程序代碼段配置 該微處理器以創建專用邏輯電路。盡管已經參考示例性的實施例描述了本發明,但是本領域的普通技 術人員應當理解在不偏離本發明的范圍的條件下可以做出各種各樣的 改變并且其中元可以被等效物所替換。另外,在不偏離本發明的范圍的 條件下可以做出許多修改以使特殊的情況或材料適應本發明的教導。由 此,其意思是本發明不受限于作為預期用于實現本發明的最佳模式公開 的特定實施例,相反本發明將包括落入所附權利要求的范圍內的所有實 施例。此外,對術語第一、第二等等的使用不表示任何次序或重要性, 術語第一、第二等等僅是用于將元彼此區分開。
權利要求
1.一種獨立磁盤冗余陣列(RAID)存儲系統,包括按照HDD的二維行和列結構來組織的硬盤設備(HDD)陣列;邏輯上將所述HDD的行和列劃分成元的行和列的全跨度,所述全跨度包括來自所述HDD的行和列中的每個HDD的元,所述全跨度中的每個元駐留在物理上獨立的HDD上;每個元,其具有元類型,其中第一種元類型是數據元而第二種元類型是校驗和元;被計算為所述全跨度的一行中的所有數據元的校驗和的行校驗和元;被計算為所述全跨度的一列中的所有數據元的校驗和的列校驗和元;其中所述行校驗和元計算和所述列校驗和元計算在單個數據元處相交;以及用于控制對所述HDD陣列的存取的設備適配器,所述設備適配器計算所述行校驗和元和所述列校驗和元,所述行校驗和元和所述列校驗和元被用于糾正所述HDD陣列中的一個或多個故障。
2. 根據權利要求1所述的系統,其中所述設備適配器還執行 檢測所述HDD陣列中的故障;將包含所述故障的全跨度的元行中的一個元糾正為包含所述故障 的所述全跨度的元行中的所有其它元的校驗和計算結果;以及將包含所述故障的全跨度的元列中的 一 個元糾正為包含所述故障 的所述全跨度的元列中的所有其它元的校驗和計算結果。
3. 根據權利要求2所述的系統,其中所述設備適配器還執行 確定所述全跨度中的故障數;以及選擇糾正順序。
4. 根據權利要求1所述的系統,其中所述設備適配器還執行用新數據替換所述全跨度的數據元中的舊數據,所述舊數據被包括 在舊行校驗和和舊列校驗和中,其中所述舊行校驗和和舊列才交驗和都是異或(XOR)求和校驗和;將新行校驗和計算為所述舊行校驗和、所述新數據以及所述舊數據 的異或(XOR)求和;將所述新行校^r和寫到所述行校驗和元;將新列校驗和計算為所述舊列校驗和、所述新數據以及所述舊數據 的異或(XOR)求和;將所述新列校—驗和寫到所述列校—驗和元。
5. 根據權利要求1所述的系統,還包括 第三種元類型,其中所述第三種元類型是保留元;以及所述HDD陣列中的附加HDD,所述附加HDD提供用于包括所述 全跨度中的保留元的容量;其中所述保留元用所述全跨度中的所有行校驗和元的校驗和計算 結果和所述全跨度中的所有列校驗和元的校驗和計算結果中的至少一 個來填充。
6. 根據權利要求1所述的系統,還包括多個全跨度,其中在連續 的全跨度之間,每個元在每個全跨度中的相對于所述HDD陣列的位置 被輪換到相對于所述HDD陣列的不同位置。
7. 根據權利要求1所述的系統,還在所述HDD陣列中包括備用 HDD,所述備用HDD提供容量以重建故障HDD。
8. 根據權利要求1所述的系統,還包括第二設備適配器,所述第 二設備適配器用于控制對所述HDD陣列的存取,以及用于與所述設備 適配器級聯地工作。
9. 根據權利要求1所述的系統,其中導致系統故障的三個HDD故 障的組合的數目與所述HDD陣列中的HDD的總數成線性關系。
10. —種用于控制對按照HDD的二維行和列結構來組織的硬盤設 備(HDD)陣列的存取的設備適配器,所述設備適配器包括存耳又控制邏輯,用以管理對所述HDD陣列中的HDD的讀請求和寫請求,所述存取控制邏輯將數據元和校驗和元的全跨度映射到所述HDD陣列,其中所述全跨度中的每個元駐留在所述HDD陣列中的物理 上獨立的HDD上;校驗和計算邏輯,用以計算在所述全跨度中的數據元的行校驗和元 和列校驗和元;HDD故障檢測邏輯,用以識別所述HDD陣列中的故障HDD;以及糾正邏輯,響應于所述HDD故障檢測邏輯識別到故障HDD,所述 糾正邏輯利用所述行校驗和元和所述列校驗和元中的至少一個來糾正 包含故障HDD的全跨度的元。
11. 根據權利要求10所述的設備適配器,其中所述行校驗和元被 計算為所述全跨度的一行中的所有數據元的異或(XOR)求和;以及所述列校驗和元被計算為所述全跨度的一列中的所有數據元的異 或(XOR)求和。
12. 根據權利要求10所述的設備適配器,其中所述糾正邏輯將包 含所述故障HDD的所述全^爭度的元行中的一個元糾正為包含所述故障 的所述全跨度的元行中的所有其它元的校驗和計算結果;以及所述糾正邏輯將包含所述故障的所述全跨度的元列中的一個元糾 正為包含所述故障的所述全跨度的元列中的所有其它元的校驗和計算 結果。
13. 根據權利要求10所述的設備適配器,其中所述故障檢測邏輯 確定所述全跨度中的故障數而所述糾正邏輯選擇糾正順序。
14. 根據權利要求11所述的設備適配器,其中所述存取控制邏輯 還執行用新數據替換所述全跨度的數據元中的舊數據,所述舊數據被包 括在舊行校驗和和舊列校驗和中;所述校驗和計算邏輯還執行將新行校驗和計算為所述舊行校驗和、所述新數據以及所述舊數據 的異或(XOR)求和;以及將新列校驗和計算為所述舊列校驗和、所述新數據以及所述舊數據的異或(XOR)求和;以及 所述存取控制邏輯還執行 將所述新行校驗和寫到所述行校驗和元;以及 將所述新列校驗和寫到所述列校驗和元。
15. 根據權利要求IO所述的設備適配器,其中所述存取控制邏輯、 所述HDD故障檢測邏輯、所述校驗和計算邏輯、以及所述糾正邏輯還 支持保留元;所述HDD陣列中的附加HDD,所述附加的HDD提供用于包括所 述全跨度中的保留元的容量;以及其中所述保留元用所述全跨度中的所有行校驗和元的校驗和計算 結果和所述全跨度中的所有列校驗和元的校驗和計算結果中的至少一 個來填充。
16. 根據權利要求10所述的設備適配器,其中所述存取控制邏輯 支持在連續的全跨度之間的元位置輪換,其中在連續的全跨度之間,每 個元在每個全跨度中的相對于所述HDD陣列的位置被輪換到相對于所 述HDD陣列的不同位置。
17. 根據權利要求IO所述的設備適配器,其中所述存取控制邏輯、 所述HDD故障檢測邏輯、所述校驗和計算邏輯以及所述糾正邏輯還支 持所述HDD陣列中的備用HDD,所述備用HDD提供容量以重建故障 HDD。
18. 根據權利要求10所述的設備適配器,其中所述存取控制邏輯 還執行級聯設備適配器控制,用于共同地或冗余地操作一個或多個附加 的設備適配器。
19. 根據權利要求IO所述的設備適配器,其中導致所述HDD陣列 中的數據丟失的三個HDD故障的組合的數目與所述HDD陣列中的 HDD的總數成線性關系。
20. —種用于提供對HDD陣列中的三個硬盤設備(HDD )上的數 據丟失的增強的容限的方法,所述方法包括按照HDD的二維行和列結構來組織所述HDD陣列; 將所述HDD的行和列劃分成元的行和列,每個元具有元類型,其中第一種元類型是數據元而第二種元類型是校驗和元;從所述元的行和列創建全跨度,所述全跨度包括來自所述HDD的行和列中的每個HDD的元,所述全跨度中的每個元駐留在物理上獨立的HDD上;將行校驗和元計算為所述全跨度的一行中的所有數據元的校驗和; 將列校驗和元計算為所述全跨度的一列中的所有數據元的校驗和; 其中所述行校驗和元計算和所述列校驗和元計算在單個數據元處 相交;以及使用所述行校驗和元和所述列校驗和元來糾正所述HDD陣列中的 一個或多個HDD故障。
21. 根據權利要求20所述的方法,還包括 ;險測所述HDD陣列中的一個或多個HDD故障; 確定包含著所述一個或多個HDD故障的全跨度中的故障數目; 選^t奪糾正順序;其中使用所述行校驗和元來糾正所述HDD陣列中的一個或多個 HDD故障包括將包含著所述一個或多個HDD故障的所述全跨度的元行中的 一個元糾正為包含所述一個或多個HDD故障的所述全跨度的元行中的所有其它元的校驗和計算結果;以及 其中使用所述列校驗和元來糾正所述HDD陣列中的一個或多個 HDD故障包括將包含著所述一個或多個HDD故障的所述全跨度的元列中的 一個元糾正為包含所述一個或多個HDD故障的所述全^夸度的元列中的所有其它元的校驗和計算結果。
22. 根據權利要求20所述的方法,還包括用新數據替換所述全跨度的數據元中的舊數據,所述舊數據被包括 在舊行校驗和和舊列校驗和中,其中所述舊行校驗和和所述舊列校驗和是異或(XOR)求和校驗和;將新行校驗和計算為所述舊行校驗和、所述新數據以及所述舊數據 的異或(XOR)求和;將所述新行校驗和寫到所述行校驗和元;將新列校驗和計算為所述舊列校驗和、所述新數據以及所述舊數據 的異或(XOR)求和;以及將所述新列校驗和寫到所述列校驗和元。
23. 根據權利要求20所述的方法,還包括第三種元類型,其中所 述第三種元類型是保留元;以及其中所述保留元用所述全跨度中的所有行校驗和元的校驗和計算 結果和所述全跨度中的所有列校驗和元的校驗和計算結果中的至少一 個來填充。
24. 根據權利要求20所述的方法,還包括在連續的全跨度之間對 元進行輪換,其中在連續的全跨度之間,每個元在每個全跨度中的相對 于所述HDD陣列的位置被輪換到相對于所述HDD陣列的不同位置。
25. 根據權利要求20所述的方法,其中導致數據丟失的三個HDD 故障的組合的數目與所述HDD陣列中的HDD的總數成線性關系。
26. —種獨立磁盤冗余陣列(RAID)存儲系統,包括多個硬盤設備(HDD )陣列,每個HDD陣列按照HDD的二維行 和列結構來組織;每個HDD陣列包括多個全跨度,每個全跨度邏輯上將所述HDD 的行和列劃分成元的行和列,每個全跨度包括來自所述HDD的行和列 中的每個HDD的元,每個全跨度中的每個元駐留在物理上獨立的HDD上;每個元,其具有元類型,其中第一種元類型是數據元而第二種元類 型是校驗和元;被計算為每個全跨度的 一行中的所有數據元的校驗和的行校驗和元;被計算為每個全跨度的一列中的所有數據元的校驗和的列校驗和元;以及用于控制對所述多個HDD陣列的存取的多個設備適配器,每個設 備適配器計算所述行校驗和元和所述列校驗和元,每個設備適配器以級 聯的方式操作以提供對所述多個HDD陣列的冗余存取控制。
27. 根據權利要求26所述的系統,其中每個設備適配器還執行 才企測所述多個HDD陣列中的一個或多個故障;確定所述多個HDD陣列中的故障數目; 選擇糾正順序;將包含著故障的全跨度的元行中的 一 個元糾正為包含所述故障的 所述全跨度的元行中的所有其它元的校驗和計算結果;以及將包含著故障的全跨度的元列中的一個元糾正為包含所述故障的 所述全跨度的元列中的所有其它元的校驗和計算結果。
28. 根據權利要求26所述的系統,還包括 第三種元類型,其中所述第三種元類型是保留元;以及 在所述HDD陣列的至少一個中的附加HDD,所述附加的HDD提供用于包括每個全跨度中的保留元的容量;其中每個保留元用每個全跨度中的所有行校驗和元的校驗和計算 結果和每個全跨度中的所有列校驗和元的校驗和計算結果中的至少一 個來填充。
29. 根據權利要求26所述的系統,其中在連續的全跨度之間,每 個元在每個全跨度中的相對于每個HDD陣列的位置被輪換到相對于每 個HDD陣列的不同位置。
30. 根據權利要求26所述的系統,還包括每個HDD陣列中的一個 或多個備用HDD,所述一個或多個備用HDD提供容量以重建故障 HDD。
31. 根據權利要求26所述的系統,其中導致系統故障的三個HDD 故障的組合的數目與每個HDD陣列中的HDD的總數成線性關系。
32. —種計算機程序產品,用于提供對HDD陣列中的數據丟失的 增強的容限,所述計算機程序產品包括用于執行根據權利要求20至25 中的任何一個的步驟的計算^/L可^L行程序代碼。
全文摘要
本發明提供用于提供增強的數據丟失容限的系統、設備適配器和方法。該系統包括獨立磁盤冗余陣列存儲系統,其包括按照硬盤設備(HDD)的二維行和列結構組織的HDD陣列。該系統包括邏輯上將HDD的行和列劃分成元的行和列的全跨度,全跨度包括來自HDD的行和列中的每個HDD的元,在全跨度中的每個元駐留在物理上獨立的HDD中。每個元具有元類型,包括數據元和校驗和元。該系統還包括行校驗和元和列校驗和元,其中行校驗和元計算和列校驗和元計算在單個數據元處相交。該系統還包括用于控制對HDD陣列的存取的設備適配器,該設備適配器計算行校驗和元和列校驗和元,行校驗和元和列校驗和元被用于糾正HDD陣列中的一個或多個故障。
文檔編號G06F11/10GK101231602SQ200810001750
公開日2008年7月30日 申請日期2008年1月8日 優先權日2007年1月10日
發明者J·A·奧康納 申請人:國際商業機器公司