專利名稱:對多倍冗余存儲器的安全寫操作的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲器的領(lǐng)域,更具體地,涉及多倍冗余陣列的操作。
背景技術(shù):
在存儲系統(tǒng)中,可使用稱作RAID(獨立磁盤冗余陣列)的技術(shù)將獨立存儲設(shè)備的陣列配置為作為單個虛擬存儲設(shè)備來操作。配置為利用RAID存儲系統(tǒng)進行操作的計算機系統(tǒng)能夠在RAID存儲系統(tǒng)上執(zhí)行輸入和輸出(I/O)操作(諸如讀和寫操作),如同該RAID存儲系統(tǒng)是單個存儲設(shè)備一樣。RAID存儲系統(tǒng)包括獨立存儲設(shè)備陣列和RAID控制器。RAID控制器提供獨立存儲設(shè)備陣列的虛擬視圖—這意味著獨立存儲設(shè)備陣列表現(xiàn)為帶有存儲元件的有序列表的單個虛擬存儲設(shè)備。存儲元件通常稱作存儲塊,而存儲在其中的數(shù)據(jù)稱作數(shù)據(jù)塊。I/O操作是對于該虛擬存儲設(shè)備中的—個或多個存儲塊來限定的。當(dāng)在該虛擬存儲設(shè)備上執(zhí)行I/O操作時,RAID控制器將該I/O操作映射到獨立存儲設(shè)備的陣列上。為了虛擬化該存儲設(shè)備陣列,并映射I/O操作,RAID控制器可以采用數(shù)據(jù)處理領(lǐng)域中技術(shù)人員公知的幾種標準RAID技術(shù)中的任何一種。
在提供存儲設(shè)備的陣列作為單個虛擬存儲設(shè)備的虛擬化視圖時,RAID控制器的功能是將該虛擬存儲設(shè)備中的數(shù)據(jù)塊分布在整個陣列中。實現(xiàn)這一目的的一種方法是使用稱作“條帶化”的技術(shù)。條帶化包括以循環(huán)的方式將數(shù)據(jù)塊分布在整個存儲設(shè)備中。當(dāng)在RAID存儲系統(tǒng)中存儲數(shù)據(jù)塊時,將稱作條帶的多個數(shù)據(jù)塊存儲在每一存儲設(shè)備中。條帶的大小可以由具體RAID實現(xiàn)來確定,或者是可配置的。包括存儲在第一存儲設(shè)備上的第一條帶和存儲在后續(xù)存儲設(shè)備上的后續(xù)條帶的一行條帶稱作基帶條?;鶐l的大小是包括該基帶條的所有條帶的總大小。由于多個存儲設(shè)備能夠在I/O操作期間并行地行動,因而當(dāng)與單個存儲設(shè)備相比時,以這種方式使用多個獨立存儲設(shè)備來存儲數(shù)據(jù)塊提供了高性能I/O操作。
諸如磁盤存儲設(shè)備的物理存儲設(shè)備因較差的可靠性而聞名,因而RAID控制器的另一個功能是提供可靠的存儲系統(tǒng)。一種提供可靠性的技術(shù)包括在獨立存儲設(shè)備陣列中存儲校驗信息及數(shù)據(jù)。校驗信息是允許已變得不可讀的數(shù)據(jù)再生的冗余信息,其中該數(shù)據(jù)是由于諸如這種設(shè)備的陣列中單個存儲設(shè)備故障的單點故障而變得不可讀的。不可讀數(shù)據(jù)根據(jù)可讀數(shù)據(jù)和冗余校驗信息的結(jié)合而再生。校驗信息被記錄為奇偶校驗數(shù)據(jù),它占用基帶條中的單個條帶,并且其是通過將異或(XOR)邏輯操作符運用到基帶條中的所有數(shù)據(jù)條帶而計算來的。例如,包括數(shù)據(jù)條帶A、B、C的基帶條將進一步由按照A XOR B XOR C計算出的奇偶校驗條帶來補足。如果在存儲系統(tǒng)中發(fā)生單點故障,那么奇偶校驗條帶就用于再生不可訪問的數(shù)據(jù)條帶。例如,如果包括數(shù)據(jù)條帶A、B、C和PARITY的基帶條跨四個獨立存儲設(shè)備W、X、Y、Z分別存儲,并且存儲設(shè)備X故障,那么存儲在設(shè)備X上的條帶B將是不可訪問的。條帶B可以根據(jù)其余數(shù)據(jù)條帶和PARITY條帶通過XOR計算而計算出。該恢復(fù)性計算是A XOR C XORPARTY=B。
多倍冗余RAID陣列是構(gòu)建于獨立硬盤驅(qū)動器之外的存儲設(shè)備,其以這樣一種方式存儲數(shù)據(jù)和奇偶校驗信息,即幾個組成硬盤驅(qū)動器可能故障而不會丟失寫入到該陣列中的任何數(shù)據(jù)。基于簡單起見,在此以雙倍冗余陣列來對此進行描述;本發(fā)明優(yōu)選實施例的技術(shù)可以擴展到具有更多冗余的陣列。
例如,圖1中示出了一種用于一個四磁盤陣列的支持上述恢復(fù)性XOR技術(shù)的公知方案。該技術(shù)依賴于以下內(nèi)容1.每一列表示一個磁盤。
2.該圖中的每個單元表示該磁盤上數(shù)據(jù)(頂行)或奇偶校驗(底行)的條帶。
3.該模式重復(fù)到涵蓋整個陣列。
4.每一數(shù)據(jù)條帶用于確切地兩個奇偶校驗條帶。
5.每一數(shù)據(jù)條帶及其兩個奇偶校驗條帶位于不同磁盤上。
6.沒有兩個數(shù)據(jù)條帶共享相同的兩個奇偶校驗條帶。
7.如果移除了任何兩個磁盤(列),那么丟失的數(shù)據(jù)可以根據(jù)其余兩個磁盤恢復(fù)。
例如,移除第一(左手)的兩個磁盤??梢杂梢韵禄謴?fù)AC xor(A xor C)然后,還可以由以下恢復(fù)BA xor(A xor B)當(dāng)寫操作中斷(例如,因掉電或者陣列控制器的復(fù)位)時,陣列控制器必須采取措施來重新同步該模式。例如,假設(shè)以數(shù)據(jù)B’覆寫到數(shù)據(jù)B上。這意味著三個條帶(一個數(shù)據(jù)和兩個奇偶校驗條帶)不得不被寫入。如果在這些寫操作期間掉電,那么這些磁盤驅(qū)動器將無法完成這些寫操作并且這些條帶將最終包含舊的和新的數(shù)據(jù)或奇偶校驗的混合。當(dāng)重新供電時,陣列控制器必須采取某種行動將奇偶校驗條帶與數(shù)據(jù)條帶重新同步一如果不完成這項操作的話,那么該模式將無法正確地重建并且將產(chǎn)生數(shù)據(jù)惡化。
實現(xiàn)RAID-5即單倍冗余類型的RAID的當(dāng)前RAID適配器,通常通過將正被寫入的每一基帶條的索引存儲在小型非易失性存儲器(NVRAM)中,來管理該操作。當(dāng)該適配器啟動時,它檢查其NVRAM并且發(fā)現(xiàn)陣列上的哪一個模式需要被重新同步。通過讀取所有的數(shù)據(jù)條帶并計算新的奇偶校驗來完成這一重新同步。對于需要被同時寫入的每個模式而言,該方案需要~32位的NVRAM。這一技術(shù)只有在能夠讀取所有的數(shù)據(jù)條帶時才奏效。如果無法讀取單個數(shù)據(jù)條帶(例如,由于磁盤故障),則無法計算奇偶校驗條帶,而數(shù)據(jù)丟失。這接近于RAID-5的可接受的邊緣,因其是被設(shè)計為允許單個故障存在的RAID(已有疑義地存在兩個故障,即磁盤故障和電源故障或者控制器復(fù)位)。
這一技術(shù)當(dāng)應(yīng)用于雙倍冗余陣列時是不可接受的,其中該雙倍冗余陣列被假定為允許兩個故障存在而不會丟失數(shù)據(jù)。這一問題的一般解決方案(其增強RAID-5情形和解決雙倍冗余情形)是為陣列控制器配備大量的非易失性存儲器(在此稱作NVS以與NVRAM相區(qū)別)。該控制器準備新的數(shù)據(jù)和奇偶校驗并在開始寫入到磁盤之前將它們存儲在NVS中。如果該控制器被復(fù)位或者磁盤在寫操作期間掉電,則由于其試圖寫的數(shù)據(jù)仍然存在于NVS中,因此該控制器能夠嘗試再次寫入。如果該寫操作成功,那么不需要進一步動作來重新同步該模式。即使一個磁盤(或者甚至是雙倍冗余陣列的兩個磁盤)故障,也沒有問題。
這種方案的缺點在于需要大量的NVS-足以處理與控制器需要可接受地執(zhí)行的一樣多的并發(fā)寫操作。以前,這種方案曾經(jīng)是可接受的,因為單個存儲控制器通常具有快速寫高速緩存和RAID功能—僅需要一片由兩個組件共享的NVS。
然而,在存儲區(qū)域網(wǎng)絡(luò)(SAN)環(huán)境中,可期望具有在分離的單元中的高速緩存和RAID。使用NVS進行RAID更新意味著高速緩存和RAID單元都需要它們自己的NVS。
通常,存在RAID陣列的至少兩個控制器,以使單個控制器的故障不會導(dǎo)致對該陣列的訪問的丟失。這些控制器必須進行通信以使對該RAID陣列的訪問同步。任何非易失性信息必須對于這兩個控制器都可見。在最簡單的情況下,這些控制器使用設(shè)備網(wǎng)絡(luò)進行通信,但是如果NVS的內(nèi)容要被屏蔽,那么網(wǎng)絡(luò)帶寬就被不利地消耗了,否則該帶寬應(yīng)該對于用戶I/O可用。
另外一個缺點是,給定使用NVRAM技術(shù)管理RAID-5陣列的存儲適配器/控制器,不可能在不進行硬件升級的情況下使用NVS方案來實現(xiàn)可接受的雙倍冗余RAID存儲器。
發(fā)明內(nèi)容
因此,在第一方面,本發(fā)明提供一種用于將數(shù)據(jù)和奇偶校驗安全地寫入多倍冗余存儲器的裝置,包括第一存儲組件,其可操作地將至少第一標記存儲在存儲設(shè)備中,以唯一地索引將由至少數(shù)據(jù)寫操作寫入的模式;寫組件,其可操作地執(zhí)行所述至少數(shù)據(jù)寫操作;另一存儲組件,其可操作地利用至少另一標記覆寫所述存儲設(shè)備中的標記,以唯一地索引將由奇偶校驗寫操作寫入的模式;以及另一寫組件,其可操作地執(zhí)行所述奇偶校驗寫操作。
優(yōu)選地,所述第一存儲組件進一步包括第二存儲組件,其可操作地利用第二標記覆寫所述存儲設(shè)備中的所述至少第一標記,以索引將由第一奇偶校驗寫操作寫入的模式;以及所述寫組件進一步可操作地執(zhí)行所述第一奇偶校驗寫操作。
優(yōu)選地,第一方面的方案可以具有雙倍冗余。
優(yōu)選地,第一方面的裝置可以具有大于雙倍的冗余。
第一方面的方案可以適用于將每一數(shù)據(jù)和奇偶校驗寫操作串行化。
第一方面的方案可以進一步包括RAID存儲器,優(yōu)選地,其可以是RAID-5存儲器。
第一方面的方案可以適用于執(zhí)行延遲奇偶校驗更新。
優(yōu)選地,第一方面的方案可以進一步包括快速寫高速緩存。
在第二方面,本發(fā)明提供一種用于將數(shù)據(jù)和奇偶校驗安全地寫入多倍冗余存儲器的方法,包括將至少第一標記存儲在存儲設(shè)備中,以唯一地索引將由至少數(shù)據(jù)寫操作寫入的模式;執(zhí)行所述至少數(shù)據(jù)寫操作;利用至少另一標記覆寫所述存儲設(shè)備中的標記,以唯一地索引將由奇偶校驗寫操作寫入的模式;以及執(zhí)行所述奇偶校驗寫操作。
優(yōu)選地,所述將至少第一標記存儲在存儲設(shè)備中,以唯一地索引將由至少數(shù)據(jù)寫操作寫入的模式的步驟進一步包括利用第二標記覆寫所述存儲設(shè)備中的所述至少第一標記,以索引將由第一奇偶校驗寫操作寫入的模式;以及所述執(zhí)行所述至少數(shù)據(jù)寫操作的步驟包括執(zhí)行所述第一奇偶校驗寫操作。
優(yōu)選地,上述多倍冗余存儲器是雙倍冗余的。
優(yōu)選地,上述多倍冗余存儲器具有大于雙倍的冗余。
優(yōu)選地,所有包括執(zhí)行寫操作的步驟是串行化的。
優(yōu)選地,所述多倍冗余存儲器包括RAID存儲器。
優(yōu)選地,所述RAID存儲器是RAID-5存儲器。
優(yōu)選地,第二方面的方法還包括執(zhí)行延遲奇偶校驗更新的步驟。
優(yōu)選地,第二方面的方法還包括執(zhí)行快速寫高速緩存操作的步驟。
在第三方面,本發(fā)明提供一種計算機程序,包括在有形介質(zhì)中包含的計算機程序代碼,當(dāng)該計算機程序被加載到計算機系統(tǒng)中并在其上執(zhí)行時,其執(zhí)行第二方面的方法的所有步驟。
有利地,本發(fā)明提供對磁盤故障與電源復(fù)位或者磁盤故障與控制器復(fù)位的組合的保護。
此外,有利地,本發(fā)明緩解了減少用戶I/O的可用寬帶的帶寬消耗的問題。
本發(fā)明的另一個優(yōu)點在于,其可以從雙倍冗余陣列擴展到具有更高階冗余的陣列。
現(xiàn)在將僅以舉例的方式參照附圖描述本發(fā)明的優(yōu)選實施例,其中圖1示出用于四磁盤陣列的公知編碼方案;圖2示出根據(jù)本發(fā)明優(yōu)選實施例的裝置的框圖;圖3示出根據(jù)本發(fā)明優(yōu)選實施例的方法步驟。
具體實施例為了理解本發(fā)明的優(yōu)選實施例,再次考慮圖1中示出的公知編碼方案。對該模式的寫操作是串行化的。如果同時提交對條帶A和B的寫操作,那么陣列控制器將首先進行一個寫操作然后進行另一個寫操作。
為了將更新的數(shù)據(jù)B’寫在現(xiàn)有數(shù)據(jù)B上,需要磁盤I/O步驟的公知序列。這一序列是
1.讀取舊數(shù)據(jù),B。
2.計算奇偶校驗增量,B xor B’。
3.讀取第一舊奇偶校驗,B xor D。
4.通過將第一舊奇偶校驗與奇偶校驗增量進行異或-(B xor D)xor(B xor B’),即B’xor D,來計算第一新奇偶校驗。
5.讀取第二舊奇偶校驗,A xor B。
6.通過將第二舊奇偶校驗與奇偶校驗增量進行異或-(A xor B)xor(B xor B’),即A xor B’,來計算第二新奇偶校驗。
7.在B之上寫入B’。<——寫操作#08.寫入第一新奇偶校驗,B’xor D。<——寫操作#19.寫入第二新奇偶校驗,A xor B’。<——寫操作#2(對于本領(lǐng)域技術(shù)人員顯而易見的是,可以進行某種重新排序,而不會映象最終結(jié)果。)在本發(fā)明的優(yōu)選實施例中,將標記存儲在NVRAM中,以唯一標識該模式內(nèi)在每一個寫操作#0、#1、#2時被寫入的條帶。
轉(zhuǎn)到圖2,其示出了用于將數(shù)據(jù)和奇偶校驗安全地寫入包括第一寫組件112的多倍冗余存儲器的裝置100,其中第一寫組件112包括寫入器102,其與第一存儲組件108協(xié)作,以存儲一個標記,以唯一地索引將由數(shù)據(jù)寫操作寫入的模式,然后該寫入器執(zhí)行對存儲器(110)的寫操作。寫組件112還可以進一步包含第二寫入器104,其也與第一存儲組件108協(xié)作,以存儲一個標記,以唯一地索引將由第一奇偶校驗寫操作寫入的模式,然后該寫入器執(zhí)行對存儲器110的寫操作。在對存儲器非原子寫操作的情況下,數(shù)據(jù)和奇偶校驗可以如并行寫操作114所示的那樣并行地寫入。在必須保持原子性的寫操作的情況下,有效地分解組件112以提供兩個獨立的寫入器102、104,并且將并行寫組件112中所示的寫操作分解為串行化的寫操作對,即第一個為數(shù)據(jù)、第二個為第一奇偶校驗(應(yīng)當(dāng)指出,第二奇偶校驗寫操作也必須被串行化)。
第三寫入器106與存儲組件108協(xié)作,以利用至少另一個標記來覆寫存儲器中的標記,以唯一地索引將由第二奇偶校驗寫操作寫入的模式,然后將該奇偶校驗寫入存儲器110。
存儲在存儲組件108即NVRAM中的信息是正被寫入的模式的索引(0至該模式依該陣列被重復(fù)的次數(shù));正被寫入的數(shù)據(jù)條帶的索引(對于4磁盤陣列為0至3);以及當(dāng)前正執(zhí)行的寫操作的索引(對于雙倍冗余陣列上面標注的#0至#2)。
第二和第三項唯一地標識該模式內(nèi)哪一條帶正被寫入。存在表示該信息的可選方法,例如包括但不限于在模式內(nèi)使用X-Y坐標。對數(shù)據(jù)處理領(lǐng)域的技術(shù)人員而言,明顯的是,存在多種可選表示法。
這意味著存儲在NVRAM中的數(shù)據(jù)在每次寫操作之前便被改變。上述NVRAM標記的使用包括對上述算法增加以下步驟6A.將NVRAM設(shè)置為{模式P,數(shù)據(jù)B,寫操作0}7.將B’寫在B之上7A.將NVRAM設(shè)置為{模式P,數(shù)據(jù)B,寫操作1}8.寫入第一新奇偶校驗,B’xor D8A.將NVRAM設(shè)置為{模式P,數(shù)據(jù)B,寫操作2}9.寫入第二新奇偶校驗,A xor B’9A.擦除NVRAM標記。
在有一個以上的適配器/控制器共享該陣列的環(huán)境中,NVRAM標記的值必須在所有適配器/控制器上改變。
轉(zhuǎn)到圖3,其示出了根據(jù)本發(fā)明優(yōu)選實施例的方法步驟的流程圖。
在步驟202,將標記寫入NVRAM以存儲用于該數(shù)據(jù)寫操作的模式索引、條帶索引和寫操作索引。在步驟204,寫入數(shù)據(jù)。在步驟206,將標記寫入NVRAM以存儲用于第一奇偶校驗寫操作的模式索引、條帶索引和寫操作索引。在步驟208,寫入第一奇偶校驗。在非原子更新的情況下,這些寫操作可以并行發(fā)生。否則,它們必須串行化,并且,第二奇偶校驗寫操作(下面將討論)也必須串行化。
在步驟210,將標記寫入NVRAM以存儲用于第二奇偶校驗寫操作的模式索引、條帶索引和寫操作索引。在步驟212,寫入第二奇偶校驗。在步驟214,NVRAM被無效。
如果在任意點子系統(tǒng)掉電或者適配器/控制器復(fù)位,而無磁盤故障,則能夠容易地使模式重新同步。
如果存在磁盤故障,且該磁盤包含在復(fù)位時正被寫入的數(shù)據(jù)或奇偶校驗條帶,則由于其余磁盤上的所有條帶都已經(jīng)同步,所以該模式可以被重新同步。
如果存在磁盤故障并且該磁盤是與包含在復(fù)位時正被寫入的數(shù)據(jù)或奇偶校驗條帶的磁盤不同的磁盤,那么可以如下地使模式重新同步1.如果NVRAM指示“寫操作0”,則類似于這樣的情形,即其中兩個磁盤已經(jīng)故障—一個已經(jīng)真正故障,而一個包含正被寫入的數(shù)據(jù)條帶。由于該模式是多倍冗余的,所以所有數(shù)據(jù)都能夠重建,將該模式返回到該寫操作開始之前的狀態(tài)。
2.如果NVRAM指示“寫操作2”,則類似于這樣的情形,即其中兩個磁盤已經(jīng)故障—一個已經(jīng)真正故障,而一個包含第二奇偶校驗條帶。由于該模式是多倍冗余的,所以所有數(shù)據(jù)都能夠重建,完成被中斷的該寫操作。
3.如果NVRAM指示“寫操作1”,則存在三種情況A)故障的磁盤包含在“寫操作0”期間被寫入的數(shù)據(jù)條帶。
這與兩個磁盤故障—已經(jīng)真正故障的磁盤和包含“寫操作1”數(shù)據(jù)的磁盤情況相同。
該模式的冗余保證所有數(shù)據(jù)都能夠被重建,將該模式返回到該寫操作開始之前所處的狀態(tài)。
B)故障的磁盤包含在“寫操作2”期間要被寫入的第二奇偶校驗條帶。
這與兩個磁盤故障—已經(jīng)真正故障的磁盤和包含“寫操作1”數(shù)據(jù)的磁盤情況相同。
該模式的冗余保證所有數(shù)據(jù)都能夠被重建,完成被中斷的寫操作。
C)故障的磁盤是一個不同的磁盤。
故障的磁盤上的數(shù)據(jù)條帶總是可以被重建,并且重新同步該模式以完成被中斷的寫操作。
故障的磁盤上的每一數(shù)據(jù)條帶具有兩個奇偶校驗條帶。這兩者都不在故障的磁盤上。
這些奇偶校驗條帶中至多有一個被與在“寫操作0”期間寫入的數(shù)據(jù)條帶共享,因此總是存在至少一種重建該數(shù)據(jù)條帶的途徑。
本發(fā)明的第一優(yōu)選實施例要求,盡管可以并行地發(fā)出各種讀命令,但是必須順序地發(fā)出三個寫命令—直到寫操作#1已經(jīng)完成時才開始寫操作#2等等。
這一實施例的一個缺點在于,三個磁盤寫操作是串行的,意味著發(fā)送到該陣列的寫操作將比使用NVS方案對相同陣列的寫操作花費更長的時間,在NVS方案中這三個磁盤寫操作可以并行發(fā)出。
如果RAID陣列在快速寫高速緩存之后,因此至少部分地與主機響應(yīng)時間隔離,那么這種情況可以稍微得到緩解。
緩解這一缺點的其它可能方法是,在步驟8A之后,通過向主機寫I/O發(fā)出成功完成的信號—這相當(dāng)于常常應(yīng)用到RAID-5的公知“延遲奇偶校驗更新”技術(shù)。
在本發(fā)明的第二實施例中,除非應(yīng)用要求這樣的附加屬性,即對RAID陣列的寫操作是原子的,否則串行化是不必要的。如果對于被中斷的寫操作而言以新數(shù)據(jù)和舊數(shù)據(jù)之間的轉(zhuǎn)換來結(jié)束是可以接受的,那么可以在第一NVRAM標記下發(fā)生前兩個寫操作,然后可以在第二NVRAM標記下發(fā)生一個寫操作。
例如,考慮對圖1的數(shù)據(jù)A的更新的步驟1.完成所有的讀操作并計算要寫入的新奇偶校驗2.建立指示A和A xor B正被更新的NVRAM標記3.并行寫入A和A xor B4.當(dāng)兩個寫操作都完成時,建立指示A xor C正被更新的NVRAM標記5.寫入A xor C6.清除NVRAM標記因此,如果在并行寫操作步驟號3期間發(fā)生控制器復(fù)位和磁盤故障,那么情況是1.磁盤1丟失?!癇”、“C”和“D”保留,而“C”和“A xor C”可以用于重建“A”的舊版本。
2.磁盤2丟失?!癈”、“D”以及“A”的部分更新版本保留,而“D”和“B xor D”可以用于重建“B”。如果需要,“C”和“A xor C”可以用于重建“A”的舊版本。
3.磁盤3丟失?!癇”、“D”以及“A”的部分更新版本保留。而“D”和“C xor D”可以用于重建“C”。根據(jù)需要,“C”和“A xor C”可以用于重建“A”的舊版本。
4.磁盤4丟失?!癇”、“C”以及“A”的部分更新版本保留。而“B”和“B xor D”可以用于重建“D”。無法重建“A”的舊或新版本。
這種串行化的減少是需要的,因為這將在陣列寫操作上的執(zhí)行時間降低到接近于當(dāng)前RADI-5陣列的執(zhí)行時間。
為了將第二優(yōu)選實施例擴展到具有多個冗余的陣列,數(shù)據(jù)寫操作必須與第一奇偶校驗更新并行進行,但是隨后的奇偶校驗更新必須串行化。
然而,使得寫操作是原子性的—正如在包括三個順序?qū)懖僮鞯牡谝粌?yōu)選實施例中那樣—對于使用不保證可以讀出被中斷的寫操作的磁盤驅(qū)動器(例如,具有4KB扇區(qū)大小的驅(qū)動器,其允許子扇區(qū)進行寫操作而無需使用非易失性存儲器)來說,是期望的。
應(yīng)當(dāng)理解的是,上述方法通常將在運行在一個或多個處理器(未示出)上的軟件中執(zhí)行,并且該軟件可以作為在承載在諸如磁或光計算機磁盤的任何適合的載體(也未示出)上的計算機程序組件來提供。用于傳送數(shù)據(jù)的信道同樣可以包括所有描述的存儲介質(zhì),以及諸如有線或者無線信號介質(zhì)的信號承載介質(zhì)。
本發(fā)明可以適宜地體現(xiàn)為用于計算機系統(tǒng)使用的計算機程序產(chǎn)品。這種實現(xiàn)可以包括一系列計算機可讀指令,這些指令或者固定在有形介質(zhì)(諸如磁盤、CD-ROM、ROM、或者硬盤的計算機可讀介質(zhì))上,或者可經(jīng)由調(diào)制解調(diào)器或者其它接口設(shè)備通過有形介質(zhì)(包括但不限于光或者模擬通信線路)、或者無形地使用無線技術(shù)(包括但不限于微波、紅外線、或者其它傳輸技術(shù))傳送到計算機系統(tǒng)。這一系列的計算機可讀指令包括先前描述的全部或部分功能。
本領(lǐng)域技術(shù)人員將理解,這種計算機可讀指令可以多種用于眾多計算機體系結(jié)構(gòu)或操作系統(tǒng)的程序設(shè)計語言來編寫。此外,這種指令可以使用目前或?qū)淼娜魏未鎯夹g(shù)(包括但不限于半導(dǎo)體、磁或光技術(shù))來存儲,或者使用目前或者將來的任何通信技術(shù)(包括但不限于光、紅外、或者微波技術(shù))來傳送??梢灶A(yù)期的是,這樣的計算機程序產(chǎn)品可以作為帶有隨附的打印或電子文檔的可移動介質(zhì)(例如,緊縮套裝軟件)來發(fā)布,利用計算機系統(tǒng)預(yù)加載(例如在系統(tǒng)ROM或者固定磁盤上),或者從服務(wù)器或者電子公告板通過網(wǎng)絡(luò)(諸如因特網(wǎng)或者萬維網(wǎng))來發(fā)布。
應(yīng)當(dāng)理解的是,對本領(lǐng)域的普通技術(shù)人員而言,上述實施例的各種修改是顯而易見的。
權(quán)利要求
1.一種用于將數(shù)據(jù)和奇偶校驗寫入多倍冗余存儲器的裝置,包括第一存儲組件,其可操作地將至少第一標記存儲在存儲設(shè)備中,以唯一地索引將由至少數(shù)據(jù)寫操作寫入的模式;寫組件,其可操作地執(zhí)行所述至少數(shù)據(jù)寫操作;另一存儲組件,其可操作地利用至少另一標記覆寫所述存儲設(shè)備中的標記,以唯一地索引將由奇偶校驗寫操作寫入的模式;以及另一寫組件,其可操作地執(zhí)行所述奇偶校驗寫操作。
2.如權(quán)利要求1所述的裝置,其中所述第一存儲組件進一步包括第二存儲組件,其可操作地利用第二標記覆寫所述存儲設(shè)備中的所述至少第一標記,以索引將由第一奇偶校驗寫操作寫入的模式;以及所述寫組件進一步可操作地執(zhí)行所述第一奇偶校驗寫操作。
3.如權(quán)利要求1或2所述的裝置,具有大于雙倍的冗余。
4.如權(quán)利要求2所述的裝置,適用于將每一數(shù)據(jù)和奇偶校驗寫操作串行化。
5.一種用于將數(shù)據(jù)和奇偶校驗安全地寫入多倍冗余存儲器的方法,包括將至少第一標記存儲在存儲設(shè)備中,以唯一地索引將由至少數(shù)據(jù)寫操作寫入的模式;執(zhí)行所述至少數(shù)據(jù)寫操作;利用至少另一標記覆寫所述存儲設(shè)備中的標記,以唯一地索引將由奇偶校驗寫操作寫入的模式;以及執(zhí)行所述奇偶校驗寫操作。
6.如權(quán)利要求5所述的方法,其中所述將至少第一標記存儲在存儲設(shè)備中,以唯一地索引將由至少數(shù)據(jù)寫操作寫入的模式的步驟進一步包括利用第二標記覆寫所述存儲設(shè)備中的所述至少第一標記,以索引將由第一奇偶校驗寫操作寫入的模式;以及所述執(zhí)行所述至少數(shù)據(jù)寫操作的步驟包括執(zhí)行所述第一奇偶校驗寫操作。
7.如權(quán)利要求10或11所述的方法,其中上述多倍冗余存儲器具有大于雙倍的冗余。
8.如權(quán)利要求10至13中任一項所述的方法,其中包括執(zhí)行寫操作的所有步驟是串行化的。
9.如權(quán)利要求10至14中任一項所述的方法,其中所述多倍冗余存儲器包括RAID存儲器。
10.一種計算機程序,包括在有形介質(zhì)中包含的計算機程序代碼,當(dāng)該計算機程序被加載到計算機系統(tǒng)中并在其上執(zhí)行時,其執(zhí)行如權(quán)利要求5至9中任一項所述的方法的所有步驟。
全文摘要
本發(fā)明提供了一種用于將數(shù)據(jù)和奇偶校驗安全地寫入多倍冗余存儲器的裝置,包括第一存儲組件,其可操作地將至少第一標記存儲在存儲設(shè)備中,以唯一地索引將由至少數(shù)據(jù)寫操作寫入的模式;寫組件,其可操作地執(zhí)行該至少數(shù)據(jù)寫操作;另一存儲組件,其可操作地利用至少另一標記覆寫該存儲設(shè)備中的標記,以唯一地索引將由奇偶校驗寫操作寫入的模式;以及另一寫組件,其可操作地執(zhí)行該奇偶校驗寫操作。優(yōu)選地,第一存儲組件包括第二存儲組件,其可操作地利用第二標記覆寫所述存儲設(shè)備中的所述至少第一標記,以索引將由第一奇偶校驗寫操作寫入的模式;以及寫組件進一步可操作地執(zhí)行第一奇偶校驗寫操作。
文檔編號G06F3/06GK1791863SQ200480013513
公開日2006年6月21日 申請日期2004年6月17日 優(yōu)先權(quán)日2003年6月28日
發(fā)明者M·J·費爾赫斯特, I·D·賈德, W·J·斯凱爾斯 申請人:國際商業(yè)機器公司