新四季網

用於管理奇偶raid數據重建的方法、系統和程序的製作方法

2023-05-13 16:46:21

專利名稱:用於管理奇偶raid數據重建的方法、系統和程序的製作方法
技術領域:
實施例涉及在數據組織系統例如RAID系統中管理數據的方法、系統和程序。
背景技術:
已提出了許多技術用於組織存儲在存儲設備例如盤驅動器中的數據。一個這種數據存儲組織稱為獨立(或廉價)盤冗餘陣列或(RAID)。在RAID組織中,兩個或更多個盤驅動器配合使用,以改進容錯或性能,或二者。有不同類型的RAID數據存儲組織,並且這些不同的類型常稱為RAID 0級、1級、2級...。
例如,在RAID 0級數據組織中,使用戶文件數據成「條帶」狀,即,用戶數據塊分布在多個盤上以改進性能。但是,在RAID 0級數據組織中,如果其中一個驅動器失效,則通常沒有提供冗餘作數據恢復。RAID 3級數據組織與RAID 0級類似,但通常保留有一個盤來存儲糾錯數據,常常稱為「奇偶數據」。如果一個驅動器失效,則該奇偶數據就可用來重建丟失的用戶數據。在RAID 5級數據組織中,為盤驅動器陣列上的每個條帶提供有奇偶數據,且沒有特定的盤驅動器專門用來存儲奇偶數據。而是,用於用戶數據條帶的奇偶數據塊分布在該陣列的所有盤上,以進一步改進性能。
在一個RAID-5組織中,有一個奇偶數據塊用於盤驅動器陣列上的每個條帶。如果一個驅動器失效,那麼這種布置提供簡便的數據重建。例如,如果一個數據條帶包括四個數據塊和一個奇偶數據塊,如果由於驅動器故障、數據破壞或其它類型故障,條帶的一個數據塊丟失,則使用條帶中仍保持完好的四個塊就可重建丟失的塊。
圖1示出現有技術為重建丟失數據可執行的邏輯操作的一個實例。如果數據條帶n有四個數據塊和一個奇偶數據塊,且條帶n中一個塊的數據丟失了,則使用條帶n中三個好數據塊的一個好數據子塊以及好奇偶數據塊的一個好奇偶數據子塊就可重建丟失的數據。因此,在圖1的實例中,對條帶n中一個好數據塊的第一好數據子塊30和條帶n中第二好數據塊的第二好數據子塊32執行「異或」操作。「異或」邏輯操作的結果可與條帶n中第三好數據塊的另一好數據子塊33進行「異或」。這次「異或」邏輯操作的結果可與條帶n的好奇偶數據塊中的好奇偶數據子塊34進行「異或」,以重建數據子塊36,來替代丟失的數據子塊。如果條帶的整個數據塊丟失了,則對於該塊的每個子塊重複圖1的操作,就可重建整個塊。
圖2示出按照圖1邏輯操作用於重建RAID存儲單元丟失數據的RAID存儲處理器的現有技術邏輯引擎50的實例。邏輯引擎50具有存儲隊列52,其可對存儲隊列52的內容執行「異或」邏輯操作,如箭頭54所表示,並在其輸入端給出數據,如箭頭56表示。英特爾80303集成電路晶片具有類似的邏輯引擎,稱為應用加速器單元(AAU)。
圖3示出在重建數據中使用邏輯引擎50讀出數據和處理所讀數據的操作。在復位(過程框60)存儲隊列52後,在第一讀出操作63(圖2)中,可將好數據塊從RAID陣列66中盤驅動器64a的條帶n中讀(過程框62)到存儲處理器或控制器的局部內存68中。在第二讀出操作70中,可將另一好數據塊從RAID陣列66中盤驅動器64b的條帶n中讀(過程框62)到存儲處理器或控制器的局部內存68中。在第三讀出操作72中,可將第三好數據塊從RAID陣列66中盤驅動器64c的條帶n中讀(過程框62)到局部內存68中。在第四讀出操作74中,可將一個好奇偶數據塊從RAID陣列66中盤驅動器64e的條帶n中讀(過程框62)到局部內存68中。
一旦所有好的數據塊和奇偶數據塊都已從條帶讀出(過程框80),在一部分第五讀出操作84中從盤驅動器64a讀出的數據子塊就可從局部內存68讀出(過程框82),並存儲在存儲隊列52中。該數據例如可以是圖1的數據子塊30。由於存儲隊列52之前已復位,所以通過對從局部內存68讀出的數據30和存儲隊列52的復位內容執行「異或」操作,源自驅動器64a的數據30就可存儲在存儲隊列52中。從局部內存68到邏輯引擎50的讀出操作的大小通常取決於存儲隊列52的容量。因此,如果例如存儲隊列52的容量是1K字節,則讀出操作84會繼續執行,直到存儲隊列52填滿1K字節的數據30為止。
條帶n中下一數據塊的子塊,即從盤驅動器64b讀出的數據塊的子塊,可在一部分第六讀出操作90中從局部內存68中讀出(過程框86)。該數據例如可以是圖1的數據子塊32。從驅動器64b讀出的數據塊的數據子塊32與以前存儲在存儲隊列52中的數據子塊30進行「異或」(過程框88),並作為中間結果存儲在存儲隊列52中。
條帶n中下一數據塊的子塊33(圖1),即從盤驅動器64c讀出的數據塊的子塊,可在一部分第七讀出操作92中從局部內存68中讀出(過程框86)。從驅動器64c讀出的數據塊的數據子塊33與存儲隊列52的內容進行「異或」操作(過程框88),並作為中間結果存儲在存儲隊列52中。
條帶n中數據的奇偶數據塊的子塊34(圖1),即從盤驅動器64e讀出的數據塊的子塊,可在一部分第八讀出操作94中從局部內存68中讀出(過程框86)。從驅動器64e讀出的奇偶塊的奇偶數據子塊34與存儲隊列52的內容進行「異或」操作(過程框88),並作為中間結果存儲在存儲隊列52中。
一旦條帶n中好的數據塊和奇偶數據塊的所有對應子塊都已被接收和處理(過程框95),存儲在存儲隊列52中的中間結果就是條帶n的重建子塊36,它可在一部分寫入操作96中被寫入(過程框96)局部內存68,要在隨後的寫入操作97中寫入到盤驅動器64d,來替代丟失的子塊。
可對條帶n中數據塊的每個子塊重複圖3的過程,直到所有子塊都已被邏輯引擎50接收(過程框98)和處理,其中如果需要,條帶n的整個塊可被重建。而且,如果驅動器64d的所有數據例如都已丟失,則該過程可以對盤驅動器陣列66的每個條帶重複,直到損壞的盤驅動器64d的每個塊都已重建為止。當在RAID類型數據組織中用新數據更新老數據時,構建新奇偶數據的過程也類似。
儘管如此,業界一直有一種需要,要改進數據存儲組織中處理器的性能。


現參閱附圖,所有附圖中相同的參考編號表示對應的部件圖1示出現有技術的RAID數據重建;圖2示出用於RAID數據重建的現有技術邏輯引擎;圖3示出使用圖2現有技術邏輯引擎重建數據的現有技術操作;圖4示出實現數據構建方面的計算環境的一個實施例;圖5示出實現數據構建方面的存儲處理器環境的一個實施例;圖6示出按照數據構建方面用於圖5存儲處理器的邏輯引擎的一個實施例;圖7示出重建數據所執行操作的一個實施例;圖8示出用於重建數據塊的數據塊;圖9示出重建數據所執行操作的另一實施例;圖10示出構建奇偶數據所執行操作的另一實施例;以及圖11示出可與所述實施例一起使用的體系結構。
具體實施例方式
在以下說明中,參閱附圖,其中附圖形成本發明的一部分,並示出幾個實施例。應理解,可使用其它實施例,並可作結構和操作改變。
圖4示出可以實現數據構建方面的計算環境。計算機102包括一個或多個中央處理單元(CPU)104(僅示出一個)、內存106、非易失性存儲器108、存儲處理器109、作業系統110以及網絡適配器112。應用程式114還在內存106中執行,並能夠從存儲器108中讀出數據和向其寫入數據。計算機102可包括業界已知的任何計算設備,例如大型機、伺服器、個人計算機、工作站、膝上型電腦、手持計算機、電話設備、網絡設備、虛擬化設備、存儲處理器、存儲控制器等等。業界已知的任何CPU104和作業系統110都可使用。作為內存管理操作的一部分,內存106中的程序和數據可交換到存儲器108中。計算機102可通過網絡適配器112與網絡118通信。
設備驅動程序120在內存106中執行,並包括存儲處理器特定命令,以與存儲處理器109以及作業系統110和存儲處理器109之間的接口通信。存儲器108包括多個盤存儲單元,例如即盤驅動器150a、150b...150n,其中數據可存儲為允許數據重建的組織類型。在圖示的實施例中,盤驅動器150a、150b...150n組織成RAID陣列151。
在某些實現中,存儲處理器109執行某些操作,以協助計算機102從存儲器108中讀出數據和向其寫入數據。例如,存儲處理器109可具有軟體、固件或硬體或它們的組合,以將LBA地址從計算機102轉換成盤驅動器150a、150b...150n的柱面、磁頭和扇區規範。此外,存儲處理器109包括數據構建管理器130,它在驅動器故障或其它數據丟失時管理數據的重建。另外,在用新數據更新老數據時,構建管理器130可管理新奇偶數據的構建。
圖5示出適當存儲處理器109的一個實例。存儲處理器109便於在主機102和存儲器108之間快速移動大量數據。存儲處理器109包括電橋160,它在主機102的主總線162和連接到存儲器108的存儲控制器166的次總線164之間。電橋160允許例如可以是串行-高級技術附件(SATA)控制器的存儲控制器166與主總線162物理隔離。控制器166還可將計算機信息轉到將存儲處理器109連接到存儲器108的存儲接口。雖然存儲控制器166示為存儲處理器109的一部分,但存儲控制器166可以是存儲器108的一部分,或是一個分離單元。
主地址轉換單元168提供從主總線162通過局部總線174到處理器170和局部內存172的高通過量數據通路。連接到局部總線174的還有邏輯引擎176,它為RAID算法提供「異或」計算,以產生奇偶塊。次地址轉換單元178提供從處理器單元170和局部內存172到次總線164的高通過量數據通路。在所示實施例中,總線162、164是PCI總線,但也可使用其它類型的外圍總線。
局部內存172具有內存控制器180。在所示實施例中,局部內存172是易失性RAM型存儲器,並用於對傳送到盤驅動器150a、150b...150e的數據或從這些盤驅動器接收的數據進行高速緩存。也可使用其它類型的存儲器。例如,在數據傳送期間存儲處理器109或存儲器108意外停止工作時,非易失性快閃記憶體可用於存儲標識不完整條帶的恢復信息。直接存儲器存取(DMA)控制器182、184允許從主機102向局部內存172以及從局部內存172向驅動器150a...150n的直接存儲器傳送。
如前所述,一些RAID數據重建過程利用至少8個讀出操作來為具有5個數據塊(包括一個奇偶塊)的條帶重建數據塊。按照所示實施例的一個方面,構建管理器130包括存儲處理器109的邏輯引擎176,它在一些應用中能顯著便於丟失數據的有效重建或在數據更新時新奇偶數據的構建。例如在一個應用中,為具有5個數據塊(包括一個奇偶塊)的條帶重建數據塊的讀出操作數可減到四個讀出操作。另外,存儲重建塊的寫入操作數可從兩個寫入操作減到一個寫入操作。
圖6以示意圖形式示出包括存儲隊列200的邏輯引擎176的一個實例。存儲隊列200可對存儲隊列200的內容執行「異或」邏輯操作,如箭頭202所示,並在其輸入端給出數據,如箭頭204所示。按照所示實施例的一個方面,在一個讀出操作中,數據可直接從盤驅動器150a、150b...150n之一讀出,並在邏輯引擎176中處理,不用先在局部內存172中高速緩衝。按照所示實施例的另一方面,存儲隊列200一次可容納整個數據塊。更詳細解釋的是,一個或多個這些和其它特徵可便於數據構建,包括數據重建。
在所示實施例中,邏輯引擎176顯示為包括存儲隊列。也可使用其它類型的電路,包括寄存器和其它類型的邏輯和存儲器。
圖7示出包括處理器單元170和邏輯引擎176的數據構建管理器130在數據重建中的操作實例。在此實例中,包括5個數據塊,其中包括一個奇偶塊的數據條帶n(圖8)分別存儲在5個盤驅動器150a、150b、150c、150d和150e上,其中條帶的每個數據塊存儲在盤驅動器150a、150b...150e中的一個上。而且,盤驅動器150a、150b...150e中之一,在此實例中,即盤驅動器150d,已失效,以致每個條帶的數據塊都已丟失或者被破壞,並需要重建。
在復位(過程框260)存儲隊列200後,可對特定條帶的所有塊啟動讀出操作(過程框286)。按照一方面,所有塊或子塊可以從存儲器108中並行讀出和處理,如下所述。因此,讀出命令可由存儲處理器109同時發給所有盤驅動器150a、150b...150e,以讀出條帶的相應塊。一旦對發給盤驅動器的讀出命令作出響應而從盤驅動器150a、150b...150e之一接收(過程框292)一個塊(或子塊),此塊就可存儲在存儲隊列200中(圖6)。該數據例如可以是條帶n的數據塊1,如圖8所示,如果含有塊1的盤驅動器是第一個對所發出的讀出命令作出響應的話。由於存儲隊列200之前復位了,因此通過對從驅動器150a讀出的塊1數據和存儲隊列200的復位內容執行「異或」操作(框296),例如從驅動器150a讀出的數據塊1就可存儲在存儲隊列200中。在所示實施例中,存儲隊列200的容量足以容納來自盤驅動器條帶的整個數據塊。因此,如果例如存儲隊列200的容量是64K字節,則對每個塊的讀出操作可繼續執行,直到存儲隊列200填滿整個64K字節的塊1數據為止。應理解,存儲隊列200的大小可以改變,視應用而定。
對以前發出(過程框286)的讀出命令作出響應,可以接收到(過程框292)來自條帶n的另一數據塊,例如塊2(圖8)。來自驅動器150b的數據塊2與以前存儲在存儲隊列200中的數據塊1執行「異或」操作(過程框296),並作為中間結果存儲在存儲隊列200中。
對以前發出(過程框286)的讀出命令作出響應,可以接收到(過程框292)來自條帶n的另一數據塊,例如塊3(圖8)。來自驅動器150c的數據塊3與存儲隊列200的內容執行「異或」操作(過程框296),並作為中間結果存儲在存儲隊列200中。
對以前發出(過程框286)的讀出命令作出響應,可以接收到(過程框292)來自條帶n的另一數據塊,例如塊5(圖8)。來自驅動器150e的(奇偶)數據塊5與存儲隊列200的內容執行「異或」操作(過程框296),並作為中間結果存儲在存儲隊列200中。
一旦已從盤驅動器150a、150b...150e接收到(過程框302)條帶n的所有好數據塊,存儲在存儲隊列200中的中間結果就是條帶n的重建塊4(圖8),它可在第一寫入操作306中被寫入(過程框304)盤驅動器150d,來替代條帶n的丟失塊4。圖7的過程可以對盤驅動器150a、150b...150e的陣列151中的每個條帶重複,直到每個損壞的塊(過程框310)都已被重建為止。
雖然圖7的過程框292是指「塊」的接收,但應理解,條帶n的數據塊的子塊不必一起接收和處理。而是,子塊可以在不同的時間被接收,並在被接收時與存儲隊列200的內容作「異或」。因此,條帶n的每個塊的子塊可在它們被存儲隊列200接收和處理時與條帶n其它塊的子塊相互混合。因此,存儲處理器109可以同時向每個盤驅動器150a、150b...150e發出讀出命令,且盤驅動器可同時用所請求的數據作出響應,這樣條帶n的各個塊的子塊就可在它們在總線164上從盤驅動器傳送到存儲處理器109和存儲隊列200時相互混合在一起。
圖9示出構建管理器130操作的另一實施例,其中在降級數據讀出操作中,重建的數據可直接從存儲隊列200寫入主機102,例如寫入主機內存106。在此實施例中,構建管理器130包括存儲處理器109中的DMA功能,其允許例如在DMA寫入操作350中,重建的數據從存儲隊列200向主機內存106直接轉儲。DMA控制器例如可以是圖5的DMA控制器182,或可以在邏輯引擎176的電路中或其它地方實現,視應用而定。
圖10示出構建管理器130操作的另一實施例,其中構建了新的奇偶數據,以在用新數據更新老數據時替代老的奇偶數據。在復位存儲隊列200後,在第一讀出操作400中,可從主機102讀出條帶n的新數據塊,並將其存儲在存儲隊列200中。在如上所述的一個實施例中,此數據傳送可作為DMA傳送完成。在第一寫入操作402中,新數據也可從存儲隊列200傳送到局部內存172中。在第二讀出操作404中,老數據可以從盤驅動器例如盤驅動器150a傳送出去。來自驅動器150a的老數據塊與以前存儲在存儲隊列200中的新數據塊執行「異或」操作,並作為中間結果存儲在存儲隊列200中。
在第三讀出操作406中,下一個塊,即條帶n的老奇偶數據塊,可從盤驅動器例如盤驅動器150b中讀出。來自驅動器150b的老奇偶數據塊與存儲隊列200的內容執行「異或」操作,並作為中間結果存儲在存儲隊列200中。
一旦條帶n的老數據塊和老奇偶數據塊以及條帶n的新數據塊已分別從盤驅動器150a、150b和主機102接收到,存儲在存儲隊列200中的中間結果就是條帶n的新奇偶數據塊,它可在第二寫入操作408中被寫入盤驅動器150b,以替代條帶n的老奇偶數據。此外,在第三寫入操作410中,新數據可從局部內存172寫入到盤驅動器150a,以替代老數據。應理解,在數據更新操作中讀出和寫入操作數可顯著減少,如上所述。
再者按照另一方面,所有塊或子塊都可從存儲器108和主機內存106中並行讀出和處理。因此,讀出命令可由存儲處理器109同時發到主機內存和所有盤驅動器150a、150b...150e,以讀出條帶的相應塊。
附加實施例詳情用於管理數據構建的所述技術可使用標準編程和/或工程技術來產生軟體、固件、硬體或它們的任何組合實現為方法、設備或製品。本文所用的詞語「製品」是指在硬體邏輯(例如集成電路晶片、可編程門陣列(PGA)、專用集成電路(ASIC)等)或計算機可讀介質例如磁存儲介質(例如硬碟驅動器、軟盤、磁帶等)、光存儲器(CD-ROM、光碟等)、易失性和非易失性存儲器件(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等)實現的代碼或邏輯。計算機可讀介質中的代碼由處理器存取和執行。實現優選實施例的代碼還可在網絡上通過傳輸介質或從文件伺服器存取。在這種情況下,實現代碼的製品可包括傳輸介質,例如網絡傳輸線、無線傳輸介質,信號則通過空間、無線電波、紅外信號等傳播。所以,「製品」可包括實施代碼的介質。此外,「製品」可包括實施、處理和執行代碼的硬體和軟體成分的組合。當然,業界技術人員會認識到,對於這種配置可以作出許多改動,並且製品可包括業界已知的任何信息承載介質。
雖然在本文中將邏輯引擎描述為具有一個存儲隊列或寄存器用於執行「異或」操作,但應理解,邏輯引擎可具有多個存儲隊列或寄存器,特別是對於具有多個奇偶塊的數據組織,如在2003年12月29日提交的、授予本申請受讓人的、代理檔案號P17729、題目為「生成奇偶數據的方法、系統和程序(METHOD,SYSTEM AND PROGRAMFOR GENERATING PARITY DATA)」的同時待審的申請中所述。
在某些實現中,存儲處理器109包括管理數據構建和重建的數據構建管理器130。存儲處理器109可具有軟體、固件或硬體或它們的組合,以執行這些和其它功能。例如,在一個實施例中,處理器170和邏輯引擎176可以在與主機處理器分開的存儲處理器109中的硬體中實現。在其它實現方案中,數據構建管理器可以在包括驅動程序、作業系統或應用程式或這些的組合的主機軟體中實現。
在某些實現方案中,計算機系統可包括驅動程序和存儲控制器,例如串行-高級技術附件(SATA)、串行連接SCSI(SAS)、獨立盤冗餘陣列(RAID)等控制器,其管理對非易失性存儲設備的存取,例如磁碟驅動器、磁帶介質、光碟等。在備選實現方案中,存儲控制器實施例可包含在沒有驅動程序的系統中。用於設備和擴展器的SAS體系結構的更多詳情在技術說明書「信息技術-串行連接SCSI(SAS)(Information Technology-Serial Attached SCSI(SAS))」中有說明,參考由ANSI出版的No.ISO/IEC 14776-150200x和ANSI INCITS.***200x PHY layer(2003年7月9日)。關於SATA體系結構的詳情在技術說明書「串行ATA高速串行化AT附件(Serial ATAHigh SpeedSerialized AT Attachment)」Rev.1.0A(2003年1月)中有說明。
雖然在本文中將邏輯引擎描述為接收和處理一個完全的數據塊,但應理解,一次也可接收和處理一個塊或多個塊的一部分。此外,雖然在本文中將邏輯引擎描述為直接從非易失性存儲單元例如盤驅動器接收數據,但應理解,在某些實施例中,數據也可從易失性存儲器例如RAM存儲器傳送到邏輯引擎。
在某些實現方案中,設備驅動程序和存儲處理器實施例可以在包括視頻控制器的計算機系統中實現,以提供信息在連接到包括設備驅動程序和網絡適配器的計算機系統的監視器上顯示,這種計算機系統包括臺式計算機、工作站、伺服器、大型機、膝上型電腦、手持計算機等。備選的是,存儲處理器和設備驅動程序實施例可以在不包括視頻控制器的計算設備中實現。
在某些實現方案中,網絡適配器可配置成在連接到網絡適配器上埠的電纜上傳輸數據。備選的是,網絡適配器實施例可配置成在無線網絡或連接上傳輸數據,例如無線LAN、藍牙等。
圖7所示邏輯示出了以某種順序發生的某些事件。在備選實施例中,某些操作可以不同順序執行、更改或刪除。而且,一些操作可添加到上述邏輯,且仍然與所述實施例相符。另外,本文所述的操作可依次發生,或某些操作可並行處理。還有,操作可由單一處理單元執行,或由分布式處理單元執行。
圖11示出網絡組件的計算機體系結構500的一個實現方案,例如圖4所示的主機和存儲設備。體系結構500可包括處理器502(例如微處理器)、內存504(例如易失性存儲裝置)以及存儲器506(例如非易失性存儲器,例如磁碟驅動器、光碟驅動器、磁帶驅動器等)。存儲器506可包括內部存儲設備或附加的或網絡可存取的存儲器。存儲器506中的程序以業界已知的方式加載到內存504中,並由處理器502執行。存儲處理器507可控制存儲器506。該體系結構還包括網絡適配器508,以便能與網絡例如乙太網、光纖通道仲裁環路等通信。關於光纖通道體系結構的詳情在技術說明書「Fibre Channel Framingand Signaling Interface」中有說明,文件號為ISO/IEC AWI 14165-25。
另外,在某些實施例中,該體系結構可包括視頻控制器509,以將信息呈現在顯示監視器上,其中視頻控制器509可以在視頻卡上實現,或集成到安裝在母板上的集成電路組件上。如上所述,某些網絡設備可具有多個存儲卡或控制器。輸入設備510用來提供對處理器502的用戶輸入,並可包括鍵盤、滑鼠、筆針、擴音器、觸摸式顯示屏、或業界已知的任何其它激活或輸入構件。輸出設備512能夠提供從處理器502或其它組件例如顯示監視器、印表機、存儲器等傳輸的信息。
存儲處理器506和網絡適配器508各可在卡上實現,例如外圍部件互連(PCI)卡或某個其它的I/O卡,或在安裝在母板上的集成電路組件上實現。關於PCI體系結構的詳情在PCI-SIG出版的「PCI LocalBus,Rev.2.3」中有說明。
已經出於圖示和說明目的給出了各種實施例的上述說明。上述說明書、實例和數據提供了各成分的製造和使用的完整說明。不應認為本說明書是排他性的,或局限於所公開的明確形式。根據上述內容可以作出許多更改和改變。
權利要求
1.一種方法,包括在旁路高速緩存的第一傳送操作中,將存儲在多個非易失性存儲單元上條帶中的第一數據單元從所述多個非易失性存儲單元的第一非易失性存儲單元傳送到具有所述高速緩存的存儲處理器的邏輯引擎;在旁路所述高速緩存的第二傳送操作中,將存儲在所述條帶中的第二數據單元從所述多個非易失性存儲單元的第二非易失性存儲單元傳送到所述邏輯引擎;以及使用在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數據單元並使用在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數據單元,在所述邏輯引擎中構建第三數據單元。
2.如權利要求1所述的方法,還包括在第三傳送操作中將所述構建的第三數據單元傳送到所述多個非易失性存儲單元的第三非易失性存儲單元,並將所述構建的第三數據單元存儲在所述條帶中。
3.如權利要求2所述的方法,其中所述第三傳送操作旁路所述高速緩存。
4.如權利要求2所述的方法,其中所述多個非易失性存儲單元布置成獨立盤冗餘陣列組織。
5.如權利要求4所述的方法,其中所述第二數據單元是奇偶數據。
6.如權利要求5所述的方法,其中每個非易失性存儲單元是一個盤驅動器。
7.如權利要求6所述的方法,其中所述條帶組織成包括奇偶數據塊的獨立盤冗餘陣列條帶數據塊,且每個所述數據單元是所述獨立盤冗餘陣列條帶的一個數據塊。
8.如權利要求7所述的方法,其中所述邏輯引擎包括能夠存儲來自所述獨立盤冗餘陣列條帶的數據塊的存儲隊列。
9.如權利要求1所述的方法,其中所述邏輯引擎的所述高速緩存是隨機存取存儲器。
10.如權利要求1所述的方法,其中所述在所述邏輯引擎中構建第三數據單元包括將在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數據單元加到所述邏輯引擎的存儲隊列,並對所述第一存儲隊列的內容和所述所加的第一數據單元執行「異或」邏輯函數操作,並且包括將在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數據單元加到所述邏輯引擎的所述存儲隊列,並對所述存儲隊列的內容和所述所加的第二數據單元執行「異或」邏輯函數操作。
11.如權利要求2所述的方法,還包括在旁路所述高速緩存的第四傳送操作中,將存儲在所述條帶中的第四數據單元從所述多個非易失性存儲單元的第四非易失性存儲單元傳送到所述邏輯引擎;以及在旁路所述高速緩存的第五傳送操作中,將存儲在所述條帶中的第五數據單元從所述多個非易失性存儲單元的第五非易失性存儲單元傳送到所述邏輯引擎;以及其中所述在所述邏輯引擎中構建所述第三數據單元,在所述第三傳送操作中所述將所述構建的第三數據單元傳送到所述第三非易失性存儲單元之前,還使用在所述第四傳送操作中傳送到所述邏輯引擎的所述第四數據單元,並使用在所述第五傳送操作中傳送到所述邏輯引擎的所述第五數據單元。
12.如權利要求2所述的方法,還包括對於所述多個存儲單元的每個附加非易失性存儲單元在旁路所述高速緩存的附加傳送操作中,將存儲在所述條帶中的附加數據單元從所述多個非易失性存儲單元的附加非易失性存儲單元傳送到所述邏輯引擎;以及其中所述在所述邏輯引擎中構建所述第三數據單元,在所述第三傳送操作中所述將所述構建的第三數據單元傳送到所述第三非易失性存儲單元之前,還使用在所述附加傳送操作中傳送到所述邏輯引擎的所述附加數據單元。
13.如權利要求1所述的方法,還包括將作為要存儲在所述條帶中的新數據的第四數據單元傳送到所述邏輯引擎;其中所述第一數據單元是在所述條帶中要由所述新數據替代的老數據,所述第二數據單元是在所述條帶中要被替代的老奇偶數據,並且其中所述在所述邏輯引擎中構建所述第三數據單元使用傳送到所述邏輯引擎的所述新數據來構建替代奇偶數據單元,所述方法還包括將所述第三新奇偶數據單元傳送到所述第二非易失性存儲單元,以替代所述第二老奇偶數據單元。
14.如權利要求1所述的方法,還包括在第三傳送操作中將所述構建的第三數據單元傳送到主機。
15.如權利要求1所述的方法,其中所述存儲處理器向所述第一和第二非易失性存儲單元發出讀出命令,以使所述第一和第二數據單元從所述第一和第二非易失性存儲單元中至少部分並行地存取。
16.一種包括存儲介質的物品,所述存儲介質包括其上存儲的機器可讀指令,以在旁路高速緩存的第一傳送操作中,將存儲在多個非易失性存儲單元上條帶中的第一數據單元從所述多個非易失性存儲單元的第一非易失性存儲單元傳送到具有所述高速緩存的存儲處理器的邏輯引擎;在旁路所述高速緩存的第二傳送操作中,將存儲在所述條帶中的第二數據單元從所述多個非易失性存儲單元的第二非易失性存儲單元傳送到所述邏輯引擎;以及使用在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數據單元並使用在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數據單元,在所述邏輯引擎中構建第三數據單元。
17.如權利要求16所述的物品,其中所述存儲介質還包括其上存儲的機器可讀指令,以在第三傳送操作中將所述構建的第三數據單元傳送到所述多個非易失性存儲單元的第三非易失性存儲單元,並將所述構建的第三數據單元存儲在所述條帶中。
18.如權利要求17所述的物品,其中所述第三傳送操作旁路所述高速緩存。
19.如權利要求17所述的物品,其中所述多個非易失性存儲單元布置成獨立盤冗餘陣列組織。
20.如權利要求19所述的物品,其中所述第二數據單元是奇偶數據。
21.如權利要求20所述的物品,其中每個非易失性存儲單元是一個盤驅動器。
22.如權利要求21所述的物品,其中所述條帶組織成包含奇偶數據塊的獨立盤冗餘陣列條帶數據塊,且每個所述數據單元是所述獨立盤冗餘陣列條帶的一個數據塊。
23.如權利要求22所述的物品,其中所述邏輯引擎包括能夠存儲來自所述獨立盤冗餘陣列條帶的數據塊的存儲隊列。
24.如權利要求16所述的物品,其中所述邏輯引擎的所述高速緩存是隨機存取存儲器。
25.如權利要求16所述的物品,其中在所述邏輯引擎中構建第三數據單元的機器可讀指令包括存儲在所述存儲介質上的機器可讀指令,以將在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數據單元加到所述邏輯引擎的存儲隊列,並對所述第一存儲隊列的內容和所述所加的第一數據單元執行「異或」邏輯函數操作,並且將在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數據單元加到所述邏輯引擎的所述存儲隊列,並對所述存儲隊列的內容和所述所加的第二數據單元執行「異或」邏輯函數操作。
26.如權利要求17所述的物品,其中所述存儲介質還包括其上存儲的機器可讀指令,以在旁路所述高速緩存的第四傳送操作中,將存儲在所述條帶中的第四數據單元從所述多個非易失性存儲單元的第四非易失性存儲單元傳送到所述邏輯引擎;以及在旁路所述高速緩存的第五傳送操作中,將存儲在所述條帶中的第五數據單元從所述多個非易失性存儲單元的第五非易失性存儲單元傳送到所述邏輯引擎;並且其中在所述邏輯引擎中構建第三數據單元的機器可讀指令包括存儲在所述存儲介質上的機器可讀指令,以在所述第三傳送操作中所述將所述構建的第三數據單元傳送到所述第三非易失性存儲單元之前,使用在所述第四傳送操作中傳送到所述邏輯引擎的所述第四數據單元,並使用在所述第五傳送操作中傳送到所述邏輯引擎的所述第五數據單元。
27.如權利要求16所述的物品,其中所述存儲介質還包括其上存儲的機器可讀指令,以將作為要存儲在所述條帶中的新數據的第四數據單元傳送到所述邏輯引擎;其中所述第一數據單元是在所述條帶中要由所述新數據替代的老數據,所述第二數據單元是在所述條帶中要被替代的老奇偶數據,且其中在所述邏輯引擎中構建第三數據單元的機器可讀指令包括存儲在所述存儲介質上的機器可讀指令,以使用傳送到所述邏輯引擎的所述新數據構建替代奇偶數據單元,且其中所述存儲介質還包括其上存儲的機器可讀指令,以將所述第三新奇偶數據單元傳送到所述第二非易失性存儲單元,來替代所述第二老奇偶數據單元。
28.如權利要求16所述的物品,其中所述存儲介質還包括其上存儲的機器可讀指令,以在第三傳送操作中將所述構建的第三數據單元傳送到主機。
29.如權利要求16所述的物品,其中所述存儲介質還包括其上存儲的機器可讀指令,以向所述第一和第二非易失性存儲單元發出讀出命令,以使所述第一和第二數據單元從所述第一和第二非易失性存儲單元中至少部分並行地存取。
30.一種系統,包括至少一個內存,它包含作業系統和應用程式;連接到所述內存的處理器;具有多個非易失性存儲單元的數據存儲器;數據存儲處理器,適於管理對所述數據存儲器的輸入/輸出(I/O)存取,並具有高速緩存和邏輯引擎;以及在所述內存中可由所述處理器執行的設備驅動程序,其中所述應用程式、作業系統、設備驅動程序和所述存儲處理器中至少一項適於在旁路所述高速緩存的第一傳送操作中,將存儲在所述多個非易失性存儲單元上條帶中的第一數據單元從第一非易失性存儲單元傳送到所述存儲處理器的所述邏輯引擎;在旁路所述高速緩存的第二傳送操作中,將存儲在所述條帶中的第二數據單元從所述多個非易失性存儲單元的第二非易失性存儲單元傳送到所述邏輯引擎;以及使用在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數據單元並使用在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數據單元,在所述邏輯引擎中構建第三數據單元。
31.如權利要求30所述的系統,其中所述應用程式、作業系統、設備驅動程序和所述存儲處理器中的所述至少一項還適於在第三傳送操作中將所述構建的第三數據單元傳送到所述多個非易失性存儲單元的第三非易失性存儲單元,並將所述構建的第三數據單元存儲在所述條帶中。
32.如權利要求31所述的系統,其中所述第三傳送操作旁路所述高速緩存。
33.如權利要求31所述的系統,其中所述多個非易失性存儲單元布置成獨立盤冗餘陣列組織。
34.如權利要求33所述的系統,其中所述第二數據單元是奇偶數據。
35.如權利要求34所述的系統,其中每個非易失性存儲單元是一個盤驅動器。
36.如權利要求35所述的系統,其中所述條帶組織成包括奇偶數據塊的獨立盤冗餘陣列條帶數據塊,且每個所述數據單元是所述獨立盤冗餘陣列條帶的一個數據塊。
37.如權利要求36所述的系統,其中所述邏輯引擎包括能夠存儲來自所述獨立盤冗餘陣列條帶的數據塊的存儲隊列。
38.如權利要求30所述的系統,其中所述邏輯引擎的所述高速緩存是隨機存取存儲器。
39.如權利要求30所述的系統,其中為了在所述邏輯引擎中構建第三數據單元,所述應用程式、作業系統、設備驅動程序和所述存儲處理器中的所述至少一項還適於將在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數據單元加到所述邏輯引擎的存儲隊列,並對所述第一存儲隊列的內容和所述所加的第一數據單元執行「異或」邏輯函數操作,並且將在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數據單元加到所述邏輯引擎的所述存儲隊列,並對所述存儲隊列的內容和所述所加的第二數據單元執行「異或」邏輯函數操作。
40.如權利要求31所述的系統,其中所述應用程式、作業系統、設備驅動程序和所述存儲處理器中的所述至少一個還適於在旁路所述高速緩存的第四傳送操作中,將存儲在所述條帶中的第四數據單元從所述多個非易失性存儲單元的第四非易失性存儲單元傳送到所述邏輯引擎;以及在旁路所述高速緩存的第五傳送操作中,將存儲在所述條帶中的第五數據單元從所述多個非易失性存儲單元的第五非易失性存儲單元傳送到所述邏輯引擎;以及其中為了在所述邏輯引擎中構建第三數據單元,所述應用程式、作業系統、設備驅動程序和所述存儲處理器中的所述至少一項還適於在所述第三傳送操作中所述將所述構建的第三數據單元傳送到所述第三非易失性存儲單元之前,使用在所述第四傳送操作中傳送到所述邏輯引擎的所述第四數據單元,並使用在所述第五傳送操作中傳送到所述邏輯引擎的所述第五數據單元。
41.如權利要求30所述的系統,其中所述應用程式、作業系統、設備驅動程序和所述存儲處理器中的所述至少一項還適於將作為要存儲在所述條帶中的新數據的第四數據單元傳送到所述邏輯引擎;其中所述第一數據單元是在所述條帶中要由所述新數據替代的老數據,所述第二數據單元是在所述條帶中要被替代的老奇偶數據,且其中在所述邏輯引擎中構建第三數據單元的機器可讀指令包括存儲在所述存儲介質上的機器可讀指令,以使用傳送到所述邏輯引擎的所述新數據來構建替代奇偶數據單元,且其中所述存儲介質還包括其上存儲的機器可讀指令,以將所述第三新奇偶數據單元傳送到所述第二非易失性存儲單元,來替代所述第二老奇偶數據單元。
42.如權利要求30所述的系統,其中所述應用程式、作業系統、設備驅動程序和所述存儲處理器中的所述至少一項還適於在第三傳送操作中將所述構建的第三數據單元傳送到主機。
43.如權利要求30所述的系統,其中所述應用程式、作業系統、設備驅動程序和所述存儲處理器中的所述至少一項還適於向所述第一和第二非易失性存儲單元發出讀出命令,以使所述第一和第二數據單元從所述第一和第二非易失性存儲單元中至少部分並行地存取。
44.一種與具有多個非易失性存儲單元的數據存儲器一起使用的設備,包括數據存儲處理器,適於管理對所述數據存儲器的輸入/輸出(I/O)存取,並具有高速緩存和邏輯引擎,其中所述存儲處理器還適於在旁路所述高速緩存的第一傳送操作中,將存儲在所述多個非易失性存儲單元上條帶中的第一數據單元從第一非易失性存儲單元傳送到所述存儲處理器的所述邏輯引擎;在旁路所述高速緩存的第二傳送操作中,將存儲在所述條帶中的第二數據單元從所述多個非易失性存儲單元的第二非易失性存儲單元傳送到所述邏輯引擎;以及使用在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數據單元並使用在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數據單元,在所述邏輯引擎中構建第三數據單元。
45.如權利要求44所述的設備,其中所述設備還適於在第三傳送操作中將所述構建的第三數據單元傳送到所述多個非易失性存儲單元的第三非易失性存儲單元,並將所述構建的第三數據單元存儲在所述條帶中。
46.如權利要求45所述的設備,其中所述第三傳送操作旁路所述高速緩存。
47.如權利要求45所述的設備,其中每個非易失性存儲單元是一個盤驅動器,所述多個非易失性存儲單元布置成獨立盤冗餘陣列組織,所述條帶組織成包括奇偶數據塊的獨立盤冗餘陣列條帶數據塊,且每個所述數據單元是所述獨立盤冗餘陣列條帶的一個數據塊。
48.如權利要求47所述的設備,其中所述邏輯引擎包括能夠存儲來自所述獨立盤冗餘陣列條帶的數據塊的存儲隊列,所述邏輯引擎的所述高速緩存是隨機存取存儲器,並且為了在所述邏輯引擎中構建第三數據單元,所述存儲處理器還適於將在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數據單元加到所述邏輯引擎的存儲隊列,並對所述第一存儲隊列的內容和所述所加的第一數據單元執行「異或」邏輯函數操作,並將在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數據單元加到所述邏輯引擎的所述存儲隊列,並對所述存儲隊列的內容和所述所加的第二數據單元執行「異或」邏輯函數操作。
49.如權利要求44所述的設備,其中所述存儲處理器還適於在第三傳送操作中將所述構建的第三數據單元傳送到主機。
50.如權利要求44所述的設備,其中所述存儲處理器還適於向所述第一和第二非易失性存儲單元發出讀出命令,以使所述第一和第二數據單元從所述第一和第二非易失性存儲單元中至少部分並行存取。
全文摘要
提供一種用於構建數據的方法、系統和程序,包括重建組織成允許數據重建的數據組織類型例如獨立盤冗餘陣列(RAID)組織的數據。在一個實施例中,將數據塊從存儲在存儲單元例如RAID陣列中的盤驅動器上的數據條帶傳送到存儲處理器的邏輯引擎,旁路存儲處理器的高速緩存。在每個數據塊從盤驅動器傳送時,存儲隊列對該數據塊執行邏輯操作,例如「異或」,以從條帶重建數據塊。重建的數據塊隨後可傳送到RAID陣列的盤驅動器,以替代RAID陣列上數據條帶中丟失的數據塊,或替代老奇偶數據塊。
文檔編號G06F11/10GK1965298SQ200480039136
公開日2007年5月16日 申請日期2004年12月20日 優先權日2003年12月29日
發明者M·施米索伊爾 申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀