两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

針對raid系統(tǒng)中的多種故障進(jìn)行保護(hù)的方法和系統(tǒng)的制作方法

文檔序號:6595906閱讀:384來源:國知局
專利名稱:針對raid系統(tǒng)中的多種故障進(jìn)行保護(hù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及存儲設(shè)備的使用。更特別地,本發(fā)明的實(shí)施例涉及在存儲設(shè)備上實(shí)現(xiàn)RAID。更為具體地,本發(fā)明的一些實(shí)施例涉及RAID的分布式實(shí)施方式。
背景技術(shù)
對許多實(shí)體來說數(shù)據(jù)代表著重要的財富。因此,無論是意外還是惡意行為造成的數(shù)據(jù)丟失都可以在浪費(fèi)人力、失去與顧客的友好關(guān)系、喪失時間和潛在的法律責(zé)任等方面付出沉重代價。為了確保妥善保護(hù)用于商業(yè)、法律或其他目的的數(shù)據(jù),許多實(shí)體可能期望使用多種技術(shù)保護(hù)其數(shù)據(jù),包括數(shù)據(jù)存儲技術(shù)、冗余技術(shù)、安全技術(shù)等等。然而,這些技術(shù)可能與其他競爭約束、由國家施加的要求或用于處理或存儲這種數(shù)據(jù)的計(jì)算設(shè)備的配置相沖突。應(yīng)對這些緊張狀態(tài)的一種方法是執(zhí)行獨(dú)立磁盤冗余陣列(RAID)。一般地,RAID系統(tǒng)在共同被稱作陣列的多個硬盤驅(qū)動器(或其他類型的存儲介質(zhì))之間分割和復(fù)制數(shù)據(jù), 從而增大可靠性并且在一些情況下使用這些用于存儲的RAID系統(tǒng)提高計(jì)算設(shè)備(已知為主機(jī))的吞吐量。對于主機(jī)來說,RAID陣列可以作為一個或多個單片存儲器區(qū)域。當(dāng)主機(jī)期望與RAID系統(tǒng)通信(讀、寫等等)時,主機(jī)將RAID陣列視為單個磁盤進(jìn)行通信。反過來, RAID系統(tǒng)處理這些通信以結(jié)合這些通信執(zhí)行特定的RAID級別。這些RAID級別可以被設(shè)計(jì)為在例如可靠性、容量、速度等多種權(quán)衡之間獲得一些期望的平衡。例如,RAID(級別)0以提高的速度并且基本使用磁盤的全部容量的方式在一些磁盤間分布數(shù)據(jù),但是如果磁盤發(fā)生故障則磁盤上的全部數(shù)據(jù)將丟失;RAID(級別)1使用兩個(或更多個)磁盤,所述磁盤中的每一個均存儲相同數(shù)據(jù),使得只要一個磁盤沒有故障,數(shù)據(jù)就不會丟失。陣列的全部容量基本等于單個磁盤的容量并且RAID (級別)5以保護(hù)任意一個磁盤的數(shù)據(jù)免于丟失的方式結(jié)合三個或更多個磁盤;陣列的存儲容量減少為一個磁盤。目前RAID的實(shí)施方式可能具有多種問題。這些問題可能源自這些RAID系統(tǒng)的構(gòu)造所施加的限制,例如在許多情況下,與RAID系統(tǒng)的全部通信必須尋址到控制和管理所述 RAID系統(tǒng)的一個服務(wù)器的事實(shí)。其他問題可能源自數(shù)據(jù)在包括RAID系統(tǒng)的磁盤上的配置或布置。例如,在一些情況下,必須選擇RAID級別并且在RAID系統(tǒng)能夠被使用前在RAID 系統(tǒng)內(nèi)分派存儲。因此,最初選擇的RAID級別必須結(jié)合存儲在RAID系統(tǒng)上的數(shù)據(jù)來實(shí)現(xiàn), 無論該RAID級別是否是被期望或需要的。此外,在許多情況下,現(xiàn)有的問題可能因?yàn)樾枰褂枚ㄖ朴布蜍浖韴?zhí)行這些方案而惡化,增大與實(shí)現(xiàn)這種方案相關(guān)聯(lián)的成本。因此,期望充分地改善這些問題。

發(fā)明內(nèi)容
公開了可以結(jié)合分布式RAID系統(tǒng)使用以針對多種故障進(jìn)行保護(hù)的多種方法的實(shí)施例。更特別地,分布式RAID系統(tǒng)中的每個數(shù)據(jù)庫可以存儲數(shù)據(jù)段和NP段。在一些實(shí)施例中,不僅結(jié)合卷在多個數(shù)據(jù)庫間實(shí)現(xiàn)的RAID的級別(例如使用與其相應(yīng)的數(shù)據(jù)段存儲在不同數(shù)據(jù)庫上的NP段),而且額外的RAID級別也可以在分布式RAID系統(tǒng)的每個數(shù)據(jù)庫內(nèi)實(shí)現(xiàn),從而保護(hù)每個數(shù)據(jù)庫內(nèi)的數(shù)據(jù)。除了在多個數(shù)據(jù)庫間使用RAID外,通過在一個數(shù)據(jù)庫內(nèi)使用RAID可以實(shí)現(xiàn)針對整個分布式RAID系統(tǒng)的故障的額外保護(hù)。具體地,在一個實(shí)施例中,除了結(jié)合一組數(shù)據(jù)庫間的卷實(shí)現(xiàn)RAID級別外,RAID級別還可以結(jié)合存儲在每個數(shù)據(jù)庫中的數(shù)據(jù)段實(shí)現(xiàn)。例如,RAID級別5可以在一個數(shù)據(jù)庫內(nèi)實(shí)現(xiàn),使得POD段可以產(chǎn)生并存儲在與相應(yīng)的數(shù)據(jù)段位于不同磁盤的數(shù)據(jù)庫中,從而可以使用這些POD恢復(fù)所述相應(yīng)的數(shù)據(jù)段。類似地,POP段可以產(chǎn)生并存儲在與相應(yīng)的NP段位于不同磁盤的數(shù)據(jù)庫中,從而可以使用這些POP恢復(fù)所述相應(yīng)的NP段。此外,在一些實(shí)施例中,RAID級別6可以在一個數(shù)據(jù)庫內(nèi)實(shí)現(xiàn),使得除了每個POD 段外,還可以產(chǎn)生相應(yīng)的QOD段。通過將QOD段存儲在與相應(yīng)的POD不同的磁盤上,還可以使用QOD恢復(fù)相應(yīng)的數(shù)據(jù)段。同樣地,相應(yīng)于POP段的QOP段可以產(chǎn)生并存儲在與相應(yīng)的 POP段不同的磁盤上的數(shù)據(jù)庫中,使得相應(yīng)的網(wǎng)絡(luò)奇偶校驗(yàn)段可以額外地使用這些QOP段恢復(fù)。本公開的實(shí)施例提供了保護(hù)RAID系統(tǒng)避免多種故障的方法,所述方法消除或至少充分減少了之前可用的保護(hù)RAID系統(tǒng)避免多種故障的方法的缺點(diǎn)。特別地,本發(fā)明的實(shí)施例可以相對于之前可用的數(shù)據(jù)存儲設(shè)備提供多個優(yōu)點(diǎn),包括提供保護(hù)數(shù)據(jù)庫或磁盤故障的能力。事實(shí)上,一些實(shí)施例可以針對四個、五個或可能更多個磁盤故障提供保護(hù)。因此, 培養(yǎng)職員修理或替換發(fā)生故障的數(shù)據(jù)庫或磁盤可用的時間可能增大并且分布式RAID系統(tǒng)的故障間的平均時間增大。一些實(shí)施例還可以通過即使在內(nèi)部故障損壞數(shù)據(jù)時,仍允許數(shù)據(jù)庫內(nèi)部再生被損壞的數(shù)據(jù),而提供在所述數(shù)據(jù)庫之間減少的網(wǎng)絡(luò)流量的優(yōu)點(diǎn)。本發(fā)明的這些和其他方面將在結(jié)合以下說明和附圖考慮時被更好地認(rèn)識和理解。 以下說明雖然指示了本發(fā)明的各種實(shí)施例及其多個具體細(xì)節(jié),但其是以示例而非限制的方式給出的。可以在本發(fā)明的范圍內(nèi)進(jìn)行許多替換、修改、添加或重置,并且本發(fā)明包括全部這些替換、修改、添加或重置。


附圖以及本說明書的構(gòu)成部分被包括以描述本發(fā)明的一些方面。對本發(fā)明以及本發(fā)明提供的系統(tǒng)的組件和操作的更清楚的印象將通過參考附圖中顯示的示例性的,并且因此是非限制性的實(shí)施例而變得更為顯然,其中相同的附圖標(biāo)記代表相同的組件。注意,附圖中顯示的特征未必按比例繪制。圖1是應(yīng)用分布式RAID系統(tǒng)的構(gòu)造的一個實(shí)施例的框圖。圖2A是數(shù)據(jù)庫的一個實(shí)施例的框圖。圖2B是用于數(shù)據(jù)庫的構(gòu)造的一個實(shí)施例的框圖。圖3是通過分布式RAID系統(tǒng)實(shí)現(xiàn)的方法的一個實(shí)施例的流程圖。圖4是應(yīng)用分布式RAID系統(tǒng)的構(gòu)造的一個實(shí)施例的示例的框圖。圖5是一種表格的一個實(shí)施例的框圖。圖6是一種表格的一個實(shí)施例的框圖。圖7是一種表格的一個實(shí)施例的框圖。圖8是通過分布式RAID系統(tǒng)實(shí)現(xiàn)的方法的一個實(shí)施例的流程圖。
圖9A是通過分布式RAID系統(tǒng)實(shí)現(xiàn)的方法的一個實(shí)施例的流程圖。圖9B是通過分布式RAID系統(tǒng)實(shí)現(xiàn)的方法的一個實(shí)施例的流程圖。圖10是寫入式高速緩沖存儲器的一個實(shí)施例的框圖。圖11是通過分布式RAID系統(tǒng)實(shí)現(xiàn)的方法的一個實(shí)施例的流程圖。圖12是通過分布式RAID系統(tǒng)實(shí)現(xiàn)的方法的一個實(shí)施例的流程圖。圖13A-13C是一個數(shù)據(jù)庫內(nèi)的RAID級別的一個實(shí)施方式的示例的框圖。
具體實(shí)施例方式本發(fā)明及其多個特征和有益細(xì)節(jié)通過參考在附圖和具體實(shí)施方式
中說明的非限制性的實(shí)施例被更全面地解釋。省略了對公知的原始材料、工藝技術(shù)、組件和儀器的說明以免不必要地在細(xì)節(jié)上混淆本發(fā)明。然而,應(yīng)該理解,雖然詳細(xì)的說明和具體的示例指示了本發(fā)明的優(yōu)選實(shí)施例,但其僅以示例性方式而非限制的方式給出。通過本公開,重要的創(chuàng)造性概念的精神和/或范圍內(nèi)的各種替換、修改、添加和/或重置對本領(lǐng)域技術(shù)人員將變得顯然。此處討論的實(shí)施例能夠以可以存儲在計(jì)算機(jī)可讀介質(zhì)(例如,HD)、硬件電路或類似物或任意組合上的適當(dāng)?shù)挠?jì)算機(jī)可執(zhí)行的指令實(shí)現(xiàn)。在討論具體實(shí)施例之前,此處說明用于實(shí)現(xiàn)特定實(shí)施例的硬件構(gòu)造的實(shí)施例。一個實(shí)施例可以包括與網(wǎng)絡(luò)通信地耦接的一臺或多臺計(jì)算機(jī)。如本領(lǐng)域技術(shù)人員公知的,計(jì)算機(jī)可以包括中央處理單元(“CPU”)、至少一個只讀存儲器(“ROM”)、至少一個隨機(jī)存取存儲器(“RAM”)、至少一個硬盤驅(qū)動器(“HD”)和一個或多個輸入/輸出(“I/O”)設(shè)備。 所述I/O設(shè)備可以包括鍵盤、監(jiān)視器、打印機(jī)、電子指向設(shè)備(例如,鼠標(biāo)、軌跡球、指示筆等等)或類似物。在多個實(shí)施例中,計(jì)算機(jī)通過網(wǎng)絡(luò)訪問至少一個數(shù)據(jù)庫。R0M、RAM和HD是用于存儲由CPU可執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)存儲器。在本公開內(nèi),術(shù)語“計(jì)算機(jī)可讀介質(zhì)”不限于ROM、RAM和HD,而是可以包括可由處理器讀取的任意類型的數(shù)據(jù)存儲介質(zhì)。在一些實(shí)施例中,計(jì)算機(jī)可讀介質(zhì)可以涉及數(shù)據(jù)磁帶、數(shù)據(jù)備份磁帶、軟磁盤、閃存驅(qū)動器、光學(xué)數(shù)據(jù)存儲驅(qū)動器、CD-ROM、ROM、RAM、HD或類似物。此處說明的功能或處理中的至少部分能夠以適當(dāng)?shù)挠?jì)算機(jī)可執(zhí)行指令實(shí)現(xiàn)。計(jì)算機(jī)可執(zhí)行指令可以被存儲為一個或多個計(jì)算機(jī)可讀介質(zhì)(例如,非易失性存儲器、易失性存儲器、DASD陣列、磁帶、軟磁盤、硬盤驅(qū)動器、光學(xué)存儲設(shè)備等等,或任意其他適當(dāng)?shù)挠?jì)算機(jī)可讀介質(zhì)或存儲設(shè)備)上的軟件代碼組件或模塊。在一個實(shí)施例中,計(jì)算機(jī)可執(zhí)行指令可以包括多行匯編C++、Java, HTML或任意其他編程或腳本代碼。此外,公開的實(shí)施例的功能可以在一臺計(jì)算機(jī)上實(shí)現(xiàn)或者在網(wǎng)絡(luò)中或橫跨網(wǎng)絡(luò)的兩臺或更多臺計(jì)算機(jī)中共享/分布。實(shí)現(xiàn)實(shí)施例的計(jì)算機(jī)之間的通信可以使用任意的電子、光學(xué)、射頻信號或者遵從已知網(wǎng)絡(luò)協(xié)議的其他適當(dāng)?shù)耐ㄐ欧椒ê凸ぞ邅硗瓿伞H绱颂幩褂玫?,術(shù)語“包括”、“包含”、“具有”、“有”或其任意其他變體意圖覆蓋非獨(dú)占性的內(nèi)容物。例如,包括一列元件的處理、工藝、物品或裝置不必僅限于那些元件,而是可以包括未特別列出或這些處理、工藝、物品或裝置固有的其他元件。進(jìn)一步地,除非特別聲明相反的情況,“或”涉及開放的或而不涉及獨(dú)占的或。例如,條件A或B滿足以下任意一個:A是真(或存在)并且B是假(或者不存在),A是假(或者不存在)并且B是真 (或者存在),并且A和B是真(或者存在)。
此外,此處給出的任意示例或說明不被視為以任何方式約束、限制或表示其所使用的任意一個或多個術(shù)語的定義。而是,這些示例或說明被視為關(guān)于一個特定的實(shí)施例加以說明并且僅是示例性的。本領(lǐng)域技術(shù)人員將意識到,這些示例或說明所使用的任意一個或多個術(shù)語將包含可能在說明書中隨后或任意位置給出或未給出的其他實(shí)施例,并且全部這些實(shí)施例意圖被包括在所述一個或多個術(shù)語的范圍內(nèi)。指明這種非限制性示例和說明的語言包括但不限于“例如”、“比如”、“如”、“在一個實(shí)施例中”。本申請涉及由Galloway等人于2009年6月5日提交的名為“Method and System for Distributed RAID Implementation” 的美國專利申請 No. 12/479,319 ;由 Galloway 等人于 2009 年 6 月 5 日提交的名為“Method and System for Data Migration in a Distributed RAIDImplementation"的美國專利申請 No. 12/479,360 ;由 Galloway 等人于 2009 年 6 月 5 日提交的名為“Method and System for Distributing Commands to Targets”的美國專利申請No. 12/479,403 ;由feilloway等人于2009年6月5日提交的名為“Method and System for Initializing Storage in a Storage System,,的美國專利申請 No. 12/479,377 ;由 Galloway 等人于 2009 年 6 月 5 日提交的名為 “Method and System for Rebuilding Data in a Distributed RAID System”的美國專利申請 No. 12/479,434 ; 以及由Galloway等人于2009年6月5日提交的名為“Method and System for Placement of Data on aStorage Device”的美國專利申請No. 12/479,394 ;所有這些專利申請的全部內(nèi)容均作為參考并入本文?,F(xiàn)在特別地關(guān)于數(shù)據(jù)存儲的內(nèi)容的簡要討論可能是有幫助的。如上所述,RAID系統(tǒng)在共同被稱作陣列的多個硬盤驅(qū)動器(或者其他類型的存儲介質(zhì))間分割并且復(fù)制數(shù)據(jù),從而增大可靠性并且在一些情況下使用這些用于存儲的RAID系統(tǒng)提高計(jì)算設(shè)備(已知為主機(jī))的吞吐量。然而,RAID的目前的實(shí)施方式可能具有多種問題。這些問題可能源于由這些RAID系統(tǒng)的構(gòu)造施加的限制,例如在許多情況下與RAID系統(tǒng)的全部通信必須尋址到控制和管理RAID系統(tǒng)的單個服務(wù)器的事實(shí)。其他問題可能由包括RAID系統(tǒng)的磁盤上的數(shù)據(jù)的配置或布置引起。例如,在特定情況下,必須選擇RAID級別并且在RAID系統(tǒng)能夠被使用前在RAID系統(tǒng)內(nèi)分派存儲。因此,最初選擇的RAID級別必須結(jié)合存儲在RAID系統(tǒng)上的數(shù)據(jù)來實(shí)現(xiàn),無論該RAID級別是否是被期望或需要的。此外,在許多情況下,現(xiàn)有的問題可能因?yàn)樾枰褂枚ㄖ朴布蜍浖韴?zhí)行這些方案而惡化,增大與實(shí)現(xiàn)這種方案相關(guān)聯(lián)的成本。因此,期望充分改善這些問題以及其他問題。為此,現(xiàn)在注意力被指向本發(fā)明的系統(tǒng)和方法。這些系統(tǒng)和方法的實(shí)施例提供了包括一組數(shù)據(jù)庫的分布式RAID系統(tǒng)。更特別地,在分布式RAID系統(tǒng)的特定實(shí)施例中,每個數(shù)據(jù)庫具有一組相關(guān)聯(lián)的存儲介質(zhì)并且執(zhí)行類似的分布式RAID應(yīng)用。每個數(shù)據(jù)庫上的分布式RAID應(yīng)用自身進(jìn)行協(xié)調(diào)以分布和控制數(shù)據(jù)流,所述數(shù)據(jù)流與結(jié)合存儲在數(shù)據(jù)庫的相關(guān)聯(lián)的存儲介質(zhì)上的數(shù)據(jù)而實(shí)現(xiàn)RAID的級別相關(guān)聯(lián)。具體地,在一些實(shí)施例中,可以使用分布式RAID系統(tǒng)產(chǎn)生具有相關(guān)聯(lián)的RAID級別的卷。每個分布式RAID應(yīng)用之后可以協(xié)調(diào)與所述卷的數(shù)據(jù)相關(guān)聯(lián)的操作,從而使與所述卷相關(guān)聯(lián)的數(shù)據(jù)或結(jié)合所述卷的期望的RAID級別的實(shí)施方式可以被存儲在分布式RAID系統(tǒng)的多個數(shù)據(jù)庫上。通過由使用類似的分布式RAID應(yīng)用在這些數(shù)據(jù)庫中的每個數(shù)據(jù)庫上執(zhí)行的將所述卷的數(shù)據(jù)和與RAID的實(shí)施方式相關(guān)聯(lián)的數(shù)據(jù)存儲在多個數(shù)據(jù)庫上,而協(xié)調(diào)結(jié)合卷的 RAID的級別的實(shí)施方式,可以獲得多個優(yōu)點(diǎn)。即,可以指派不同的存儲卷,其中一個或多個卷結(jié)合不同的RAID級別實(shí)現(xiàn)。此外,當(dāng)使用基本相同的分布式RAID應(yīng)用完成數(shù)據(jù)庫間存儲的協(xié)調(diào)和RAID的實(shí)施方式時,在許多情況下,可以使用標(biāo)準(zhǔn)的或現(xiàn)貨供應(yīng)的硬件,例如基于標(biāo)準(zhǔn)x86的服務(wù)器和存儲介質(zhì)。使用此處呈現(xiàn)的實(shí)施例或其他實(shí)施例還可以實(shí)現(xiàn)許多其他的優(yōu)點(diǎn),并且這些可能或未能被特別詳細(xì)地指出的優(yōu)點(diǎn)將在閱讀本公開后發(fā)現(xiàn)?,F(xiàn)在轉(zhuǎn)到圖1,描述了使用分布式RAID系統(tǒng)的一個實(shí)施例的系統(tǒng)的構(gòu)造的框圖。 分布式RAID系統(tǒng)100包括一組數(shù)據(jù)庫110,每個數(shù)據(jù)庫110與兩個開關(guān)120通信地耦接。 每個開關(guān)120還與每個主機(jī)102通信地耦接,從而使主機(jī)102可以通過相應(yīng)于特定數(shù)據(jù)庫 110的一組路徑與每個數(shù)據(jù)庫110通信,每個路徑包括開關(guān)120中的一個??梢允褂脦缀跞魏纹谕膫鬏斀橘|(zhì)(有線或無線的)來實(shí)現(xiàn)數(shù)據(jù)庫110、開關(guān)120 和主機(jī)102之間的通信耦接,包括以太網(wǎng)、SCSI (小型計(jì)算機(jī)系統(tǒng)接口)、iSCSI (因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口)、光纖信道、串行連接的SCSI ( “SAS”)、高級技術(shù)附加裝置(“ΑΤΑ”)、 串行ATA( “SATA”)或本領(lǐng)域公知的其他協(xié)議。此外,通信耦接可以結(jié)合通信網(wǎng)絡(luò)實(shí)現(xiàn),例如因特網(wǎng)、LAN、WAN、無線網(wǎng)絡(luò)或本領(lǐng)域公知的任何其他的通信網(wǎng)絡(luò)。之后,在一個實(shí)施例中,使用命令協(xié)議,例如iSCSI、SCSI等等,主機(jī)102可以與數(shù)據(jù)庫110通信以操控數(shù)據(jù)。更特別地,每個數(shù)據(jù)庫110包括存儲介質(zhì)(如之后將在本文中更詳細(xì)地說明的)。共同地,數(shù)據(jù)庫110中的存儲介質(zhì)可以被虛擬化并作為存儲器、存儲設(shè)備、等等的一個或多個相鄰的單元呈現(xiàn)到主機(jī)102。例如,當(dāng)使用iSCSI協(xié)議時,數(shù)據(jù)庫110 中的存儲介質(zhì)可以作為SCSI目標(biāo)被呈現(xiàn)給主機(jī)102,所述SCSI目標(biāo)在一個實(shí)施例中具有多個端口。因此,在操作期間,在一個實(shí)施例中,主機(jī)102(或主機(jī)102處的用戶或與數(shù)據(jù)庫 110接合的用戶)可以請求創(chuàng)建卷并且指定將結(jié)合所述卷實(shí)現(xiàn)的RAID的級別。與所述卷相關(guān)聯(lián)的數(shù)據(jù)以及與所述卷相關(guān)聯(lián)的期望級別的RAID的實(shí)施方式存儲在數(shù)據(jù)庫110間。主機(jī)102之后可以使用相應(yīng)于所述卷或其一部分的邏輯地址訪問該卷。以此方式,主機(jī)102 可以利用創(chuàng)建的存儲器的卷,并且可以結(jié)合這些卷實(shí)現(xiàn)幾乎不被主機(jī)102察覺的容錯性。存儲器的虛擬化以及使用數(shù)據(jù)庫110的RAID的實(shí)施方式可以參考圖2A被更好地理解,圖2A描述了可操作為實(shí)現(xiàn)分布式RAID的數(shù)據(jù)庫110計(jì)算機(jī)的一個實(shí)施例的框圖。此處,數(shù)據(jù)庫110包括數(shù)據(jù)貯存器250以及可操作為執(zhí)行存儲在計(jì)算機(jī)可讀介質(zhì)上的指令的處理器202,其中所述指令可操作為實(shí)現(xiàn)分布式RAID應(yīng)用210。分布式RAID應(yīng)用210可以周期性地發(fā)布心跳通信到其他數(shù)據(jù)庫110上的分布式RAID應(yīng)用210,以確定是否存在關(guān)于所述數(shù)據(jù)庫110的故障。如果分布式RAID應(yīng)用210確定另一個數(shù)據(jù)庫110正經(jīng)歷故障,則所述分布式RAID應(yīng)用210可以設(shè)置相應(yīng)于所述數(shù)據(jù)庫110的一個或多個故障標(biāo)記。使用這些用于每個數(shù)據(jù)庫110上的分布式RAID應(yīng)用210的故障標(biāo)記,特定的分布式RAID應(yīng)用 210可以確定某個數(shù)據(jù)庫110是否存在故障。分布式RAID應(yīng)用210還可以訪問(例如,以讀取、寫入、發(fā)布命令,等等)到包括一個或多個存儲介質(zhì)的數(shù)據(jù)貯存器250,所述存儲介質(zhì)可以例如為根據(jù)已知的幾乎任何協(xié)議操作的磁盤252,例如根據(jù)SATA、PATA、FC、等等。在每個數(shù)據(jù)庫110上執(zhí)行的分布式RAID 應(yīng)用210可以允許使用數(shù)據(jù)庫110間的數(shù)據(jù)貯存器250的卷的分派和使用,以及利用一組全局表格240結(jié)合這些卷的RAID的實(shí)施方式,所述全局表格240在數(shù)據(jù)庫110、一組本地表格245和寫入式高速緩沖存儲器260之間共享,全部這些均可以存儲在存儲器230中(其可以是數(shù)據(jù)貯存器250或其他存儲器)。圖2B描述了硬件構(gòu)造的一個實(shí)施例的框圖,所述硬件構(gòu)造可以用于實(shí)現(xiàn)可操作為實(shí)現(xiàn)分布式RAID的數(shù)據(jù)庫110計(jì)算機(jī)。在這種構(gòu)造的示例中,數(shù)據(jù)庫110包括一個或多個處理器202和存儲器230,所述處理器202可以連接英特爾(Intel)X86構(gòu)造或其他一些構(gòu)造,所述存儲器230通過總線耦接到I/O控制器網(wǎng)絡(luò)集線器212,所述I/O控制器網(wǎng)絡(luò)集線器212在一個實(shí)施例中可以是南橋芯片或類似物。反過來,所述I/O控制器網(wǎng)絡(luò)集線器 212可以耦接到總線272并且控制總線272,例如PCI-X總線、PCI-express總線、等等。耦接到這個總線272的是一個或多個磁盤控制器沈2,例如,如LSI 1068 SATA/SAS控制器。 這些磁盤控制器262中的每一個均耦接到一個或多個磁盤252,其中這些磁盤252可以共同地包括數(shù)據(jù)貯存器250。此外,一個或多個網(wǎng)絡(luò)接口 282還可以耦接到總線272。這些網(wǎng)絡(luò)接口 282可以是包括在母板上的網(wǎng)絡(luò)接口(例如,以太網(wǎng),等等),所述網(wǎng)絡(luò)接口 282可以包括配置為經(jīng)由一個或多個協(xié)議(例如以太網(wǎng)、光纖信道、等等)接合的一個或多個網(wǎng)絡(luò)接口卡,或者所述網(wǎng)絡(luò)接口 282可以是其他一些類型的網(wǎng)絡(luò)接口,所述網(wǎng)絡(luò)接口使得數(shù)據(jù)庫110 可以通過這些網(wǎng)絡(luò)接口 282與開關(guān)120通信?,F(xiàn)在參考圖3,說明了一種用于卷的分派以及與數(shù)據(jù)庫110間的數(shù)據(jù)貯存器250中的這些卷相關(guān)聯(lián)的數(shù)據(jù)的布置的方法的一個實(shí)施例。最初,在卷被分派到數(shù)據(jù)貯存器250 的磁盤252上之前,磁盤252可以在步驟305處被格式化。如上所述,為了具有從任何故障容易且簡單地恢復(fù)的能力,冗余數(shù)據(jù)可能需要關(guān)于任意相應(yīng)的存儲數(shù)據(jù)是精確的。在許多情況下,這可能使得使用的磁盤252通過自磁盤252上的區(qū)域中的當(dāng)前數(shù)據(jù)計(jì)算冗余數(shù)據(jù)而存儲被格式化的卷,其中即便存儲在這些區(qū)域的數(shù)據(jù)可能在當(dāng)前普遍為無用值,部分卷也將被存儲。這些計(jì)算可能耗費(fèi)不希望看到的大量時間。此外,在例如關(guān)于圖1詳細(xì)說明的分布式RAID環(huán)境中,可能本身存在其他問題。更具體地,由于卷的不同部分可以存儲在不同的數(shù)據(jù)庫110上,并且相應(yīng)于所述卷的冗余數(shù)據(jù)還可以被存儲在各個數(shù)據(jù)庫110上,因此完成這種類型的格式化可以額外地要求數(shù)據(jù)庫 110上的分布式RAID應(yīng)用210之間的大量通信,耗費(fèi)了處理器周期和通信帶寬。因此,在一個實(shí)施例中,為了確保相應(yīng)于磁盤的將存儲卷的數(shù)據(jù)的區(qū)域的冗余數(shù)據(jù)關(guān)于磁盤252的將存儲所述卷的數(shù)據(jù)的所述區(qū)域是精確的,可以在磁盤252上將存儲相應(yīng)于所述卷的數(shù)據(jù)的所述區(qū)域以及磁盤252上將存儲冗余數(shù)據(jù)的所述區(qū)域中寫入零值。通過將磁盤252上將存儲卷的數(shù)據(jù)的區(qū)域和磁盤252上將存儲冗余數(shù)據(jù)的區(qū)域調(diào)整為零,可以保證所述卷中的任何數(shù)據(jù)均可以通過其相應(yīng)的冗余數(shù)據(jù)重建。將磁盤252調(diào)整為零可以具有其他優(yōu)點(diǎn)。即,可以不需要執(zhí)行復(fù)雜的計(jì)算來確定冗余數(shù)據(jù),并且分布式RAID應(yīng)用210之間可以不進(jìn)行通信以在將存儲卷的區(qū)域和將存儲相應(yīng)于這些區(qū)域的冗余數(shù)據(jù)的區(qū)域之間獲得相對的精確。重要的是,通過將磁盤252的用于卷及其相應(yīng)的冗余數(shù)據(jù)的區(qū)域調(diào)整為零,可以避免RAID系統(tǒng)100的可用性中的顯著延遲。這些優(yōu)點(diǎn)可以通過使用在操作期間基本連續(xù)地將磁盤252的未分派區(qū)域調(diào)整為零的處理而獲得,所述磁盤252的未分派區(qū)域源自例如分布式RAID系統(tǒng)100的最初的使用、新磁盤252的安裝、卷的刪除、等等。在這些情況下,每個數(shù)據(jù)庫110上的磁盤252的當(dāng)前未分派(S卩,目前未分派)區(qū)域可以具有寫入其中的零值(被稱作將所述區(qū)域“調(diào)整為零”)。被調(diào)整為零的磁盤252的未分派區(qū)域可以被跟蹤,從而當(dāng)相應(yīng)于卷的某部分的命令或與卷的某部分相關(guān)聯(lián)的冗余數(shù)據(jù)在所述部分被分配的數(shù)據(jù)庫110處被接收時,分布式 RAID應(yīng)用210可以檢查以確定所述部分是否被分配了所述部分被分配的數(shù)據(jù)庫110上的磁盤252的相應(yīng)區(qū)域。如果未分配數(shù)據(jù)庫110上的磁盤252的相應(yīng)區(qū)域,則分布式RAID應(yīng)用210可以選擇被調(diào)整為零的磁盤252的區(qū)域,并且將磁盤252的該區(qū)域分配到所述卷或相應(yīng)的冗余數(shù)據(jù)的所述部分。通過同時將之前未被調(diào)整為零的任意未分配的區(qū)域調(diào)整為零并且等待直到相應(yīng)于卷或冗余數(shù)據(jù)的某部分的命令被接收以將磁盤252的被調(diào)整為零的區(qū)域分配到所述部分,分布式RAID系統(tǒng)100可以幾乎立即工作而不需要較長的相關(guān)格式化處理,且可以添加新磁盤252,并且卷的刪除或釋放對分布式RAID系統(tǒng)100的操作是相對不易被察覺的。因此,將注意到,在閱讀了以上內(nèi)容之后,所述步驟305 (其中磁盤252被格式化) 可以在創(chuàng)建關(guān)于分布式RAID系統(tǒng)100的卷之前、期間或之后完成并且步驟305(以及在本文的全部流程圖中的其他全部步驟)的放置暗示各步驟之間是無序的。還將注意到,在徹底瀏覽了圖1中的其余步驟以及本公開的剩余內(nèi)容后,可以創(chuàng)建卷,并且所述卷和相應(yīng)于所述卷的冗余數(shù)據(jù)的部分在這些數(shù)據(jù)庫110上的磁盤252上的物理區(qū)域被分配為存儲所述卷或冗余數(shù)據(jù)的所述部分之前被分配到數(shù)據(jù)庫110,并且進(jìn)一步地,將用于存儲相應(yīng)于這些部分的數(shù)據(jù)的磁盤252上的物理區(qū)域調(diào)整為零可以發(fā)生在創(chuàng)建所述卷之前或創(chuàng)建所述卷之后但在這些物理區(qū)域被分配到所述卷或冗余數(shù)據(jù)的相應(yīng)部分之前(如以下更詳細(xì)的討論)。這些位置可以參考段的概念被更好地解釋,所述段可以由分布式RAID應(yīng)用210的實(shí)施例使用,其中段可以具有2048邏輯塊地址(LBA)的尺寸(或者其他一些尺寸),并且所述邏輯塊地址的尺寸相應(yīng)于磁盤252的扇區(qū)尺寸。每個數(shù)據(jù)庫110上的數(shù)據(jù)貯存器250中的磁盤252因此可以在步驟310處被分離成等尺寸的段(例如,1MB)。這些段可以相應(yīng)于磁盤驅(qū)動器252的一個或多個相鄰數(shù)據(jù)塊。因此,當(dāng)用戶或主機(jī)102在步驟320處請求自分布式RAID應(yīng)用210創(chuàng)建卷,并且指定在步驟330處將與所述卷結(jié)合使用的RAID的級別時, 相應(yīng)于被請求的所述卷的尺寸的多個這些段加上期望結(jié)合所述卷實(shí)現(xiàn)RAID的期望級別的段的數(shù)量可以在步驟340處被分配到所述卷。因此,所述卷包括多個段(同樣被稱作邏輯段),其中這些段中的每一個可以與特定的數(shù)據(jù)庫110相關(guān)聯(lián),從而使數(shù)據(jù)庫110可以被分配為管理所述卷的該段。該段可以例如具有2048邏輯塊地址(LBA)的尺寸,其中邏輯塊地址的尺寸相應(yīng)于磁盤252的扇區(qū)尺寸 (其他配置和尺寸也將是可行的)。在絕大多數(shù)情況下,包括所述卷的該段的物理存儲將被存儲在管理該段的數(shù)據(jù)庫110的數(shù)據(jù)貯存器250中,然而,在其他情況下,相應(yīng)于該段的數(shù)據(jù)可以存儲在不同的數(shù)據(jù)庫110的數(shù)據(jù)貯存器205中(換句話說,在特定情況下,包括管理該段的分布式RAID應(yīng)用的數(shù)據(jù)庫110可以與包括存儲相應(yīng)于該段的數(shù)據(jù)的數(shù)據(jù)貯存器250 的數(shù)據(jù)庫110相區(qū)別)。在一個實(shí)施例中,對相應(yīng)于特定卷的數(shù)據(jù)庫110的段分派可以通過確定相應(yīng)于分布式RAID系統(tǒng)100的一組數(shù)據(jù)庫110的隨機(jī)排列而完成。因此,如果存在六個數(shù)據(jù)庫,則可以確定尺寸為6的隨機(jī)排列,其中所述隨機(jī)排列包括每個數(shù)據(jù)庫,使得所述段可以以所述隨機(jī)排列的順序被連續(xù)地分配到每個數(shù)據(jù)庫。例如,假設(shè)分布式RAID系統(tǒng)中具有四個數(shù)據(jù)庫110(將其稱作數(shù)據(jù)庫1、數(shù)據(jù)庫2、 等等)??梢源_定數(shù)據(jù)庫2、數(shù)據(jù)庫4、數(shù)據(jù)庫1和數(shù)據(jù)庫3的隨機(jī)排列。在這種情況下,相應(yīng)于卷的第一段在數(shù)據(jù)庫2上,第二段可以在數(shù)據(jù)庫4上,第三段在數(shù)據(jù)庫1上,第四段在數(shù)據(jù)庫3上并且第五段再次回到數(shù)據(jù)庫4上。以此方式,如果已知相應(yīng)于所述卷的隨機(jī)排列,則相應(yīng)于所述卷的特定段的位置可以數(shù)學(xué)方式確定。如上所述,在步驟330處,用戶可以指定RAID的級別結(jié)合卷實(shí)現(xiàn)。在此情況下,分布式RAID應(yīng)用210可以確保相應(yīng)于結(jié)合卷的RAID的實(shí)施方式的任何數(shù)據(jù)均在步驟350處被存儲在適當(dāng)位置,使得RAID信息恰當(dāng)?shù)胤植荚跀?shù)據(jù)庫110間,以確保獲得期望的RAID的級別。例如,如果期望結(jié)合卷實(shí)現(xiàn)RAID 5,則分布式RAID應(yīng)用210可以確定期望的RAID 奇偶校驗(yàn)群組尺寸(例如,基于用戶配置的RAID集合或另外確定的RAID集合)。這種確定可以基于分布式RAID系統(tǒng)中的數(shù)據(jù)庫110的數(shù)量并且在一個實(shí)施例中, 可以是一個小于數(shù)據(jù)庫110的數(shù)量的數(shù)(額外地加1以說明奇偶校驗(yàn)數(shù)據(jù))。為了說明,如果存在五個數(shù)據(jù)庫110,對于每四個存儲了與卷相關(guān)聯(lián)的數(shù)據(jù)的段 (被稱作數(shù)據(jù)段),一個段專用于奇偶校驗(yàn)并且用于四個段的所述奇偶校驗(yàn)被計(jì)算并存儲在該奇偶校驗(yàn)段中,其中所述奇偶校驗(yàn)段專用于數(shù)據(jù)庫110,該數(shù)據(jù)庫110的數(shù)據(jù)貯存器 250不包括用于計(jì)算奇偶校驗(yàn)段的奇偶校驗(yàn)數(shù)據(jù)的數(shù)據(jù)段。這樣,相應(yīng)于邏輯卷的每個段均被分配到特定的數(shù)據(jù)庫110,并且被用于存儲相應(yīng)于所述卷的RAID數(shù)據(jù)的任何段100(此處被可替換地稱作冗余段或奇偶校驗(yàn)段,不失一般的適用性地使用所述段以存儲與結(jié)合卷的RAID的任何級別的實(shí)施方式相關(guān)聯(lián)的任意類型的冗余數(shù)據(jù))同樣被分配到數(shù)據(jù)庫110,然而,數(shù)據(jù)庫的數(shù)據(jù)貯存器250的磁盤252的物理扇區(qū)可能未被分配為存儲相應(yīng)于那些段的數(shù)據(jù)。因此,在步驟360處,所述卷的邏輯段被分配到的數(shù)據(jù)庫110上的磁盤252的物理段可以被確定并被分配到所述邏輯段。這種段映射可以被存儲在每個數(shù)據(jù)庫110的本地表格M5中。如前所述,這種分配可以在稍后的某點(diǎn)處發(fā)生,例如,當(dāng)命令首先試圖寫入邏輯段時。當(dāng)作出該分配時,在一個實(shí)施例中,磁盤252的區(qū)域不同性能特征可以關(guān)于被訪問的邏輯段說明。換句話說,磁盤252可以具有比相同磁盤的其他段更有效地訪問的段。因此,在一個實(shí)施例中,可能期望基于與邏輯段相關(guān)聯(lián)的標(biāo)準(zhǔn)分配磁盤252的物理段。所述特征可以包括例如,與相應(yīng)于所述邏輯段的卷相關(guān)聯(lián)的服務(wù)質(zhì)量、對包括所述邏輯段的所述卷的多次訪問等等。之后,在步驟370處,相應(yīng)于所述卷的信息可以被存儲,使得可以從這種被存儲的信息確定相應(yīng)于所述卷的段的位置或相應(yīng)于結(jié)合所述卷的RAID的實(shí)施方式的段的位置。 這種被存儲的信息(共同被稱作映射數(shù)據(jù))可以因此包括對所述卷的標(biāo)識、相應(yīng)于所述卷的隨機(jī)排列(例如,指示所述段所在的數(shù)據(jù)庫110的順序)和任何RAID實(shí)施方式的奇偶校驗(yàn)群組尺寸(例如,所述卷是否相應(yīng)于4+1個RAID集合、所述卷是否相應(yīng)于7+1個RAID集合、RAID 1是否被實(shí)現(xiàn)、等等)。例如,這種數(shù)據(jù)可以被存儲在全局表格240中,使得其可以被傳輸?shù)狡渌麛?shù)據(jù)庫110上的其他分布式RAID應(yīng)用210,從而確保與每個分布式RAID應(yīng)用210相關(guān)聯(lián)的表格MO的集合的至少一部分保持基本一致并且保持所述位置。以上說明可以參考圖4被更好地理解,圖4說明了具有五個數(shù)據(jù)庫110的分布式 RAID系統(tǒng)的一個實(shí)施例的一個示例。此處,每個數(shù)據(jù)庫110的每個數(shù)據(jù)貯存器250被布置為等尺寸的段402的集合,為本示例中的目的,假設(shè)具有1MB的尺寸。設(shè)想,現(xiàn)在主機(jī)102 請求來自數(shù)據(jù)庫IlOb上的分布式RAID應(yīng)用210b的具有RAID級別5的8MB的卷。在此情況下,分布式RAID應(yīng)用210b可以確定所述卷的數(shù)據(jù)部分要求八個段402,而可能要求兩個段402以結(jié)合用于所述卷的期望RAID級別的實(shí)施方式來存儲所述卷的冗余數(shù)據(jù)。分布式 RAID應(yīng)用210b之后可以確定用于所述卷的隨機(jī)排列。為本示例中的目的,假設(shè)隨機(jī)排列是數(shù)據(jù)庫110b、數(shù)據(jù)庫110d、數(shù)據(jù)庫110a、數(shù)據(jù)庫IlOc和數(shù)據(jù)庫110e。因此,數(shù)據(jù)庫IlOb 可以是分配段40加,即被請求的卷的第一段,數(shù)據(jù)庫IlOd可以是分配段402b,即被請求的卷的第二段,數(shù)據(jù)庫IlOa可以是分配段402c,即被請求的卷的第三段,數(shù)據(jù)庫IlOc可以是分配段402d,即被請求的卷的第四段,并且數(shù)據(jù)庫IlOe可以是分配段402e,即被請求的卷的第五段。接著,所述分配再次開始于隨機(jī)順序的第一數(shù)據(jù)庫110,使得數(shù)據(jù)庫IlOb可以是分配段402f,即被請求的卷的第六段,數(shù)據(jù)庫IlOd可以是分配段402g,即被請求的卷的第七段,并且數(shù)據(jù)庫IlOa可以是分配段40池,即被請求的卷的第八段。一旦用于存儲與所述卷相關(guān)聯(lián)的數(shù)據(jù)的數(shù)據(jù)段40加-40池被分配,則分布式RAID 應(yīng)用210b可以為段402分配與該RAID級別的實(shí)施方式相關(guān)聯(lián)的任何數(shù)據(jù)。在本示例中, 由于所述卷期望RAID 5,因此分布式RAID應(yīng)用210b可以確定當(dāng)使用五個數(shù)據(jù)庫110時,可以期望(4+1)個奇偶校驗(yàn)集合。分布式RAID應(yīng)用210b之后可以確定為了存儲所述奇偶校驗(yàn)以結(jié)合八個段402實(shí)現(xiàn)RAID 5,可能需要額外的兩個段402。此外,可能期望利用數(shù)據(jù)段402的特定集合產(chǎn)生的奇偶校驗(yàn)不存儲于在其數(shù)據(jù)貯存器中具有數(shù)據(jù)段402的那些集合中的任意集合的數(shù)據(jù)庫110上。因此,分布式RAID應(yīng)用 210b還可以確定每個奇偶校驗(yàn)段將基于被確定的RAID奇偶校驗(yàn)群組尺寸分派的位置,所述第一數(shù)據(jù)段40 的位置等等。此處,奇偶校驗(yàn)段402i將被分派在數(shù)據(jù)庫IlOc的數(shù)據(jù)貯存器250c中,所述奇偶校驗(yàn)段402i將存儲相應(yīng)于存儲在數(shù)據(jù)段4(^a、402b、402c和402d 中的數(shù)據(jù)的奇偶校驗(yàn)數(shù)據(jù),而奇偶校驗(yàn)段402 j將被分派在數(shù)據(jù)庫IlOe的數(shù)據(jù)貯存器250e 中,所述奇偶校驗(yàn)段402 j將存儲相應(yīng)于存儲在數(shù)據(jù)段4(^e、402f、402g和40 中的數(shù)據(jù)的奇偶校驗(yàn)數(shù)據(jù)。此處注意,奇偶校驗(yàn)段402i、402j被布置并設(shè)計(jì)尺寸為基本等同于存儲與卷相關(guān)聯(lián)的數(shù)據(jù)的那些段40h-402h,所述奇偶校驗(yàn)段402i、402j將存儲與結(jié)合包括數(shù)據(jù)段40h-402h的卷的RAID的實(shí)施方式相關(guān)聯(lián)的奇偶校驗(yàn)信息。因此,當(dāng)主機(jī)102訪問所述卷時,具有相應(yīng)于所述卷的第一數(shù)據(jù)段的邏輯地址的請求可以相應(yīng)于數(shù)據(jù)庫IlOb上的數(shù)據(jù)段40 ,具有相應(yīng)于所述卷的第二數(shù)據(jù)段的邏輯地址的請求可以相應(yīng)于數(shù)據(jù)庫IlOd上的數(shù)據(jù)段402b,等等。此處注意,被分派的數(shù)據(jù)段 402a-402h可以位于不同的數(shù)據(jù)庫110上,并且任何被分派的數(shù)據(jù)段40加-40濁的位置可以使用與所述卷相關(guān)聯(lián)的隨機(jī)排列來確定(例如,當(dāng)存儲在數(shù)據(jù)庫110處的全局表格MO中時)。然而,如上所述,數(shù)據(jù)庫110上的數(shù)據(jù)貯存器250被虛擬化,因此,發(fā)出請求的主機(jī)可能不知道數(shù)據(jù)貯存器250中的數(shù)據(jù)段402的位置、多個數(shù)據(jù)貯存器250的存在、數(shù)據(jù)貯存器 250在多個數(shù)據(jù)庫110間分布、等等。主機(jī)102相信其正尋址單個連續(xù)的卷。顯然的是,在本示例中,數(shù)據(jù)庫110上的數(shù)據(jù)段402的位置(以及數(shù)據(jù)庫110的相應(yīng)的隨機(jī)排列)為的是說明,并且卷的數(shù)據(jù)段402可以根據(jù)幾乎任意隨機(jī)排列或其他排列而位于任意數(shù)據(jù)庫110上的任意數(shù)據(jù)貯存器250上。此外,應(yīng)該注意到,雖然每個段402在本示例中為1MB,但這些段可以不失一般性地為任意尺寸,并且選擇1MB的尺寸僅是為了易于說明。如可從以上說明中看到的,特定的數(shù)據(jù)段402或奇偶校驗(yàn)段402的位置可以使用與所述卷和RAID奇偶校驗(yàn)群組尺寸相關(guān)聯(lián)的隨機(jī)排列,通過算法確定(例如,使用與用于分配所述卷的段、定位所述卷的奇偶校驗(yàn)段等等的隨機(jī)排列相同的隨機(jī)排列)。因此,所述信息可以結(jié)合相應(yīng)于所述卷的標(biāo)識被存儲在例如全局表格MO的集合中。進(jìn)一步地,這些全局表格240可以在數(shù)據(jù)庫110之間傳輸或者被更新,使得在每個數(shù)據(jù)庫110中的所述全局表格MO的集合的至少部分可以被保持為基本一致。此處簡單地進(jìn)行對與分布式RAID應(yīng)用210相關(guān)聯(lián)的全局表格MO的更為詳細(xì)的研究可能是有益的。如上所述,在一個實(shí)施例中,全局表格240可以存儲與由分布式RAID 應(yīng)用210產(chǎn)生的卷相關(guān)聯(lián)的信息,在所述分布式RAID應(yīng)用210中,那些表格240可以用于確定與該卷內(nèi)的數(shù)據(jù)段相關(guān)聯(lián)的數(shù)據(jù)庫110,或者與相應(yīng)于該卷的數(shù)據(jù)段相關(guān)聯(lián)的奇偶校驗(yàn)段被定位。因此,全局表格240可以包括表格的集合,每個表格相應(yīng)于關(guān)于數(shù)據(jù)庫110實(shí)現(xiàn)的卷。特別地,這些表格240中的一個可以包含數(shù)據(jù),該數(shù)據(jù)可以用于識別其數(shù)據(jù)貯存器 250包括卷的特定段的數(shù)據(jù)庫110。具體地,這種表格可以用于使與卷相關(guān)聯(lián)的邏輯地址與存儲有相應(yīng)于該邏輯地址的段(數(shù)據(jù)、冗余、等等)的數(shù)據(jù)庫110相關(guān)。圖5說明了這種類型的表格的一個實(shí)施例的圖示,其中每個卷可以具有這種相關(guān)聯(lián)的表格的相關(guān)聯(lián)的實(shí)例。表格550包括用于LV數(shù)字504、段尺寸508、段計(jì)數(shù)512、服務(wù)質(zhì)量(QOS) 514、范圍計(jì)數(shù)518的項(xiàng)目、用于范圍項(xiàng)目的信息,所述范圍項(xiàng)目包括在說明第一范圍52 和第二范圍524b以及任意額外的范圍項(xiàng)目52 的實(shí)施例中。LV數(shù)字504是用于識別特定卷的唯一數(shù)字,段尺寸508相應(yīng)于用于實(shí)現(xiàn)所述卷的段的尺寸,段計(jì)數(shù)512相應(yīng)于與邏輯卷相應(yīng)的段的數(shù)量(例如,數(shù)據(jù)段和冗余段兩者的數(shù)量、僅數(shù)據(jù)段的數(shù)量、等等),QOS 514表示期望關(guān)于所述卷實(shí)現(xiàn)的服務(wù)質(zhì)量(注意,這種 QOS指示符可以表示給予該卷相對于數(shù)據(jù)庫110上存儲的其他卷的優(yōu)先級)并且范圍計(jì)數(shù) 518表示與所述卷相關(guān)聯(lián)的多個范圍,而范圍項(xiàng)目5 中的每一個均相應(yīng)于這些范圍中的一個。范圍可以相應(yīng)于特定的數(shù)據(jù)庫110順序和RAID實(shí)施方式。多個范圍可以被用于實(shí)現(xiàn)卷的原因是多種多樣的。具體地,例如,多個范圍可以結(jié)合卷使用,因?yàn)椴煌瑪?shù)據(jù)庫110 處的不同數(shù)據(jù)貯存器250可以具有在數(shù)據(jù)貯存器250中可被利用的不同數(shù)量的存儲。這可以導(dǎo)致的情況例如為,對于卷的第一范圍,全部數(shù)據(jù)庫110可以結(jié)合第一 RAID實(shí)施方式被使用,而在卷的第二范圍中,可利用的少于全部的數(shù)據(jù)庫110可以結(jié)合第二 RAID實(shí)施方式使用(其中實(shí)際上,第一和第二 RAID實(shí)施方式可以具有彼此不同的級別)。這些范圍中的每一個因此可以相應(yīng)于根據(jù)不同數(shù)據(jù)庫110順序(例如,隨機(jī)排列,等等)布置的段,具有可用的不同數(shù)量的數(shù)據(jù)庫110、不同類型的RAID,等等。為了說明而使用具體的示例,再次簡要地參考圖4。假設(shè)具有RAID級別5的8MB 的卷如圖所示布置,其中數(shù)據(jù)段根據(jù)數(shù)據(jù)庫110b、數(shù)據(jù)庫110d、數(shù)據(jù)庫110a、數(shù)據(jù)庫IlOc和數(shù)據(jù)庫IlOe的順序布置并且RAID 5結(jié)合使用的所述卷實(shí)現(xiàn),可能期望(4+1)個奇偶校驗(yàn)集合,其中奇偶校驗(yàn)段被分配在數(shù)據(jù)庫IlOc的數(shù)據(jù)貯存器250c和數(shù)據(jù)庫IlOe的數(shù)據(jù)貯存器250e中?,F(xiàn)在假設(shè)請求向這種卷增加額外的3MB。然而,在此情況下,假設(shè)數(shù)據(jù)庫110e、 IlOc和IlOd的數(shù)據(jù)貯存器250沒有更多的空間。因此,在此情況下,唯一的解決方案可能是將額外期望的3MB在數(shù)據(jù)庫IlOa和IlOb之間分派,所述數(shù)據(jù)庫IlOa和IlOb在數(shù)據(jù)庫 250中具有剩余的存儲。進(jìn)一步地,由于僅有兩個數(shù)據(jù)庫110可用,因此可能僅可以利用 RAID級別1,而不是如在第一個8MB的卷中使用的RAID 5。因此,在此情況下,所述第一個 8MB的卷可以相應(yīng)于第一范圍,并且在相應(yīng)于具有第一組值的卷的表格中具有第一范圍項(xiàng)目,而下一個3MB的卷可以相應(yīng)于第二范圍,并且在相應(yīng)于具有第二組值的卷的表格中具有第二范圍項(xiàng)目。如在閱讀了本公開后可以清楚了解的,這種類型的事件可能以一定頻率發(fā)生?;氐綀D5,在許多情況中,為了應(yīng)對這些類型的情況,卷的每個范圍可以在表格 550中具有一個項(xiàng)目,使得在該特定的范圍中的段的位置可以自相應(yīng)于該范圍的范圍項(xiàng)目確定。用于相應(yīng)于表格陽0的卷的每個范圍的項(xiàng)目5M與范圍計(jì)數(shù)518相關(guān)聯(lián)。在一個實(shí)施例中,范圍計(jì)數(shù)518可以相應(yīng)于卷的范圍的數(shù)量,使得范圍項(xiàng)目5M的數(shù)量相應(yīng)于范圍計(jì)數(shù)518。雖然僅顯示了范圍項(xiàng)目52 和524b,但應(yīng)該注意表格中范圍項(xiàng)目5 的數(shù)量將基于范圍的數(shù)量,所述范圍的數(shù)量相應(yīng)于該表格對應(yīng)的卷。因此,如果一個卷被劃分為三個范圍,則表格550中將具有三個范圍項(xiàng)目524,使得存在范圍項(xiàng)目524,該范圍項(xiàng)目5M包括用于相應(yīng)于表格550的卷的每個范圍的信息。用于范圍項(xiàng)目5M的信息包括類型526、開始530、結(jié)束534、網(wǎng)絡(luò)RAID 538、網(wǎng)絡(luò) RAID尺寸M2、磁盤RAID M6、磁盤RAID尺寸550、數(shù)據(jù)庫計(jì)數(shù)554、數(shù)據(jù)庫順序558以及磁盤計(jì)數(shù)562和磁盤順序566,該磁盤計(jì)數(shù)562和磁盤順序566相應(yīng)于用于存儲與范圍5M 相關(guān)聯(lián)的段的每個數(shù)據(jù)庫110(換句話說,存在等于所述范圍項(xiàng)目5M的數(shù)據(jù)庫計(jì)數(shù)554的磁盤計(jì)數(shù)562和磁盤順序566)。類型5 說明了相應(yīng)于范圍項(xiàng)目5 的信息的范圍類型; 例如,常態(tài)、源(SRC)、目的地(DST)或其他類型的范圍。開始230是相應(yīng)于范圍項(xiàng)目5M的卷的范圍的第一個邏輯段地址。結(jié)束234是相應(yīng)于信息的所述范圍的最后的邏輯段地址, 所述信息針對相應(yīng)于范圍項(xiàng)目5M的卷的范圍。其他配置也是可行的,例如,結(jié)束5M可以是一個計(jì)數(shù),該計(jì)數(shù)是所述范圍中的段或塊的最大數(shù)量,等等。數(shù)據(jù)庫計(jì)數(shù)562可以相應(yīng)于數(shù)據(jù)庫110的數(shù)量,在所述數(shù)據(jù)庫110上具有相應(yīng)于范圍項(xiàng)目的范圍,數(shù)據(jù)庫順序558可以是該范圍中的段被分配到數(shù)據(jù)庫110的順序,而網(wǎng)絡(luò) RAID 538、網(wǎng)絡(luò)RAID尺寸M2、磁盤RAID 546和磁盤RAID尺寸552可以相應(yīng)于結(jié)合相應(yīng)于范圍項(xiàng)目5M的卷的范圍實(shí)現(xiàn)的RAID的類型。網(wǎng)絡(luò)RAID 538是與相應(yīng)于表格550的卷相關(guān)聯(lián)地實(shí)現(xiàn)的RAID的類型,例如,RAID 0、RAID 1或RAID 5或者其他RAID類型。網(wǎng)絡(luò)RAID尺寸542是在所述范圍中使用的RAID 類型的奇偶校驗(yàn)群組尺寸。網(wǎng)絡(luò)RAID尺寸542可以由所述范圍中的數(shù)據(jù)庫110的數(shù)量限制,從而小于或等于相應(yīng)于范圍524的信息的范圍中的數(shù)據(jù)庫的數(shù)量。磁盤RAID546是在所述范圍中的數(shù)據(jù)庫中的磁盤間實(shí)現(xiàn)的RAID的類型。磁盤RAID尺寸552可以是RAID類型的奇偶校驗(yàn)群組尺寸,該RAID類型用于每個數(shù)據(jù)庫110的數(shù)據(jù)貯存器250中的磁盤252 間,并且磁盤RAID尺寸552可以被限制為小于或等于數(shù)據(jù)庫中的磁盤的數(shù)量。在多個實(shí)施例中,所述范圍中的數(shù)據(jù)庫110中的磁盤間的RAID是可選的并且可以使用或者不使用。在這些實(shí)施例中,可以不使用或者可以省略磁盤RAID 546和磁盤RAID尺寸552中的一者或兩者。數(shù)據(jù)庫計(jì)數(shù)5M是所述范圍中的數(shù)據(jù)庫的數(shù)量并且數(shù)據(jù)庫順序558是在所述范圍中的數(shù)據(jù)庫110間實(shí)現(xiàn)的RAID的順序(例如,呈條型)。例如,數(shù)據(jù)庫110可以具有以特定順序保存的相應(yīng)于所述卷的邏輯地址的數(shù)據(jù),并且數(shù)據(jù)庫順序558相應(yīng)于這種順序。磁盤計(jì)數(shù)562是所述范圍的數(shù)據(jù)庫110內(nèi)的磁盤的數(shù)量,并且磁盤順序566是RAID在特定的數(shù)據(jù)庫110的磁盤間實(shí)現(xiàn)的順序。例如,磁盤252可以具有以特定順序保存于所述磁盤中的段,并且磁盤順序566是段在數(shù)據(jù)庫110中的磁盤252間存儲的順序。因此,對于用于存儲與范圍項(xiàng)目5M相關(guān)聯(lián)的范圍的段的每個數(shù)據(jù)庫110,存在相應(yīng)的磁盤計(jì)數(shù)562和磁盤順序 566(換句話說,在一個實(shí)施例中,磁盤計(jì)數(shù)562和磁盤順序566的數(shù)量將等于該范圍項(xiàng)目 524的數(shù)據(jù)庫計(jì)數(shù)554)。在多個實(shí)施例中,數(shù)據(jù)庫110中的磁盤252間的RAID是可選的并且可以不使用。應(yīng)該注意到雖然表格550被具體地說明,但本說明是示例性方式而非限制性方式的,并且可以使用其他形式的表格陽0。例如,可以使用虛擬表格取代表格550,并且可以清楚地列出相應(yīng)于每個邏輯地址的段402和數(shù)據(jù)庫110。因此,如前所述,表格550中的信息可以用于識別包括相應(yīng)于邏輯地址的數(shù)據(jù)段 402的數(shù)據(jù)庫110(所述邏輯地址在命令或任意其他背景中被主機(jī)102引用)。例如,已知段402的尺寸并且使用開始530、結(jié)束534、相應(yīng)于地址的范圍項(xiàng)目524、等等,可以確定相應(yīng)于卷的邏輯地址的特定的數(shù)據(jù)庫110。雖然表格240的一個或多個部分可以在全部數(shù)據(jù)庫110間基本相同并且可以說明如上所述跨越一個或多個數(shù)據(jù)庫110的一個或多個邏輯卷,但數(shù)據(jù)庫110上的其他表格M5 可以與其相應(yīng)的數(shù)據(jù)庫110不同(例如,表格245可以對其上執(zhí)行有相應(yīng)的分布式RAID應(yīng)用210的數(shù)據(jù)庫110是唯一的)。這種表格245可以包括數(shù)據(jù),該數(shù)據(jù)屬于包括在相應(yīng)的數(shù)據(jù)庫110的數(shù)據(jù)貯存器250中的每個磁盤252,并且這種表格245可以包括存儲在數(shù)據(jù)貯存器的磁盤252上或數(shù)據(jù)貯存器的磁盤252間的信息,例如,具有被分配到數(shù)據(jù)庫110的段 402的磁盤252的扇區(qū)位于數(shù)據(jù)貯存器250中。在圖6中,說明了這種類型的表格的一個實(shí)施例的圖示。表格660可以存儲在特定的數(shù)據(jù)庫110中并且包括多個磁盤表格670,每個磁盤表格670相應(yīng)于數(shù)據(jù)庫110內(nèi)的數(shù)據(jù)貯存器250的磁盤252,并且列出了存儲在該磁盤252內(nèi)的段的位置。更具體地,在絕大多數(shù)情況下,磁盤252被劃分為物理扇區(qū),每個物理扇區(qū)具有相應(yīng)的地址或地址范圍。磁盤表格670可以是映射表格,該映射表格可以被利用以確定存儲有卷的段的數(shù)據(jù)庫110的磁盤252的扇區(qū)的位置。因此,使用表格670,可以確定相應(yīng)于卷的段的磁盤252 上的扇區(qū)的地址。進(jìn)一步地,所述表格可以在相應(yīng)于所述磁盤的段或扇區(qū)的每個項(xiàng)目中包含一個或多個標(biāo)記或描述位,從而說明所述扇區(qū)或存儲在該扇區(qū)中的段?,F(xiàn)在參考圖7,說明了磁盤表格670的一個實(shí)施例的圖示。磁盤表格670具有多個項(xiàng)目,每個項(xiàng)目相應(yīng)于相應(yīng)的磁盤的物理段,使得磁盤表格670的項(xiàng)目說明磁盤252的物理段。磁盤表格670中的每個項(xiàng)目還可以包括一個或多個標(biāo)記或位域,該一個或多個標(biāo)記或位域說明存儲在相應(yīng)的扇區(qū)中的所述卷的物理段或段。更特別地,如圖7所示,在一個實(shí)施例中,磁盤表格670中的項(xiàng)目包括域,該域針對邏輯卷(LV)數(shù)量、邏輯段數(shù)量、地址空間和扇區(qū)狀態(tài)。LV數(shù)量識別邏輯卷,該邏輯卷相應(yīng)于存儲在所述物理段中的數(shù)據(jù)。邏輯段數(shù)量識別相應(yīng)于所述數(shù)據(jù)的邏輯卷的段。地址空間識別存儲為“數(shù)據(jù)”或“冗余”的段?!皵?shù)據(jù)” 的值可以表示數(shù)據(jù)被存儲在由所述項(xiàng)目表示的扇區(qū)中,而“冗余”的值表示存儲在所述扇區(qū)中的信息可以被用于RAID數(shù)據(jù)保護(hù),并且基于RAID級別,所述信息可以是冗余數(shù)據(jù)、鏡像數(shù)據(jù)或奇偶校驗(yàn)信息。扇區(qū)狀態(tài)表示段的狀態(tài)為“已分派”、“歸零”或“無效(dirty)”。“已分派”表示所述段已被分派并且可以包括有效數(shù)據(jù)?!皻w零”表示所述段通過向該段中寫入零而被調(diào)整為零,而“無效”表示所述段可能包括無用值,該無用值為不可用或不需要的值, 例如,因?yàn)樗龆挝幢徽{(diào)整為零或分派,因此可以存儲隨機(jī)位或數(shù)據(jù)。在一個實(shí)施例中,例如,對于一個新磁盤,在相應(yīng)于該新磁盤或新增加的磁盤的磁盤表格中,該磁盤的全部段可以被標(biāo)記為無效。在閱讀了表格的以上說明后,顯然的是分布式RAID應(yīng)用210可以利用全局表格 240來確定哪個段相應(yīng)于卷的邏輯地址、相應(yīng)于卷的段(數(shù)據(jù)段或冗余段)位于哪個數(shù)據(jù)庫 110上、卷的哪個段相應(yīng)于卷的邏輯地址、與卷的段相關(guān)聯(lián)的RAID數(shù)據(jù)(奇偶校驗(yàn)數(shù)據(jù)、鏡像數(shù)據(jù)、等等)位于何處、特定的數(shù)據(jù)庫110上的哪個磁盤包括段或關(guān)于相應(yīng)于該特定的數(shù)據(jù)庫110的卷、段、或磁盤252的其他信息、或關(guān)于卷、段402、數(shù)據(jù)庫110、RAID數(shù)據(jù)等等的其他信息。同樣,每個獨(dú)立的數(shù)據(jù)庫110上的分布式RAID應(yīng)用210可以使用該數(shù)據(jù)庫110上的本地表格245來確定特定的段位于該數(shù)據(jù)庫110上的何處(磁盤252的哪個扇區(qū),等等) 或者確定關(guān)于相應(yīng)于該特定的數(shù)據(jù)庫110的卷、段或磁盤252的其他信息。使用在數(shù)據(jù)庫110和相應(yīng)于每個獨(dú)立的數(shù)據(jù)庫110的本地表格245之間共享的全局表格240的組合,可以通過相互協(xié)作的數(shù)據(jù)庫110上的分布式RAID應(yīng)用210來執(zhí)行一些操作。現(xiàn)在將更詳細(xì)地討論這些類型的操作。具體地,現(xiàn)在將通過以下關(guān)于一個示例性的分布式RAID系統(tǒng)的READ命令和WRITE 命令的實(shí)施方式的具體示例來更詳細(xì)地討論READ命令和WRITE命令在卷上的實(shí)施方式的一個實(shí)施例,其中,結(jié)合卷實(shí)現(xiàn)RAID級別5。在通篇瀏覽本公開后,應(yīng)該注意到如何可以實(shí)現(xiàn)其他類型的實(shí)施例、命令、RAID級別、等等。首先看圖8,說明了一種用于在分布式RAID系統(tǒng)中實(shí)現(xiàn)READ命令的方法的一個實(shí)施例的流程圖。這種READ命令可以經(jīng)過開關(guān)120由主機(jī)102發(fā)送到數(shù)據(jù)庫110或者從一個數(shù)據(jù)庫110發(fā)送到另一個數(shù)據(jù)庫110。在一些實(shí)施例中,主機(jī)102可以包括一個或多個應(yīng)用以及相關(guān)聯(lián)的路由信息,使得READ命令可以從發(fā)布該命令的主機(jī)102沿發(fā)布主機(jī)102和適當(dāng)?shù)臄?shù)據(jù)庫110之間的路徑被路由到適當(dāng)?shù)臄?shù)據(jù)庫110。然而,在其他情況下,主機(jī)102 上可以不存在這種應(yīng)用或路由信息,并且因此從主機(jī)102發(fā)布的READ命令可以被路由到任意數(shù)據(jù)庫110。這是稍后將在本實(shí)施例中說明的情況,然而,在瀏覽了本實(shí)施例的說明后,本領(lǐng)域技術(shù)人員將注意到所述稍后說明的情況中的步驟同樣適用于之前所述的情況。在步驟810處,接著可以在數(shù)據(jù)庫110處接收READ命令。在步驟820處,數(shù)據(jù)庫 110上的分布式RAID應(yīng)用210可以確定卷的段,該卷的段相應(yīng)于在接收到的READ命令中引用的邏輯地址,并且在步驟830處,數(shù)據(jù)庫110上的分布式RAID應(yīng)用210可以確定所述卷的段存儲在哪個數(shù)據(jù)庫110上。如上所述,可以使用與分布式RAID應(yīng)用210相關(guān)聯(lián)的全局表格240來確定這種信息。如果存儲所述段的數(shù)據(jù)庫110與接收到所述READ命令的數(shù)據(jù)庫110相同(如在步驟832處所確定的),則在步驟840處,可以自接收數(shù)據(jù)庫110上的數(shù)據(jù)貯存器250的適當(dāng)?shù)拇疟P252獲得被請求的數(shù)據(jù),并且在步驟850處,READ命令作出響應(yīng)。如上所述,存儲有段的數(shù)據(jù)庫110的數(shù)據(jù)貯存器250的特定的磁盤252可以使用全局表格240確定,而相應(yīng)于所述段的數(shù)據(jù)在那個磁盤252上的存儲位置可以使用本地表格245 確定,所述本地表格245可以用于將卷的段映射到磁盤252上的物理位置。如果接收數(shù)據(jù)庫110從主機(jī)102接收到READ命令,則主機(jī)102可以作出響應(yīng),而如果接收數(shù)據(jù)庫110從其他數(shù)據(jù)庫110接收到READ命令,則所述響應(yīng)可以被發(fā)送到發(fā)布READ命令的數(shù)據(jù)庫110 上的分布式RAID應(yīng)用210。然而,如果在步驟860處段被存儲在遠(yuǎn)程數(shù)據(jù)庫110上(與接收到命令的數(shù)據(jù)庫不同的數(shù)據(jù)庫110) JUREAD命令可以被發(fā)送到遠(yuǎn)程數(shù)據(jù)庫110處的分布式RAID應(yīng)用210。 在一個實(shí)施例中,這種READ命令可以使用由分布式RAID應(yīng)用210使用的命令格式被傳輸?shù)竭h(yuǎn)程數(shù)據(jù)庫110處的分布式RAID應(yīng)用210。在提供了原始READ命令的相關(guān)信息的同時, 這種命令還可以指示分布式RAID應(yīng)用將READ命令的結(jié)果返回到最初接收該READ命令的數(shù)據(jù)庫110或執(zhí)行其他功能。因此,在步驟870處將READ命令發(fā)送到遠(yuǎn)程數(shù)據(jù)庫110后, 包括被請求的數(shù)據(jù)的響應(yīng)可以自遠(yuǎn)程數(shù)據(jù)庫110接收并且在步驟880處,接收到的READ命令對使用在該響應(yīng)中接收到的數(shù)據(jù)作出響應(yīng)?,F(xiàn)在移動到圖9A和9B,說明了一種用于實(shí)現(xiàn)分布式RAID系統(tǒng)中的WRITE命令的方法的一個實(shí)施例的流程圖。這種WRITE命令可以由主機(jī)102經(jīng)過開關(guān)120發(fā)送到數(shù)據(jù)庫 110或從一個數(shù)據(jù)庫110發(fā)送到另一個數(shù)據(jù)庫110。在一些實(shí)施例中,主機(jī)102可以包括一個或多個應(yīng)用以及相關(guān)聯(lián)的路由信息,使得WRITE命令可以自發(fā)布所述命令的主機(jī)102沿發(fā)布主機(jī)102和適當(dāng)?shù)臄?shù)據(jù)庫110之間的路徑路由到適當(dāng)?shù)臄?shù)據(jù)庫110。然而,在其他情況下,主機(jī)102上可以不存在這種應(yīng)用或路由信息,并且因此從主機(jī)102發(fā)布的WRITE命令可以被路由到任意數(shù)據(jù)庫110。這是稍后將在本實(shí)施例中說明的情況,然而,在瀏覽了本實(shí)施例的說明后,本領(lǐng)域技術(shù)人員將注意到所述稍后說明的情況中的步驟同樣適用于之前所述的情況。在步驟910處,之后,可以在接收數(shù)據(jù)庫110處接收WRITE命令。接收數(shù)據(jù)庫110 上的分布式RAID應(yīng)用210之后可以在步驟920、930和940處確定相應(yīng)于由WRITE命令引用的邏輯地址的卷的段、該段的位置(例如,哪個數(shù)據(jù)庫110存儲了相應(yīng)于該段的數(shù)據(jù))和相應(yīng)于該段的奇偶校驗(yàn)的位置(例如,哪個數(shù)據(jù)庫110存儲了所述段,該段中存儲了自相應(yīng)于該段的數(shù)據(jù)產(chǎn)生的奇偶校驗(yàn)數(shù)據(jù))。如上所述,可以使用存儲在接收數(shù)據(jù)庫110上的全局表格240來確定數(shù)據(jù)段和奇偶校驗(yàn)段兩者的位置。如果數(shù)據(jù)段(存儲所述數(shù)據(jù)的段)和冗余段(換句話說,所述奇偶校驗(yàn)或自所述數(shù)據(jù)段產(chǎn)生的其他類型的冗余數(shù)據(jù))均未存儲在接收數(shù)據(jù)庫110上(如在步驟950和960 處確定的),則WRITE命令可以被傳輸?shù)竭h(yuǎn)程數(shù)據(jù)庫110上的分布式RAID應(yīng)用210和遠(yuǎn)程奇偶校驗(yàn)數(shù)據(jù)庫110上的分布式RAID應(yīng)用210,數(shù)據(jù)段在步驟964處存儲于所述遠(yuǎn)程數(shù)據(jù)庫110上,奇偶校驗(yàn)段在步驟966處存儲于所述遠(yuǎn)程奇偶校驗(yàn)數(shù)據(jù)庫110上。在一個實(shí)施例中,這種WRITE命令可以使用由分布式RAID應(yīng)用210使用的命令格式被傳輸?shù)竭h(yuǎn)程數(shù)據(jù)庫110和遠(yuǎn)程奇偶校驗(yàn)數(shù)據(jù)庫110處的分布式RAID應(yīng)用210。在提供了原始WRITE命令的相關(guān)信息的同時,這種命令還可以指示分布式RAID應(yīng)用210執(zhí)行其他期望的功能。
因此,在WRITE命令被發(fā)送到遠(yuǎn)程數(shù)據(jù)庫110和遠(yuǎn)程奇偶校驗(yàn)數(shù)據(jù)庫后,在步驟 968和970處,可以自遠(yuǎn)程數(shù)據(jù)庫110和遠(yuǎn)程奇偶校驗(yàn)數(shù)據(jù)庫110上的分布式RAID應(yīng)用210 接收到完成通知。一旦接收到這些確認(rèn),則WRITE命令可以通過接收數(shù)據(jù)庫110上的分布式RAID應(yīng)用210作出響應(yīng)。返回到步驟950,然而,如果數(shù)據(jù)段被存儲在接收數(shù)據(jù)庫110中,則可以在步驟952 處確定所述WRITE命令是接收自主機(jī)102還是其他數(shù)據(jù)庫1IO0如果WRITE命令自主機(jī)102 接收,則WRITE命令可以在步驟976處被傳輸?shù)竭h(yuǎn)程奇偶校驗(yàn)數(shù)據(jù)庫110上的分布式RAID 應(yīng)用210,并且在步驟974處被置于接收數(shù)據(jù)庫110的寫入式高速緩沖存儲器中。當(dāng)在步驟 978處自遠(yuǎn)程奇偶校驗(yàn)數(shù)據(jù)庫110上的分布式RAID應(yīng)用210接收到完成通知后,WRITE命令可以在步驟980處通過接收數(shù)據(jù)庫110上的分布式RAID應(yīng)用210作出響應(yīng)(例如,被發(fā)送到主機(jī)102的響應(yīng))。進(jìn)一步地,WRITE命令本身可以在步驟982處被處理。這種處理使接收數(shù)據(jù)庫110上存儲的數(shù)據(jù)段或其他功能承擔(dān)與WRITE命令相關(guān)聯(lián)的數(shù)據(jù)的存儲。換句話說,如果在步驟952處,未自主機(jī)接收到WRITE命令,則這可以表示自其他數(shù)據(jù)庫Iio接收到所述WRITE命令(所述其他數(shù)據(jù)庫110在許多情況下可以是最初自主機(jī) 102接收到WRITE命令的數(shù)據(jù)庫110)。在此情況下,數(shù)據(jù)庫110可以在步驟984處將接收到的WRITE命令置于其寫入式高速緩沖存儲器中,并且在步驟986處將完成通知發(fā)送到發(fā)布數(shù)據(jù)庫110。在此后的某個點(diǎn)處,WRITE命令本身可以在步驟988處被處理。再次返回到步驟950,如果如在步驟960處所確定的,數(shù)據(jù)段未存儲于接收數(shù)據(jù)庫 110中,而奇偶校驗(yàn)段被存儲在接收數(shù)據(jù)庫110中,則在步驟962處可以確定所述WRITE命令是接收自主機(jī)102還是其他數(shù)據(jù)庫110。如果WRITE命令接收自主機(jī)102,則在步驟1002 處,所述WRITE命令可以被傳輸?shù)竭h(yuǎn)程數(shù)據(jù)庫110上的分布式RAID應(yīng)用210,其中,相應(yīng)于所述WRITE命令的數(shù)據(jù)段存儲在所述遠(yuǎn)程數(shù)據(jù)庫110上,并且在步驟1000處,所述WRITE 命令被置于接收數(shù)據(jù)庫110的寫入式高速緩沖存儲器中。當(dāng)在步驟1004處從遠(yuǎn)程數(shù)據(jù)庫 110上的分布式RAID應(yīng)用210接收到完成通知后,所述WRITE命令可以在步驟1006處通過接收數(shù)據(jù)庫110上的分布式RAID應(yīng)用210作出響應(yīng),并且在步驟1008處通過接收數(shù)據(jù)庫 110處理所述寫入命令。此處,處理所述寫入命令可以使得存儲在接收數(shù)據(jù)庫110中的奇偶校驗(yàn)段可以基于所述寫入命令而更新。奇偶校驗(yàn)段的這種更新可以多種方式完成,本文不會對全部方式進(jìn)行詳細(xì)描述,但這些方式將是本領(lǐng)域普通技術(shù)人員公知的。例如,奇偶校驗(yàn)數(shù)據(jù)庫110上的分布式RAID應(yīng)用210可以執(zhí)行逆序?qū)懭胍员愀缕媾夹r?yàn)段。執(zhí)行這種逆序?qū)懭肟梢允沟米运銎媾夹r?yàn)段獲得數(shù)據(jù)段并且使用獲得的數(shù)據(jù)段和將與WRITE命令相關(guān)聯(lián)地寫入的數(shù)據(jù)來執(zhí)行邏輯操作(例如,異或O(OR)操作)。可替換地,如果接收數(shù)據(jù)庫110上的分布式RAID應(yīng)用210具有相應(yīng)于產(chǎn)生奇偶校驗(yàn)段的每個數(shù)據(jù)段的多個WRITE命令,則可以計(jì)算新的奇偶校驗(yàn)段并且可以通過將原始奇偶校驗(yàn)段替換為新計(jì)算的奇偶校驗(yàn)段而更新所述原始奇偶校驗(yàn)段。用于更新所述奇偶校驗(yàn)段的其他方法可以通過瀏覽此處的公開而實(shí)現(xiàn),并且用于通過分布式RAID應(yīng)用更新奇偶校驗(yàn)段的特定方法可以基于多種因數(shù),包括結(jié)構(gòu)參數(shù)、一些數(shù)據(jù)的有效性(例如,相應(yīng)于用于產(chǎn)生奇偶校驗(yàn)的全部數(shù)據(jù)段的WRITE命令, 等等)或多個其他因數(shù)中的任何參數(shù)?,F(xiàn)在回到步驟962,如果未從主機(jī)接收到所述WRITE命令,則這可能表示所述WRITE命令接收自其他數(shù)據(jù)庫110(在許多情況下,所述其他數(shù)據(jù)庫110可以是最初自主機(jī) 102接收到WRITE命令的數(shù)據(jù)庫110)。在此情況下,WRITE命令可以在步驟990處被置于接收數(shù)據(jù)庫110的寫入式高速緩沖存儲器中,并且在步驟992處完成通知被發(fā)送到發(fā)布數(shù)據(jù)庫。WRITE命令之后可以在步驟994處被處理(例如,奇偶校驗(yàn)段可以被如上所述地更新)。在瀏覽了以上討論后,應(yīng)該注意到在許多情況下,特定的數(shù)據(jù)庫110處的分布式 RAID應(yīng)用210可能不能處理接收到的WRITE命令直至自奇偶校驗(yàn)數(shù)據(jù)庫110接收到通知, 當(dāng)可能期望存儲一個或多個WRITE命令或評估這些存儲的WRITE命令的集合時,奇偶校驗(yàn)數(shù)據(jù)庫可能需要評估多個接收到的WRITE命令,以確定或?qū)崿F(xiàn)用于更新所述奇偶校驗(yàn)或多個其他實(shí)例中的任何實(shí)例的方法。為了便于WRITE (或其他)命令的存儲和評估,每個分布式RAID應(yīng)用210可以具有相關(guān)聯(lián)的寫入式高速緩沖存儲器沈0。圖10說明了寫入式高速緩沖存儲器的一個實(shí)施例的圖示。當(dāng)通過分布式RAID應(yīng)用210接收到WRITE命令時,所述WRITE命令被置于寫入式高速緩沖存儲器1100中。這些 WRITE命令1160中的每一個可以具有相關(guān)聯(lián)的時戳,該時戳表示何時接收到所述WRITE命令1160。因此,在一個實(shí)施例中,寫入式高速緩沖存儲器1100可以包括一系列時戳的WRITE 命令1160。在一些點(diǎn)處,時戳標(biāo)志可以由分布式RAID應(yīng)用210發(fā)布。這種時戳標(biāo)志可以包括時間并且被傳輸?shù)矫總€分布式RAID應(yīng)用210。當(dāng)要發(fā)布時,可以多種方式確定時戳標(biāo)志, 例如當(dāng)寫入式高速緩沖存儲器1100以特定的百分率充滿或當(dāng)以特定的時間間隔或多種其他方法論接收到一定數(shù)量的WRITE命令1160時。無論如何,這種時戳標(biāo)志1110將與每個分布式RAID應(yīng)用210相關(guān)聯(lián)的每個寫入式高速緩沖存儲器1110分割成至少兩個段,包括WRITE命令1160的封閉標(biāo)志1150在時戳標(biāo)志1110之前接收(在本示例中為WRITE命令1160a、1160b、1160c和1160d),并且包括 WRITE命令1160的開放標(biāo)志1140在時戳標(biāo)志1110之后接收(在本示例中為WRITE命令 1160e、1160f和1160g)。分布式RAID應(yīng)用210之后可以評估封閉標(biāo)志1150中的WRITE命令1160的集合(在本示例中為WRITE命令1160a、1160b、1160c和1160d)以確定如何在仍可以將接收到的WRITE命令添加到開放標(biāo)志1140的同時處理這些WRITE命令1160。相反,當(dāng)封閉標(biāo)志1150包括不再改變的WRITE命令的集合時,分布式RAID應(yīng)用可以相對于彼此(或其他標(biāo)準(zhǔn))評估該WRITE命令1160的集合,以確定執(zhí)行的順序(并且因此可以對封閉標(biāo)志1160中的WRITE命令1160重新排序),評估方法論以更新奇偶校驗(yàn)段(例如,在封閉標(biāo)志1150中是否存在相應(yīng)于用于產(chǎn)生奇偶校驗(yàn)的每個數(shù)據(jù)段的WRITE命令)或進(jìn)行與WRITE命令1160的處理相關(guān)聯(lián)的其他判斷。應(yīng)該注意到,由于時戳標(biāo)志1110 可以因多種理由通過每個數(shù)據(jù)庫110上的任意分布式RAID應(yīng)用210發(fā)布,因此任意一個點(diǎn)上可以存在多個封閉標(biāo)志,例如,當(dāng)多個時戳標(biāo)志1110由分布式RAID應(yīng)用210在所述時間中發(fā)布時,寫入式高速緩沖存儲器被分布式RAID應(yīng)用210中的任意一個評估。在瀏覽了上述內(nèi)容后,讀者現(xiàn)在可能理解了數(shù)據(jù)庫110上的分布式RAID應(yīng)用210 如何協(xié)力操作以實(shí)現(xiàn)虛擬化存儲和RAID實(shí)施方式。然而,理解特定的實(shí)施例可能是更為有益的,從而討論在故障發(fā)生后分布式RAID應(yīng)用210的特定實(shí)施例的機(jī)能。如上所述,分布式RAID應(yīng)用210可以獲知(例如,存儲了)故障的數(shù)據(jù)庫(換句話說,所述數(shù)據(jù)庫可能具有硬件、軟件、通信或其他故障,所述故障阻止或妨礙了數(shù)據(jù)庫110操作或訪問數(shù)據(jù)的能力)。分布式RAID應(yīng)用210可能能夠解決這些故障,同時滿足來自主機(jī)102的命令。為了說明,圖11描述了用于實(shí)現(xiàn)分布式RAID系統(tǒng)中的READ命令的方法的一個實(shí)施例的流程圖。將理解,這種方法應(yīng)用于結(jié)合卷的范圍實(shí)現(xiàn)RAID 5的實(shí)施例,并且其他實(shí)施例可以同樣良好地應(yīng)用于實(shí)現(xiàn)RAID的其他級別(或無級別)的情況。READ命令可以由主機(jī)102經(jīng)過開關(guān)120發(fā)送到數(shù)據(jù)庫110或從其他數(shù)據(jù)庫110發(fā)送到接收數(shù)據(jù)庫110。接著,在步驟1110處,可以在數(shù)據(jù)庫110處接收READ命令。在步驟1220處,數(shù)據(jù)庫110上的分布式RAID應(yīng)用210可以確定相應(yīng)于在接收到的READ命令中引用的邏輯地址的數(shù)據(jù)段并且在步驟1230處確定所述數(shù)據(jù)段存儲于哪個數(shù)據(jù)庫110上。如果存儲所述數(shù)據(jù)段的數(shù)據(jù)庫110與接收到所述READ命令的數(shù)據(jù)庫110相同(如在步驟1240處確定的),則在步驟 1250處,可以自接收數(shù)據(jù)庫110上的數(shù)據(jù)貯存器250的適當(dāng)?shù)拇疟P252獲得被請求的數(shù)據(jù), 并且在步驟1252處,接收到的READ命令使用獲得的數(shù)據(jù)作出響應(yīng)。如果接收數(shù)據(jù)庫110 自主機(jī)102接收到READ命令,則主機(jī)102可以作出響應(yīng),而如果接收數(shù)據(jù)庫110自其他數(shù)據(jù)庫110接收到READ命令,則所述響應(yīng)可以被發(fā)送到發(fā)布READ命令的數(shù)據(jù)庫110上的分布式RAID應(yīng)用210。然而,如果在步驟12M處,數(shù)據(jù)段被存儲在遠(yuǎn)程數(shù)據(jù)庫110上(與接收所述命令的數(shù)據(jù)庫不同的數(shù)據(jù)庫110),則可以確定存儲有待讀取的數(shù)據(jù)段的遠(yuǎn)程數(shù)據(jù)庫110是否經(jīng)歷了故障。如果沒有,則READ命令可以被發(fā)送到遠(yuǎn)程數(shù)據(jù)庫110處的分布式RAID應(yīng)用。當(dāng)在步驟1258處自遠(yuǎn)程數(shù)據(jù)庫110接收到包括被請求的數(shù)據(jù)的響應(yīng)后,在步驟1260處,接收到的READ命令可以使用該數(shù)據(jù)作出響應(yīng)。然而,如果遠(yuǎn)程數(shù)據(jù)庫110經(jīng)歷了故障,則可以在步驟12M處確定接收數(shù)據(jù)庫110 是否具有相應(yīng)于與READ命令相關(guān)聯(lián)的數(shù)據(jù)段的奇偶校驗(yàn)段。如果奇偶校驗(yàn)段被存儲在接收數(shù)據(jù)庫110中,則可以使用存儲在接收數(shù)據(jù)庫110中的奇偶校驗(yàn)段獲得相應(yīng)于READ命令的數(shù)據(jù)段??梢远喾N方式完成自奇偶校驗(yàn)數(shù)據(jù)獲得所述數(shù)據(jù)段,這將不再作更為詳細(xì)的說明,包括自其他數(shù)據(jù)庫110獲得其他數(shù)據(jù)段(與相應(yīng)于READ命令的數(shù)據(jù)段不同的數(shù)據(jù)段) 以及通過在其他數(shù)據(jù)段和奇偶校驗(yàn)段之間執(zhí)行邏輯操作而獲得期望的數(shù)據(jù)段。一旦在步驟 1268處使用奇偶校驗(yàn)數(shù)據(jù)獲得了被請求的數(shù)據(jù)段,則在步驟1270處,接收到的READ命令可以作出響應(yīng)。如果接收數(shù)據(jù)庫110從主機(jī)102接收到READ命令,則主機(jī)102可以作出響應(yīng),而如果接收數(shù)據(jù)庫110自其他數(shù)據(jù)庫110接收到READ命令,則所述響應(yīng)可以被發(fā)送到發(fā)布READ命令的數(shù)據(jù)庫110上的分布式RAID應(yīng)用210。如果接收數(shù)據(jù)庫110不是存儲奇偶校驗(yàn)塊的數(shù)據(jù)庫110,則在步驟1262處,READ 命令可以被發(fā)送到遠(yuǎn)程數(shù)據(jù)庫110,該遠(yuǎn)程數(shù)據(jù)庫110存儲了相應(yīng)于在READ命令中引用的數(shù)據(jù)段的奇偶校驗(yàn)段。當(dāng)在步驟1264處,自遠(yuǎn)程奇偶校驗(yàn)數(shù)據(jù)庫110接收到包括被請求的數(shù)據(jù)的響應(yīng)后,接收到的READ命令可以在步驟1266處使用該數(shù)據(jù)作出響應(yīng)。移動到圖12,說明了一種用于在分布式RAID系統(tǒng)中實(shí)現(xiàn)WRITE命令的方法的一個實(shí)施例的流程圖。這種WRITE命令可以由主機(jī)102經(jīng)過開關(guān)120發(fā)送到數(shù)據(jù)庫110或從一個數(shù)據(jù)庫110發(fā)送到其他數(shù)據(jù)庫110。之后,在步驟1310處,可以在接收數(shù)據(jù)庫110處接收WRITE命令。之后在步驟1312、1314和1320處,接收數(shù)據(jù)庫110上的分布式RAID應(yīng)用 210可以確定相應(yīng)于在WRITE命令中引用的邏輯地址的數(shù)據(jù)段、所述數(shù)據(jù)段的位置(例如,哪個數(shù)據(jù)庫110存儲了相應(yīng)于該段的數(shù)據(jù))以及相應(yīng)于該數(shù)據(jù)段的奇偶校驗(yàn)段的位置(例如,哪個數(shù)據(jù)庫110存儲了所述段,在該數(shù)據(jù)庫中,存儲了自相應(yīng)于該段的數(shù)據(jù)產(chǎn)生的奇偶校驗(yàn)數(shù)據(jù))。如上所述,可以使用存儲在接收數(shù)據(jù)庫110上的表格240的集合來確定數(shù)據(jù)段和奇偶校驗(yàn)段兩者的位置。之后可以確定存儲了數(shù)據(jù)段的數(shù)據(jù)庫110或存儲了奇偶校驗(yàn)段的數(shù)據(jù)庫110是否經(jīng)歷了故障。如果這些數(shù)據(jù)庫Iio均未經(jīng)歷故障,則可以在步驟13 處通過分布式RAID 應(yīng)用執(zhí)行常規(guī)寫入操作。之前關(guān)于圖9A和9B討論了常規(guī)寫入操作,并且將不再進(jìn)一步討論。然而,如果那些數(shù)據(jù)庫110中的任意一個經(jīng)歷了故障,則考慮寫入操作,故障的數(shù)據(jù)庫110可以在步驟13 處被管理。這種寫入操作可以與關(guān)于圖9A和9B說明的寫入操作基本同等地并行,除了在寫入命令被發(fā)送到數(shù)據(jù)庫110之前,確定所述寫入命令被發(fā)送到的數(shù)據(jù)庫110是否存在故障并且確定是否使得寫入命令未被發(fā)送到故障的數(shù)據(jù)庫110。 在全部其他方面中,寫入操作基本相同。在瀏覽了前述流程圖后,特定實(shí)施例的操作可以參考操作中的分布式RAID系統(tǒng)的一個實(shí)施例的具體示例被更好地理解。至此,注意力被引導(dǎo)回到說明了具有五個數(shù)據(jù)庫 110的分布式RAID系統(tǒng)的一個實(shí)施例的圖4。為了開始第一個示例,假設(shè)主機(jī)102b向數(shù)據(jù)庫IlOc發(fā)布了 READ命令,其中READ命令引用了相應(yīng)于數(shù)據(jù)庫IlOa上的數(shù)據(jù)段“2”402c 的邏輯地址。此處,數(shù)據(jù)庫IlOc上的分布式RAID應(yīng)用210c可以確定接收到的READ命令的邏輯地址引用了數(shù)據(jù)段“2” 402c并且該數(shù)據(jù)段“2” 402c被存儲在數(shù)據(jù)庫IlOa上。分布式RAID應(yīng)用210c之后可以向數(shù)據(jù)庫IlOa發(fā)送相應(yīng)的READ命令。數(shù)據(jù)庫IlOa上的分布式RAID應(yīng)用210a可以接收這種READ命令,確定READ命令引用了相應(yīng)于數(shù)據(jù)段“2”402c的邏輯地址并且該數(shù)據(jù)段“2”402c位于其被執(zhí)行的數(shù)據(jù)庫 IlOa上。分布式RAID應(yīng)用210a之后可以訪問數(shù)據(jù)貯存器250a以獲得自數(shù)據(jù)段“2” 402c 請求的數(shù)據(jù),并且將該獲得的數(shù)據(jù)返回到發(fā)布數(shù)據(jù)庫IlOc處的分布式RAID應(yīng)用210c。數(shù)據(jù)庫IlOc上的分布式RAID應(yīng)用210c可以自數(shù)據(jù)庫IlOa上的分布式RAID應(yīng)用210a接收這種響應(yīng),并且使用來自這種響應(yīng)的數(shù)據(jù)來響應(yīng)自主機(jī)102b發(fā)布的原始READ命令?,F(xiàn)在假設(shè)主機(jī)102b向數(shù)據(jù)庫IlOc發(fā)布了 READ命令,其中READ命令引用了相應(yīng)于數(shù)據(jù)庫IlOa上的數(shù)據(jù)段“2”402c的邏輯地址,但該數(shù)據(jù)庫IlOa經(jīng)歷了故障并且不再工作。在此情況下,數(shù)據(jù)庫IlOc上的分布式RAID應(yīng)用210c可以確定接收到的READ命令的邏輯地址引用了數(shù)據(jù)段“ 2 ” 402c并且數(shù)據(jù)段“ 2 ” 402c被存儲在數(shù)據(jù)庫1 IOa上。此外,數(shù)據(jù)庫IlOc上的分布式RAID應(yīng)用210c還可以確定數(shù)據(jù)庫IlOa經(jīng)歷了故障。因此,分布式RAID應(yīng)用210c可以確定相應(yīng)于數(shù)據(jù)段“2”402c的奇偶校驗(yàn)段402 j 的位置是數(shù)據(jù)庫110e。分布式RAID應(yīng)用210c之后可以向數(shù)據(jù)庫IlOe發(fā)送READ命令。數(shù)據(jù)庫IlOe上的分布式RAID應(yīng)用2IOe可以接收這種READ命令,確定該READ命令引用了相應(yīng)于數(shù)據(jù)段“2”402c的邏輯地址,并且相應(yīng)于數(shù)據(jù)段“2”402c的奇偶校驗(yàn)段402j位于其被執(zhí)行的數(shù)據(jù)庫IlOe上。分布式RAID應(yīng)用210e之后可以訪問數(shù)據(jù)貯存器250e以訪問奇偶校驗(yàn)段402j并且使用所述奇偶校驗(yàn)段402j獲得自數(shù)據(jù)段“2102c請求的數(shù)據(jù)。這種獲得的數(shù)據(jù)可以被返回到發(fā)布數(shù)據(jù)庫IlOc處的分布式RAID應(yīng)用210c。應(yīng)該注意到,分布式RAID應(yīng)用210e可能需要其他數(shù)據(jù)以確定數(shù)據(jù)段“2”402c請求的數(shù)據(jù)。因此,分布式RAID 應(yīng)用210e可以確定結(jié)合數(shù)據(jù)段“2”402c使用的數(shù)據(jù)段“0”402a、數(shù)據(jù)段“l(fā)”402b和數(shù)據(jù)段“3”402d的位置,以產(chǎn)生分別位于數(shù)據(jù)庫IlObUlOd和IlOc上的奇偶校驗(yàn)段402j。分布式RAID應(yīng)用210e因此可以通過將READ請求發(fā)送到這些數(shù)據(jù)庫110b、IlOd和IlOc而獲得數(shù)據(jù)段“0” 40 、數(shù)據(jù)段“ 1,,402b和數(shù)據(jù)段“3” 402d,并且結(jié)合奇偶校驗(yàn)段402 j使用數(shù)據(jù)段“0”402a、數(shù)據(jù)段“l(fā)”402b和數(shù)據(jù)段“3” 402d,以獲得自數(shù)據(jù)段“2” 402c請求的數(shù)據(jù)。數(shù)據(jù)庫IlOc上的分布式RAID應(yīng)用210c可以接收來自數(shù)據(jù)庫IlOe上的分布式 RAID應(yīng)用210e的響應(yīng),并且使用來自該響應(yīng)的數(shù)據(jù)以響應(yīng)于自主機(jī)102b發(fā)布的原始READ 命令。以此方式,盡管在分布式RAID系統(tǒng)中發(fā)生故障,相應(yīng)于數(shù)據(jù)段的數(shù)據(jù)仍可以被主機(jī)讀取。繼續(xù)討論WRITE命令,假設(shè)主機(jī)102b向數(shù)據(jù)庫1 IOc發(fā)布了 WRITE命令,其中WRITE 命令引用了相應(yīng)于數(shù)據(jù)庫IlOa上的數(shù)據(jù)段“2”402c的邏輯地址。此處,數(shù)據(jù)庫IlOc上的分布式RAID應(yīng)用210c可以確定接收到的WRITE命令的邏輯地址引用了數(shù)據(jù)段“2”402c, 并且該數(shù)據(jù)段“2102c被存儲在數(shù)據(jù)庫IlOa上。此外,分布式RAID應(yīng)用210c可以確定相應(yīng)于數(shù)據(jù)段“2102c的奇偶校驗(yàn)段402j位于數(shù)據(jù)庫IlOe上。分布式RAID應(yīng)用210c之后可以向數(shù)據(jù)庫IlOa和IlOe發(fā)送相應(yīng)的WRITE命令。基于自分布式RAID應(yīng)用210a和210e 接收的完成通知,分布式RAID應(yīng)用210c可以響應(yīng)于原始接收的WRITE命令。數(shù)據(jù)庫1 IOe上的分布式RAID應(yīng)用210e可以接收其相應(yīng)的WRITE命令,確定WRITE 命令引用了相應(yīng)于數(shù)據(jù)段“2”402c的邏輯地址,并且確定相應(yīng)于數(shù)據(jù)段“2” 402c的奇偶校驗(yàn)段402 j位于其被執(zhí)行的數(shù)據(jù)庫IlOe上。分布式RAID應(yīng)用2IOe可以將WRITE命令置于其寫入式高速緩沖存儲器中,并且向數(shù)據(jù)庫IlOc發(fā)送完成通知。分布式RAID應(yīng)用210e之后可以訪問數(shù)據(jù)貯存器250e以訪問奇偶校驗(yàn)段402j并且使用在接收到的WRITE命令中引用的數(shù)據(jù)更新奇偶校驗(yàn)段402 j。數(shù)據(jù)庫IlOa上的分布式RAID應(yīng)用210a可以接收其相應(yīng)的WRITE命令,確定WRITE 命令引用了相應(yīng)于數(shù)據(jù)段“2” 402c的邏輯地址,并且確定數(shù)據(jù)段“2” 402c位于其被執(zhí)行的數(shù)據(jù)庫1 IOa上。分布式RAID應(yīng)用2IOa可以將WRITE命令置于其寫入式高速緩沖存儲器中并且發(fā)送完成通知到數(shù)據(jù)庫110c。分布式RAID應(yīng)用210a之后可以訪問數(shù)據(jù)貯存器250a 以使用在接收到的WRITE命令中引用的數(shù)據(jù)更新段“2”402c?,F(xiàn)在再次假設(shè)主機(jī)102b發(fā)布WRITE命令到數(shù)據(jù)庫110c,其中WRITE命令引用了相應(yīng)于數(shù)據(jù)庫IlOa上的數(shù)據(jù)段“2”402c的邏輯地址,但該數(shù)據(jù)庫IlOa經(jīng)歷了故障并且不再工作。在此情況下,數(shù)據(jù)庫IlOc上的分布式RAID應(yīng)用210c可以確定接收到的WRITE命令的邏輯地址引用了數(shù)據(jù)段“2”402c,并且確定數(shù)據(jù)段“2”402c被存儲在數(shù)據(jù)庫IlOa上。此外,數(shù)據(jù)庫IlOc上的分布式RAID應(yīng)用210c還可以確定數(shù)據(jù)庫IlOa經(jīng)歷了故障。此外,分布式RAID應(yīng)用210c可以確定相應(yīng)于數(shù)據(jù)段“2”402c的奇偶校驗(yàn)段402j位于數(shù)據(jù)庫IlOe 上。分布式RAID應(yīng)用210c之后可以發(fā)送相應(yīng)的WRITE命令到數(shù)據(jù)庫110e?;谧苑植际?RAID應(yīng)用210e接收到完成通知,分布式RAID應(yīng)用210c可以響應(yīng)于原始接收到的WRITE命令。數(shù)據(jù)庫IlOe上的分布式RAID應(yīng)用210e可以接收相應(yīng)的WRITE命令,確定所述 WRITE命令引用了相應(yīng)于數(shù)據(jù)段“2102c的邏輯地址,并且確定相應(yīng)于數(shù)據(jù)段“2102c的奇偶校驗(yàn)段402j位于其被執(zhí)行的數(shù)據(jù)庫IlOe上。分布式RAID應(yīng)用210e可以將WRITE命令置于其寫入式高速緩沖存儲器中并且發(fā)送完成通知到數(shù)據(jù)庫110c。分布式RAID應(yīng)用210e 之后可以訪問數(shù)據(jù)貯存器250e以訪問奇偶校驗(yàn)段402j并且使用在接收到的WRITE命令中引用的數(shù)據(jù)來更新奇偶校驗(yàn)段402j。以此方式,盡管分布式RAID系統(tǒng)中發(fā)生故障,相應(yīng)于數(shù)據(jù)段的數(shù)據(jù)仍可以被主機(jī)寫入。通過瀏覽本公開,應(yīng)該注意到,雖然如所述的分布式的方式實(shí)現(xiàn)RAID可以避免這種分布式RAID系統(tǒng)內(nèi)的磁盤或數(shù)據(jù)庫的故障。然而,隨之而來的是邏輯卷的不斷增長(可能以1拍字節(jié)(petabyte)的級數(shù)或更大)使可以在這種分布式RAID系統(tǒng)中應(yīng)用的磁盤和數(shù)據(jù)庫的數(shù)量達(dá)到相稱的增量,并且使所使用的數(shù)據(jù)庫和磁盤的數(shù)量的增量帶來磁盤或數(shù)據(jù)庫的故障的更大風(fēng)險,并且更特別地,可能在任意給定時間內(nèi)發(fā)生多個故障的風(fēng)險的增大。更特別地,一旦數(shù)據(jù)庫或磁盤故障,則磁盤和數(shù)據(jù)庫的數(shù)量越大,在關(guān)于已存在的故障的補(bǔ)救行動能夠完成之前,一個或多個額外的數(shù)據(jù)庫、磁盤或其組合可能隨后發(fā)生故障的可能性越大。因此,多種分布式RAID系統(tǒng)可以變?yōu)樵馐芏鄠€數(shù)據(jù)庫或磁盤的故障。因此,可能有用的是避免在分布式RAID系統(tǒng)中使用的數(shù)據(jù)庫或磁盤的多個故障。 至此,現(xiàn)在注意力被引導(dǎo)到多種方法的實(shí)施例,所述方法可以結(jié)合分布式RAID系統(tǒng)使用以避免這些分布式RAID系統(tǒng)中的多個故障。更特別地,如上所述,分布式RAID系統(tǒng)中的每個數(shù)據(jù)庫可以存儲包括卷的數(shù)據(jù)的段(數(shù)據(jù)段)和存儲相應(yīng)于所述卷的數(shù)據(jù)段的冗余數(shù)據(jù)的段,其中對于這些冗余段中的每一個,用于生成在冗余段中存儲的冗余數(shù)據(jù)的數(shù)據(jù)段未存儲在該數(shù)據(jù)庫上。對于本公開的剩余部分的目的,存儲自所述卷的數(shù)據(jù)段生成的冗余數(shù)據(jù)的那些冗余段將被稱作網(wǎng)絡(luò)奇偶校驗(yàn)(NP)段,所述卷的數(shù)據(jù)段存儲在不同數(shù)據(jù)庫上(但是應(yīng)該自以上討論理解,這些NP段可以包含任意類型的冗余數(shù)據(jù),并且名稱NP應(yīng)該意為NP 段僅能夠存儲與RAID級別5的實(shí)施例相關(guān)聯(lián)的冗余數(shù)據(jù))。因此,每個數(shù)據(jù)庫包括卷的數(shù)據(jù)段以及自存儲在其他數(shù)據(jù)庫上的數(shù)據(jù)段生成的NP 段。這種配置可以避免磁盤驅(qū)動器或數(shù)據(jù)庫故障。然而,可能期望避免這種分布式RAID系統(tǒng)中的額外的磁盤或數(shù)據(jù)庫故障。為了完成此目的,之后,在一些實(shí)施例中,在結(jié)合卷的數(shù)據(jù)庫間實(shí)現(xiàn)的RAID的級別(例如,使用存儲在與其相應(yīng)的數(shù)據(jù)段不同的數(shù)據(jù)庫上的NP段) 和額外的RAID的級別均可以實(shí)現(xiàn)在分布式RAID系統(tǒng)的每個數(shù)據(jù)庫內(nèi)以保護(hù)每個數(shù)據(jù)庫內(nèi)的數(shù)據(jù)。通過利用數(shù)據(jù)庫內(nèi)的RAID以及各數(shù)據(jù)庫間的RAID,可以實(shí)現(xiàn)針對整個分布式RAID 系統(tǒng)的故障的額外保護(hù)。更特別地,在一個實(shí)施例中,除了結(jié)合一組數(shù)據(jù)庫間的卷實(shí)現(xiàn)的RAID的級別, RAID級別還可以結(jié)合存儲在每個數(shù)據(jù)庫中的數(shù)據(jù)段實(shí)現(xiàn)。換句話說,在一個實(shí)施例中,除以上討論的功能外,分布式RAID應(yīng)用210可以額外地被配置為關(guān)于存儲在特定數(shù)據(jù)庫內(nèi)的數(shù)據(jù)段或NP段實(shí)現(xiàn)RAID的一個或多個級別。例如,RAID級別5可以在數(shù)據(jù)庫內(nèi)實(shí)現(xiàn),使得冗余段可以形成自存儲在數(shù)據(jù)庫內(nèi)的相應(yīng)的數(shù)據(jù)段(這些類型的冗余段在此處將被稱作數(shù)據(jù)的奇偶校驗(yàn)(POD)段)以及存儲在與相應(yīng)的數(shù)據(jù)段不同的磁盤上的數(shù)據(jù)庫中的相應(yīng)的數(shù)據(jù)段,從而可以使用這些POD恢復(fù)所述相應(yīng)的數(shù)據(jù)段。同樣地,冗余段可以形成自存儲在數(shù)據(jù)庫內(nèi)的相應(yīng)的網(wǎng)絡(luò)奇偶校驗(yàn)段(這些類型的冗余段在此處將被稱作奇偶校驗(yàn)的奇偶校驗(yàn)(POP)段)以及存儲在與相應(yīng)的NP段不同的磁盤上的數(shù)據(jù)庫中的相應(yīng)的網(wǎng)絡(luò)奇偶校驗(yàn)段,使得可以使用這些POP恢復(fù)相應(yīng)的NP段。
此外,在一些實(shí)施例中,RAID級別6可以在數(shù)據(jù)庫內(nèi)實(shí)現(xiàn),使得除了自相應(yīng)的數(shù)據(jù)段生成的每個POD段外,還可以使用里德所羅門(Reed-Solomon)ECC代碼生成或其他代碼生成技術(shù)(有時被稱作Q)自相同的相應(yīng)數(shù)據(jù)段生成冗余段(這些類型的冗余段將在此處被稱作數(shù)據(jù)的(KQOD)段)。通過將QOD段存儲在與相應(yīng)的POD不同的磁盤上,相應(yīng)的數(shù)據(jù)段還可以使用QOD恢復(fù)。類似地,RAID級別6冗余段可以自相同的相應(yīng)網(wǎng)絡(luò)奇偶校驗(yàn)段生成(這些類型的冗余段將在此處被稱作奇偶校驗(yàn)的(KQOP)段)并且存儲在與相應(yīng)POP段不同的磁盤上的數(shù)據(jù)庫中,使得相應(yīng)的網(wǎng)絡(luò)奇偶校驗(yàn)段可以額外地使用這些QOP段恢復(fù)。期望結(jié)合卷使用的冗余和保護(hù)的數(shù)量可以在產(chǎn)生卷的時刻基于用戶所期望的結(jié)合該卷的協(xié)議(trade-off)而被選擇。這種選擇可以包括單獨(dú)使用結(jié)合卷的RAID的某一級別的選項(xiàng),使得這種RAID的級別在數(shù)據(jù)庫間實(shí)現(xiàn)(換句話說,僅使用每個數(shù)據(jù)庫上的NP 段)。這種選項(xiàng)可以避免至少任意一個驅(qū)動故障或任意一個數(shù)據(jù)庫故障。另一個選項(xiàng)可以是實(shí)現(xiàn)結(jié)合卷的RAID的某一級別的使用(使用NP段),連同使用每個數(shù)據(jù)庫內(nèi)的RAID級別5 (POD和POP)。這種選項(xiàng)可以通過避免至少1個數(shù)據(jù)庫和1個磁盤的故障或者通過避免 3個磁盤的故障而提供增大的容錯性。然而,這種選項(xiàng)與僅在數(shù)據(jù)庫間實(shí)現(xiàn)RAID相比,可能施加了性能和容量懲罰。最具容錯性的選項(xiàng)可以是讓用戶選擇以實(shí)現(xiàn)結(jié)合卷的RAID的某一級別(使用NP段),連同使用數(shù)據(jù)庫內(nèi)的RAID級別6(P0D、P0P、Q0D和Q0P)。雖然這種選項(xiàng)具有最高的容錯性級別從而避免1個數(shù)據(jù)庫和2個驅(qū)動器故障或避免5個驅(qū)動器故障,但其同樣可能施加關(guān)于性能和容量的最高代價??赡苡杏玫氖钦f明這些實(shí)施例的具體示例以幫助讀者理解。將理解的是,雖然關(guān)于單個數(shù)據(jù)庫說明了具體示例,從而實(shí)現(xiàn)與本發(fā)明的實(shí)施例相關(guān)聯(lián)的優(yōu)點(diǎn),但分布式RAID 系統(tǒng)中的分布式的其他數(shù)據(jù)庫可以類似地配置。換句話說,雖然所述示例將用于說明如何在特定的數(shù)據(jù)庫內(nèi)實(shí)現(xiàn)RAID的級別,但應(yīng)該注意到在本發(fā)明的實(shí)施例中,RAID的級別可以實(shí)現(xiàn)在分布式RAID系統(tǒng)的每個數(shù)據(jù)庫內(nèi)。還將注意到以下示例不被視為限制本發(fā)明的實(shí)施例,而將僅用于說明數(shù)據(jù)庫內(nèi)的RAID的實(shí)施方式的特定實(shí)施例的非限制性示例。為了幫助本說明,現(xiàn)在將注意力引導(dǎo)到圖13A-13C。為了說明本示例的目的,假設(shè)圖13A-13C中描述的數(shù)據(jù)庫IllOb類似于以上關(guān)于圖4說明的數(shù)據(jù)庫110b,并且位于具有五個數(shù)據(jù)庫的分布式RAID系統(tǒng)中,其中卷被布置在五個數(shù)據(jù)庫間,數(shù)據(jù)庫IllOb是隨機(jī)排列中的第一數(shù)據(jù)庫。因此,數(shù)據(jù)庫11 IOb可以被分配數(shù)據(jù)段“O ” 1102a,即所述卷的第一數(shù)據(jù)段;數(shù)據(jù)段“5” 1102b,即所述卷的第六數(shù)據(jù)段;數(shù)據(jù)段“10” 1102c,即所述卷的第十一數(shù)據(jù)段;數(shù)據(jù)段“15”1102d,即所述卷的第十六數(shù)據(jù)段;數(shù)據(jù)段“20”1102e,即所述卷的第二十一數(shù)據(jù)段;數(shù)據(jù)段“25”1102f,即所述卷的第二十六數(shù)據(jù)段;數(shù)據(jù)段“30”1102g,即所述卷的第三十一數(shù)據(jù)段,等等。由于數(shù)據(jù)庫IllOb可以在數(shù)據(jù)貯存器中具有六個磁盤2252,因此被分配到數(shù)據(jù)庫IllOb的數(shù)據(jù)段1102可以被布置在這些磁盤間。此處,數(shù)據(jù)段“0” 1102a被存儲在磁盤 2252a上,數(shù)據(jù)段“5”1102b被存儲在磁盤2252b上,數(shù)據(jù)段“ 10”1102c被存儲在磁盤2252c 上,數(shù)據(jù)段“15” 1102d被存儲在磁盤2252d上,數(shù)據(jù)段“20” 1102e被存儲在磁盤225 上并且數(shù)據(jù)段“25” 1102f被存儲在磁盤2252f上。所述分配之后再次從第一磁盤開始數(shù)據(jù)段“30” 1102g被存儲在磁盤225 上,等等。為了進(jìn)一步說明本示例的目的,假設(shè)RAID級別5結(jié)合所述卷實(shí)現(xiàn),并且使用(4+1)的奇偶校驗(yàn)集合。因此,如上所述,與所述卷相關(guān)聯(lián)的網(wǎng)絡(luò)奇偶校驗(yàn)段還可以被存儲在數(shù)據(jù)庫IllOb上,其中用于生成這些網(wǎng)絡(luò)奇偶校驗(yàn)段的相應(yīng)數(shù)據(jù)段被分配,并且存儲在分布式 RAID系統(tǒng)的其他數(shù)據(jù)庫上。在本示例中,使用卷的相應(yīng)數(shù)據(jù)段“16”、所述卷的數(shù)據(jù)段“17”、 所述卷的數(shù)據(jù)段“18”和所述卷的數(shù)據(jù)段“19”生成的NP段“l(fā)”1102ar被存儲在磁盤225 上;使用所述卷的相應(yīng)數(shù)據(jù)段“36”、所述卷的數(shù)據(jù)段“37”、所述卷的數(shù)據(jù)段“38”和所述卷的數(shù)據(jù)段“39”生成的NP段“2” 1102as被存儲在磁盤2252b上;使用所述卷的相應(yīng)數(shù)據(jù)段“56”、所述卷的數(shù)據(jù)段“57”、所述卷的數(shù)據(jù)段“58”和所述卷的數(shù)據(jù)段“59”生成的NP段 “3” 1102at被存儲在磁盤2252c上,等等。現(xiàn)在具體地參考圖13A,之后,在本示例中,數(shù)據(jù)段和NP段被存儲在數(shù)據(jù)庫IllOb 的不同磁盤2252上。再次注意,存儲在數(shù)據(jù)庫IllOb上的每個NP段均生成自不存儲在數(shù)據(jù)庫IllOb上的相應(yīng)數(shù)據(jù)段。現(xiàn)在假設(shè)用戶期望實(shí)現(xiàn)關(guān)于該卷的容錯性的其他級別并且指定RAID級別5應(yīng)該實(shí)現(xiàn)在包括分布式RAID系統(tǒng)的每個數(shù)據(jù)庫內(nèi),數(shù)據(jù)庫IllOb是分布式 RAID系統(tǒng)中的一部分。圖1 描述了當(dāng)用戶指定RAID級別5被實(shí)現(xiàn)在分布式RAID系統(tǒng)的數(shù)據(jù)庫內(nèi)并且 (4+1)奇偶校驗(yàn)集合被用于實(shí)現(xiàn)每個數(shù)據(jù)庫內(nèi)的RAID 5時所產(chǎn)生的數(shù)據(jù)庫IllOb的配置。 此處,POD段產(chǎn)生自存儲在數(shù)據(jù)庫IllOb內(nèi)的相應(yīng)數(shù)據(jù)段,并且被存儲在與其相應(yīng)的數(shù)據(jù)段不同的磁盤2252上,并且POP段產(chǎn)生自存儲在數(shù)據(jù)庫IllOb內(nèi)的相應(yīng)奇偶校驗(yàn)段,并且被存儲在與其相應(yīng)的奇偶校驗(yàn)段不同的磁盤2252上。因此,現(xiàn)在數(shù)據(jù)庫IllOb內(nèi)的數(shù)據(jù)段可以使用相應(yīng)于所述數(shù)據(jù)段的NP段恢復(fù),其中NP段位于不同數(shù)據(jù)庫上并且額外地,數(shù)據(jù)庫 IllOb內(nèi)的數(shù)據(jù)段可以使用位于相同數(shù)據(jù)庫中的相應(yīng)的POD段恢復(fù)。此外,數(shù)據(jù)庫中的NP 段現(xiàn)在可以使用位于相同數(shù)據(jù)庫中的POP段恢復(fù)。在所描述的具體示例中,存儲在磁盤2252f上的Ρ( 111021Λ產(chǎn)生自磁盤225 上的相應(yīng)數(shù)據(jù)段“0” 1102a、磁盤2252b上的數(shù)據(jù)段“5” 1102b、磁盤2252c上的數(shù)據(jù)段 “10” 1102c以及磁盤2252d上的數(shù)據(jù)段“15” IllOd ;存儲在磁盤2252d上的P0D2 1102bc 產(chǎn)生自磁盤2252e上的相應(yīng)數(shù)據(jù)段“20” 1102e、磁盤2252f上的數(shù)據(jù)段“25” 1102f、磁盤 2252a上的數(shù)據(jù)段“30” 1102g以及磁盤2252b上的數(shù)據(jù)段“35” IllOh ;存儲在磁盤2252b 上的P0D3 1102bd產(chǎn)生自磁盤2252c上的相應(yīng)數(shù)據(jù)段“40” 1102i、磁盤2252d上的數(shù)據(jù)段 “45” 1102j、磁盤2252e上的數(shù)據(jù)段“50” 1102k以及磁盤2252f上的數(shù)據(jù)段“55” 11101 ;等寸。同樣,存儲在磁盤2252f上的POPl 1102bz產(chǎn)生自磁盤2252a上的相應(yīng)NP段 “1” 1102ar、磁盤 2252b 上的 NP 段“2” 1102as、磁盤 2252c 上的 NP 段“3” 1102at 和磁盤 2252d上的NP段“4”1102au ;存儲在磁盤2252c上的P0P2 1102by產(chǎn)生自磁盤225 上的相應(yīng)的 NP 段“5”ll(^av、磁盤 2252f 上的 NP 段“6”1102aw、磁盤 2252a 上的 NP 段“7”1102ax 和磁盤2252b上的NP段“8” 1102ay,并且存儲在磁盤2252b上的P0P31102bx產(chǎn)生自磁盤 2252c上的相應(yīng)的NP段“9” 1102az和磁盤2252d上的NP段“10” 1102ba。現(xiàn)在假設(shè)用戶期望實(shí)現(xiàn)關(guān)于這種卷的容錯性的其他級別并且指定RAID級別6應(yīng)該實(shí)現(xiàn)在包括分布式RAID系統(tǒng)的每個數(shù)據(jù)庫內(nèi),數(shù)據(jù)庫IllOb是分布式RAID系統(tǒng)的一部分。此處,相應(yīng)于每個POD段的QOD段產(chǎn)生自與相應(yīng)POD段相同的數(shù)據(jù)段并且被存儲在與相應(yīng)POD段不同的磁盤2252上的數(shù)據(jù)庫IllOb內(nèi)。此外,相應(yīng)于每個POP段的QOP段產(chǎn)生自與相應(yīng)POP段相同的奇偶校驗(yàn)段并且被存儲在與相應(yīng)POP段不同的磁盤2252上的數(shù)據(jù)庫IllOb內(nèi)。因此,現(xiàn)在數(shù)據(jù)庫IllOb內(nèi)的數(shù)據(jù)段可以使用相應(yīng)于該數(shù)據(jù)段的NP段恢復(fù), 其中NP段位于不同數(shù)據(jù)庫上并且額外地,數(shù)據(jù)庫IllOb內(nèi)的數(shù)據(jù)段可以使用位于相同數(shù)據(jù)庫中的相應(yīng)POD段或相應(yīng)QOD段恢復(fù)。此外,數(shù)據(jù)庫中的NP段現(xiàn)在可以使用位于相同數(shù)據(jù)庫中的POP段或QOP段恢復(fù)。圖13C描述了當(dāng)用戶指定在分布式RAID系統(tǒng)的數(shù)據(jù)庫內(nèi)實(shí)現(xiàn)RAID級別6時所產(chǎn)生的數(shù)據(jù)庫IllOb的配置。此處,除了上述POD段和POP段,QOD段產(chǎn)生自與相應(yīng)POD段相同的相應(yīng)數(shù)據(jù)段并且被存儲在與相應(yīng)POD段不同的磁盤2252上的數(shù)據(jù)庫11 IOb內(nèi),同時 QOP段產(chǎn)生自與相應(yīng)POP相同的相應(yīng)奇偶校驗(yàn)段并且被存儲在與相應(yīng)POP段不同的磁盤上。在所描述的具體示例中,存儲在磁盤225 上的QODl 1102bm相應(yīng)于存儲在磁盤2252f上的PODl 1102bb并且產(chǎn)生自磁盤225 上的相同的相應(yīng)數(shù)據(jù)段“0” 1102a、磁盤225 上的數(shù)據(jù)段“5” 1102b、磁盤2252c上的數(shù)據(jù)段“10” 1102c以及磁盤2252d上的數(shù)據(jù)段“15” IllOd ;磁盤2252c上存儲的Q0D21 102bn相應(yīng)于存儲在磁盤2252d上的 P0D21102bc并且產(chǎn)生自磁盤225 上的相同的相應(yīng)數(shù)據(jù)段“20” 1102e、磁盤2252f上的數(shù)據(jù)段“25”1102f、磁盤225 上的數(shù)據(jù)段“30”1102g以及磁盤225 上的數(shù)據(jù)段“35”1110h ; 存儲在磁盤225 上的Q0D3相應(yīng)于存儲在磁盤2252b上的P0D3 1102bd并且產(chǎn)生自磁盤 2252c上的相同的相應(yīng)數(shù)據(jù)段“40” 1102i、磁盤2252d上的數(shù)據(jù)段“45” 1102j、磁盤2252e 上的數(shù)據(jù)段“50” 1102k以及磁盤2252f上的數(shù)據(jù)段“55” 11101 ;等等。同樣,存儲在磁盤225 上的QOPl 1102ca相應(yīng)于存儲在磁盤2252f上的POPl 1102bz并且產(chǎn)生自磁盤225 上的相同的相應(yīng)NP段“1” 1102ar、磁盤225 上的NP段 “2” IlO^is、磁盤 2252c 上的 NP 段“3” 1102at 以及磁盤 2252d 上的 NP 段“4” 1102au ;存儲在磁盤2252d上的Q0P2相應(yīng)于存儲在磁盤2252c上的P0P2 1102by并且產(chǎn)生自磁盤225 上的相同的相應(yīng)NP段“5” 1102av、磁盤2252f上的NP段“6” 1102aw、磁盤2252a上的NP 段“7” 1102ax以及磁盤225 上的NP段“8” 1102ay ;并且存儲在磁盤2252a上的Q0P3 相應(yīng)于存儲在磁盤2252b上的P0P31102bx并且產(chǎn)生自磁盤2252c上的相同的相應(yīng)NP段 “9” 1102az 以及磁盤 2252d 上的 NP 段“10” 1102ba。因此,本發(fā)明的實(shí)施例可以基于之前可用的數(shù)據(jù)存儲設(shè)備提供多種優(yōu)點(diǎn),所述數(shù)據(jù)存儲設(shè)備包括提供對數(shù)據(jù)庫或磁盤故障的保護(hù)的能力。事實(shí)上,一些實(shí)施例可以提供針對四種、五種或可能更多種磁盤故障的保護(hù)。因此,維護(hù)人員可用于維修或替換故障的數(shù)據(jù)庫或磁盤的時間可以增大,并且分布式RAID系統(tǒng)的故障間的平均時間增大。一些實(shí)施例還可以通過即使在內(nèi)部故障損壞數(shù)據(jù)時仍允許數(shù)據(jù)庫內(nèi)部再生被損壞的數(shù)據(jù),從而提供減少所述數(shù)據(jù)庫間的網(wǎng)絡(luò)流量的優(yōu)點(diǎn)。在之前的說明書中,參考具體實(shí)施例對本發(fā)明進(jìn)行了說明。然而,本領(lǐng)域技術(shù)人員意識到可以在不背離如在以下權(quán)利要求中提出的本發(fā)明的范圍的情況下進(jìn)行各種改進(jìn)和改變。因此,說明書和附圖被視為具有示例性而非限制性意義,并且全部這些改進(jìn)意圖包括在本發(fā)明的范圍內(nèi)。以上關(guān)于具體實(shí)施例說明了益處、其他優(yōu)點(diǎn)和問題的解決方案。然而,所述益處、 優(yōu)點(diǎn)、問題的解決方案和可能帶來任何益處、優(yōu)點(diǎn)或使得解決方案發(fā)生或變得更明確的任意組件不被解釋為任意或全部權(quán)利要求的重要、需要或必要的特征或組件。
權(quán)利要求
1.一種保護(hù)RAID系統(tǒng)避免多種故障的方法,所述方法包括提供包括多個數(shù)據(jù)庫計(jì)算機(jī)的系統(tǒng),所述數(shù)據(jù)庫計(jì)算機(jī)經(jīng)由網(wǎng)絡(luò)耦接到其他數(shù)據(jù)庫計(jì)算機(jī)中的每一個,并耦接到一個或多個主機(jī)中的每一個,每個數(shù)據(jù)庫執(zhí)行分布式RAID應(yīng)用;在所述多個數(shù)據(jù)庫上建立卷,其中所述卷包括段的集合并且該段的集合被存儲在所述多個數(shù)據(jù)庫上;結(jié)合所述卷實(shí)現(xiàn)第一 RAID級別,其中實(shí)現(xiàn)所述第一 RAID級別包括存儲網(wǎng)絡(luò)奇偶校驗(yàn) NP段的集合,每個NP段相應(yīng)于所述段的集合中的一個或多個段,使得每個NP段不位于與所述段的集合中的相應(yīng)的一個或多個段相同的數(shù)據(jù)庫上;在所述多個數(shù)據(jù)庫內(nèi)實(shí)現(xiàn)第二 RAID級別,其中為第一數(shù)據(jù)庫實(shí)現(xiàn)所述第二 RAID級別包括對于存儲在所述第一數(shù)據(jù)庫上的所述段的集合存儲數(shù)據(jù)的奇偶校驗(yàn)POD段的集合,每個POD段相應(yīng)于所述第一數(shù)據(jù)庫上的所述數(shù)據(jù)段的集合中的一個或多個數(shù)據(jù)段,使得每個POD段不位于與所述第一數(shù)據(jù)庫上所述段的集合中的相應(yīng)的一個或多個段相同的磁盤上;以及存儲奇偶校驗(yàn)的奇偶校驗(yàn)POP段的集合,每個POP段相應(yīng)于存儲在所述第一數(shù)據(jù)庫上的所述NP段的集合中的一個或多個NP段,使得每個POP段不位于與所述第一數(shù)據(jù)庫上的所述NP段的集合中的相應(yīng)的一個或多個NP段相同的磁盤上。
2.如權(quán)利要求1所述的方法,其中實(shí)現(xiàn)所述第二RAID級別還包括對于存儲在所述第一數(shù)據(jù)庫上的所述段的集合存儲數(shù)據(jù)的Q QOD段的集合,每個QOD段相應(yīng)于POD段并且產(chǎn)生自相應(yīng)于所述POD段的所述第一數(shù)據(jù)庫上的所述數(shù)據(jù)段的集合中的一個或多個數(shù)據(jù)段,使得每個QOD段不位于與相應(yīng)的POD段相同的磁盤上;以及存儲奇偶校驗(yàn)的Q QOP段的集合,每個QOP段相應(yīng)于POP段并且產(chǎn)生自相應(yīng)于所述POD 段的一個或多個NP段,使得每個QOP段不位于與相應(yīng)的POP段相同的磁盤上。
3.如權(quán)利要求2所述的方法,其中每個所述卷的段的集合相應(yīng)于所述多個數(shù)據(jù)庫中的一個,并且每個段根據(jù)所述多個數(shù)據(jù)庫的排列被分派到數(shù)據(jù)庫,并且冗余段的集合中的每一個冗余段被分派到不同于相應(yīng)于與所述冗余段對應(yīng)的任意一個或多個段的所述多個數(shù)據(jù)庫中的每一個數(shù)據(jù)庫的數(shù)據(jù)庫。
4.如權(quán)利要求3所述的方法,還包括確定第一命令是否為寫入命令以及所述第一命令是否為確定所述多個數(shù)據(jù)庫中的第二數(shù)據(jù)庫的寫入命令,其中所述第二數(shù)據(jù)庫相應(yīng)于與所述第一段相關(guān)聯(lián)的第一冗余段,并且關(guān)于所述第一冗余段執(zhí)行所述第一命令,其中所述第一命令在所述第二數(shù)據(jù)庫上執(zhí)行。
5.如權(quán)利要求4所述的方法,其中確定所述第一數(shù)據(jù)庫和確定所述第二數(shù)據(jù)庫包括訪問全局表格,該全局表格包括數(shù)據(jù)庫的排列和所述RAID級別。
6.一種用于實(shí)現(xiàn)分布式RAID的系統(tǒng),包括一個或多個主機(jī);多個數(shù)據(jù)庫計(jì)算機(jī),每個數(shù)據(jù)庫耦接到每個主機(jī)和其他多個數(shù)據(jù)庫中的每一個,每個數(shù)據(jù)庫包括處理器;包括磁盤的集合的數(shù)據(jù)貯存器;包括指令的計(jì)算機(jī)可讀介質(zhì),所述指令可執(zhí)行自所述一個或多個主機(jī)中的第一主機(jī)接收相應(yīng)于卷的第一段的命令,其中所述卷和相應(yīng)于結(jié)合所述卷實(shí)現(xiàn)的RAID級別的冗余數(shù)據(jù)被存儲在所述多個數(shù)據(jù)庫中的每一個上,其中所述卷包括段的集合并且所述段的集合被存儲在所述多個數(shù)據(jù)庫上并且第一 RAID級別結(jié)合所述卷實(shí)現(xiàn),其中實(shí)現(xiàn)所述第一 RAID級別包括存儲冗余段的集合,每個冗余段相應(yīng)于所述段的集合中的一個或多個段,使得每個冗余段不位于與所述段的集合中的相應(yīng)的一個或多個段相同的數(shù)據(jù)庫上;在所述多個數(shù)據(jù)庫內(nèi)實(shí)現(xiàn)第二 RAID級別,其中為第一數(shù)據(jù)庫實(shí)現(xiàn)所述第二 RAID級別包括對于存儲在所述第一數(shù)據(jù)庫上的段的集合存儲數(shù)據(jù)的奇偶校驗(yàn)POD段的集合,每個POD段相應(yīng)于所述第一數(shù)據(jù)庫上的所述數(shù)據(jù)段的集合中的一個或多個數(shù)據(jù)段,使得每個POD段不位于與所述第一數(shù)據(jù)庫上的所述段的集合中的相應(yīng)的一個或多個段相同的磁盤上;以及存儲奇偶校驗(yàn)的奇偶校驗(yàn)POP段的集合,每個POP段相應(yīng)于存儲在所述第一數(shù)據(jù)庫上的所述NP段的集合中的一個或多個NP段,使得每個POP段不位于與所述第一數(shù)據(jù)庫上的所述NP段的集合中的相應(yīng)的一個或多個NP段相同的磁盤上。
7.如權(quán)利要求6所述的系統(tǒng),其中所述計(jì)算機(jī)指令還可執(zhí)行以通過以下操作為存儲在所述第一數(shù)據(jù)庫上的段的集合實(shí)現(xiàn)所述第二 RAID級別存儲數(shù)據(jù)的Q QOD段的集合,每個QOD段相應(yīng)于POD段并且產(chǎn)生自相應(yīng)于所述POD段的第一數(shù)據(jù)庫上的數(shù)據(jù)段的集合中的一個或多個數(shù)據(jù)段,使得每個QOD段不位于與相應(yīng)的 POD段相同的磁盤上;以及存儲奇偶校驗(yàn)的Q QOP段的集合,每個QOP段相應(yīng)于POP段并且產(chǎn)生自相應(yīng)于所述POD 段的一個或多個NP段,使得每個QOP段不位于與相應(yīng)的POP段相同的磁盤上。
8.如權(quán)利要求7所述的系統(tǒng),其中每個所述卷的段相應(yīng)于所述多個數(shù)據(jù)庫中的一個, 并且每個段根據(jù)所述多個數(shù)據(jù)庫的排列被分派到所述多個數(shù)據(jù)庫中的一個,并且每個冗余段被分派到所述多個數(shù)據(jù)庫中的一個數(shù)據(jù)庫,該多個數(shù)據(jù)庫中的一個數(shù)據(jù)庫不同于相應(yīng)于與所述冗余段相關(guān)聯(lián)的任意卷的段的所述多個數(shù)據(jù)庫中的每一個數(shù)據(jù)庫。
9.如權(quán)利要求8所述的系統(tǒng),其中所述計(jì)算機(jī)指令還可執(zhí)行以確定第一命令是否為寫入命令以及所述第一命令是否為確定所述多個數(shù)據(jù)庫中的第二數(shù)據(jù)庫的寫入命令,其中所述第二數(shù)據(jù)庫相應(yīng)于與所述第一段相關(guān)聯(lián)的第一冗余段,并且如果所述第二數(shù)據(jù)庫是接收到所述命令的數(shù)據(jù)庫,則關(guān)于所述第一冗余段執(zhí)行所述第一命令,而如果所述第二數(shù)據(jù)庫不是接收到所述命令的數(shù)據(jù)庫,則將所述第一命令傳送到所述第二數(shù)據(jù)庫。
10.如權(quán)利要求9所述的系統(tǒng),其中確定所述第一數(shù)據(jù)庫和確定所述第二數(shù)據(jù)庫包括訪問所述數(shù)據(jù)貯存器中的全局表格,該全局表格包括所述數(shù)據(jù)庫的排列和所述RAID級別。
11.一種包括用于實(shí)現(xiàn)分布式RAID的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)指令可執(zhí)行在所述多個數(shù)據(jù)庫上建立卷,其中所述卷包括段的集合并且該段的集合被存儲在所述多個數(shù)據(jù)庫上;結(jié)合所述卷實(shí)現(xiàn)第一 RAID級別,其中實(shí)現(xiàn)所述第一 RAID級別包括存儲網(wǎng)絡(luò)奇偶校驗(yàn) NP段的集合,每個NP段相應(yīng)于所述段的集合中的一個或多個段,使得每個NP段不位于與所述段的集合中相應(yīng)的一個或多個段相同的數(shù)據(jù)庫上;在所述多個數(shù)據(jù)庫內(nèi)實(shí)現(xiàn)第二 RAID級別,其中使第一數(shù)據(jù)庫實(shí)現(xiàn)所述第二 RAID級別包括對于存儲在所述第一數(shù)據(jù)庫上的所述段的集合存儲數(shù)據(jù)的奇偶校驗(yàn)POD段的集合,每個POD段相應(yīng)于所述第一數(shù)據(jù)庫上的所述數(shù)據(jù)段的集合中的一個或多個數(shù)據(jù)段,使得每個POD段不位于與所述第一數(shù)據(jù)庫上的所述段的集合中的相應(yīng)的一個或多個段相同的磁盤上;以及存儲奇偶校驗(yàn)的奇偶校驗(yàn)POP段的集合,每個POP段相應(yīng)于存儲在所述第一數(shù)據(jù)庫上的所述NP段的集合中的一個或多個NP段,使得每個POP段不位于與所述第一數(shù)據(jù)庫上的所述NP段的集合中的相應(yīng)的一個或多個NP段相同的磁盤上。
12.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),所述指令還可執(zhí)行通過以下操作使存儲在所述第一數(shù)據(jù)庫上的段的集合實(shí)現(xiàn)所述第二 RAID級別存儲數(shù)據(jù)的Q QOD段的集合,每個QOD段相應(yīng)于POD段并且產(chǎn)生自相應(yīng)于所述POD段的第一數(shù)據(jù)庫上的數(shù)據(jù)段的集合中的一個或多個數(shù)據(jù)段,使得每個QOD段不位于與相應(yīng)的 POD段相同的磁盤上;以及存儲奇偶校驗(yàn)的Q QOP段的集合,每個QOP段相應(yīng)于POP段并且產(chǎn)生自相應(yīng)于所述POD 段的一個或多個NP段,使得每個QOP段不位于與相應(yīng)的POP段相同的磁盤上。
13.如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其中每個所述卷的段相應(yīng)于所述多個數(shù)據(jù)庫中的一個,并且每個段根據(jù)所述多個數(shù)據(jù)庫的排列被分派到所述多個數(shù)據(jù)庫中的一個, 并且每個冗余段被分派到所述多個數(shù)據(jù)庫中的一個數(shù)據(jù)庫,該多個數(shù)據(jù)庫中的一個數(shù)據(jù)庫不同于相應(yīng)于與所述冗余段相關(guān)聯(lián)的任意卷的段的所述多個數(shù)據(jù)庫中的每一個數(shù)據(jù)庫。
14.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其中所述計(jì)算機(jī)指令還可執(zhí)行確定第一命令是否為寫入命令以及所述第一命令是否為確定所述多個數(shù)據(jù)庫中的第二數(shù)據(jù)庫的寫入命令,其中所述第二數(shù)據(jù)庫相應(yīng)于與所述第一段相關(guān)聯(lián)的第一冗余段,并且如果所述第二數(shù)據(jù)庫是接收到所述命令的數(shù)據(jù)庫,則關(guān)于所述第一冗余段執(zhí)行所述第一命令,而如果所述第二數(shù)據(jù)庫不是接收到所述命令的數(shù)據(jù)庫,則將所述第一命令傳送到所述第二數(shù)據(jù)庫。
15.如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其中確定所述第一數(shù)據(jù)庫和確定所述第二數(shù)據(jù)庫包括訪問所述數(shù)據(jù)貯存器中的全局表格,該全局表格包括所述數(shù)據(jù)庫的排列和所述 RAID級別。
全文摘要
公開了保護(hù)RAID系統(tǒng)避免多種故障的方法以及這些被保護(hù)的RAID系統(tǒng)的實(shí)施例。更特別地,在分布式RAID系統(tǒng)的一些實(shí)施例中,每個數(shù)據(jù)庫具有相關(guān)聯(lián)的存儲介質(zhì)的集合并且執(zhí)行類似的分布式RAID應(yīng)用。每個數(shù)據(jù)庫上的分布式RAID應(yīng)用進(jìn)行自身協(xié)調(diào)以分布和控制數(shù)據(jù)流,該數(shù)據(jù)流與結(jié)合存儲在數(shù)據(jù)庫的相關(guān)聯(lián)的存儲介質(zhì)上的數(shù)據(jù)實(shí)現(xiàn)RAID的級別相關(guān)聯(lián)。此外,一個或多個RAID的級別可以在包括分布式RAID系統(tǒng)的一個或多個數(shù)據(jù)庫內(nèi)實(shí)現(xiàn)。
文檔編號G06F12/00GK102265265SQ200980151742
公開日2011年11月30日 申請日期2009年6月25日 優(yōu)先權(quán)日2008年10月28日
發(fā)明者G·J·皮勒格瑞諾, R·A·卡里森, W·C·加羅威, 譚俊生 申請人:樞軸3公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
邛崃市| 康平县| 温宿县| 江口县| 汝南县| 游戏| 尼勒克县| 乐山市| 万全县| 梁河县| 颍上县| 株洲市| 洮南市| 徐闻县| 东方市| 铁岭县| 竹溪县| 马尔康县| 华容县| 恭城| 萍乡市| 故城县| 义乌市| 介休市| 兴山县| 乌什县| 青冈县| 格尔木市| 佛山市| 莱西市| 揭阳市| 玉山县| 成都市| 修文县| 潼南县| 扎兰屯市| 和田县| 东乌| 突泉县| 休宁县| 宜都市|