技術(shù)領(lǐng)域
本發(fā)明涉及一種存儲系統(tǒng),更具體地說,涉及在這種存儲系統(tǒng)內(nèi)的數(shù)據(jù)重建。
背景技術(shù):
理想地,數(shù)據(jù)存儲系統(tǒng)中的失效數(shù)據(jù)存儲裝置的數(shù)據(jù)的數(shù)據(jù)重建,是離線重建,其中存儲系統(tǒng)不再對任何客戶端/應(yīng)用服務(wù)器做出反應(yīng),以使數(shù)據(jù)重建過程能夠全速運行。然而,這種情況在大多數(shù)產(chǎn)品環(huán)境下是不實用的,因為大多數(shù)存儲系統(tǒng)都需要提供不間斷的數(shù)據(jù)服務(wù),即使是在他們從磁盤故障恢復(fù)的時候。
因此,需要有用于數(shù)據(jù)重建的方法和裝置,其通過在從磁盤故障恢復(fù)時提供的不間斷的數(shù)據(jù)服務(wù)至少一部分克服了現(xiàn)有方法的缺點。此外,結(jié)合附圖和披露的背景,從隨后的詳細描述和附屬權(quán)利要求,其他所期望的的特點和特征將變得明顯。
技術(shù)實現(xiàn)要素:
本發(fā)明的一方面,提供了一種在包括多個存儲裝置的數(shù)據(jù)存儲系統(tǒng)中進行數(shù)據(jù)重建的方法。該方法包括:接收來自服務(wù)器的讀取請求和寫入請求中的一個,以訪問多個存儲裝置中的失效存儲裝置的數(shù)據(jù),并根據(jù)存儲在多個存儲裝置的一個或多個可用存儲裝置中的部分數(shù)據(jù)重建存儲在多個存儲裝置的失效存儲裝置中的請求數(shù)據(jù)。該方法進一步包括將請求數(shù)據(jù)從重建數(shù)據(jù)發(fā)送回服務(wù)器,并將重建數(shù)據(jù)發(fā)送到多個存儲裝置中的替代存儲裝置。最后,該方法包括更新重建列表,以指示多個存儲裝置中的替代存儲裝置和數(shù)據(jù)重建的完成。
本發(fā)明的另一方面,提供了一種在混合對象存儲裝置(HOSD)集群中當一個HOSD失效時進行數(shù)據(jù)重建的方法,其中HOSD集群包括主HOSD。該方法包括識別失效HOSD中的數(shù)據(jù),其中該數(shù)據(jù)在主HOSD的非易失性存儲器中是可用的,將在主HOSD的非易失性存儲器中的可用識別數(shù)據(jù)復(fù)制到替代HOSD,并更新主HOSD中的重建列表以指示替代HOSD和數(shù)據(jù)重建的完成。
本發(fā)明的另一方面,提供了一種在混合對象存儲裝置(HOSD)集群中當一個HOSD失效時進行數(shù)據(jù)重建的方法。該方法包括根據(jù)主HOSD的非易失性存儲器中的可用數(shù)據(jù)計算失效HOSD中的數(shù)據(jù),將計算的數(shù)據(jù)寫入替代HOSD,并更新重建列表以指示替代HOSD和數(shù)據(jù)重建的完成。
本發(fā)明的另一方面,公開了一種包括混合對象存儲裝置(HOSD)的糾刪碼組(ECG)集群的數(shù)據(jù)存儲系統(tǒng)。HOSD的ECG集群中的一個HOSD被指定為主HOSD。該主HOSD包括非易失性(NV)緩存、重建列表、重建處理器和一個或多個通信接口。該NV緩存包括存儲主HOSD的對象數(shù)據(jù)的本地緩存。重建列表指示了失效HOSD重建的狀態(tài)。重建處理器被聯(lián)接到NV緩存和重建列表,重建處理器重建失效HOSD數(shù)據(jù)并在重建列表中更新失效HOSD重建的狀態(tài)。一個或多個通信接口被聯(lián)接到重建處理器,以與客戶端/應(yīng)用服務(wù)器進行通信和與HOSD的集群中的其他HOSD進行通信。
附圖說明
附圖中,相同的附圖標記指出了所有分開視圖中的相同或功能相似的元件,附圖連同下面的具體描述一起被納入說明書中并形成說明書的一部分,附圖僅通過非限制性例子例示各種本發(fā)明的實施例和解釋本發(fā)明的各種原理和優(yōu)勢。
圖1例示了根據(jù)本實施例的數(shù)據(jù)存儲系統(tǒng)的圖,其中該數(shù)據(jù)存儲系統(tǒng)包括多個混合對象存儲裝置(HOSD),一個HOSD被指定為HOSD主存儲裝置,另一個HOSD已失效。
圖2例示了根據(jù)本實施例的包括糾刪碼組(ECG)的圖1的數(shù)據(jù)存儲系統(tǒng)的圖。
圖3例示了根據(jù)本實施例的圖2的ECG圖,其中HOSD至少存儲ECG的HOSD主存儲裝置中的對象數(shù)據(jù)表示。
圖4例示了根據(jù)本實施例的圖3的數(shù)據(jù)存儲系的HOSD主存儲裝置的框圖。
圖5例示了根據(jù)本實施例的圖2的HOSD主存儲裝置的流程圖。
熟練的技術(shù)人員將意識到,圖中的元件將被簡單清晰地例示,并且其不一定按比例繪制。
具體實施方式
下面的詳細說明實際上僅是例示性的,并且不意指限制本發(fā)明或本發(fā)明的應(yīng)用和用途。此外,不意指限制于本發(fā)明前述背景或以下詳細描述中所提出的任何理論。本發(fā)明的目的是提出一種用于數(shù)據(jù)重建的系統(tǒng)和方法,其在磁盤故障恢復(fù)時提供不間斷的數(shù)據(jù)服務(wù)。
參考圖1,公開了根據(jù)本實施例的數(shù)據(jù)存儲系統(tǒng)的圖100。數(shù)據(jù)存儲系統(tǒng)102包括多個混合對象存儲裝置(HOSD)104,一個HOSD被指定為HOSD主存儲裝置106。數(shù)據(jù)存儲系統(tǒng)102聯(lián)接到服務(wù)器108(或是客戶端服務(wù)器或是應(yīng)用服務(wù)器)。當一個HOSD 110失效時,就會發(fā)生根據(jù)本實施例的重建優(yōu)化。
一旦識別出HOSD失效,主HOSD 106就會開始重建過程。如果在重建期間有來自客戶端/應(yīng)用服務(wù)器108的讀取請求或?qū)懭胝埱髞碓L問失效HOSD 110的數(shù)據(jù),則通過計算從其他可用的HOSD 104讀出的數(shù)據(jù)使該數(shù)據(jù)被主HOSD 106重建。然后將重建的數(shù)據(jù)從主HOSD 106發(fā)送回客戶端/應(yīng)用服務(wù)器108。主HOSD 106也可將數(shù)據(jù)發(fā)送到替代HOSD 112并更新由主HOSD 106維護的重建列表,以指示數(shù)據(jù)已經(jīng)重建。
參考圖2,圖200描繪了根據(jù)本實施例的數(shù)據(jù)存儲系統(tǒng)102(圖1)的有源驅(qū)動集群,其包括多個糾刪碼混合對象存儲裝置(HOSD)組(ECG)202。每個ECG 202都包含多個正常HOSD 204和一個主HOSD 206。當有來自客戶端/應(yīng)用服務(wù)器108的請求時,則該請求將被指向主HOSD 206。主HOSD 206從其他HOSD 204獲取請求數(shù)據(jù),并將請求數(shù)據(jù)返回到服務(wù)器108。當有HOSD失效時,則主HOSD 206將開始重建過程,維護對象列表,追蹤重建過程,計算重建數(shù)據(jù),將重建數(shù)據(jù)發(fā)送到替代HOSD,并維護重建列表。
參考圖3,圖300描繪了根據(jù)本實施例的HOSD 204,該HOSD 204至少存儲ECG的HOSD主存儲裝置206中的對象數(shù)據(jù)表示(representation)。每個HOSD 204,包括主HOSD 206,都包括用于至少存儲本地存儲的對象數(shù)據(jù)表示的本地緩存302。主HOSD 206中的非易失性(NV)緩存有兩部分數(shù)據(jù)。一部分NV緩存是存儲主HOSD 206的對象數(shù)據(jù)的本地緩存302。另一部分NV緩存是一種ECG緩存304,其至少緩存在相同ECG內(nèi)的其他HOSD 204的本地緩存302的對象數(shù)據(jù)表示。ECG緩存304和本地緩存302提供了改進的系統(tǒng)性能。此外,重建過程能根據(jù)ECG緩存304中的數(shù)據(jù)來優(yōu)化。
根據(jù)第一優(yōu)化重建過程,當ECG中的一個HOSD 204失效時,將重建ECG緩存304中的數(shù)據(jù)。主HOSD 206用高優(yōu)先級重建ECG緩存304中的失效HOSD 204的數(shù)據(jù)。數(shù)據(jù)重建或者可通過將ECG緩存304中的可用數(shù)據(jù)直接復(fù)制到替代HOSD來完成,或者基于ECG緩存304中的可用數(shù)據(jù)計算數(shù)據(jù)然后將計算的數(shù)據(jù)寫入替代HOSD來完成。然后主HOSD 206可以更新重建列表。
根據(jù)第二優(yōu)化重建過程,客戶端/應(yīng)用服務(wù)器108所請求的數(shù)據(jù)包括來自ECG中的失效HOSD 204的數(shù)據(jù)。如果在重建過程中接收到來自客戶端/應(yīng)用服務(wù)器108的、訪問失效HOSD數(shù)據(jù)的讀取/寫入請求時,則將通過計算從其他可用的HOSD 204讀出的數(shù)據(jù)然后將計算的數(shù)據(jù)返回到客戶端/服務(wù)器應(yīng)用程序108,來使被訪問的數(shù)據(jù)采用不停機的方式以高優(yōu)先級重建。在此期間,主HOSD 206還將數(shù)據(jù)發(fā)送到替代HOSD并更新主HOSD 206中的重建列表,以指示對象數(shù)據(jù)已經(jīng)重建。
根據(jù)正常的重建過程,主HOSD 206通過從其他可用的HOSD 204讀出數(shù)據(jù)并重新計算讀出的數(shù)據(jù)以恢復(fù)該數(shù)據(jù)來重建數(shù)據(jù)。一旦完成,主HOSD 206就會將重新計算的數(shù)據(jù)寫入替代HOSD并更新重建列表。
參考圖4,框圖400描繪了根據(jù)本實施例的數(shù)據(jù)存儲系統(tǒng)102(圖1)的ECG 202的HOSD主存儲裝置206(圖2)。主HOSD 206包括非易失性(NV)緩存402,該非易失性(NV)緩存402包括用于存儲主HOSD 206的對象數(shù)據(jù)的本地緩存302和用于存儲ECG 202中的其他HOSD 204的對象數(shù)據(jù)的ECG緩存304。
重建列表404指示了失效HOSD重建的狀態(tài)。重建處理器406被聯(lián)接到了NV緩存402和重建列表,并且重建失效HOSD數(shù)據(jù)以及在重建列表404中更新失效HOSD的重建狀態(tài)。第一通信接口408將重建處理器406聯(lián)接到了客戶端/應(yīng)用服務(wù)器108以與之通信,第二通信接口410將重建處理器406聯(lián)接到ECG 202中的其他HOSD 204,以將數(shù)據(jù)寫入HOSD 204或從HOSD 204讀出數(shù)據(jù),和從HOSD 204獲取用于存儲到ECG緩存304中的本地緩存數(shù)據(jù)。重建處理器406還經(jīng)由第二通信接口與HOSD 204進行通信,以檢測HOSD 204中的一個何時失效并分配可用的HOSD 204作為替代HOSD。
參考圖5,流程圖500描繪了根據(jù)本實施例的重建處理器406的優(yōu)化重建過程502。如果在重建期間接收到504來自客戶端/應(yīng)用服務(wù)器108的讀取請求或?qū)懭胝埱螅瑒t重建處理器406會識別506該讀/寫請求是否是請求失效的數(shù)據(jù)。如果重建處理器406識別506該讀/寫請求不是請求失效的數(shù)據(jù),則正常重建處理繼續(xù)進行直到接收到另一個讀/寫請求為止504。
當重建處理器406識別506該讀/寫請求是請求失效的數(shù)據(jù)時,優(yōu)先處理請求數(shù)據(jù)的重建,以使請求數(shù)據(jù)被立即重建508,一旦重建508,就將其發(fā)送510到客戶端/應(yīng)用服務(wù)器108。以這種方式,可通過主HOSD 206進行與客戶端/應(yīng)用服務(wù)器108有關(guān)的不間斷數(shù)據(jù)服務(wù),即使在ECG 202正在從磁盤故障恢復(fù)的時候也如此。如上所述,請求數(shù)據(jù)可根據(jù)ECG緩存304中的對象數(shù)據(jù)或根據(jù)HOSD 204中的數(shù)據(jù)重建。
在將請求數(shù)據(jù)發(fā)送510到客戶端/應(yīng)用服務(wù)器108之后,然后將它發(fā)送512到替代存儲裝置,該替代存儲裝置是被重建處理器406指定為替代存儲裝置的一個HOSD 204。然后,重建處理器406更新514重建列表404以指示替代一個HOSD 204。正常重建處理繼續(xù)進行直到接收到504另一個讀/寫請求或處理被完成。當所有重建完成時,重建處理器406會更新重建列表404,以指示數(shù)據(jù)重建的完成。
因此,可以看出,即使在從磁盤故障恢復(fù)的時候,本實施例也能提供優(yōu)化的不間斷數(shù)據(jù)服務(wù)。此外,它提供了或者根據(jù)在ECG內(nèi)的主混合對象存儲裝置(HOSD)中的糾刪碼組(ECG)緩存或者根據(jù)ECG中的一個或多個其他HOSD重建故障磁盤的有利方法。雖然在本發(fā)明的上述詳細描述中已經(jīng)給出了例示性實施例,但應(yīng)該意識到會存在大量的變型。
應(yīng)該進一步意識到,例示性實施例僅是示例,并且不意指以任何方式限制發(fā)明的范圍、適用性、操作或配置。相反,上述詳細描述將給本領(lǐng)域的技術(shù)人員提供用于實施本發(fā)明的例示性實施例的方便路線圖,應(yīng)該理解,在不偏離附屬權(quán)利要求所闡述的本發(fā)明的范圍的情況下,可以在例示性實施例所描述的元件的功能和配置及操作方法方面制造各種變更。