專利名稱:用于管理故障的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于在鏡像系統(tǒng)中對(duì)故障進(jìn)行管理的方法、系統(tǒng)、以及程序。
背景技術(shù):
災(zāi)難恢復(fù)系統(tǒng)通??山鉀Q兩類故障,即,在單時(shí)間點(diǎn)上的突發(fā)的災(zāi)難性故障或者一定時(shí)間段內(nèi)的數(shù)據(jù)丟失。在第二類漸近式災(zāi)難中,可能會(huì)丟失對(duì)卷的更新。為了幫助對(duì)數(shù)據(jù)更新進(jìn)行恢復(fù),可以在遠(yuǎn)程位置上提供數(shù)據(jù)拷貝。當(dāng)應(yīng)用系統(tǒng)將新數(shù)據(jù)寫入到主存儲(chǔ)設(shè)備中時(shí),通常進(jìn)行這種雙拷貝或映像拷貝(shadow copy)??梢允褂貌煌截惣夹g(shù)以保持次站點(diǎn)上的遠(yuǎn)程數(shù)據(jù)拷貝,諸如國(guó)際商業(yè)機(jī)器公司(“IBM”)的擴(kuò)展遠(yuǎn)程拷貝(Extended Remote Copy,XRC)、耦合的XRC(Coupled XRC,CXRC)、全局拷貝(Global Copy)、以及全局鏡像拷貝(Global Mirror Copy)。在IBM文檔號(hào)為SG24-6783-00(2005年9月)的IBM出版物“The IBM Total StorageDS6000 SeriesCopy Services in Open Environments”、以及IBM文檔號(hào)為SG24-5680-04(2004年7月)的IBM出版物“IBMTotal Storage Enterprise Storage ServerImplementing ESS CopyServices with IBM eServer zSeries”中描述了這些不同的拷貝技術(shù)。
在數(shù)據(jù)鏡像系統(tǒng)中,成卷對(duì)地保持?jǐn)?shù)據(jù)。卷對(duì)(volumn pair)是由主存儲(chǔ)設(shè)備中的卷和次存儲(chǔ)設(shè)備中的相應(yīng)卷組成的,其中所述次存儲(chǔ)設(shè)備包括保持在主卷中的數(shù)據(jù)的相同拷貝。可以使用主次存儲(chǔ)控制器來(lái)控制對(duì)主次存儲(chǔ)設(shè)備的存取。在某些備份系統(tǒng)中,sysplex計(jì)時(shí)器用于向系統(tǒng)提供統(tǒng)一時(shí)間,以便使不同應(yīng)用寫入到不同主存儲(chǔ)設(shè)備的更新使用日時(shí)(time-of-day,TOD)值作為時(shí)間戳。應(yīng)用系統(tǒng)時(shí)間戳數(shù)據(jù)設(shè)置何時(shí)將這種數(shù)據(jù)集寫入到主存儲(chǔ)設(shè)備的卷中。數(shù)據(jù)更新的完整性與確保按照與在主卷上進(jìn)行更新相同的順序來(lái)在卷對(duì)中的次卷中進(jìn)行更新有關(guān)。應(yīng)用程序提供的時(shí)間戳確定數(shù)據(jù)更新的邏輯次序。
在諸如數(shù)據(jù)庫(kù)系統(tǒng)這樣的許多應(yīng)用程序中,除非進(jìn)行了先前的寫入,否則不進(jìn)行某些寫入;否則將會(huì)危害數(shù)據(jù)完整性。這種其完整性取決于先前數(shù)據(jù)寫入的出現(xiàn)的數(shù)據(jù)寫入被稱為依賴性寫入(dependentwrite)。當(dāng)已按照其邏輯順序傳送了所有寫入時(shí),也就是說(shuō),所有依賴性寫入在取決于其的寫入之前首先傳送時(shí),主次存儲(chǔ)設(shè)備中的卷是一致的。一致性組對(duì)于具有與一致性時(shí)間戳相等的或比其更早的時(shí)間戳的一致性組中的所有數(shù)據(jù)寫入具有一致性時(shí)間。一致性組是對(duì)主卷的更新的集合,以便按照一致的方式保障依賴性寫入。一致性時(shí)間是系統(tǒng)保證對(duì)次卷的更新是一致的最近時(shí)間。一致性組保持卷和存儲(chǔ)設(shè)備中的數(shù)據(jù)一致性。因此,當(dāng)從次卷中恢復(fù)出數(shù)據(jù)時(shí),所恢復(fù)的數(shù)據(jù)將會(huì)是一致的。
在會(huì)話內(nèi)形成一致性組。分配給會(huì)話的所有卷對(duì)具有它們的、保持在相同一致性組中的更新。因此,該會(huì)話用于確定將被集合在一個(gè)一致性組中的卷。在日志設(shè)備或卷內(nèi)形成一致性組。將從一致性組中所集聚的更新從日志中應(yīng)用到次卷上。如果在將來(lái)自于日志的更新應(yīng)用到次卷上的同時(shí)系統(tǒng)出現(xiàn)了故障,那么在恢復(fù)操作期間,可從日志中恢復(fù)未完成到次卷的寫入的更新并將其應(yīng)用到次卷上。
諸如數(shù)據(jù)庫(kù)應(yīng)用這樣的某些應(yīng)用可將用戶數(shù)據(jù)在一個(gè)會(huì)話中寫入到一組主卷中,并且將異常信息在另一會(huì)話或相同會(huì)話中寫入到另一組主卷中。如果出現(xiàn)了故障以致于應(yīng)用無(wú)法繼續(xù)寫入到包括有用戶數(shù)據(jù)的主卷,那么該應(yīng)用仍可將與故障有關(guān)的異常信息寫入到具有該異常信息的不同主卷,并且還可將該故障異常信息傳播到對(duì)異常信息進(jìn)行鏡像的次卷中。在這種情況下,次卷具有無(wú)錯(cuò)誤的用戶數(shù)據(jù),然而次卷中的用戶數(shù)據(jù)的異常信息則表明出現(xiàn)了故障。在故障恢復(fù)操作期間,管理員必須在次站點(diǎn)上執(zhí)行詳盡的恢復(fù)操作以對(duì)鏡像拷貝中的這個(gè)數(shù)據(jù)不一致進(jìn)行校正,因?yàn)楫惓P畔⒌拇慰截惐砻髟阽R像的用戶數(shù)據(jù)中所未反映出的故障或錯(cuò)誤。
為此,本領(lǐng)域中需要用于在鏡像環(huán)境中對(duì)故障進(jìn)行處理的改善了的技術(shù)。
發(fā)明內(nèi)容
提供了一種用于在鏡像系統(tǒng)中對(duì)故障進(jìn)行管理的方法、系統(tǒng)、以及程序。主次存儲(chǔ)位置間存在拷貝關(guān)系,其中將對(duì)主存儲(chǔ)位置的更新拷貝到次存儲(chǔ)位置。對(duì)阻止應(yīng)用寫入對(duì)主存儲(chǔ)位置的更新的故障進(jìn)行檢測(cè)。響應(yīng)于檢測(cè)到故障,接收對(duì)于該應(yīng)用的故障消息,其中不將故障消息提供給所述應(yīng)用。中止將對(duì)主存儲(chǔ)位置的更新拷貝到次存儲(chǔ)位置。響應(yīng)于中止拷貝,將故障消息提供給所述應(yīng)用。
在又一個(gè)實(shí)施例中,數(shù)據(jù)移動(dòng)器異步地將對(duì)主存儲(chǔ)位置的更新拷貝到相關(guān)的次存儲(chǔ)位置。
在又一個(gè)實(shí)施例中,所檢測(cè)到的故障包括配置了主存儲(chǔ)位置的存儲(chǔ)設(shè)備、提供對(duì)存儲(chǔ)設(shè)備的存取的控制單元、或者提供應(yīng)用與存儲(chǔ)設(shè)備之間的通信這樣的結(jié)構(gòu)的部件中的至少一個(gè)的故障。
在又一個(gè)實(shí)施例中,通過(guò)包括所述應(yīng)用的主機(jī)操作系統(tǒng)、或者用于對(duì)主存儲(chǔ)位置的存取進(jìn)行管理的控制單元操作系統(tǒng)產(chǎn)生故障消息。
在又一個(gè)實(shí)施例中,主次存儲(chǔ)位置包括第一主次存儲(chǔ)位置。所述應(yīng)用進(jìn)一步將異常信息寫入到第二主存儲(chǔ)位置,其中該第二主存儲(chǔ)位置被拷貝到第二次存儲(chǔ)位置。所檢測(cè)到的故障包括與第一主存儲(chǔ)位置的可存取性有關(guān)的故障,并且其中,中止對(duì)更新的拷貝可防止與寫入到第二主存儲(chǔ)位置中的異常信息上的所檢測(cè)故障有關(guān)的信息被拷貝到第二次存儲(chǔ)位置。
在又一個(gè)實(shí)施例中,將中止期間未從主存儲(chǔ)位置拷貝到次存儲(chǔ)位置的更新記入日志。通過(guò)將次存儲(chǔ)位置的數(shù)據(jù)拷貝到主存儲(chǔ)位置來(lái)執(zhí)行數(shù)據(jù)恢復(fù)操作,并且響應(yīng)于將次存儲(chǔ)位置的數(shù)據(jù)拷貝到主存儲(chǔ)位置,將記入日志的更新應(yīng)用到主存儲(chǔ)位置。
在又一個(gè)實(shí)施例中,對(duì)第一組主存儲(chǔ)位置檢測(cè)故障。第一組主存儲(chǔ)位置和第二組主存儲(chǔ)位置位于一個(gè)一致性組中。中止對(duì)更新的拷貝適用于將對(duì)第一組和第二組主存儲(chǔ)位置的更新拷貝到相應(yīng)的第一組和第二組次存儲(chǔ)位置。
在又一個(gè)實(shí)施例中,拷貝的中止不適用于將對(duì)第三組主存儲(chǔ)位置的更新拷貝到相應(yīng)的第三組次存儲(chǔ)位置。第三組主存儲(chǔ)位置不在包括有第一組和第二組主存儲(chǔ)位置的一致性組中。
在又一個(gè)實(shí)施例中,第一組和第二組主次存儲(chǔ)位置包括不同的會(huì)話。第一數(shù)據(jù)移動(dòng)器用于將對(duì)第一組主存儲(chǔ)位置的更新拷貝到第一組次存儲(chǔ)位置,并且第二數(shù)據(jù)移動(dòng)器用于將對(duì)第二組主存儲(chǔ)位置的更新拷貝到第二組次存儲(chǔ)位置。
在又一個(gè)實(shí)施例中,響應(yīng)于檢測(cè)到故障,停止對(duì)主存儲(chǔ)位置的I/O請(qǐng)求。響應(yīng)于中止對(duì)更新的拷貝,允許繼續(xù)進(jìn)行對(duì)主存儲(chǔ)位置的I/O請(qǐng)求。在中止對(duì)更新的拷貝時(shí),響應(yīng)于允許繼續(xù)進(jìn)行I/O請(qǐng)求,指示對(duì)主存儲(chǔ)位置的更新。
在又一個(gè)實(shí)施例中,在中止期間將與故障消息有關(guān)的信息寫入到主存儲(chǔ)位置但不將其拷貝到次存儲(chǔ)位置。次存儲(chǔ)位置不包括與寫入到主存儲(chǔ)位置的故障消息有關(guān)的信息。
圖1說(shuō)明了網(wǎng)絡(luò)計(jì)算環(huán)境的實(shí)施例。
圖2說(shuō)明了數(shù)據(jù)庫(kù)應(yīng)用怎樣按照本領(lǐng)域中已知的方式將用戶數(shù)據(jù)和異常信息寫入到兩個(gè)不同的主存儲(chǔ)設(shè)備中的示例。
圖3說(shuō)明了將主存儲(chǔ)設(shè)備鏡像到次存儲(chǔ)設(shè)備的操作的實(shí)施例。
圖4和5說(shuō)明了將所檢測(cè)到的故障傳送到監(jiān)控系統(tǒng)的操作的實(shí)施例。
圖6說(shuō)明了對(duì)所檢測(cè)到的故障進(jìn)行處理的操作的實(shí)施例。
圖7說(shuō)明了執(zhí)行從鏡像的次存儲(chǔ)設(shè)備中恢復(fù)數(shù)據(jù)的操作的實(shí)施例。
具體實(shí)施例方式
圖1說(shuō)明了網(wǎng)絡(luò)計(jì)算環(huán)境的實(shí)施例。網(wǎng)絡(luò)2包括多個(gè)主控制單元4a、...、4n;主存儲(chǔ)設(shè)備6a、...、6n;數(shù)據(jù)移動(dòng)器8a、...、8n,用于管理將對(duì)主存儲(chǔ)設(shè)備6a、...、6n的更新拷貝到次控制單元10a、...、10n以及相應(yīng)的次存儲(chǔ)設(shè)備12a、...、12n;主機(jī)14,用于寫入對(duì)主存儲(chǔ)設(shè)備6a、...、6n的更新;監(jiān)控系統(tǒng)16,用于對(duì)主存儲(chǔ)設(shè)備6a、...、6n對(duì)于主機(jī)14而言的可用性的故障進(jìn)行監(jiān)控;系統(tǒng)計(jì)時(shí)器18;以及主數(shù)據(jù)集20。部件4a、...、4n、6a、...、6n、8a、...、8n、10a、...、10n、12a、...、12n、14、16、18以及20與網(wǎng)絡(luò)2相連,并且網(wǎng)絡(luò)2允許在這些部件之間進(jìn)行通信。網(wǎng)絡(luò)2可以包括一個(gè)或多個(gè)交換機(jī),以提供網(wǎng)絡(luò)2的不同元件之間的一個(gè)或多個(gè)通信路徑。
系統(tǒng)數(shù)據(jù)移動(dòng)器(SDM)程序8a、...、8n從主存儲(chǔ)設(shè)備6a、...、6n中讀取更新,并且形成來(lái)自主存儲(chǔ)設(shè)備6a、...、6n的更新的一致性組,以將其寫入到相應(yīng)的次存儲(chǔ)設(shè)備12a、...、12n。在主控制單元4a...4n中,可以將更新寫入到高速緩沖存儲(chǔ)器中的端文件(side file)中。此后將更新傳送到由SDM 8a...、8n所保持的日志22a、...、22n。在每個(gè)日志22a、...、22n內(nèi),更新被排列成一致性組。日志14a、...、14n可存儲(chǔ)一個(gè)或多個(gè)一致性組。一致性組對(duì)于具有與一致性時(shí)間戳相等的或比其更早的時(shí)間戳的一致性組中的所有數(shù)據(jù)寫入具有一致性時(shí)間。一致性組是對(duì)主卷的更新的集合,以便按照一致性方式保障依賴性寫入。一致性時(shí)間是系統(tǒng)保證對(duì)次卷的更新是一致的最近時(shí)間。一致性組保持卷和存儲(chǔ)設(shè)備上的數(shù)據(jù)一致性。因此,當(dāng)從次卷中恢復(fù)出數(shù)據(jù)時(shí),所恢復(fù)的數(shù)據(jù)將會(huì)是一致的。
在一個(gè)會(huì)話內(nèi)形成一致性組。會(huì)話包括對(duì)由一個(gè)或多個(gè)SDM8a、...、8n所管理的主次卷對(duì)以及由鏡像程序4所管理的卷對(duì)的操作。分配給一個(gè)會(huì)話的所有卷對(duì)具有它們的、保持在相同一致性組中的更新。因此,會(huì)話可用于確定將被集合在一個(gè)一致性組中的卷。如果在將來(lái)自日志22a、...、22n的更新應(yīng)用到次卷上的同時(shí)系統(tǒng)出現(xiàn)了故障,那么在恢復(fù)操作期間,可以從日志中恢復(fù)未完成到次卷的寫入的更新,并且可將該更新應(yīng)用到次卷上。
SDM 8a、...、8n可以包括在系統(tǒng)中實(shí)現(xiàn)的程序。SDM 8a、...、8n可以在主控制單元4a、...、4n、次控制單元10a、...、10n、或獨(dú)立的站點(diǎn)和系統(tǒng)上實(shí)現(xiàn)。
主數(shù)據(jù)集20包括正被管理的會(huì)話的列表,以及對(duì)于每個(gè)被管理的會(huì)話而言,還包括在這種會(huì)話中對(duì)卷進(jìn)行最近更新的時(shí)間。主數(shù)據(jù)集20可以駐留在存儲(chǔ)設(shè)備6a、...、6n、12a、...、12n的卷中。用于主/次控制對(duì)的日志數(shù)據(jù)集可駐留在任何設(shè)備中。在圖1中,每個(gè)SDM8a、...、8n是在主數(shù)據(jù)集20中指示出了其信息的一個(gè)會(huì)話的一部分??上蛎總€(gè)會(huì)話分配一個(gè)或多個(gè)SDM 8a、...、8n。
系統(tǒng)計(jì)時(shí)器18提供用于更新的時(shí)間戳,以確保在所有SDM8a、...、8n上使用公共時(shí)間以向用于寫入對(duì)卷的更新的應(yīng)用程序提供公共時(shí)間參考,從而確保更新不會(huì)被無(wú)序地鏡像。一旦在一致性組內(nèi)組織了日志22a、...、22n中的更新后,就將一致性組之內(nèi)的更新應(yīng)用到次存儲(chǔ)設(shè)備12a、...、12n上。一致性組的創(chuàng)建可保證系統(tǒng)利用任何類型數(shù)據(jù)的更新序列完整性而實(shí)時(shí)地將數(shù)據(jù)映像(shadow)到遠(yuǎn)程站點(diǎn)。利用一致性組,可確保在一個(gè)會(huì)話之內(nèi)應(yīng)用到次存儲(chǔ)設(shè)備12a、...、12n的更新與一致性組的一致性時(shí)間是一致的并且在會(huì)話之間是一致的。如果在將更新從日志22a、...、22n寫入到次存儲(chǔ)設(shè)備12a、...、12n中的次卷的同時(shí)出現(xiàn)了故障,那么在恢復(fù)期間,可從日志中恢復(fù)在系統(tǒng)故障期間被中斷的更新,并且將其重新應(yīng)用到次卷上。按照這種方式,可確保自某一時(shí)間點(diǎn)起的恢復(fù)期間在會(huì)話之內(nèi)和橫跨會(huì)話之上的數(shù)據(jù)是一致的??截惒僮魇褂弥鲾?shù)據(jù)集20,以保持橫跨會(huì)話之上的一致性,諸如國(guó)際商業(yè)機(jī)器公司(“IBM”)擴(kuò)展遠(yuǎn)程拷貝(XRC)、耦合XRC(CXRC)、全局拷貝、全局鏡像拷貝、以及諸如對(duì)等遠(yuǎn)程拷貝(Peer-to-Peer Remote Copy,PPRC)這樣的同步鏡像。
網(wǎng)絡(luò)2可以包括存儲(chǔ)區(qū)網(wǎng)絡(luò)(SAN)、局域網(wǎng)(LAN)、企業(yè)內(nèi)部網(wǎng)、互聯(lián)網(wǎng)、廣域網(wǎng)(WAN)、對(duì)等網(wǎng)絡(luò)、仲裁環(huán)狀網(wǎng)絡(luò)等。存儲(chǔ)設(shè)備6a、...、6n、12a、...、12n可以包括諸如簡(jiǎn)單磁盤束(Just a BunchOf Disks,JBOD)、直接存取存儲(chǔ)設(shè)備(DASD)、獨(dú)立盤片冗余陣列(RAID)、虛擬化設(shè)備、磁帶存儲(chǔ)設(shè)備、閃速存儲(chǔ)器等這樣的存儲(chǔ)設(shè)備陣列。
在某些實(shí)施例中,主機(jī)操作系統(tǒng)26和主控制單元操作系統(tǒng)28a、...、28n包括這樣的代碼,該代碼用于在將錯(cuò)誤通知發(fā)送到應(yīng)用24之前將某些預(yù)定錯(cuò)誤通知傳送到監(jiān)控系統(tǒng)16。按照這種方式,監(jiān)控系統(tǒng)16在應(yīng)用24之前對(duì)與操作系統(tǒng)26和28a、...、28n所檢測(cè)到的故障有關(guān)的信息進(jìn)行處理。次控制單元10a、...、10n也包括操作系統(tǒng)30a、...、30n。
諸如圖1所示,監(jiān)控系統(tǒng)16可以在控制單元之一內(nèi)或在獨(dú)立的系統(tǒng)中實(shí)現(xiàn)。
主機(jī)4包括用于將I/O請(qǐng)求傳送到主控制單元4a、...、4n的一個(gè)或多個(gè)應(yīng)用24。圖2說(shuō)明了現(xiàn)有技術(shù)中已知的、主機(jī)4包括數(shù)據(jù)庫(kù)應(yīng)用40的這樣一個(gè)實(shí)施例。數(shù)據(jù)庫(kù)應(yīng)用通過(guò)主控制單元4a將用戶數(shù)據(jù)、即數(shù)據(jù)庫(kù)記錄寫入到主存儲(chǔ)設(shè)備6a,以更新用于存儲(chǔ)數(shù)據(jù)庫(kù)的表格和記錄的數(shù)據(jù)庫(kù)表格空間42。如果主機(jī)4接收到或檢測(cè)到與主存儲(chǔ)設(shè)備4a的連接的故障,或者不能完成寫入并且向數(shù)據(jù)庫(kù)應(yīng)用40通知這種錯(cuò)誤,那么數(shù)據(jù)庫(kù)應(yīng)用40通過(guò)主控制單元4b將與該錯(cuò)誤有關(guān)的信息寫入到主存儲(chǔ)設(shè)備6b中的異常表格44中。
圖3說(shuō)明了由SDM 8a、...、8n所執(zhí)行的、利用諸如XRC、CXRC等這樣的異步遠(yuǎn)程拷貝技術(shù)來(lái)對(duì)不同會(huì)話的數(shù)據(jù)進(jìn)行拷貝的操作的實(shí)施例。響應(yīng)于初始化遠(yuǎn)程拷貝操作(塊100),SDM 8a、...、8n形成具有對(duì)主存儲(chǔ)位置的更新的一致性組(塊102)。如所討論的,SDM8a、...、8n可以通過(guò)將更新從主存儲(chǔ)設(shè)備6a、...、6n讀出到形成有一致性組的日志22a、...、22n中,而形成一致性組。SDM 8a、...、8n在主數(shù)據(jù)集20中指明添加到日志22a、...、22n中的一致性組上的更新的時(shí)間(塊104)。SDM 8a、...、8n可以定期地輪詢主數(shù)據(jù)集20以確定參考時(shí)間(最大會(huì)話更新時(shí)間的最小值)(塊106)。SDM 8a、...、8n將其日志26a、...、26n中的一致性組拷貝到其時(shí)間戳小于或等于所確定的參考時(shí)間的次存儲(chǔ)設(shè)備22a、...、22n(塊108)。在替換實(shí)施例中,數(shù)據(jù)移動(dòng)器可同步地拷貝數(shù)據(jù)。
圖4說(shuō)明了主機(jī)操作系統(tǒng)26為響應(yīng)于檢測(cè)到下述故障(塊120)所執(zhí)行的操作的實(shí)施例,其中所述故障是將由監(jiān)控系統(tǒng)16首先處理的所識(shí)別到的觸發(fā)事件。響應(yīng)于這種檢測(cè),主機(jī)操作系統(tǒng)26將故障傳送到監(jiān)控系統(tǒng)16(塊122)。主機(jī)操作系統(tǒng)26可對(duì)主機(jī)14與主控制單元4a、...、4n之間的諸如交換機(jī)、電纜等這樣的網(wǎng)絡(luò)2的連接中的故障進(jìn)行檢測(cè)。
圖5說(shuō)明了主控制單元操作系統(tǒng)28a、...、28n為響應(yīng)于檢測(cè)到下述故障(塊130)所執(zhí)行的操作的實(shí)施例,其中所述故障是將由監(jiān)控系統(tǒng)16首先處理的所識(shí)別到的觸發(fā)事件。響應(yīng)于這種檢測(cè),控制單元操作系統(tǒng)28a、...、28n將故障傳送到監(jiān)控系統(tǒng)16(塊132)。主控制單元操作系統(tǒng)28a、...、28n對(duì)網(wǎng)絡(luò)2中的到主機(jī)14的連接中的故障、或者諸如盤、陣列、或磁帶故障這樣的主存儲(chǔ)設(shè)備6a、...、6n資源故障、或者主存儲(chǔ)設(shè)備6a、...、6n與其相應(yīng)的主控制單元4a、...、4n之間的連接中的故障進(jìn)行檢測(cè)。
就圖4和5的實(shí)施例而言,監(jiān)控系統(tǒng)16攔截所檢測(cè)到的故障,以便在向應(yīng)用通知該故障之前,監(jiān)控系統(tǒng)16對(duì)該故障消息進(jìn)行處理。例如,就數(shù)據(jù)庫(kù)應(yīng)用40而言,攔截該故障并使其路由到監(jiān)控系統(tǒng)16,可防止數(shù)據(jù)庫(kù)應(yīng)用40將與該故障有關(guān)的信息寫入到異常表格44,這接著可防止與錯(cuò)誤/異常有關(guān)的信息被傳播到對(duì)具有異常表格44的主存儲(chǔ)設(shè)備4b進(jìn)行鏡像的次存儲(chǔ)設(shè)備12b。按照這種方式,監(jiān)控系統(tǒng)16對(duì)在網(wǎng)絡(luò)2中所產(chǎn)生的許多不同類型的故障通知進(jìn)行監(jiān)控。
圖6說(shuō)明了監(jiān)控系統(tǒng)16所執(zhí)行的、用于對(duì)由主機(jī)26或主控制單元28a、...、28n操作系統(tǒng)所傳送的故障進(jìn)行處理的操作的實(shí)施例。在從主機(jī)26或控制單元28a、...、28n操作系統(tǒng)接收到主站點(diǎn)(例如主控制單元或存儲(chǔ)設(shè)備)的故障信息(塊150)時(shí),監(jiān)控系統(tǒng)16發(fā)出用于停止對(duì)主存儲(chǔ)設(shè)備6a、...、6n卷的I/O請(qǐng)求的命令(塊152)??梢詫⒂糜谕V沟拿钐峁┙o主控制單元4a、...、4n和/或主機(jī)14。此后,監(jiān)控系統(tǒng)16中止將對(duì)所有主存儲(chǔ)位置的更新拷貝到下述一致性組中的次存儲(chǔ)位置,其中所述一致性組包括受到故障影響的存儲(chǔ)位置。監(jiān)控系統(tǒng)16可以通過(guò)將命令發(fā)送到SDM 8a、...、8n以中止形成下述一致性組而導(dǎo)致中止,其中所述一致性組包括檢測(cè)到其故障的主存儲(chǔ)設(shè)備6a的卷或者數(shù)據(jù)集,從而,在檢測(cè)到故障之后出現(xiàn)的任何更新不會(huì)被傳播到次存儲(chǔ)設(shè)備12a、...、12n。然而,可以將日志22a、...、22n中的已形成的一致性組拷貝到次存儲(chǔ)設(shè)備12a、...、12n上。
在某些實(shí)施例中,中止可以應(yīng)用到下述所有數(shù)據(jù)上,其中所述數(shù)據(jù)取決于經(jīng)歷故障狀態(tài)的主存儲(chǔ)設(shè)備6a、...、6n卷,或者經(jīng)歷故障的主存儲(chǔ)設(shè)備6a、...、6n卷取決于所述數(shù)據(jù)。該依賴性數(shù)據(jù)可以包括處于包括有經(jīng)歷故障狀態(tài)的主卷的一致性組中的所有數(shù)據(jù),即,包括處于由于將主機(jī)14與主存儲(chǔ)設(shè)備6a、...、6n相連的部件故障而造成其本身出故障或不能被存取的主卷的一致性組中的所有數(shù)據(jù)。此外,依賴性數(shù)據(jù)可以包括通過(guò)主數(shù)據(jù)集20來(lái)保持其一致性的其他會(huì)話中的卷。因此,可以針對(duì)用發(fā)生故障的卷、通過(guò)主數(shù)據(jù)集20來(lái)保持其一致性的所有會(huì)話中的所有卷發(fā)出中止。在其他卷受到中止時(shí),可針對(duì)不取決于經(jīng)歷故障狀態(tài)的卷的一致性組或不在上述一致性組之內(nèi)的卷繼續(xù)執(zhí)行鏡像操作。
在中止了對(duì)包括有經(jīng)歷故障狀態(tài)的卷的一致性組中的卷的I/O之后,監(jiān)控系統(tǒng)16可以向主控制單元4a、...、4n和主機(jī)14發(fā)出命令(塊156)以允許繼續(xù)進(jìn)行對(duì)主存儲(chǔ)設(shè)備6a、...、6n位置的I/O請(qǐng)求。此時(shí),可以將故障消息提供給應(yīng)用24(塊158)。然而,因?yàn)楦碌溺R像已被中止,因此,應(yīng)用24寫入到主存儲(chǔ)設(shè)備6a、...、6n的任何錯(cuò)誤狀態(tài)、例如數(shù)據(jù)庫(kù)應(yīng)用40寫入到異常表格44(圖2)的任何錯(cuò)誤狀態(tài)不會(huì)被傳播到次存儲(chǔ)設(shè)備12a、...、12n。此時(shí),主控制單元4a、...、4n保持每個(gè)卷的位圖,以跟蹤對(duì)所中止的主存儲(chǔ)設(shè)備6a、...、6n位置的更新。
圖7說(shuō)明了在解決了下述故障之后將未反映出異常的次存儲(chǔ)設(shè)備12a、...、12na中的數(shù)據(jù)拷貝到主存儲(chǔ)設(shè)備6a、...、6n的操作,其中所述故障發(fā)起了會(huì)導(dǎo)致圖5中的操作的故障消息。在塊200,確定故障的原因,它可能涉及對(duì)網(wǎng)絡(luò)2中的部件、主機(jī)14、主控制單元4a、...、4n、主存儲(chǔ)設(shè)備6a、...、6n等進(jìn)行檢修。在解決了故障之后,監(jiān)控系統(tǒng)16或管理員可以開(kāi)始(塊202)恢復(fù)操作,以將中止過(guò)程中所涉及的所有次卷或數(shù)據(jù)集拷貝到相應(yīng)的主存儲(chǔ)設(shè)備6a、...、6n位置。這可能涉及對(duì)由不同次控制單元所管理的和/或在不同會(huì)話中的不同次存儲(chǔ)設(shè)備中的次卷的數(shù)據(jù)進(jìn)行拷貝。在從次站點(diǎn)恢復(fù)數(shù)據(jù)之后,將對(duì)所中止的主存儲(chǔ)設(shè)備6a、...、6n位置的任何記入日志的更新應(yīng)用到(塊204)已更新的主存儲(chǔ)位置上(即未被包括在形成的一致性組內(nèi)之內(nèi)的更新)。這可能包括未被包括在一致性組之內(nèi)的日志22a、...、22n中的更新、或者保持在主控制單元4a、...、4n的端文件(side file)中的更新。結(jié)束對(duì)鏡像和形成被中止的卷的一致性組的中止(塊206),并且繼續(xù)鏡像操作。
利用所描述的實(shí)施例,諸如寫入到主存儲(chǔ)設(shè)備6b中的異常表格44中的異常這樣的故障的指示不會(huì)被傳播到次存儲(chǔ)設(shè)備6b,在次存儲(chǔ)設(shè)備6b中,諸如鏡像表格空間42這樣的另一次存儲(chǔ)設(shè)備6a中的相關(guān)用戶數(shù)據(jù)未必具有任何錯(cuò)誤。如果異常被傳播到被鏡像在相應(yīng)的次存儲(chǔ)設(shè)備12b中的異常表格,那么管理員將在次存儲(chǔ)設(shè)備12b中執(zhí)行錯(cuò)誤恢復(fù)操作,以在從次存儲(chǔ)設(shè)備12a中恢復(fù)主存儲(chǔ)設(shè)備6a中的表格空間42(圖2)之前清除錯(cuò)誤。然而,因?yàn)樗枋龅膶?shí)施例可防止異常被傳播到鏡像的異常表格44,因此不需要在次站點(diǎn)上執(zhí)行恢復(fù)操作以清除所傳播的異常。按照這種方式,所描述的實(shí)施例可降低停機(jī)時(shí)間并簡(jiǎn)化故障恢復(fù)處理。
其他實(shí)施例的細(xì)節(jié)所述操作可作為被實(shí)現(xiàn)為利用標(biāo)準(zhǔn)的編程和/或工程技術(shù)來(lái)生成軟件、固件、硬件、或其任何組合的方法、裝置、或制品。所述操作可被實(shí)現(xiàn)作為保持在“計(jì)算機(jī)可讀介質(zhì)”中的代碼,其中處理器可從計(jì)算機(jī)可讀介質(zhì)中讀取并執(zhí)行該代碼。計(jì)算機(jī)可讀介質(zhì)可以包括諸如磁存儲(chǔ)介質(zhì)(例如硬盤驅(qū)動(dòng)器、軟盤、磁帶等)、光學(xué)存儲(chǔ)器(CD-ROM、DVD、光盤等)、易失性和非易失性存儲(chǔ)器設(shè)備(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、閃速存儲(chǔ)器、固件、可編程序邏輯等)等這樣的介質(zhì)。用于實(shí)現(xiàn)所述操作的代碼可在硬件邏輯(例如集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等)中實(shí)現(xiàn)。更進(jìn)一步,用于實(shí)現(xiàn)所述操作的代碼可在“傳輸信號(hào)”中實(shí)現(xiàn),其中傳輸信號(hào)可以通過(guò)空間或通過(guò)諸如光纖、銅線等這樣的傳輸介質(zhì)而傳播。其中編碼了代碼或邏輯的傳輸信號(hào)可以進(jìn)一步包括無(wú)線信號(hào)、衛(wèi)星傳輸、無(wú)線電波、紅外信號(hào)、藍(lán)牙等。其中編碼了代碼或邏輯的傳輸信號(hào)可通過(guò)發(fā)送站來(lái)傳送并由接收站來(lái)接收,其中可對(duì)傳輸信號(hào)中所編碼的代碼或邏輯進(jìn)行解碼并將其存儲(chǔ)在接收站和發(fā)送站或設(shè)備的硬件或計(jì)算機(jī)可讀介質(zhì)中?!爸破贰卑ㄆ鋬?nèi)可實(shí)現(xiàn)代碼的計(jì)算機(jī)可讀介質(zhì)、硬件邏輯、和/或傳輸信號(hào)。其中編碼了用于實(shí)現(xiàn)所述操作實(shí)施例的代碼的設(shè)備可以包括計(jì)算機(jī)可讀介質(zhì)或硬件邏輯。當(dāng)然,本領(lǐng)域普通技術(shù)人員可以知曉的是,在不脫離本發(fā)明的范圍的情況下可對(duì)該配置做出多種修改,并且制品可包括現(xiàn)有技術(shù)中已知的適當(dāng)?shù)男畔⒊休d介質(zhì)。
除非另有明確規(guī)定,否則術(shù)語(yǔ)“一實(shí)施例”、“實(shí)施例”、“多個(gè)實(shí)施例”、“所述實(shí)施例”、“所述多個(gè)實(shí)施例”、“一個(gè)或多個(gè)實(shí)施例”、“某些實(shí)施例”、以及“一個(gè)實(shí)施例”是指“本發(fā)明的一個(gè)或多個(gè)(并非所有)實(shí)施例”。
除非另有明確規(guī)定,否則術(shù)語(yǔ)“包括”、“包含”、“具有”、以及其變體是指“包括但并不局限于”。
除非另有明確規(guī)定,否則所列舉的術(shù)語(yǔ)的列表不意味著任何或所有術(shù)語(yǔ)是互斥的。
除非另有明確規(guī)定,否則術(shù)語(yǔ)“一”、“一個(gè)”、“所述”是指“一個(gè)或多個(gè)”。
除非另有明確規(guī)定,否則彼此進(jìn)行通信的設(shè)備不必是彼此進(jìn)行連續(xù)的通信。此外,彼此進(jìn)行通信的設(shè)備可直接進(jìn)行通信或通過(guò)一個(gè)或多個(gè)中間設(shè)備進(jìn)行間接通信。
對(duì)具有彼此進(jìn)行通信的若干部件的實(shí)施例的描述并不意味著需要所有這些部件。相反地,對(duì)各種可選部件進(jìn)行了描述以說(shuō)明本發(fā)明的多種可能的實(shí)施例。
此外,雖然按照相繼次序?qū)μ幚聿襟E、方法步驟、算法等進(jìn)行了描述,但是可將這種處理、方法、以及算法配置成以可替換的次序進(jìn)行工作。換句話說(shuō),所描述的步驟的任何次序或順序不一定表示必需按照這種順序執(zhí)行所述步驟。在這里所描述的處理步驟實(shí)際上可按照任何順序執(zhí)行。此外,可同時(shí)執(zhí)行一些步驟。
當(dāng)在這里對(duì)單個(gè)設(shè)備或制品進(jìn)行描述時(shí),顯而易見(jiàn)的是可使用多于一個(gè)的設(shè)備/制品(不管它們是否進(jìn)行協(xié)作)代替單個(gè)設(shè)備/制品。類似地,在這里對(duì)多于一個(gè)的設(shè)備或制品進(jìn)行描述的情況下(不管它們是否進(jìn)行協(xié)作),顯而易見(jiàn)的是,可使用單個(gè)設(shè)備/制品代替所述多于一個(gè)的設(shè)備或制品,或者可使用不同數(shù)目的設(shè)備/制品代替所示數(shù)目的設(shè)備或程序。作為選擇,通過(guò)未明確描述為具有這種功能/特征的一個(gè)或多個(gè)其他設(shè)備可實(shí)現(xiàn)設(shè)備的功能和/或特征。因此,本發(fā)明的其他實(shí)施例不必包括設(shè)備本身。
圖3、4、5、6、以及7中所說(shuō)明的操作給出了按照某個(gè)順序出現(xiàn)的某些事件。在替換實(shí)施例中,可以不同順序來(lái)執(zhí)行某些操作,可對(duì)其進(jìn)行改進(jìn)或刪除。此外,可將步驟添加到上述邏輯上并且仍符合所描述的實(shí)施例。此外,在這里所描述的操作是順序地進(jìn)行的,或者可對(duì)某些操作進(jìn)行并行處理。更進(jìn)一步地,操作可以是由單處理單元或分布式處理單元來(lái)執(zhí)行。
為了說(shuō)明和描述的目的,上面已對(duì)本發(fā)明的各個(gè)實(shí)施例進(jìn)行了描述。這并不是詳盡的,并且也并不打算將本發(fā)明局限于所公開(kāi)的精確形式。按照上述教導(dǎo),可做出多種修改和變化。本發(fā)明的范圍并不局限于該詳細(xì)說(shuō)明,而是受到附加到這里的權(quán)利要求的限制。上述說(shuō)明書、示例、以及數(shù)據(jù)提供了對(duì)制造和使用本發(fā)明的結(jié)構(gòu)的完整說(shuō)明。因?yàn)樵诓幻撾x本發(fā)明的精神和范圍的情況下可做出本發(fā)明的許多實(shí)施例,所以本發(fā)明由附加到下文的權(quán)利要求限定。
權(quán)利要求
1.一種方法,包括保持主次存儲(chǔ)位置之間的拷貝關(guān)系,其中將對(duì)主存儲(chǔ)位置的更新拷貝到次存儲(chǔ)位置;對(duì)阻止應(yīng)用寫入對(duì)主存儲(chǔ)位置的更新的故障進(jìn)行檢測(cè);響應(yīng)于檢測(cè)到故障,接收對(duì)于該應(yīng)用的故障消息,其中,不將故障消息提供給所述應(yīng)用;中止將對(duì)主存儲(chǔ)位置的更新拷貝到次存儲(chǔ)位置;以及響應(yīng)于中止拷貝,將故障消息提供給所述應(yīng)用。
2.根據(jù)權(quán)利要求1的方法,其中,數(shù)據(jù)移動(dòng)器異步地將對(duì)主存儲(chǔ)位置的更新拷貝到相關(guān)的次存儲(chǔ)位置。
3.根據(jù)權(quán)利要求1的方法,其中,所檢測(cè)到的故障包括配置了主存儲(chǔ)位置的存儲(chǔ)設(shè)備、提供對(duì)存儲(chǔ)設(shè)備的存取的控制單元、或者提供應(yīng)用與存儲(chǔ)設(shè)備之間的通信的結(jié)構(gòu)的部件中的至少一個(gè)的故障。
4.根據(jù)權(quán)利要求1的方法,其中,由包括所述應(yīng)用的主機(jī)操作系統(tǒng)或者用于管理對(duì)主存儲(chǔ)位置的存取的控制單元操作系統(tǒng)產(chǎn)生故障消息。
5.根據(jù)權(quán)利要求1的方法,其中,主次存儲(chǔ)位置包括第一主次存儲(chǔ)位置,其中所述應(yīng)用進(jìn)一步將異常信息寫入到被拷貝到第二次存儲(chǔ)位置的第二主存儲(chǔ)位置,其中所檢測(cè)到的故障包括與第一主存儲(chǔ)位置的可存取性有關(guān)的故障,并且其中中止對(duì)更新的拷貝可防止與寫入到第二主存儲(chǔ)位置中的異常信息上的所檢測(cè)故障有關(guān)的信息被拷貝到第二次存儲(chǔ)位置。
6.根據(jù)權(quán)利要求1的方法,其中,在中止期間將未從主存儲(chǔ)位置拷貝到次存儲(chǔ)位置的更新記入日志,所述方法進(jìn)一步包括通過(guò)將次存儲(chǔ)位置上的數(shù)據(jù)拷貝到主存儲(chǔ)位置來(lái)執(zhí)行數(shù)據(jù)恢復(fù)操作;以及響應(yīng)于將次存儲(chǔ)位置上的數(shù)據(jù)拷貝到主存儲(chǔ)位置,將記入日志的更新應(yīng)用到主存儲(chǔ)位置。
7.根據(jù)權(quán)利要求1的方法,其中,針對(duì)第一組主存儲(chǔ)位置檢測(cè)故障,其中第一組主存儲(chǔ)位置和第二組主存儲(chǔ)位置位于一個(gè)一致性組中,其中對(duì)更新的拷貝的中止適用于將對(duì)第一組和第二組主存儲(chǔ)位置的更新拷貝到相應(yīng)的第一組和第二組次存儲(chǔ)位置。
8.根據(jù)權(quán)利要求7的方法,其中,拷貝的中止不適用于將對(duì)第三組主存儲(chǔ)位置的更新拷貝到相應(yīng)的第三組次存儲(chǔ)位置,其中第三組主存儲(chǔ)位置不在包括有第一組和第二組主存儲(chǔ)位置的一致性組中。
9.根據(jù)權(quán)利要求7的方法,其中,第一組和第二組主次存儲(chǔ)位置包括不同的會(huì)話,其中第一數(shù)據(jù)移動(dòng)器用于將對(duì)第一組主存儲(chǔ)位置的更新拷貝到第一組次存儲(chǔ)位置,并且其中第二數(shù)據(jù)移動(dòng)器用于將對(duì)第二組主存儲(chǔ)位置的更新拷貝到第二組次存儲(chǔ)位置。
10.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括響應(yīng)于檢測(cè)到故障,停止對(duì)主存儲(chǔ)位置的I/O請(qǐng)求;響應(yīng)于中止對(duì)更新的拷貝,允許繼續(xù)進(jìn)行對(duì)主存儲(chǔ)位置的I/O請(qǐng)求;以及在中止對(duì)更新的拷貝時(shí),響應(yīng)于允許繼續(xù)進(jìn)行I/O請(qǐng)求,指示對(duì)主存儲(chǔ)位置的更新。
11.根據(jù)權(quán)利要求1的方法,其中,在中止期間將與故障消息有關(guān)的信息寫入到主存儲(chǔ)位置但不將其拷貝到次存儲(chǔ)位置,其中次存儲(chǔ)位置不包括與寫入到主存儲(chǔ)位置的故障消息有關(guān)的信息。
12.一種與主次存儲(chǔ)位置進(jìn)行通信的系統(tǒng),其中拷貝關(guān)系表明對(duì)主存儲(chǔ)位置的更新被拷貝到次存儲(chǔ)位置,所述系統(tǒng)包括處理器;以及計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)包括處理器所執(zhí)行的用于執(zhí)行操作的代碼,該操作包括接收與阻止應(yīng)用寫入對(duì)主存儲(chǔ)位置的更新的故障有關(guān)的故障消息,其中不將故障消息提供給所述應(yīng)用;中止將對(duì)主存儲(chǔ)位置的更新拷貝到次存儲(chǔ)位置;以及響應(yīng)于中止拷貝,將故障消息提供給所述應(yīng)用。
13.根據(jù)權(quán)利要求12的系統(tǒng),其中,所接收到的故障消息是由配置了主存儲(chǔ)位置的存儲(chǔ)設(shè)備、提供對(duì)存儲(chǔ)設(shè)備的存取的控制單元、或者提供所述應(yīng)用與存儲(chǔ)設(shè)備之間的通信的結(jié)構(gòu)的部件中的至少一個(gè)的故障引起的。
14.根據(jù)權(quán)利要求12的系統(tǒng),其中,由包括所述應(yīng)用的主機(jī)操作系統(tǒng)或者用于管理對(duì)主存儲(chǔ)位置的存取的控制單元操作系統(tǒng)產(chǎn)生故障消息。
15.根據(jù)權(quán)利要求12的系統(tǒng),其中,主次存儲(chǔ)位置包括第一主次存儲(chǔ)位置,其中所述應(yīng)用進(jìn)一步將異常信息寫入到被拷貝到第二次存儲(chǔ)位置的第二主存儲(chǔ)位置,其中所檢測(cè)到的故障包括與第一主存儲(chǔ)位置的可存取性有關(guān)的故障,并且其中中止對(duì)更新的拷貝可防止與寫入到第二主存儲(chǔ)位置中的異常信息上的所檢測(cè)故障有關(guān)的信息被拷貝到第二次存儲(chǔ)位置。
16.根據(jù)權(quán)利要求12的系統(tǒng),其中,故障與第一組主存儲(chǔ)位置有關(guān),其中第一組主存儲(chǔ)位置和第二組主存儲(chǔ)位置位于一個(gè)一致性組中,其中對(duì)更新的拷貝的中止適用于將對(duì)第一組和第二組主存儲(chǔ)位置的更新拷貝到相應(yīng)的第一組和第二組次存儲(chǔ)位置。
17.根據(jù)權(quán)利要求16的系統(tǒng),其中,拷貝的中止不適用于將對(duì)第三組主存儲(chǔ)位置的更新拷貝到相應(yīng)的第三組次存儲(chǔ)位置,其中第三組主存儲(chǔ)位置不在包括有第一組和第二組主存儲(chǔ)位置的一致性組中。
18.根據(jù)權(quán)利要求12的系統(tǒng),其中,所述操作進(jìn)一步包括響應(yīng)于接收到故障消息,停止對(duì)主存儲(chǔ)位置的I/O請(qǐng)求;響應(yīng)于中止對(duì)更新的拷貝,允許繼續(xù)進(jìn)行對(duì)主存儲(chǔ)位置的I/O請(qǐng)求;以及在中止對(duì)更新的拷貝時(shí),響應(yīng)于允許繼續(xù)進(jìn)行I/O請(qǐng)求,指示對(duì)主存儲(chǔ)位置的更新。
19.根據(jù)權(quán)利要求12的系統(tǒng),其中,在中止期間將與故障消息有關(guān)的信息寫入到主存儲(chǔ)位置但不將其拷貝到次存儲(chǔ)位置,其中次存儲(chǔ)位置不包括與寫入到主存儲(chǔ)位置的故障消息有關(guān)的信息。
20.一種制品,該制品包括能夠與主次存儲(chǔ)位置進(jìn)行通信的代碼,其中拷貝關(guān)系表明對(duì)主存儲(chǔ)位置的更新被拷貝到次存儲(chǔ)位置,并且其中所述代碼可導(dǎo)致執(zhí)行根據(jù)前述方法權(quán)利要求中的任何一種方法的操作。
全文摘要
提供了一種用于在鏡像系統(tǒng)中對(duì)故障進(jìn)行管理的方法、系統(tǒng)、以及程序。主次存儲(chǔ)位置中間存在拷貝關(guān)系,其中將對(duì)主存儲(chǔ)位置的更新拷貝到次存儲(chǔ)位置。對(duì)阻止應(yīng)用寫入對(duì)主存儲(chǔ)位置的更新的故障進(jìn)行檢測(cè)。響應(yīng)于檢測(cè)到故障,接收對(duì)于該應(yīng)用的故障消息,其中不將故障消息提供給應(yīng)用程序。中止將對(duì)主存儲(chǔ)位置的更新拷貝到次存儲(chǔ)位置。響應(yīng)于中止拷貝,將故障消息提供給所述應(yīng)用。
文檔編號(hào)G06F11/14GK1983202SQ20061013731
公開(kāi)日2007年6月20日 申請(qǐng)日期2006年10月17日 優(yōu)先權(quán)日2005年12月13日
發(fā)明者羅伯特·弗雷德里克·科恩, 戴維·B.·彼德森, 蓋爾·安德列·斯皮爾, 格里高里·艾德華·邁克布里奇 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司