專利名稱:無需使用奇偶校驗建立優(yōu)于6級raid的冗余和容錯性的方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及存儲裝置,更具體地,涉及用于不使用奇偶校驗而建立優(yōu)于6 級RAID的冗余和容錯性水平。
背景技術(shù):
RAID(廉價馬區(qū)動器的冗余陣歹Ij,redundant array of inexpensive drives) 存儲系統(tǒng)中使用的傳統(tǒng)方法主要基于XOR函數(shù)(奇偶校驗計算)或鏡像函數(shù)(mirror function)以獲得冗余并提供容錯性。在RAID 1和RAID 10技術(shù)中,驅(qū)動器(drive)被鏡像以獲得冗余。每次在介質(zhì)上存在新的寫入時,需將整個數(shù)據(jù)復(fù)制并寫入數(shù)據(jù)驅(qū)動器和對應(yīng)的鏡像驅(qū)動器上。參照圖1,示出了 RAID 10方式。驅(qū)動器DISKO被示出為鏡像至驅(qū)動器DISK1。驅(qū)動器DISK2被示出為鏡像至驅(qū)動器DISK3。RAID 1和RAID 10方式涉及將一個驅(qū)動器的完整內(nèi)容鏡像至另一驅(qū)動器。如果存在配置為RAID 1的兩個驅(qū)動器,其中每個驅(qū)動器具有容量 C GB,則RAID組的總?cè)萘繉⑹荂 GB (即,并不是兩個驅(qū)動器的總?cè)萘?C GB)。因此,RAID 1或RAID 10的總存儲容量是RAID 1或RAID 10配置中的所有驅(qū)動器的總?cè)萘康?0%。參照圖2,示出了 RAID 4禾PRAID 5方式。示出了多個驅(qū)動器DISK0、DISK1、DISK2、 DISK3。在RAID 4和RAID 5中,跨過RAID組的多個驅(qū)動器DISKO DISK3將數(shù)據(jù)塊分成條。在所示的RAID 4配置中,驅(qū)動器0151(0、0151(1、0151(2和0151(3存儲數(shù)據(jù)。奇偶校驗塊被存儲在專用驅(qū)動器(即,示出為驅(qū)動器DISK3)。在RAID 5中,跨過RAID組中的所有驅(qū)動器DISKO DISK3分布奇偶校驗。在示出的RAID 5配置中,驅(qū)動器DISK3被示出為保存數(shù)據(jù)(與其中驅(qū)動器DISK3僅保存奇偶校驗的RAID 4相比較)。D奇偶校驗存儲在盤DISKO 中。C奇偶校驗存儲在DISKl上。B奇偶校驗被示出為存儲在盤DISK2上。A奇偶校驗被示出為存儲在盤DISK3上。RAID 4和RAID 5方式使用基于XOR函數(shù)的奇偶校驗生成。通過RAID 4和RAID 5,使用每個數(shù)據(jù)條來產(chǎn)生奇偶校驗。然后,產(chǎn)生的奇偶校驗被存儲在另一專用驅(qū)動器中或跨過RAID組的所有驅(qū)動器分布。RAID4和RAID 5在不丟失數(shù)據(jù)的情況下一次僅能容忍一個驅(qū)動器故障。參照圖3,示出了 RAID 6方式。在RAID 6方式中,跨過RAID組的多個驅(qū)動器(即, 示出為驅(qū)動器DISKO DISK4)將數(shù)據(jù)塊A D分成條。計算兩個奇偶校驗。然后,兩個奇偶校驗跨過RAID組中的所有驅(qū)動器分布這。第一個D奇偶校驗(即,數(shù)據(jù)塊D的奇偶校驗)被示出為存儲在驅(qū)動器DISKO上。第二個D奇偶校驗被示出為存儲在驅(qū)動器DISKl上。A C奇偶校驗被示出為類似地分布在驅(qū)動器DISKl DISK4上。由于雙奇偶校驗生成,RAID 6配置的性能低于RAID 0、RAID 4或RAID 5配置的性能。在RAID 6配置的數(shù)據(jù)修改和數(shù)據(jù)寫入過程中涉及的復(fù)雜性也使性能變慢。RAID 6 在不丟失數(shù)據(jù)的情況下僅能提供多達(dá)兩個驅(qū)動器故障的容錯性。期望實現(xiàn)一種在不增加實現(xiàn)奇偶校驗的處理開銷的情況下建立比6級RAID的冗余和容錯性的水平更高的方法。
發(fā)明內(nèi)容
本發(fā)明關(guān)心一種設(shè)備,包括至少三個驅(qū)動器的邏輯相連組、第一環(huán)、第二環(huán)、壓縮/ 解壓電路。每個驅(qū)動器包括(i)被配置為存儲前一驅(qū)動器的壓縮數(shù)據(jù)的第一區(qū)域,( )被配置為存儲該驅(qū)動器的未壓縮數(shù)據(jù)的第二區(qū)域,(iii)被配置為存儲下一驅(qū)動器的壓縮數(shù)據(jù)的第三區(qū)域。第一環(huán)可連接至邏輯相連組中的下一驅(qū)動器。第二環(huán)可連接至邏輯相連組的前一驅(qū)動器。壓縮/解壓電路可被配置為對存儲在每個驅(qū)動器上的數(shù)據(jù)進(jìn)行壓縮和解壓。本發(fā)明的目的、特征和優(yōu)勢包括提供一種驅(qū)動器存儲配置,可以(i)建立優(yōu)于6級 RAID的冗余和容錯性,(ii)無需使用奇偶校驗就能實現(xiàn),(iii)實現(xiàn)用于壓縮/解壓操作的ASIC,(iv)在驅(qū)動器外殼中使用現(xiàn)有的冗余驅(qū)動器通道,(ν)使用已處于使用中的驅(qū)動器端口來存儲數(shù)據(jù),(vi)設(shè)置固件以實現(xiàn)壓縮/解壓,(vii)實現(xiàn)用來存儲每個驅(qū)動器的數(shù)據(jù)塊與存儲在另一驅(qū)動器中的壓縮數(shù)據(jù)塊之間的映射的固件和/或(viii)成本有效地實現(xiàn)。
根據(jù)下面的詳細(xì)描述和所附權(quán)利要求以及附圖,本發(fā)明的這些和其它目的、特征和優(yōu)點將變得顯而易見,圖中圖1是示出RAID 1和RAID 10方式的示圖;圖2是示出RAID 4和RAID 5方式的示圖;圖3是示出RAID 6方式的示圖;圖4是示出本發(fā)明的驅(qū)動器實例的示圖;圖5是示出在雙鏈兩邏輯環(huán)配置中的多個驅(qū)動器的示圖;圖6是示出用于壓縮/解壓操作的專用邏輯(logic)的示圖;圖7是示出驅(qū)動器外殼(enclosure)的示圖;圖8是示出流向驅(qū)動器的數(shù)據(jù)的實例的示圖;以及圖9是示出三個驅(qū)動器故障的實例的示圖。
具體實施例方式在最大化存儲效率和性能的同時獲得更高水平的冗余是不斷增長的數(shù)據(jù)存儲的現(xiàn)代世界中的共同目標(biāo)。本發(fā)明可在RAID配置中實現(xiàn)壓縮數(shù)據(jù)的冗余副本的壓縮技術(shù)。冗余數(shù)據(jù)可以以雙鏈方式分布??蓪崿F(xiàn)兩個邏輯環(huán)以在無需奇偶校驗和/鏡像技術(shù)的情況下在RAID配置中達(dá)到高水平的冗余和性能。利用冗余壓縮技術(shù)來提供附加的冗余、更好的容
5錯性、存儲效率和/或改善的性能??梢詫⒁惶昨?qū)動器分組成RAID組。每個驅(qū)動器的數(shù)據(jù)內(nèi)容可被壓縮并存儲在RAID組中的兩個單獨(dú)的驅(qū)動器中。可以實現(xiàn)雙鏈邏輯組織(dual chain logical organization)。驅(qū)動器上的冗余端口和驅(qū)動器外殼中的冗余驅(qū)動器通道可用于提供邏輯組織。在對數(shù)據(jù)達(dá)到50%的壓縮率的情況下,本發(fā)明可提供50%的存儲利用率。這樣的存儲利用率堪比RAID 1。然而,通過更高水平的壓縮,本發(fā)明可提供大于RAID 1驅(qū)動器組的存儲效率。例如,本發(fā)明的存儲效率可根據(jù)施加于數(shù)據(jù)的壓縮量而提高。對于50%的壓縮率,本發(fā)明的存儲效率通常等于RAID 1配置的存儲效率。對于大于50%的壓縮率,通過本發(fā)明可獲得的存儲效率進(jìn)一步增加并且通常勝過RAID 4、RAID 5和/或RAID 6的存儲效率而在容錯性方面沒有任何損害。本發(fā)明可提供大到2n/3個驅(qū)動器故障的地板函數(shù)(flooring function)的容錯性,其中,η是系統(tǒng)中驅(qū)動器的數(shù)量。假定三個邏輯相連的驅(qū)動器不出故障(將結(jié)合圖9更詳細(xì)地進(jìn)行討論),則可獲得優(yōu)于RAID 4、RAID5、RAID 6 (和類似變體)的容錯性。通常, 在本發(fā)明中,不需要來自于幸存(surviving)驅(qū)動器的附加讀取、修改和/或?qū)懭氩僮?如在RAID 5和RAID 6中——由于奇偶校驗重算),從而提高當(dāng)系統(tǒng)處于劣化狀態(tài)(例如,具有一個或多個驅(qū)動器故障)時的性能。ASIC (專用集成電路)可為實現(xiàn)為用于壓縮和/或解壓操作,以確保存儲子系統(tǒng)的特定性能水平。在驅(qū)動器外殼中使用雙端口驅(qū)動器和/或冗余驅(qū)動器通道可確保驅(qū)動器的這種特定性能。本發(fā)明的雙鏈壓縮解決方案可向RAID系統(tǒng)提供改善的容錯性、冗余和/或可用性。本發(fā)明的RAID組可包括驅(qū)動器的集合。示例數(shù)據(jù)塊可存儲在單個驅(qū)動器中。來自一個驅(qū)動器的示例數(shù)據(jù)的壓縮形式可存儲在同一 RAID組中的另外兩個驅(qū)動器中。這三個驅(qū)動器可稱為“邏輯相連”驅(qū)動器。通過引入壓縮,可以避免使用奇偶校驗和/或鏡像的需要。具體驅(qū)動器的壓縮數(shù)據(jù)可以以雙鏈方式存儲在兩個驅(qū)動器中。例如,可形成雙環(huán)??蓪崿F(xiàn)高水平的冗余、容錯性和/或性能。參照圖4,示出了本發(fā)明的驅(qū)動器100。驅(qū)動器100通常包括區(qū)域102、區(qū)域104和區(qū)域106。區(qū)域104可用于存儲未壓縮數(shù)據(jù)。區(qū)域102可用于存儲一個邏輯相連驅(qū)動器的壓縮數(shù)據(jù)(例如,來自驅(qū)動器n-1的壓縮數(shù)據(jù))。區(qū)域106可用于存儲另一個邏輯相連驅(qū)動器的壓縮數(shù)據(jù)(例如,來自驅(qū)動器n+1的壓縮數(shù)據(jù))。所實現(xiàn)的具體壓縮機(jī)制可包括驅(qū)動器100的實際內(nèi)容的一到二(one-to-two)映射(將結(jié)合圖5進(jìn)行詳細(xì)描述)。例如,一個驅(qū)動器的數(shù)據(jù)的壓縮形式可存儲在兩個其他邏輯相連驅(qū)動器上。可通過嵌入在控制器上的固件來保存映射信息。映射信息可以用于在驅(qū)動器故障和/或錯誤校正的事件中,通過對來自一個邏輯相連驅(qū)動器的壓縮數(shù)據(jù)塊進(jìn)行解壓來重建驅(qū)動器的數(shù)據(jù)。當(dāng)用新的正確執(zhí)行驅(qū)動器更換故障驅(qū)動器時,可通過對來自一個邏輯相連驅(qū)動器的壓縮數(shù)據(jù)進(jìn)行解壓,在新驅(qū)動器中重建故障驅(qū)動器的數(shù)據(jù)。可通過嵌入每個冗余存儲陣列控制器上的控制器固件來實現(xiàn)映射信息(將結(jié)合圖6進(jìn)行詳細(xì)描述)O參照圖5,示出了驅(qū)動器系統(tǒng)(或配置)150的框圖。系統(tǒng)150通常包括多個驅(qū)動器 100a 100η。驅(qū)動器100a 100η的具體數(shù)量可以改變以滿足特定實施方式的設(shè)計標(biāo)準(zhǔn)。
6每個驅(qū)動器IOOa IOOn可具有數(shù)據(jù)段(例如,Dl D5)、壓縮段(例如,Cl C5)和壓縮段(例如,Cl C5)。例如,驅(qū)動器IOOa可具有被配置為存儲未壓縮數(shù)據(jù)Dl的數(shù)據(jù)段。數(shù)據(jù)塊Dl的壓縮形式可在兩個邏輯相連驅(qū)動器中存儲為數(shù)據(jù)Cl。例如,壓縮數(shù)據(jù)Cl可存儲在驅(qū)動器IOOb和驅(qū)動器IOOn中。驅(qū)動器IOOa IOOn可形成環(huán)160a 160η和環(huán)162a 16&1。環(huán)160a 160η和環(huán)162a 16&ι可形成兩個雙鏈邏輯環(huán)。通常,環(huán)160a 160η可實現(xiàn)為驅(qū)動器IOOa IOOn之間的多個邏輯連接。例如,部分160a可將驅(qū)動器IOOa的數(shù)據(jù)Dl邏輯連接至驅(qū)動器IOOb的壓縮數(shù)據(jù)Cl。以通常是從左至右的方式示出了環(huán)160a 160η。環(huán)16 162η具有以通常是從右至左的實施方式的類似實施方式。例如,部分162d 可將驅(qū)動器IOOn的數(shù)據(jù)D5邏輯連接至驅(qū)動器IOOd的壓縮數(shù)據(jù)C5。環(huán)160a 160η和環(huán) 16 162η的具體布置可以改變以滿足特定實施方式的設(shè)計標(biāo)準(zhǔn)。在所示的實例中,驅(qū)動器IOOb可存儲數(shù)據(jù)D2。數(shù)據(jù)D2的壓縮形式可在驅(qū)動器 IOOc上存儲為數(shù)據(jù)C2,通過邏輯環(huán)160a 160η的部分160b可訪問。數(shù)據(jù)C2也可存儲在驅(qū)動器IOOa上,通過邏輯環(huán)16 162η的部分16 可訪問。類似地,驅(qū)動器IOOa的數(shù)據(jù)Dl可具有在驅(qū)動器IOOn和驅(qū)動器IOOb上存儲為數(shù)據(jù)Cl存儲的Dl數(shù)據(jù)的壓縮形式。 驅(qū)動器IOOn的壓縮數(shù)據(jù)C5可存儲在驅(qū)動器IOOa和驅(qū)動器IOOd中。通常,驅(qū)動器IOOa IOOn中的任意三個可形成邏輯相連組。在一個實例中,驅(qū)動器100b、100c和IOOd可以是一個邏輯相連組。邏輯相連組可由未示出為彼此相鄰的驅(qū)動器形成。驅(qū)動器IOOc的數(shù)據(jù) D3被示出為在驅(qū)動器IOOb和驅(qū)動器IOOd中存儲為壓縮數(shù)據(jù)C3。參照圖6,示出了存儲子系統(tǒng)200的示圖。子系統(tǒng)200通常包括多個塊(或電路)202a 20 。電路20 20 均可實現(xiàn)為壓縮/解壓電路。中間板204b可實現(xiàn)在電路20 和電路202b之間。壓縮電路20 通常包括塊(或電路)210、塊(或電路)212、 塊(或電路)214、塊(或電路)216。電路210可以實現(xiàn)為主機(jī)接口。電路212可實現(xiàn)為處理器和數(shù)據(jù)高速緩存。電路214可以實現(xiàn)為壓縮/解壓引擎。電路216可實現(xiàn)為驅(qū)動器接口。電路212通常包括高速緩存電路218和處理器電路220。主機(jī)接口 210可具有可接收信號(例如,DATA)的輸入端230。信號DATA通常表示一個或多個代表圖5中所描述的數(shù)據(jù)Dl D5的數(shù)據(jù)塊(或包)。主機(jī)接口可具有可將信號DATA提供至電路212的輸入端 234的輸出端232。電路212可具有可將信號DATA提供至電路214的輸入端238的輸出端 236。電路212還可具有可將信號DATA提供至電路216的輸入端242輸出端M0。電路214 可具有可將信號(例如,C_DATA)提供至電路216的輸入端246的輸出端M4。信號C_DATA 可以是信號DATA的壓縮形式。信號C_DATA通常表示一個或多個代表圖5中描述的壓縮數(shù)據(jù)Cl C5的數(shù)據(jù)塊(或包)。電路202b可具有類似的實施方式。電路214可提供專用邏輯以實現(xiàn)壓縮和/或解壓操作。電路20 和/或電路202b的邏輯可嵌入在作為控制器固件的一部分與用于RAID 引擎的代碼一起運(yùn)行的代碼中,或者可以下載到由控制器固件代碼控制和操作的ASIC。下載代碼可以以附加電路為代價提高性能。由電路214實現(xiàn)的壓縮/解壓的具體類型可以改變以滿足特定實施方式的設(shè)計標(biāo)準(zhǔn)。電路20 和/或電路202b可用于冗余、容錯性和/ 或RAID組故障轉(zhuǎn)移(failover)機(jī)制。參照圖7,示出了驅(qū)動器外殼300。示出了包括多個驅(qū)動器IOOa IOOn的驅(qū)動器外殼300。每個驅(qū)動器IOOa IOOn被示出為具有一個端口(例如,Pl)和另一個端口(例如,P2)。外殼通常包括電路302、電路304、中間板204以及電路310。電路302可實現(xiàn)為主 ESM。電路308可實現(xiàn)為備用ESM。每個驅(qū)動器100A IOOn的端口 Pl和P2中的一個可以是主端口。每個驅(qū)動器100A IOOn的端口 Pl和P2中的另一個可以是次端口。未壓縮數(shù)據(jù)Dl D5和壓縮數(shù)據(jù)Cl C5通往驅(qū)動器的I/O路徑可以保持分離。未壓縮數(shù)據(jù)Dl D5和壓縮數(shù)據(jù)Cl C5 二者都由同一控制器來操縱。驅(qū)動器IOOa IOOn可實現(xiàn)為雙端口驅(qū)動器以實現(xiàn)冗余(例如,為了在驅(qū)動器IOOa IOOn上存儲和取回壓縮數(shù)據(jù)Cl C5)。 SOC 304(或310)可以駐留在ESM 302 (或308)中,并且可執(zhí)行送往驅(qū)動器IOOa IOOn的數(shù)據(jù)的切換/路由。驅(qū)動器外殼300上的中間板可用于將壓縮數(shù)據(jù)發(fā)送至驅(qū)動器外殼300 的冗余ESM 302(或308)。中間板204還可用于利用次端口 P2將壓縮數(shù)據(jù)發(fā)送至驅(qū)動器 IOOa IOOn0信號DATA的壓縮數(shù)據(jù)C DATA可越過驅(qū)動器外殼300中的中間板電路204路由至用相同ESM保存數(shù)據(jù)Dl D5的備用ESM 308。對于控制器20 所擁有的RAID邏輯驅(qū)動器,每個驅(qū)動器100A IOOn的主端口 Pl可用于在由ESM 302操縱的主通道上傳送未壓縮數(shù)據(jù)。每個驅(qū)動器100A IOOn的次端口 P2可用于在由ESM 308操縱的次通道上傳送壓縮數(shù)據(jù)。對于由控制器20 所擁有的RAID邏輯驅(qū)動器IOOa 100η,第二端口 P2可用作在由ESM B 308操縱的主通道上傳送未壓縮數(shù)據(jù)的主端口。主端口 Pl可用作在由ESM 302 操縱的次通道上傳送壓縮數(shù)據(jù)的次端口。利用本發(fā)明實現(xiàn)的RAID組可具有存儲在驅(qū)動器IOOa IOOn中的一個中的實際 (未壓縮)數(shù)據(jù)Dl Dn以及存儲在兩個其他邏輯相連驅(qū)動器IOOa IOOn中的壓縮數(shù)據(jù) Cl Cn。一旦來自主機(jī)的每個數(shù)據(jù)段到達(dá),數(shù)據(jù)Dl D5就被分成要傳送至驅(qū)動器接口 216的多個條。與這些處理并行,分成條的數(shù)據(jù)被壓縮引擎壓縮并發(fā)送至驅(qū)動器接口。實際數(shù)據(jù)Dl Dn和壓縮數(shù)據(jù)Cl Cn —起被發(fā)送至驅(qū)動器外殼300。參照圖8,示出了流向驅(qū)動器IOOa IOOn的數(shù)據(jù)的實例??稍跀?shù)據(jù)通道320上發(fā)送數(shù)據(jù)。每個驅(qū)動器IOOa IOOn可在主端口 Pl上從數(shù)據(jù)通道320接收數(shù)據(jù)。來自數(shù)據(jù)通道320的數(shù)據(jù)可由壓縮/解壓引擎214進(jìn)行壓縮。每個驅(qū)動器IOOa IOOn可在第二端口 P2上從壓縮/解壓引擎214接收數(shù)據(jù)。這確保了 RAID組與任意數(shù)量的驅(qū)動器IOOa IOOn 一起工作而不會損失驅(qū)動性能。假定沒有三個邏輯相連的驅(qū)動器發(fā)生故障,則本發(fā)明通常提供2n/3個驅(qū)動器的容錯性,其中,η是RAID組中的驅(qū)動器總數(shù)。利用50 %的數(shù)據(jù)壓縮率通過本發(fā)明與RAID 1實施方式相比將確保相同的存儲效率和更大的性能??紤]4個驅(qū)動器的實例,如果每個驅(qū)動器IOOa IOOn具有容量C GB,則 RAID 1占用的最大空間是2C GB。然而,通過本發(fā)明,每個驅(qū)動器IOOa IOOn中的數(shù)據(jù)區(qū)域占用0. 5C GB,而兩個壓縮區(qū)域占用0. 5C GB (50%壓縮率),因此,在4個驅(qū)動器中,RAID 組能夠進(jìn)行存儲的實際數(shù)據(jù)的總?cè)萘渴?C GB。由于可以像具有跨過兩個驅(qū)動器分成條的數(shù)據(jù)的RAID 0組一樣訪問驅(qū)動器100a 100η,所以性能更大。因此,通過等于50%的壓縮率本發(fā)明可提供等于RAID 1的存儲效率。而且,通過大于50%的壓縮率本發(fā)明可提供大于RAID 1的性能和存儲效率。然而,通過實現(xiàn)大于50%的壓縮率,可進(jìn)一步改善驅(qū)動器 IOOa IOOn的存儲容量效率。由于如果2個以上(假定不存在三個邏輯相連驅(qū)動器故障,達(dá)到2n/3個)驅(qū)動器發(fā)生故障本發(fā)明可繼續(xù)進(jìn)行操作而不會丟失數(shù)據(jù),所以本發(fā)明通常比RAID 3、RAID 5和RAID 6實施方式更能容錯。與RAID 3、RAID5和RAID 6組相比可實現(xiàn)附加的容錯性。在 RAID 3、RAID 5和RAID 6組的情況下,每當(dāng)對組實施修改操作時,需要讀取所有驅(qū)動器以重新計算奇偶校驗并與修改的數(shù)據(jù)一起更新奇偶校驗。通過本發(fā)明,對于每次修改操作,數(shù)據(jù)被分成條并被寫入各驅(qū)動器IOOa 100η。然后獨(dú)立地生成條的壓縮并將其寫入RAID 組中的邏輯相連驅(qū)動器上。與奇偶校驗生成方法相比,需要的讀取和/或更新更少。參照圖9,示出的是示出具有3個驅(qū)動器故障的驅(qū)動器系統(tǒng)150的示圖。驅(qū)動器系統(tǒng)150可處理多個驅(qū)動器故障的情形,只要所有出現(xiàn)故障的驅(qū)動器是非相連的即可。用 X標(biāo)記驅(qū)動器100a、驅(qū)動器IOOb和驅(qū)動器IOOd以示出驅(qū)動器故障。即使有3個驅(qū)動器故障,所有數(shù)據(jù)仍將繼續(xù)可用。下面的表1描述了每個驅(qū)動器和數(shù)據(jù)可用性的狀態(tài)表 1
驅(qū)動器狀態(tài)數(shù)據(jù)可用性1故障通過驅(qū)動器5中的Cl2故障通過驅(qū)動器3中的C23最優(yōu)通過D34故障通過驅(qū)動器3或5中的C45最優(yōu)通過D5使用RAID 6方式的類似故障將導(dǎo)致整個RAID組的故障。因此,本發(fā)明提供了比 RAID 6方式更大的容錯性。盡管已參照本發(fā)明優(yōu)選實施方式對本發(fā)明進(jìn)行了具體示出和描述,但本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,在不會背離本發(fā)明的范圍的情況下,可以進(jìn)行形式和細(xì)節(jié)上的各種變化。
9
權(quán)利要求
1.一種設(shè)備,包括至少三個驅(qū)動器的邏輯相連組,其中,每個所述驅(qū)動器包括(i)被配置為存儲前一驅(qū)動器的壓縮數(shù)據(jù)的第一區(qū)域,(ii)被配置為存儲所述驅(qū)動器的未壓縮數(shù)據(jù)的第二區(qū)域, (iii)被配置為存儲下一驅(qū)動器的壓縮數(shù)據(jù)的第三區(qū)域;第一環(huán),連接至所述邏輯相連組的所述下一驅(qū)動器;第二環(huán),連接至所述邏輯相連組的所述前一驅(qū)動器;以及壓縮/解壓電路,被配置為對存儲在每個所述驅(qū)動器上的數(shù)據(jù)進(jìn)行壓縮和解壓。
2.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述邏輯相連組中的所述驅(qū)動器中的一個的所述第二區(qū)域連接至所述下一驅(qū)動器的所述第一區(qū)域。
3.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述邏輯相連組中的所述驅(qū)動器中的一個的所述第二區(qū)域連接至所述前一驅(qū)動器的所述第三區(qū)域。
4.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述第一環(huán)的一部分將所述驅(qū)動器中的一個的所述第二區(qū)域連接至所述前一驅(qū)動器的所述第一區(qū)域。
5.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述第二環(huán)的一部分將所述驅(qū)動器中的一個的所述第二區(qū)域連接至所述下一驅(qū)動器的所述第三區(qū)域。
6.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述驅(qū)動器中的一個的所述第一區(qū)域的壓縮數(shù)據(jù)通過所述第一環(huán)的一部分可訪問。
7.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述驅(qū)動器中的一個的所述第三區(qū)域的壓縮數(shù)據(jù)通過所述第二環(huán)的一部分可訪問。
8.根據(jù)權(quán)利要求1所述的設(shè)備,其中,映射信息通過(i)被嵌入在存儲陣列控制器上并且(ii)在驅(qū)動器故障和/或錯誤校正的事件中用于重建所述驅(qū)動器的數(shù)據(jù)的固件來保存。
9.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述壓縮/解壓電路的專用邏輯嵌入在控制器固件RAID引擎代碼中。
10.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述壓縮/解壓電路的專用邏輯被傳送至ASIC 外圍設(shè)備。
11.根據(jù)權(quán)利要求1所述的設(shè)備,其中,每個所述驅(qū)動器包括用于存儲和取回壓縮數(shù)據(jù)的雙驅(qū)動器端口。
12.根據(jù)權(quán)利要求1所述的設(shè)備,其中,每個所述驅(qū)動器包括用在驅(qū)動器外殼中的冗余驅(qū)動器通道。
13.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述設(shè)備建立優(yōu)于6級RAID的冗余和容錯性, 而無需使用奇偶校驗。
14.一種設(shè)備,包括用于實現(xiàn)至少三個驅(qū)動器的邏輯相連組的裝置,其中,每個所述驅(qū)動器包括,(i)被配置為存儲前一驅(qū)動器的壓縮數(shù)據(jù)的第一區(qū)域,( )被配置為存儲所述驅(qū)動器的未壓縮數(shù)據(jù)的第二區(qū)域,(iii)被配置為存儲下一驅(qū)動器的壓縮數(shù)據(jù)的第三區(qū)域;用于實現(xiàn)連接至所述邏輯相連組的所述下一驅(qū)動器的第一環(huán)的裝置;用于實現(xiàn)連接至所述邏輯相連組的所述前一驅(qū)動器的第二環(huán)的裝置;以及用于實現(xiàn)被配置為對存儲在每個所述驅(qū)動器上的數(shù)據(jù)進(jìn)行壓縮和解壓的壓縮/解壓電路的裝置。
15.根據(jù)權(quán)利要求14所述的設(shè)備,其中,所述設(shè)備建立優(yōu)于6級RAID的冗余和容錯性, 而無需使用奇偶校驗。
16.一種在驅(qū)動器陣列中實現(xiàn)容錯性的方法,所述方法包括以下步驟(A)實現(xiàn)至少三個驅(qū)動器的邏輯相連組,其中,每個所述驅(qū)動器包括(i)被配置為存儲前一驅(qū)動器的壓縮數(shù)據(jù)的第一區(qū)域,( )被配置為存儲所述驅(qū)動器的未壓縮數(shù)據(jù)的第二區(qū)域,(iii)被配置為存儲下一驅(qū)動器的壓縮數(shù)據(jù)的第三區(qū)域;(B)實現(xiàn)連接至所述邏輯相連組的所述下一驅(qū)動器的第一環(huán);(C)實現(xiàn)連接至所述邏輯相連組的所述前一驅(qū)動器的第二環(huán);以及(D)實現(xiàn)被配置為對存儲在每個所述驅(qū)動器上的數(shù)據(jù)進(jìn)行壓縮和解壓的壓縮/解壓電路。
17.根據(jù)權(quán)利要求16所述的方法,其中,所述方法建立優(yōu)于6級RAID的冗余和容錯性, 而無需使用奇偶校驗。
全文摘要
本發(fā)明公開了一種建立優(yōu)于6級RAID的冗余和容錯性而無需使用奇偶校驗的方法。一種設(shè)備,包括至少三個驅(qū)動器的邏輯相連組、第一環(huán)、第二環(huán)、壓縮/解壓電路。每個驅(qū)動器包括(i)被配置為存儲前一驅(qū)動器的壓縮數(shù)據(jù)的第一區(qū)域,(ii)被配置為存儲該驅(qū)動器的未壓縮數(shù)據(jù)的第二區(qū)域,(iii)被配置為存儲下一驅(qū)動器的壓縮數(shù)據(jù)的第三區(qū)域。第一環(huán)可連接至邏輯相連組中的下一驅(qū)動器。第二環(huán)可連接至邏輯相連組的前一驅(qū)動器。壓縮/解壓電路可被配置為對存儲在每個驅(qū)動器上的數(shù)據(jù)進(jìn)行壓縮和解壓。
文檔編號G06F11/16GK102200938SQ201110076038
公開日2011年9月28日 申請日期2011年3月28日 優(yōu)先權(quán)日2010年3月26日
發(fā)明者帕瓦恩·P·S, 維韋克·普拉卡什, 馬哈茂德·K·杰貝 申請人:Lsi公司