專利名稱:具有級(jí)聯(lián)的拷貝目標(biāo)和增強(qiáng)的完整性的存儲(chǔ)系統(tǒng)及其操作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)系統(tǒng)領(lǐng)域,并且更具體地涉及提供FlashCopy(R)功能或等同物的高級(jí)功能存儲(chǔ)系統(tǒng)(FlashCopy是國際商業(yè)機(jī)器公司的注冊商標(biāo))。
背景技術(shù):
在計(jì)算機(jī)存儲(chǔ)系統(tǒng)領(lǐng)域,存在著對(duì)被描述為“高級(jí)功能”的逐漸增加的需求。這種功能超出了傳統(tǒng)存儲(chǔ)控制器系統(tǒng)的簡單I/O功能。高級(jí)功能在本領(lǐng)域中是公知的,并且取決于對(duì)元數(shù)據(jù)的控制,所述元數(shù)據(jù)用于保持關(guān)于存儲(chǔ)在該系統(tǒng)內(nèi)的真實(shí)或“用戶”數(shù)據(jù)的狀態(tài)數(shù)據(jù)。使用高級(jí)功能可獲得的操作使得能夠快速地對(duì)數(shù)據(jù)的虛擬映像施用各種活動(dòng),同時(shí)留下真實(shí)數(shù)據(jù)可供用戶應(yīng)用使用。這樣一種公知的高級(jí)功能是FlashCopy。
在最高層次,F(xiàn)lashCopy是這樣一種功能,其中“某些數(shù)據(jù)”的第二映像成為是可用的。某些時(shí)候該功能在其他系統(tǒng)環(huán)境中稱為時(shí)點(diǎn)拷貝或T0拷貝。第二映像的內(nèi)容最初與第一映像的內(nèi)容相同。第二映像“立即”成為是可用的。實(shí)際上這意味著以遠(yuǎn)少于創(chuàng)建真正的、單獨(dú)的物理拷貝所需時(shí)間使第二映像成為是可用的,并且意味著可以建立它而不給正在進(jìn)行使用的應(yīng)用的操作帶來不可接受的破壞。一旦建立,第二拷貝可以用于多個(gè)目的,包括執(zhí)行備份、系統(tǒng)試用和數(shù)據(jù)挖掘。最初進(jìn)行使用的應(yīng)用繼續(xù)以其最初目的使用第一拷貝。
FlashCopy的實(shí)現(xiàn)通過將被編址為第二映像(此后稱為目標(biāo))的讀I/O重定向到原始映像(此后稱為源)實(shí)現(xiàn)第二映像存在的假象,除非該區(qū)域已經(jīng)經(jīng)歷了寫。在區(qū)域已成為寫的對(duì)象的情況下(或是向源或是向目標(biāo)),為了保持源和目標(biāo)兩者擁有它們自己的數(shù)據(jù)拷貝的假象,調(diào)用一個(gè)處理,該處理掛起該寫命令的操作,不使其產(chǎn)生作用,發(fā)出從源讀受影響的區(qū)域的命令,將讀出的數(shù)據(jù)以寫應(yīng)用到目標(biāo)上,然后(并且僅當(dāng)所有步驟成功時(shí))釋放掛起的寫。不需要掛起對(duì)同一區(qū)域的后續(xù)寫,因?yàn)槟繕?biāo)已經(jīng)具有了其自己的數(shù)據(jù)拷貝。這種寫入時(shí)拷貝的技術(shù)是公知的,并且用于許多環(huán)境。所有的FlashCopy實(shí)現(xiàn)都依賴于管理上述討論的決定,即,將在目標(biāo)處接收的讀發(fā)送到源還是目標(biāo)的決定以及是否必須掛起寫以允許進(jìn)行寫入時(shí)拷貝的決定的數(shù)據(jù)結(jié)構(gòu)。與那些沒有被拷貝的數(shù)據(jù)區(qū)域或顆粒(grain)不同,該數(shù)據(jù)結(jié)構(gòu)實(shí)質(zhì)上追蹤從源拷貝到目標(biāo)的數(shù)據(jù)區(qū)域或顆粒。在其最簡單的形式中,以位圖形式保持這種數(shù)據(jù)結(jié)構(gòu),所述位圖示出已寫了哪些顆粒,以及寫活動(dòng)未觸及哪些顆粒。
某些存儲(chǔ)控制器允許用戶為給定源配置多于一個(gè)目標(biāo)。這具有多種應(yīng)用。例如,可對(duì)每個(gè)目標(biāo)進(jìn)行不同的實(shí)驗(yàn)??稍诓煌瑫r(shí)間(例如,一周內(nèi)的不同天)采用所述目標(biāo),并且允許歷史地訪問盤,這或許是出于從某種數(shù)據(jù)損壞(諸如可能由病毒引起的)中恢復(fù)的目的。通過如圖1中所示那樣配置盤,現(xiàn)有的多目標(biāo)FlashCopy實(shí)現(xiàn)擴(kuò)展了FlashCopy算法,在圖1中A是源邏輯單元,并且B和C示出在過去某一時(shí)間采用的兩個(gè)目標(biāo)??梢愿翧,B和C中的每一個(gè)。箭頭示出了仍然直接依賴源邏輯單元的顆粒(盤的固定大小的區(qū)域)。這些顆粒在追蹤每個(gè)FlashCopy的進(jìn)展的位圖中具有相應(yīng)的位“0b”。這種傳統(tǒng)算法簡單地并行布置多個(gè)目標(biāo),并且依次在每個(gè)映射上運(yùn)行原始的FlashCopy算法。這具有缺點(diǎn),即,對(duì)源中顆粒的寫可能分裂多個(gè)顆粒(每個(gè)關(guān)系中一個(gè))。上述例子中最后的顆粒就是一個(gè)。這引起額外的處理和延遲,并且可能限制多FlashCopy布置的可伸縮性,并且因此限制其可用性。
可以提供這樣一種布置,其中以級(jí)聯(lián)方式構(gòu)造FlashCopy映射然后運(yùn)行,以確保將任意主機(jī)I/O所需的寫的數(shù)目限制為2,而不論級(jí)聯(lián)中目標(biāo)盤的數(shù)目如何。然而,這種布置不允許這樣的情況,其中一組級(jí)聯(lián)關(guān)系被級(jí)聯(lián)中某處的盤故障(或其他盤離線情況)破壞。因此,級(jí)聯(lián)的FlashCopy目標(biāo)劣于傳統(tǒng)方案的一個(gè)方面是級(jí)聯(lián)的目標(biāo)上的數(shù)據(jù)依賴級(jí)聯(lián)上的所有盤-不是如同傳統(tǒng)方案中那樣僅依賴源。如果源盤成為是不可訪問的(盤故障或離線),有理由認(rèn)為目標(biāo)盤將成為是不可訪問的。然而,如果目標(biāo)盤成為是不可訪問的(盤故障或離線),級(jí)聯(lián)中所有其他盤都將成為是不可訪問的是不合理的,因?yàn)檫@與用戶對(duì)進(jìn)行的拷貝的想法相反。
對(duì)上述方案的另一種精心改進(jìn)提供了具有控制組件(可以硬件,軟件或它們的組合實(shí)現(xiàn)控制組件)的存儲(chǔ)控制器,其能夠采用基于規(guī)則的邏輯,以提供這樣的系統(tǒng),其中可將級(jí)聯(lián)劃分為多個(gè)序列,并且其中來自源的原始數(shù)據(jù)被優(yōu)先級(jí)聯(lián),以試圖確保在每個(gè)序列的至少一個(gè)成員內(nèi)保留原始數(shù)據(jù)的一個(gè)拷貝。
使用這種精心改進(jìn)的技術(shù),如果從級(jí)聯(lián)的源盤上刪除數(shù)據(jù),在大多數(shù)情況下,該數(shù)據(jù)將保持在多個(gè)下游盤上。數(shù)據(jù)的拷貝數(shù)目(N)可從N=2到(級(jí)聯(lián)中盤的數(shù)目-1)的范圍內(nèi)選擇。以這種方式,可以保證如果級(jí)聯(lián)中多至N-1個(gè)盤(除了級(jí)聯(lián)的源,它被不同地對(duì)待)成為是不可訪問的,可以從其他盤提取出級(jí)聯(lián)的所有盤的數(shù)據(jù)。當(dāng)盤成為不可訪問時(shí),激活恢復(fù)程序以確保數(shù)據(jù)的多個(gè)拷貝保持在級(jí)聯(lián)內(nèi)的剩余盤上。因此,如果沒有快速地連續(xù)出現(xiàn)太多故障,級(jí)聯(lián)仍可以應(yīng)付盤故障。
出現(xiàn)了一個(gè)問題,即如果盤成為不可訪問,即使是短時(shí)間的,必須將它從級(jí)聯(lián)中取出。在其成為不可訪問時(shí)該盤可能是完整的。然而,鏈中的其余部分可能上移,因?yàn)閷?duì)鏈中其他盤的寫可能引起任意給定顆粒的原始數(shù)據(jù)將鏈下移,因此從級(jí)聯(lián)的剩余部分的角度看離線盤上保持的數(shù)據(jù)現(xiàn)在是冗余的。
發(fā)明內(nèi)容
因此,本發(fā)明在第一個(gè)方面提供了一種可與主計(jì)算機(jī)裝置以及多個(gè)被控制的存儲(chǔ)裝置共同操作的存儲(chǔ)控制器,并且包括主機(jī)寫組件,其可以操作以便將數(shù)據(jù)對(duì)象寫到所述多個(gè)被控制的存儲(chǔ)裝置中的一個(gè)處的源數(shù)據(jù)映像;拷貝組件,其對(duì)元數(shù)據(jù)狀態(tài)做出響應(yīng),并且可以操作以控制所述數(shù)據(jù)對(duì)象到所述多個(gè)被控制的存儲(chǔ)裝置處的級(jí)聯(lián)內(nèi)的數(shù)據(jù)映像定界序列中的目標(biāo)數(shù)據(jù)映像的拷貝;以及代替組件,其響應(yīng)對(duì)包含所述目標(biāo)數(shù)據(jù)映像的盤的離線狀態(tài)的檢測,并且可以操作以控制代替包含所述目標(biāo)數(shù)據(jù)映像的所述盤的代替盤的替代。
優(yōu)選地,所述存儲(chǔ)控制器結(jié)合在存儲(chǔ)網(wǎng)絡(luò)內(nèi)。
優(yōu)選地,所述存儲(chǔ)網(wǎng)絡(luò)是存儲(chǔ)區(qū)域網(wǎng)絡(luò)。
優(yōu)選地,所述第一和第二拷貝組件中的至少一個(gè)位于通信網(wǎng)絡(luò)的不同節(jié)點(diǎn)處。
優(yōu)選地,所述第一和第二拷貝組件中的至少一個(gè)位于通信網(wǎng)絡(luò)的不同節(jié)點(diǎn)處。
優(yōu)選地,所述第一和所述第二拷貝組件以及另外的拷貝組件中的至少一個(gè)位于通信網(wǎng)絡(luò)的不同節(jié)點(diǎn)處。
在第二個(gè)方面,本發(fā)明提供了一種操作可與主計(jì)算機(jī)裝置以及多個(gè)被控制的存儲(chǔ)裝置共同操作的存儲(chǔ)控制器的方法,并且包括如下步驟由主機(jī)寫組件將數(shù)據(jù)對(duì)象寫到所述多個(gè)被控制的存儲(chǔ)裝置中的一個(gè)處的源數(shù)據(jù)映像;由響應(yīng)元數(shù)據(jù)狀態(tài)的拷貝組件控制所述數(shù)據(jù)對(duì)象拷貝到所述多個(gè)被控制的存儲(chǔ)裝置處的級(jí)聯(lián)中的數(shù)據(jù)映像定界序列內(nèi)的目標(biāo)數(shù)據(jù)映像的拷貝;響應(yīng)對(duì)包含所述目標(biāo)數(shù)據(jù)映像的盤的離線狀態(tài)的檢測,由代替組件控制代替包含所述目標(biāo)數(shù)據(jù)映像的所述盤的代替盤的替代。
優(yōu)選地,所述存儲(chǔ)控制器結(jié)合在存儲(chǔ)網(wǎng)絡(luò)內(nèi)。
優(yōu)選地,所述存儲(chǔ)網(wǎng)絡(luò)是存儲(chǔ)區(qū)域網(wǎng)絡(luò)。
優(yōu)選地,所述第一和第二拷貝組件中的至少一個(gè)位于通信網(wǎng)絡(luò)的不同節(jié)點(diǎn)處。
優(yōu)選地,所述第一和第二拷貝組件以及另外的拷貝組件中的至少一個(gè)位于通信網(wǎng)絡(luò)的不同節(jié)點(diǎn)處。
在第三個(gè)方面,本發(fā)明提供了一種包括計(jì)算機(jī)程序代碼的計(jì)算機(jī)程序,當(dāng)裝入計(jì)算機(jī)系統(tǒng)并在其上執(zhí)行時(shí),使得所述計(jì)算機(jī)執(zhí)行根據(jù)所述第二方面的方法的步驟。
本發(fā)明的優(yōu)選實(shí)施例提供代替盤。優(yōu)選地,這是與級(jí)聯(lián)中其他盤大小相同的盤。當(dāng)級(jí)聯(lián)中的一個(gè)盤成為不可訪問時(shí),保持在其上的數(shù)據(jù)的映像仍然可用。因此使用代替盤,可以保持如果級(jí)聯(lián)中的該盤在線將會(huì)經(jīng)歷的變化的記錄。如果離線盤不包含新的顧客數(shù)據(jù),代替盤可以最終替換它。這可通過在代替盤上運(yùn)行后臺(tái)拷貝實(shí)現(xiàn),代替盤從級(jí)聯(lián)中其他的拷貝得到離線盤上保持的所有原始數(shù)據(jù)。如果離線盤在代替盤成為最新狀態(tài)之前再次成為可訪問的,可以使用與代替盤相關(guān)的位圖使其成為最新狀態(tài)。在一個(gè)實(shí)施例中,將在該行動(dòng)過程中向離線盤的客戶寫重定向到代替盤,而在另一種方案中,以失敗將它們返回客戶。
因此,在優(yōu)選實(shí)施例中,僅在已經(jīng)發(fā)生了FlashCopy之后客戶數(shù)據(jù)已被寫到離線盤并且離線盤不能回到在線的情況下,對(duì)盤和級(jí)聯(lián)中盤的位置的訪問才會(huì)丟失。
現(xiàn)在將參考附圖,僅以示例的方式說明本發(fā)明的優(yōu)選實(shí)施例,其中圖1示出了具有多個(gè)并行目標(biāo)的現(xiàn)有技術(shù)的數(shù)據(jù)布置;圖2a是一個(gè)示意圖,示出了一種可以結(jié)合級(jí)聯(lián)布置的存儲(chǔ)控制器結(jié)構(gòu);圖2b是一個(gè)流程圖,示出了操作存儲(chǔ)控制器以控制FlashCopy級(jí)聯(lián)的方法;圖3a到3b以簡化的方式示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例,盤的示例布置的關(guān)系。
具體實(shí)施例方式
在圖1中示出了具有多個(gè)并行目標(biāo)的現(xiàn)有技術(shù)的數(shù)據(jù)布置。在一種可供選擇的方案中,可以提供一種系統(tǒng)、方法或計(jì)算機(jī)程序,其中限制主機(jī)的I/O活動(dòng),而且不需主機(jī)干預(yù)將數(shù)據(jù)的級(jí)聯(lián)拷貝傳播到其他目標(biāo)。
現(xiàn)在轉(zhuǎn)到圖2a,示出了可以在其中實(shí)現(xiàn)FlashCopy級(jí)聯(lián)的存儲(chǔ)控制器的簡化示意圖。
在圖2a中示出了可以與主計(jì)算機(jī)裝置102以及多個(gè)被控制的存儲(chǔ)裝置104,106,1040,1060共同操作的存儲(chǔ)控制器100,并且包括主機(jī)寫組件108,其可以操作以便將數(shù)據(jù)對(duì)象110寫到所述多個(gè)被控制的存儲(chǔ)裝置104,106,1040,1060中的一個(gè)處的源數(shù)據(jù)映像112;第一拷貝組件114,其對(duì)第一元數(shù)據(jù)狀態(tài)做出響應(yīng),并且可以操作以便控制所述數(shù)據(jù)對(duì)象110到所述多個(gè)被控制的存儲(chǔ)裝置104,106,1040,1060中的一個(gè)處的第一目標(biāo)數(shù)據(jù)映像116的拷貝;第二拷貝組件118,其對(duì)第二元數(shù)據(jù)狀態(tài)做出響應(yīng),并且可以操作以便執(zhí)行下面中的一個(gè)控制所述數(shù)據(jù)對(duì)象110到所述多個(gè)被控制的存儲(chǔ)裝置104,106,1040,1060中的一個(gè)處的第二目標(biāo)數(shù)據(jù)映像120的拷貝;以及使所述第一拷貝組件114執(zhí)行將所述第二目標(biāo)數(shù)據(jù)映像120拷貝到所述第一目標(biāo)數(shù)據(jù)映像116。
所述控制拷貝和執(zhí)行拷貝獨(dú)立于主計(jì)算機(jī)裝置102和主機(jī)寫組件108;第三拷貝組件122,其可以操作以便獨(dú)立于主計(jì)算機(jī)裝置102,主機(jī)寫組件108,第一和第二拷貝組件114,118,控制數(shù)據(jù)對(duì)象110到所述多個(gè)被控制的存儲(chǔ)裝置104,106,1040,1060中的一個(gè)處的第三目標(biāo)數(shù)據(jù)映像124的級(jí)聯(lián)拷貝。
第二和所述第三拷貝組件114,122中的一個(gè)可以操作,以便響應(yīng)指示第二和第三目標(biāo)數(shù)據(jù)映像120,124中的一個(gè)的數(shù)據(jù)顆粒的流通的第三元數(shù)據(jù)狀態(tài),控制數(shù)據(jù)映像的定界序列的級(jí)聯(lián)拷貝。
因此存儲(chǔ)控制器的拷貝組件(114,118,122)響應(yīng)元數(shù)據(jù)狀態(tài),并且可以操作以控制數(shù)據(jù)對(duì)象到被控制的存儲(chǔ)裝置106,1040,1060處的級(jí)聯(lián)中的數(shù)據(jù)映像的定界序列內(nèi)的目標(biāo)數(shù)據(jù)對(duì)象的拷貝。存儲(chǔ)控制器的拷貝組件(114,118,122)與代替組件126通信,代替組件126對(duì)包含目標(biāo)數(shù)據(jù)映像的盤的離線狀態(tài)做出響應(yīng),并且可以操作以控制代替包含目標(biāo)數(shù)據(jù)映像的盤的代替盤的替代。
在圖2b中示出了一個(gè)流程圖,示出了用于操作可以與主計(jì)算機(jī)裝置以及多個(gè)被控制的存儲(chǔ)裝置共同操作的存儲(chǔ)控制器的方法。
在步驟202,主機(jī)寫組件將數(shù)據(jù)對(duì)象寫到多個(gè)被控制的存儲(chǔ)裝置中的一個(gè)處的源數(shù)據(jù)映像。在步驟204,第一拷貝組件測試一個(gè)元數(shù)據(jù)狀態(tài),并且響應(yīng)該元數(shù)據(jù)狀態(tài),在步驟206將該數(shù)據(jù)對(duì)象拷貝到所述多個(gè)被控制的存儲(chǔ)裝置中的一個(gè)處的第一目標(biāo)數(shù)據(jù)映像。在步驟208,第二拷貝組件測試第二元數(shù)據(jù)狀態(tài),并且響應(yīng)第二元數(shù)據(jù)狀態(tài),或是在步驟210執(zhí)行將所述數(shù)據(jù)對(duì)象拷貝到所述多個(gè)被控制的存儲(chǔ)裝置中的一個(gè)處的第二目標(biāo)數(shù)據(jù)映像的步驟,或是在步驟212使第一拷貝組件執(zhí)行將第二目標(biāo)數(shù)據(jù)映像拷貝到第一目標(biāo)數(shù)據(jù)映像。
在圖2b的流程圖所示的本發(fā)明的示例實(shí)施例中,由響應(yīng)元數(shù)據(jù)狀態(tài)的拷貝組件控制所述數(shù)據(jù)對(duì)象到所述多個(gè)被控制的存儲(chǔ)裝置處的級(jí)聯(lián)中的數(shù)據(jù)映像的定界序列內(nèi)的目標(biāo)數(shù)據(jù)映像的拷貝的步驟經(jīng)歷介于其間的測試和設(shè)置步驟2082,2084。
如果在步驟2082,檢測到包含目標(biāo)數(shù)據(jù)映像的盤的離線狀態(tài),代替組件在步驟2084引起代替包含目標(biāo)數(shù)據(jù)映像的盤的代替盤的替代。如果在步驟2082沒有檢測到這種狀態(tài),在步驟2084,根據(jù)在本說明的范圍之外的實(shí)現(xiàn)因素,將目標(biāo)ID或是設(shè)置為原始值或是保持為原始值。
測試和執(zhí)行拷貝的步驟獨(dú)立于主計(jì)算機(jī)裝置和主機(jī)寫組件。在步驟214,第三拷貝組件獨(dú)立于主計(jì)算機(jī)裝置,主機(jī)寫組件以及第一和第二拷貝組件,控制數(shù)據(jù)對(duì)象到所述多個(gè)被控制的存儲(chǔ)裝置中的一個(gè)處的第三目標(biāo)數(shù)據(jù)映像的拷貝;并且第二和所述第三拷貝組件中的一個(gè)可以操作,以便響應(yīng)步驟216的指示第二和第三目標(biāo)數(shù)據(jù)映像中的一個(gè)的數(shù)據(jù)顆粒的流通的第三元數(shù)據(jù)狀態(tài)測試,控制步驟218的數(shù)據(jù)映像的定界序列的級(jí)聯(lián)拷貝。
圖3a中示出了級(jí)聯(lián)中的盤SRC,A和TGT的示例序列,其中A和TGT包含來自SRC的數(shù)據(jù)的級(jí)聯(lián)中的下游拷貝。圖3b示出了響應(yīng)示例盤A的故障,將盤F替代到級(jí)聯(lián)中。
下面將更詳細(xì)地描述結(jié)構(gòu)和技術(shù),通過使用這些結(jié)構(gòu)和技術(shù)可以保持級(jí)聯(lián)中原始數(shù)據(jù)的所需拷貝,并且能夠如上所述在盤故障期間繼續(xù)使用級(jí)聯(lián)。
在描述這些結(jié)構(gòu)和技術(shù)之前,需要解釋“顆粒序列”的概念。一個(gè)顆粒序列是在特定時(shí)間點(diǎn)與同一原始數(shù)據(jù)相關(guān)的連續(xù)盤上的一系列顆粒。
解釋具有多個(gè)序列的級(jí)聯(lián)的操作需要考慮在任意時(shí)間點(diǎn)可位于級(jí)聯(lián)內(nèi)的盤上的數(shù)據(jù)的類型。有四種感興趣的數(shù)據(jù)類型1)空白數(shù)據(jù)(BD)在FlashCopy開始之前存在于目標(biāo)盤上的數(shù)據(jù)。
2)原始數(shù)據(jù)(OD)在FlashCopy開始時(shí)存在于源盤上的數(shù)據(jù)。
3)新數(shù)據(jù)(ND)在開始FlashCopy之后被寫到級(jí)聯(lián)內(nèi)的盤的數(shù)據(jù)。
4)定界數(shù)據(jù)(DD)原始數(shù)據(jù)的最上游的出現(xiàn)。
數(shù)據(jù)可以被分為四種類型的事實(shí)意味著可用2個(gè)位表示每個(gè)顆粒。因此,級(jí)聯(lián)中的每個(gè)虛擬盤僅需要2個(gè)位圖。實(shí)際上,對(duì)于源盤數(shù)據(jù)僅可能是DD或ND,并且因此僅需要1個(gè)位圖或甚至根本不需要位圖,因?yàn)榭蓮哪繕?biāo)盤推導(dǎo)出源盤的狀態(tài)。
對(duì)級(jí)聯(lián)的FlashCopy的規(guī)則的附加規(guī)則如下A1)當(dāng)在級(jí)聯(lián)中啟動(dòng)新的盤序列時(shí),將源上的所有顆粒設(shè)置為DD。
A2)如果對(duì)是OD的盤上的顆粒執(zhí)行寫,將由該顆粒保持的數(shù)據(jù)寫到N個(gè)上游或下游盤,所述N個(gè)上游或下游盤的相應(yīng)顆粒是BD,并且如果不需要跨越顆粒類型為DD的盤。
A3)如果對(duì)是DD的盤上的顆粒執(zhí)行寫,將由該顆粒保持的數(shù)據(jù)寫到N個(gè)下游盤,所述N個(gè)下游盤的相應(yīng)顆粒是BD,包括是BD的下一個(gè)下游盤在內(nèi),并且如果不需要跨越顆粒類型為DD的盤。然后,包含OD并且不跨越被寫盤的最上游的盤被重新分類為DD。
如果盤成為是不可訪問的,在保護(hù)級(jí)聯(lián)不受第二故障影響之前,必須執(zhí)行下面的恢復(fù)活動(dòng)B1)對(duì)于每個(gè)顆粒,計(jì)數(shù)DD盤之間DD和OD出現(xiàn)的數(shù)目。如果該數(shù)目小于所需的最小數(shù)目,執(zhí)行適當(dāng)次上面(A2)和(A3)中所說明的寫。這可以被進(jìn)行,因?yàn)榧?jí)聯(lián)中有DD或OD的至少一個(gè)其他拷貝。
B2)對(duì)于不可訪問的盤上的每個(gè)顆粒,如果數(shù)據(jù)是DD,尋找是OD的下一個(gè)下游盤,并且將該盤上的顆粒設(shè)置為DD。
在對(duì)級(jí)聯(lián)技術(shù)的這種精心改進(jìn)中,用于目標(biāo)寫的規(guī)則可以簡化為D1)如果保持在顆粒上的數(shù)據(jù)是BD類型,并且寫整個(gè)數(shù)據(jù)顆粒,則簡單地寫新數(shù)據(jù),并且將該顆粒標(biāo)記為ND。
D2)如果保持在顆粒上的數(shù)據(jù)是BD類型,并且寫部分?jǐn)?shù)據(jù)顆粒,則從最近的拷貝讀原始數(shù)據(jù),與所述新數(shù)據(jù)合并,并且寫合并后的數(shù)據(jù),然后將該顆粒標(biāo)記為ND。
本領(lǐng)域的技術(shù)人員將明了,可以使用控制位圖和狀態(tài)操作的各種組合控制級(jí)聯(lián),可替換地執(zhí)行該方案。
現(xiàn)在轉(zhuǎn)到本發(fā)明的優(yōu)選實(shí)施例,給盤布置增加附加的“代替”盤。該盤具有與其相關(guān)的正常位圖,就如同它是正常目標(biāo)盤一樣。這些位圖被初始化為BD。
級(jí)聯(lián)中的盤具有附加的狀態(tài)定義可訪問的盤和不可訪問的盤。如果盤包含不能從級(jí)聯(lián)中的另一個(gè)盤檢索的數(shù)據(jù),它被分類為不可訪問的。因此,對(duì)于級(jí)聯(lián)的正常操作,引入了對(duì)目標(biāo)盤的客戶寫的下列規(guī)則1)以可以訪問啟動(dòng)所有目標(biāo)盤。
2)如果向可訪問的目標(biāo)盤寫客戶數(shù)據(jù),則該盤被重新分類為不可訪問。
3)如果對(duì)級(jí)聯(lián)中的盤的客戶寫導(dǎo)致級(jí)聯(lián)中僅剩下原始數(shù)據(jù)的一個(gè)拷貝,則保持原始數(shù)據(jù)的盤被重新分類為不可訪問。
現(xiàn)在,如果級(jí)聯(lián)(如圖3中所示)中的目標(biāo)盤,例如,盤A出現(xiàn)故障,并且有代替盤,盤F,則執(zhí)行下面的活動(dòng)A1)一旦檢測到A的故障,在由向其他盤的客戶寫引起的向A的后續(xù)寫上應(yīng)用另一個(gè)規(guī)則。該規(guī)則管理使用哪些位圖以便決定顆粒的狀態(tài)。以下面的偽碼表示該規(guī)則如果F上的顆粒是BD則使用A的位圖否則使用F的位圖在F的位圖中記錄寫(如果有)的影響A2)對(duì)向A的后續(xù)客戶寫上應(yīng)用下面的規(guī)則如果A不可訪問則對(duì)A的所有客戶寫都失敗否則將所有客戶寫重定向到F并且改變F的位圖以記錄寫的影響通過下表所示的A和F的位圖管理對(duì)F的重定向客戶寫操作。
顆粒狀態(tài)
其中1)活動(dòng)1.1-如果必要,從級(jí)聯(lián)中讀原始數(shù)據(jù),并且和客戶數(shù)據(jù)合并。將合并的/客戶數(shù)據(jù)寫到F。將F的位圖設(shè)置為ND。
2)活動(dòng)1.2-將客戶數(shù)據(jù)寫到F。
3)活動(dòng)1.3-從F讀顆粒,以通常的方法將原始數(shù)據(jù)寫到級(jí)聯(lián)中。將客戶數(shù)據(jù)寫到F,將F的位圖設(shè)置為ND。
A3)如果A可訪問,則A的所有數(shù)據(jù)保持在級(jí)聯(lián)內(nèi)并且可以訪問。使用下表開始將所有數(shù)據(jù)從A移動(dòng)到F的處理。
顆粒狀態(tài)
其中1)活動(dòng)2.2-從級(jí)聯(lián)中另一個(gè)盤讀原始數(shù)據(jù),寫到F,并且將F的位圖設(shè)置為OD。
2)活動(dòng)2.2-從級(jí)聯(lián)中另一個(gè)盤讀原始數(shù)據(jù),寫到F,并且將F的位圖設(shè)置為DD。
A4)如果上面A3中描述的處理結(jié)束,盤F永久地接管A,并且通知用戶。
如果A恢復(fù)為在線,則發(fā)生下面的事件B1)對(duì)向A的寫施用下面的規(guī)則,該規(guī)則管理使用哪些位圖以確定顆粒的狀態(tài)??梢匀缦碌膫未a表示該規(guī)則如果F上的顆粒是BD則使用A的位圖否則使用F的位圖如果需要,從F或A(適當(dāng)時(shí))讀顆粒,并且與寫數(shù)據(jù)合并如果需要,向A寫在A的位圖中記錄寫(如果有)的影響將F的位圖中的顆粒設(shè)置為BDB2)F上的所有數(shù)據(jù)可訪問。使用下表開始將所有數(shù)據(jù)從F移動(dòng)到A的處理。
顆粒狀態(tài)
其中活動(dòng)3.1-從F讀顆粒,并且寫到A,將F上的顆粒設(shè)置為BD,A上的顆粒設(shè)置為ND。
活動(dòng)3.2-從F讀顆粒,并且寫到A,將F上的顆粒設(shè)置為BD,A上的顆粒設(shè)置為OD。
活動(dòng)3.3-從F讀顆粒,并且寫到A,將F上的顆粒設(shè)置為BD,A上的顆粒設(shè)置為DD。
活動(dòng)3.4-將F上的顆粒設(shè)置為BD,A上的顆粒設(shè)置為DD。
B3)如果B2中描述的處理結(jié)束,盤F的位圖將全部清空,并設(shè)置為準(zhǔn)備用于任何另外的可能的故障。
本領(lǐng)域的普通技術(shù)人員易于理解,可以在安排為在裝置網(wǎng)絡(luò)中操作的存儲(chǔ)控制器內(nèi)實(shí)現(xiàn)本發(fā)明的優(yōu)選實(shí)施例,并且可以包括,例如,存儲(chǔ)區(qū)域網(wǎng)絡(luò)控制器。
本領(lǐng)域的技術(shù)人員將會(huì)明白,本發(fā)明的方法可以適合地包含在邏輯裝置內(nèi),所述邏輯裝置包括用于執(zhí)行該方法的步驟的邏輯設(shè)備,并且這些邏輯設(shè)備可以包含硬件組件或固件組件。
本領(lǐng)域的技術(shù)人員同樣將會(huì)明白,本發(fā)明的邏輯布置可以適合地包含邏輯裝置內(nèi),所述邏輯裝置包括用于執(zhí)行該方法的步驟的邏輯設(shè)備,并且這種邏輯設(shè)備可以包含這樣的組件,諸如例如可編程邏輯陣列內(nèi)的邏輯門。這種邏輯布置還可以包含使能(enabling)裝置內(nèi),所述使能裝置用于使用,例如,使用固定或可傳輸載體介質(zhì)存儲(chǔ)的虛擬硬件描述符語言在這種陣列中暫時(shí)或永久地建立邏輯結(jié)構(gòu)。
應(yīng)當(dāng)理解,上面所述的方法還適于完全或部分地承載在運(yùn)行在一個(gè)或多個(gè)處理器(未示出)上的軟件內(nèi),并且可作為承載在任意適合的數(shù)據(jù)載體(也未示出)上的計(jì)算機(jī)程序元件提供該軟件,所述數(shù)據(jù)載體諸如磁的或光學(xué)計(jì)算機(jī)盤。另外,用于數(shù)據(jù)傳輸?shù)耐ǖ揽梢园ㄋ蟹N類的存儲(chǔ)介質(zhì)以及信號(hào)承載介質(zhì),諸如有線或無線信號(hào)介質(zhì)。
本發(fā)明可以適合地表述為用于計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)程序產(chǎn)品。這種實(shí)現(xiàn)可以包括一系列計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令或是固定在有形介質(zhì)諸如計(jì)算機(jī)可讀介質(zhì)(例如,磁盤,CD-ROM,ROM或硬盤),或可通過調(diào)制解調(diào)器或其他接口設(shè)備,或是在有形介質(zhì)(包括但不限于光學(xué)或模擬通信鏈路)上,或使用無線技術(shù)(包括但不限于微波,紅外線或其他傳輸技術(shù))無形地傳輸?shù)接?jì)算機(jī)系統(tǒng)。所述計(jì)算機(jī)可讀指令序列包含此處前面描述的全部或部分功能。
本領(lǐng)域的技術(shù)人員將會(huì)理解,可用用于許多計(jì)算機(jī)體系結(jié)構(gòu)或操作系統(tǒng)的多種編程語言編寫這種計(jì)算機(jī)可讀指令。另外,可以使用當(dāng)前或未來的任意存儲(chǔ)器技術(shù)存儲(chǔ)這種指令,包括但不限于,半導(dǎo)體,磁的或光學(xué)的,或使用當(dāng)前或未來的任意通信技術(shù)傳輸這種指令,包括但不限于,光學(xué)的,紅外線的或微波。可以設(shè)想,可以作為帶有附帶的打印的或電子文檔的可移動(dòng)介質(zhì)分發(fā)這種計(jì)算機(jī)程序產(chǎn)品,例如,收縮包裝式軟件,被預(yù)先裝載到計(jì)算機(jī)系統(tǒng),例如,在系統(tǒng)ROM或固定盤上,或通過網(wǎng)絡(luò)(例如,因特網(wǎng)或萬維網(wǎng))從服務(wù)器或電子公告板分發(fā)。
還應(yīng)當(dāng)理解,可以用為顧客部署的服務(wù)以便提供外購服務(wù)的形式提供本發(fā)明的實(shí)施例。
還應(yīng)當(dāng)理解,上述優(yōu)選實(shí)施例的各種進(jìn)一步的修改對(duì)于本領(lǐng)域的普通技術(shù)人員將是顯而易見的。
權(quán)利要求
1.一種可與主計(jì)算機(jī)裝置以及多個(gè)被控制的存儲(chǔ)裝置共同操作的存儲(chǔ)控制器,包括主機(jī)寫組件,其可操作地將數(shù)據(jù)對(duì)象寫到所述多個(gè)被控制的存儲(chǔ)裝置中的一個(gè)處的源數(shù)據(jù)映像;拷貝組件,其對(duì)一元數(shù)據(jù)狀態(tài)做出響應(yīng),并且可操作地控制將所述數(shù)據(jù)對(duì)象拷貝到所述多個(gè)被控制的存儲(chǔ)裝置處的級(jí)聯(lián)中的數(shù)據(jù)映像的定界序列內(nèi)的目標(biāo)數(shù)據(jù)映像;以及代替組件,其響應(yīng)對(duì)包含所述目標(biāo)數(shù)據(jù)映像的盤的離線狀態(tài)的檢測,并且可操作地控制代替包含所述目標(biāo)數(shù)據(jù)映像的所述盤的代替盤的替代。
2.如權(quán)利要求1的存儲(chǔ)控制器,其中所述存儲(chǔ)控制器被結(jié)合到存儲(chǔ)網(wǎng)絡(luò)中。
3.如權(quán)利要求2的存儲(chǔ)控制器,其中所述存儲(chǔ)網(wǎng)絡(luò)是存儲(chǔ)區(qū)域網(wǎng)絡(luò)。
4.如權(quán)利要求1的存儲(chǔ)控制器,其中所述第一和第二拷貝組件中的至少一個(gè)位于通信網(wǎng)絡(luò)的不同節(jié)點(diǎn)處。
5.如權(quán)利要求2的存儲(chǔ)控制器,其中所述第一和第二拷貝組件以及另外的拷貝組件中的至少一個(gè)位于通信網(wǎng)絡(luò)的不同節(jié)點(diǎn)處。
6.一種操作可與主計(jì)算機(jī)裝置以及多個(gè)被控制的存儲(chǔ)裝置共同操作的存儲(chǔ)控制器的方法,包括如下步驟由主機(jī)寫組件將數(shù)據(jù)對(duì)象寫到所述多個(gè)被控制的存儲(chǔ)裝置中的一個(gè)處的源數(shù)據(jù)映像;由響應(yīng)一元數(shù)據(jù)狀態(tài)的拷貝組件控制將所述數(shù)據(jù)對(duì)象拷貝到所述多個(gè)被控制的存儲(chǔ)裝置處的級(jí)聯(lián)中的數(shù)據(jù)映像的定界序列內(nèi)的目標(biāo)數(shù)據(jù)映像;以及響應(yīng)對(duì)包含所述目標(biāo)數(shù)據(jù)映像的盤的離線狀態(tài)的檢測,由代替組件控制代替包含所述目標(biāo)數(shù)據(jù)映像的所述盤的代替盤的替代。
7.如權(quán)利要求6的方法,其中所述存儲(chǔ)控制器被結(jié)合到存儲(chǔ)網(wǎng)絡(luò)中。
8.如權(quán)利要求7的方法,其中所述存儲(chǔ)網(wǎng)絡(luò)是存儲(chǔ)區(qū)域網(wǎng)絡(luò)。
9.如權(quán)利要求6的方法,其中所述第一和第二拷貝組件中的至少一個(gè)位于通信網(wǎng)絡(luò)的不同節(jié)點(diǎn)處。
10.如權(quán)利要求6的方法,其中所述第一和第二拷貝組件以及另外的拷貝組件中的至少一個(gè)位于通信網(wǎng)絡(luò)的不同節(jié)點(diǎn)處。
11.一種包括計(jì)算機(jī)程序代碼的計(jì)算機(jī)程序,當(dāng)被裝入計(jì)算機(jī)系統(tǒng)并在其上執(zhí)行時(shí),使得所述計(jì)算機(jī)執(zhí)行權(quán)利要求6到10中任意一個(gè)的方法的步驟。
全文摘要
一種可與主計(jì)算機(jī)裝置以及多個(gè)被控制的存儲(chǔ)裝置共同操作的存儲(chǔ)控制器,包括主機(jī)寫組件,其可操作地將數(shù)據(jù)對(duì)象寫到多個(gè)被控制的存儲(chǔ)裝置中的一個(gè)處的源數(shù)據(jù)對(duì)象;拷貝組件,其響應(yīng)一元數(shù)據(jù)狀態(tài),并且可操作地控制將所述數(shù)據(jù)映像拷貝到所述多個(gè)被控制的存儲(chǔ)裝置處的級(jí)聯(lián)中的數(shù)據(jù)映像的定界序列內(nèi)的目標(biāo)數(shù)據(jù)映像;和代替組件,其響應(yīng)對(duì)包含所述目標(biāo)數(shù)據(jù)映像的盤的離線狀態(tài)的檢測,并且可操作地控制代替包含所述目標(biāo)數(shù)據(jù)映像的所述盤的代替盤的替代。
文檔編號(hào)G06F11/14GK1828513SQ20061005807
公開日2006年9月6日 申請(qǐng)日期2006年2月28日 優(yōu)先權(quán)日2005年3月2日
發(fā)明者J·P·阿戈姆巴, C·B·E·貝肯, C·F·芬特, S·沃爾什 申請(qǐng)人:國際商業(yè)機(jī)器公司