專利名稱:保持緩存數(shù)據(jù)對象的更新定時信息的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及異步數(shù)據(jù)鏡像系統(tǒng)。更具體地,本發(fā)明的一個方面涉及臨時緩存用于在主存儲子系統(tǒng)中存儲的數(shù)據(jù),以便在不犧牲時間標簽信息的情況下在輔助存儲子系統(tǒng)上進行異步鏡像的方法。
背景技術(shù):
對于許多在主站點上更新和存儲數(shù)據(jù)的企業(yè)、政府和其它計算機用戶,有必要在物理上遠離主站點的輔助站點上保存數(shù)據(jù)的備份復本。這允許在出現(xiàn)損壞或破壞主站點上數(shù)據(jù)的設備故障或其它災難(例如火災或爆炸)的情況下,從輔助站點恢復數(shù)據(jù)。將數(shù)據(jù)復制到遠程輔助站點以作為用于災難恢復的備份的技術(shù)被稱作數(shù)據(jù)影像(datashadowing),數(shù)據(jù)鏡像,數(shù)據(jù)雙工(data duplexing)或遠程復制。為了能夠在災難之后精確恢復數(shù)據(jù)庫,必須在輔助站點上按照順序保存可以包含數(shù)據(jù)庫日志數(shù)據(jù)和數(shù)據(jù)庫表數(shù)據(jù)的數(shù)據(jù),所述輔助站點上數(shù)據(jù)的順序與主站點上數(shù)據(jù)的順序符合。這被稱作保持數(shù)據(jù)一致性。并且,通常期望因使用數(shù)據(jù)影像而在主站點上產(chǎn)生的性能退化最小。
2個主要類別的遠程數(shù)據(jù)影像被稱作"同步"數(shù)據(jù)影像和"異步"數(shù)據(jù)影像。對于同步數(shù)據(jù)影像,在允許下一個更新被寫入主站點上的存儲器中之前,任何指定數(shù)據(jù)更新均被存儲在主站點和輔助站點上。于是,輔助站點上的數(shù)據(jù)與主站點上的數(shù)據(jù)同步更新。數(shù)據(jù)更新可以包含新或更新的數(shù)據(jù)對象,例如記錄、記錄集合、文件、鏈接表或任何其他數(shù)據(jù)結(jié)構(gòu)。
國際商用機器公司(IBM)的端到端遠程復制(PPRC)設施是同步遠程數(shù)據(jù)影像系統(tǒng)的例子。對于PPRC,按照與主站點上數(shù)據(jù)相同的順序更新遠程輔助站點上的數(shù)據(jù),因此輔助站點上的數(shù)據(jù)與主站點上的數(shù)據(jù)自然保持同步。當運行在主站點的主機上的應用程序向主站點上的直接訪問存儲設備(DASD)的卷(volume)中寫入數(shù)據(jù)更新時,主站點上的存儲控制器在主站點上的DASD中存儲更新。主站點上的存儲控制器還向輔助站點上的輔助存儲控制器傳遞更新,以便存儲在輔助站點上的DASD卷中。接著,輔助存儲控制器通知主存儲控制器輔助存儲控制器已經(jīng)接收更新,并且接著主存儲控制器通知主站點主機更新已經(jīng)完全。因此,在數(shù)據(jù)更新之后,下一個事務或輸入/輸出(I/O)的處理被延遲,因為主存儲控制器不通知主站點主機更新完成,直到主存儲控制器從輔助存儲控制器接收到有關(guān)輔助存儲控制器已經(jīng)接收更新的確認。主站點和輔助站點之間的距離越大,則這個延遲也越大,并且這個延遲將主站點和輔助站點之間的最大距離限制到大約40千米。
與同步數(shù)據(jù)影像相反,對于異步數(shù)據(jù)影像,在任何數(shù)據(jù)更新被發(fā)送到輔助存儲站點之前,可以將不止一個數(shù)據(jù)更新寫入到主站點上的存儲器。于是,對于異步數(shù)據(jù)影像,輔助站點上的數(shù)據(jù)更新通常以相對主站點上的更新為異步的方式進行。
IBM的擴展遠程復制(XRC)設施是異步遠程數(shù)據(jù)影像系統(tǒng)的例子。對于XRC設施,當在主站點主機上運行的應用程序向主站點上存儲控制器發(fā)送請求以便在主站點的DASD上的卷中存儲數(shù)據(jù)更新時,存儲控制器在DASD中存儲更新,并且還在主站點存儲控制器的副文件中存儲數(shù)據(jù)更新。存儲控制器可以具有一或多個副文件,每個副文件對應于一個"控制器會話"。使用時間標簽存儲每個數(shù)據(jù)更新,所述時間標簽標識主機應用程序請求存儲數(shù)據(jù)更新的時間。當其被存儲在輔助站點上時,時間標簽允許按照順序一致的次序?qū)?shù)據(jù)更新放在副文件中,并且將其它數(shù)據(jù)更新放在其它副文件中。XRC使用"系統(tǒng)數(shù)據(jù)移動器"服務器,該服務器運行從主站點的一或多個存儲控制器中的副文件收集一組數(shù)據(jù)更新的程序。通過使用時間標簽,數(shù)據(jù)移動器將更新放在順序一致的組中,該組被稱作"一致性組"。對應于XRC從其收集數(shù)據(jù)以形成一致性組的副文件的存儲控制器會話組被稱作XRC"會話"。
一致性組是數(shù)據(jù)更新組,因為它們在相同時間間隔內(nèi)出現(xiàn),所以將它們組合在一起。為了利于形成一致性組,在存儲控制器中保存每個控制器會話的最近時間標簽。當形成一致性組時,XRC忽略來自在規(guī)定時間,例如一秒內(nèi)沒有任何數(shù)據(jù)更新的控制器會話(被稱作"空閑"控制器會話)的時間標簽。數(shù)據(jù)移動器重復地形成數(shù)據(jù)更新一致性組,并且接著向輔助站點上的存儲控制器發(fā)送數(shù)據(jù)更新一致性組。輔助站點上的存儲控制器接收每個一致性組中的數(shù)據(jù)更新,并且按照順序一致的次序在輔助站點的DASD的卷中存儲它們。作為使用一致性組的結(jié)果,按照與主站點上的DASD相同的順序更新輔助站點上的DASD。在1998年3月31日提交、標題為"使用遠程數(shù)據(jù)雙工的自描述數(shù)據(jù)對象形成一致性組(Forming Consistency Groups Using Self-describing Data Objects For Remote Data Duplexing)"的美國專利5,734,818,和2001年10月9日提交、標題為"多環(huán)境數(shù)據(jù)一致性(Multi-environment Data Consistency)"的美國專利6,301,643中描述了形成一致性組的技術(shù)和其它相關(guān)信息,這里完整地參考引用了所述專利。
利用XRC,主存儲控制器在其從主機接收更新之后不久便通知主機數(shù)據(jù)更新已經(jīng)完成,其中不需等待任何來自輔助站點的通信。因此,在向主存儲控制器發(fā)送數(shù)據(jù)更新之后不久,主站點主機便有時間處理下一個事務或I/O。
因此,諸如XRC的異步遠程數(shù)據(jù)影像系統(tǒng)可以提供優(yōu)于諸如PPRC的同步遠程數(shù)據(jù)影像系統(tǒng)的性能。雖然諸如XRC的系統(tǒng)具有廣泛用途并且在今天取得了廣泛的商業(yè)成功,然而IBM工程師仍然在尋求改進這種遠程數(shù)據(jù)影像系統(tǒng)的性能和效率。在這點上,我們正不懈地尋求改進數(shù)據(jù)影像的速度和效率。
發(fā)明內(nèi)容
概括地講,本提供發(fā)明的一個方面涉及臨時緩存用于在主存儲子系統(tǒng)中存儲的數(shù)據(jù),以便不犧牲時間標簽信息地在輔助存儲子系統(tǒng)上進行異步鏡像的方法。在系統(tǒng)中執(zhí)行這個方法,所述系統(tǒng)包含主機,連接到主機的主存儲子系統(tǒng),與主機相連但與主存儲系統(tǒng)分離的緩存器,輔助存儲子系統(tǒng),和連接主存儲子系統(tǒng)和輔助存儲子系統(tǒng)的數(shù)據(jù)移動器。
主機指定、接收或識別用于主存儲子系統(tǒng)中的存儲的各個數(shù)據(jù)對象。主機使用初始時間標簽在緩存器中存儲某些識別的數(shù)據(jù)對象,所述初始時間標簽與緩存器中的存儲時間相關(guān)。對于其它數(shù)據(jù)對象,主機將它們直接發(fā)送到主子系統(tǒng)以進行存儲,并且主存儲系統(tǒng)通過存儲這些數(shù)據(jù)對象和當前時間標簽作出響應,其中當前時間標簽與主存儲子系統(tǒng)中進行存儲的時間相關(guān)。
在預定調(diào)度下,主機將緩存數(shù)據(jù)對象發(fā)送("降級")到主子系統(tǒng)以便在其中進行存儲,并且還向主存儲子系統(tǒng)發(fā)送命令以便存儲每個數(shù)據(jù)對象和提前時間標簽,所述提前時間標簽包括被增加一個預定余量的初始時間標簽,所述預定余量的量值足夠使加上該量值的初始時間標簽被識別為提前時間標簽。之后,當收集來自主存儲器的數(shù)據(jù)以便在輔助存儲子系統(tǒng)上存儲時,可以根據(jù)提前時間標簽重構(gòu)初始時間標簽。
本發(fā)明的系統(tǒng)為用戶提供了若干不同的優(yōu)點。主要地,該系統(tǒng)通過在緩存器中快速存儲數(shù)據(jù)對象提供了性能優(yōu)點。通過在數(shù)據(jù)對象被更新并且被寫入緩存器時保存時間標簽信息,實現(xiàn)了另一個優(yōu)點。所公開的系統(tǒng)利于按照順序一致的次序維護緩存和非緩存數(shù)據(jù)對象,即使在緩存數(shù)據(jù)對象被寫入主存儲器之前將與緩存數(shù)據(jù)對象相關(guān)的數(shù)據(jù)對象寫入主存儲器也是如此。本發(fā)明還提供了通過以下描述可以理解的若干其它優(yōu)點和益處。
圖1-4示出了基于不同圖解實施例的數(shù)據(jù)存儲系統(tǒng)的硬件部件和互連的模塊圖。
圖5是數(shù)字數(shù)據(jù)處理機的模塊圖。
圖6示出了示例性的信號承載介質(zhì)。
圖7A、7B和7C是用于臨時緩存用于在主子系統(tǒng)中存儲的數(shù)據(jù),以便不犧牲時間標簽信息地在輔助存儲子系統(tǒng)上進行異步鏡像的示例性序列的流程圖。
具體實施例方式
在閱讀以下結(jié)合附圖的詳細描述之后,本領(lǐng)域的技術(shù)人員可以更加理解本發(fā)明的性質(zhì)、目的和優(yōu)點。
涉及使用異步數(shù)據(jù)鏡像系統(tǒng)中的緩存器的假定問題如上所述,諸如XRC的異步遠程數(shù)據(jù)影像系統(tǒng)通常可以提供優(yōu)于諸如PPRC的同步遠程數(shù)據(jù)影像系統(tǒng)的性能。為了尋求進一步改進使用XRC時的性能,發(fā)明人考慮了創(chuàng)新并且先前未預見到的思路,其中使用遠程數(shù)據(jù)影像環(huán)境中的主機級別緩存器,以便在向主站點上的DASD卷寫入緩存數(shù)據(jù)更新之前在緩存器中臨時存儲某些數(shù)據(jù)更新。高速緩存通常被用在主數(shù)據(jù)存儲子系統(tǒng)和輔助數(shù)據(jù)存儲子系統(tǒng)內(nèi),但是發(fā)明人發(fā)現(xiàn)使用主機級別緩存器(即可被與主存儲子系統(tǒng)分離的主機訪問)具有各種問題。例如,在保持緩存器中臨時存儲的數(shù)據(jù)與直接寫入主存儲器的其它數(shù)據(jù)之間的順序一致的次序方面,會存在大量問題,尤其在該數(shù)據(jù)與緩存器中存儲的數(shù)據(jù)相關(guān)時。
基于磁盤的遠程數(shù)據(jù)影像系統(tǒng)(例如XRC)需要在數(shù)據(jù)被發(fā)送到輔助站點之前將數(shù)據(jù)寫到主站點上的卷中。因此,不能直接從緩存器鏡像數(shù)據(jù)。通過按照其被提供到主卷的次序向輔助卷提供數(shù)據(jù)更新,XRC保持主站點主卷上的數(shù)據(jù)與輔助站點輔助卷上的數(shù)據(jù)之間的順序一致的次序。主卷內(nèi)的數(shù)據(jù)也必須保持順序一致的次序。在本發(fā)明之前的系統(tǒng)中,通過始終在相關(guān)數(shù)據(jù)被寫入主存儲器之前向主存儲器寫入其它數(shù)據(jù)所相關(guān)于的數(shù)據(jù)來達到所述目的。
發(fā)明人發(fā)現(xiàn),如果某些數(shù)據(jù)被臨時存儲在主機(主存儲子系統(tǒng)之上的另一個層次)的緩存器中,則緩存數(shù)據(jù)不會相對直接寫入主卷的其它數(shù)據(jù)保持順序一致的次序。由于在緩存數(shù)據(jù)處于緩存器中的同時其它數(shù)據(jù)會被直接寫入主卷,當緩存數(shù)據(jù)隨后被寫入主卷時,緩存數(shù)據(jù)會相對直接寫入主卷的數(shù)據(jù)具有錯誤次序。更具體地,因為緩存器中臨時存儲的數(shù)據(jù)必須在以后被寫入主卷,并且執(zhí)行針對主卷的寫入的已知I/O例程始終創(chuàng)建具有數(shù)據(jù)被寫入主卷的時間的時間標簽,因此不會保持順序一致的次序。于是對于先前緩存的數(shù)據(jù),會丟失應用程序更新數(shù)據(jù)和緩存器中最初存儲數(shù)據(jù)的時間。
作為更加具體的例子,在IBM的XRC產(chǎn)品中,主機使用被稱作"START I/O EXIT"的主機操作系統(tǒng)子部件將數(shù)據(jù)寫到主存儲器。無論被寫入的數(shù)據(jù)的來源如何(主機應用程序,或發(fā)明人提及的主機級別緩存器),START I/O EXIT例程均向被發(fā)送到主存儲子系統(tǒng)上磁盤存儲控制器的命令中包含的元數(shù)據(jù)字段插入系統(tǒng)時間標簽(執(zhí)行START I/O EXIT例程的時間)。于是,主存儲控制器將這個系統(tǒng)時間標簽(即,執(zhí)行退出程序的時間)與來自緩存器的數(shù)據(jù)對象相關(guān)。于是,與已經(jīng)存儲在緩存器中的數(shù)據(jù)對象相關(guān)的時間標簽會指示緩存數(shù)據(jù)對象被寫入主存儲器的時間,而不是數(shù)據(jù)對象被應用程序更新并且寫入緩存器的較早時間。因此,由于與緩存數(shù)據(jù)對象相關(guān)的時間標簽不會精確指示緩存數(shù)據(jù)對象被更新的時間,在主存儲器中不必按照與其它數(shù)據(jù)對象順序一致的次序保存緩存數(shù)據(jù)對象,其中所述其它數(shù)據(jù)對象相關(guān)于緩存數(shù)據(jù)對象并且被直接寫入主存儲器。當XRC數(shù)據(jù)移動器從主存儲器向輔助存儲器發(fā)送數(shù)據(jù)時,在數(shù)據(jù)上會無法觀察到順序一致的次序。
發(fā)明人還發(fā)現(xiàn),如果沒有任何措施保證在以后從副文件將主存儲器中的數(shù)據(jù)更新組合到一致性組并且發(fā)送到輔助存儲器時將緩存器數(shù)據(jù)更新寫入主存儲器,則也可能丟失順序一致的次序。如果緩存器包含任何在對應于一致性組的時間間隔期間更新的數(shù)據(jù),并且如果當XRC形成一致性組時該緩存數(shù)據(jù)沒有被寫入主存儲器,則緩存數(shù)據(jù)會被保留在一致性組之外。因此,緩存器中的數(shù)據(jù)不會與其它數(shù)據(jù)保持順序一致的次序。
因此,在將緩存器用于遠程數(shù)據(jù)影像系統(tǒng)時需要克服若干挑戰(zhàn)和困難。為了在遠程數(shù)據(jù)影像系統(tǒng)中實現(xiàn)某些性能改進,本發(fā)明人介紹下面描述的提出和克服這些挑戰(zhàn)的進展。
硬件部件和互連數(shù)據(jù)存儲系統(tǒng)結(jié)構(gòu)第一例子本發(fā)明的一個方面涉及被構(gòu)造成提供改進性能的數(shù)據(jù)存儲系統(tǒng)。作為一個例子,圖1示出了可以通過各種硬件部件和互連實現(xiàn)的系統(tǒng)100。更具體地,系統(tǒng)100包含集簇子系統(tǒng)102,主存儲子系統(tǒng)104,輔助存儲子系統(tǒng)106和數(shù)據(jù)移動器108。
集簇子系統(tǒng)102位于主站點109上。集簇子系統(tǒng)102包含也被稱作"主機"的主計算機110、112、114。主機110、112、114與主機鏈路116互連,主機鏈路116可以包括例如連接鏈路,內(nèi)部連接通道,集成集簇總線或其它適當鏈路。不是象圖解的例子中那樣使用3個主機110、112、114,在可選實施例中,可以使用1個、2個、4個或更多的主機。
通過數(shù)字處理單元,例如大型計算機、計算機工作站、服務器計算機、個人計算機、超級計算機、微處理器或其它適當?shù)臋C器實現(xiàn)各個主機110、112、114。可以通過相同(或不同)類型的數(shù)字處理單元實現(xiàn)各個主機110、112、114。在一個具體例子中,主機110、112、114均包括在z操作系統(tǒng)(z/OS)上運行的IBM zSeries Parallel Sysplex服務器,例如zSeries 900。適當數(shù)字處理單元的另一個例子是運行OS/390的IBM S/390服務器。主機110、112、114運行一或多個產(chǎn)生數(shù)據(jù)對象的應用程序,所述數(shù)據(jù)對象被存儲在主機外部的主存儲子系統(tǒng)104中??蛇x地,數(shù)據(jù)對象可以被存儲在一或多個主機110、112、114的內(nèi)部。數(shù)據(jù)對象可以包括新數(shù)據(jù)或?qū)εf數(shù)據(jù)的更新。"更新"也可以被用來針對為在主子系統(tǒng)104中存儲而接收的任何數(shù)據(jù)項。主機應用程序可以包含例如IMS和DB2。主機110、112、114運行包含下面討論的相應I/O例程115a、115b、115c的軟件。作為一個例子,I/O例程115a、115b、115c可以包括在主機110、112、114上運行的操作系統(tǒng)的子部件,例如主機操作系統(tǒng)的START I/O EXIT例程。
集簇子系統(tǒng)102也包含定時器118,定時器118連接到各個主機110、112、114,以便與主機110、112、114的定時同步。在一個例子中,定時器118是IBM Sysplex定時器??蛇x地,可以省略分立定時器118,在這種情況下主機110、112、114中的一個內(nèi)的定時器被用來同步主機110、112、114的定時。
集簇子系統(tǒng)102還包含連接設施120,連接設施120通過相應連接器122、124、126被連接到各個主機110、112、114。連接器122、124、126可以是例如系統(tǒng)間連接(ISC)或內(nèi)部連接總線(ICB)連接器。連接設施120包含被主機110、112、114共享的緩沖存儲器128("緩存器"),并且還包含處理器130。在一個具體例子中,連接設施120是IBM z900 model 100連接設施。其它適當連接設施的例子包含IBMmodel 9674 C04和C05,以及IBM model 9672 R06。可選地,連接設施120可以被包含在服務器,例如主機110、112、114中的一個內(nèi)。作為一個例子,某些適于這個可選實施例的服務器包含IBM z900和S/390服務器,該服務器具有內(nèi)部連接設施或充當連接設施的邏輯分區(qū)??蛇x地,可以通過任何其他適當?shù)姆掌鲗崿F(xiàn)連接設施120。作為一個例子,連接設施120中的處理器130可以運行z/OS??蛇x地,可以使用任何適當?shù)墓蚕泶鎯ζ鞫皇沁B接設施120。
雖然在主存儲子系統(tǒng)和輔助存儲子系統(tǒng)104、106中使用緩存器(未示出),然而緩存器128是不同的。它是主機級別緩存器,因為主機110、112、114可以獨立于主存儲子系統(tǒng)104地訪問它。緩存器128不在子系統(tǒng)104的控制下。而是,緩存器128包括另一個類似于子系統(tǒng)104、在主機110、112、114的控制下的單元,并且必要時甚至可以被包含在主機中。
位于主站點109上的主存儲子系統(tǒng)104包含連接到主存儲器136和主機110、112、114的主(存儲)控制器134。在圖解的例子中,主控制器134具有第一副文件138和第二副文件140??蛇x地,主控制器134可以具有唯一的單獨副文件,或者可以具有多于2個的副文件。在其它可選實施例中,主存儲子系統(tǒng)104包含一或多個連接到主機110、112、114,主存儲器136或附加主存儲器的附加存儲控制器(未示出)。各個附加存儲控制器可以具有一或多個副文件。
在圖解的例子中,主機110、112、114均通過相應鏈路,例如ESCON(企業(yè)順序連接)或FICON鏈路142、144、146連接到主控制器134。在可選實施例中,主機110、112、114也連接到輔助控制器148。
位于輔助站點152上的輔助存儲子系統(tǒng)106包含被連接到輔助存儲器154的輔助存儲控制器148??蛇x地,附加存儲控制器和/或附加存儲器可以被包含在輔助存儲子系統(tǒng)106中。
可以通過任何類型的非易失數(shù)據(jù)存儲器,例如一或多個使用磁性或光學存儲器(例如RAMAC單元、RAID陣列、"硬盤驅(qū)動器"、CD-ROM、WORM、DVD、數(shù)字光帶、電池支持電路存儲器或磁帶)來實現(xiàn)各個主存儲器136和輔助存儲器154。
在一個例子中,主存儲子系統(tǒng)104和輔助存儲子系統(tǒng)106均包括IBM 2105企業(yè)存儲服務器。在另一個例子中,主存儲子系統(tǒng)104和輔助存儲子系統(tǒng)106均包含連接到IBM model 3390 RAMAC存儲器的IBM 3990 model 6存儲控制器??梢酝ㄟ^不同于主存儲子系統(tǒng)104的硬件實現(xiàn)輔助存儲子系統(tǒng)106。例如,可以通過不同但幾何(geometrically)與主存儲器136兼容的存儲器硬件實現(xiàn)輔助存儲器154。幾何兼容的例子是各個磁盤在每個軌道中具有50千字節(jié)??蛇x地,輔助存儲器154可以與主存儲器136幾何不兼容,在這種情況下重新格式化數(shù)據(jù)以保持順序一致的次序。在主站點和輔助站點上卷序號和DASD地址可以相同或不同。
在圖1的圖解例子中,數(shù)據(jù)移動器108位于輔助站點152上。主控制器134通過鏈路156被連接到數(shù)據(jù)移動器108。在圖解的例子中,鏈路156是擴展鏈路,包括連接到第一通道擴展器160的第一ESCON或FICON鏈路158,通信鏈路162,第二通道擴展器164和第二ESCON或FICON鏈路166。主控制器134被連接到第一ESCON或FICON鏈路158,數(shù)據(jù)移動器108被連接到第二ESCON或FICON鏈路166。通信鏈路162可以包含例如導線,電纜、光纖線,無線鏈路,衛(wèi)星鏈路或電話線,并且可以通過例如DS1、DS3或OC48實現(xiàn)。在可選實施例中,鏈路156是ESCON或FICON鏈路,或其它適當?shù)逆溌?。ESCON鏈路可以被用于高達大約60千米的距離,F(xiàn)ICON鏈路可以被用于更長的距離,例如高達大約100千米的距離,而擴展鏈路可以被用于更大的距離,例如數(shù)百或數(shù)千千米的距離。數(shù)據(jù)移動器108也通過任何類型的適當連接,例如ESCON或FICON鏈路連接到輔助控制器148。
作為一個例子,可以通過IBM zSeries服務器實現(xiàn)數(shù)據(jù)移動器108。然而,通??梢允褂萌魏巫銐驈娏Φ臄?shù)字數(shù)據(jù)處理設備。在圖解的例子中,數(shù)據(jù)移動器108包含日志168,并且數(shù)據(jù)移動器108和日志168均位于輔助站點152上。日志168包括非易失存儲器,例如一或多個RAMAC單元、RAID陣列、"硬盤驅(qū)動器"、CD-ROM、WORM、DVD或其它類型的DASD??蛇x地,可以省略日志168。
第二例子在圖2示出的可選系統(tǒng)200中,數(shù)據(jù)移動器202不包含日志。在圖2中,數(shù)據(jù)移動器202位于主站點109上,并且分立的日志204位于輔助站點152上。在這個可選實施例中,數(shù)據(jù)移動器202通過鏈路206被連接到日志204。數(shù)據(jù)移動器202也被連接到主控制器134。在一個例子中,鏈路206包括如上所述的擴展鏈路。在另一個實施例中,鏈路206是ESCON或FICON鏈路,或其它適當?shù)逆溌?。日?04被連接到輔助控制器148??蛇x地,日志204被省略,并且數(shù)據(jù)移動器202被直接連接到輔助控制器148。
第三例子在圖3示出的另一個可選系統(tǒng)300中,數(shù)據(jù)移動器302位于第三站點304上。在這個可選實施例中,數(shù)據(jù)移動器302通過諸如ESCON或FICON鏈路或擴展鏈路的鏈路306被連接到主控制器134。數(shù)據(jù)移動器302通過諸如ESCON或FICON鏈路或擴展鏈路的鏈路310被連接到日志308。日志308被連接到輔助控制器148??蛇x地,日志308可以位于第三站點304上,數(shù)據(jù)移動器302中或與數(shù)據(jù)移動器302分離。可選地,沒有日志308,并且數(shù)據(jù)移動器302被直接連接到輔助控制器148。
第四例子通過圖4中的系統(tǒng)400圖解了可選的例子。系統(tǒng)400包含主機402,緩存器404,主存儲子系統(tǒng)406,輔助存儲子系統(tǒng)408和數(shù)據(jù)移動器410。與圖1中的系統(tǒng)100相反,在圖4的系統(tǒng)400中,緩存器404不是連接設施的一部分,沒有定時器,并且只有唯一一個主機402。并且,在系統(tǒng)400的圖解例子中,主存儲控制器412通過ESCON或FICON鏈路414被連接到數(shù)據(jù)移動器410。然而系統(tǒng)400中的部件、連接和操作通常與系統(tǒng)100中的相同。在系統(tǒng)400的可選實施例中,定時器可以被連接到主機402。并且在可選實施例中,如前面參照圖1所描述的,主控制器412可以通過擴展鏈路被連接到數(shù)據(jù)移動器410。
在圖4的系統(tǒng)400中,主機402,緩存器404和主存儲子系統(tǒng)406位于主站點416上。主存儲子系統(tǒng)406包含被連接到主存儲器418的主控制器412。主控制器412具有第一副文件419和第二副文件420??蛇x地,主控制器可以具有唯一的一個副文件,或者可以具有多于2個的副文件。主機402被連接到緩存器404和主控制器412。緩存器404可以被包含在主機402中,或者與主機402分離。輔助存儲子系統(tǒng)408位于輔助站點421上。輔助存儲子系統(tǒng)408包含被連接到輔助存儲器424的輔助存儲控制器422。數(shù)據(jù)移動器410被連接到主控制器412和輔助控制器422。在系統(tǒng)400的圖解例子中,數(shù)據(jù)移動器410包含日志426,并且數(shù)據(jù)移動器410位于輔助站點421上。在可選實施例中,數(shù)據(jù)移動器410可以位于主站點416或第三站點(未示出)上,并且日志426可以位于主站點416或第三站點上,或者被完全省略。
數(shù)字數(shù)據(jù)處理設備本發(fā)明的另一個方面涉及數(shù)字數(shù)據(jù)處理設備,其中數(shù)字數(shù)據(jù)處理設備可以被用來實現(xiàn)圖1-4的系統(tǒng)的某些或全部數(shù)字數(shù)據(jù)處理實體,例如主機110、112、114、402,數(shù)據(jù)移動器108、410,主控制器134、412等等。
圖5示出了一個數(shù)字數(shù)據(jù)處理設備500的例子。設備500包含連接到存儲器504的處理器502,例如微處理器或其它處理機。在本例子中,存儲器504包含快速存取存儲器506以及非易失存儲器508??焖俅嫒〈鎯ζ?06可以包括隨機訪問存儲器,并且可以被用來存儲由處理器502執(zhí)行的編程指令。非易失存儲器508可以包括例如一或多個磁性數(shù)據(jù)存儲盤(例如"硬盤驅(qū)動器",光驅(qū),磁帶驅(qū)動器),或任何其他適當?shù)拇鎯υO備。設備500還包含I/O 510,例如線路,總線,電纜,電磁鏈路,或其它被處理器502用來與設備500外部的位置交換數(shù)據(jù)的裝置。
除上述具體描述之外,本領(lǐng)域技術(shù)人員(借助本發(fā)明的教導)通常能夠發(fā)現(xiàn),在不偏離本發(fā)明范圍的情況下上述設備可以通過具有不同構(gòu)造的機器實現(xiàn)。例如,可以省略快速訪問存儲器506或非易失存儲器508;此外,可以在處理器502中提供存儲器504,或者在設備500外部提供存儲器504。
作為一個例子,數(shù)字數(shù)據(jù)處理設備500可以是IBM zSeries服務器。
操作除了如上所述的各種硬件實施例之外,本發(fā)明的不同方面涉及臨時緩存用于在主存儲子系統(tǒng)中存儲的數(shù)據(jù),以便不犧牲時間標簽信息地在輔助存儲子系統(tǒng)上進行異步鏡像的方法。
信號承載介質(zhì)在圖1-5的環(huán)境中,例如通過操縱一或多個圖解的主機、數(shù)據(jù)移動器和主控制器執(zhí)行相應的機器可讀指令序列可以實現(xiàn)這種方法,其中一或多個這樣的部件由數(shù)字數(shù)據(jù)處理設備500實現(xiàn)。這些指令可以駐留在各種信號承載介質(zhì)中。在這個方面,本發(fā)明的一個方面涉及信號承載介質(zhì),所述信號承載介質(zhì)實際(tangibly)包含可被至少一個數(shù)字數(shù)據(jù)處理器執(zhí)行以完成如這里描述的操作的機器可讀指令程序。
這個信號承載介質(zhì)可以包括例如在存儲器504表示的相應設備內(nèi)包含的RAM(未示出)。可選地,指令可以被包含在另一個信號承載介質(zhì)中,例如圖6示出的磁性數(shù)據(jù)存儲盤600。無論是包含在存儲器504、磁盤或其它地方,指令可以被存儲在各種機器可讀數(shù)據(jù)存儲介質(zhì)中,例如直接存取存儲器(例如傳統(tǒng)"硬盤驅(qū)動器"或RAID陣列),磁帶,電子只讀存儲器(例如ROM、EPROM或EEPROM),光學存儲裝置(例如CD-ROM,WORM,DVD,數(shù)字光帶),紙張"穿孔"卡或其它適當?shù)男盘柍休d介質(zhì),包含諸如數(shù)字和模擬通信鏈路和無線通信鏈路的傳輸介質(zhì)。在本發(fā)明的圖解實施例中,機器可讀指令可以包括從諸如"C"等等的語言編譯而成的軟件對象代碼。
總體操作序列介紹圖7A、7B和7C示出了序列700,該序列圖解了本發(fā)明的方法的一個例子。為了易于解釋,在如上所述圖1的系統(tǒng)100的環(huán)境中描述圖7A-7C的例子,但本發(fā)明不限于此。
啟動,配置在步驟702啟動序列700。在步驟703執(zhí)行某些設置步驟,包含選擇指定"時間增量",并且還包含確定在將數(shù)據(jù)對象從緩存器降級到主存儲器之間的指定"最大時間間隔"。下面更詳細地討論這些特征和涉及其數(shù)值選擇的因素。例如可以由人員在設計,安裝,編程,重新配置,啟動或操作系統(tǒng)100時執(zhí)行步驟703。
向緩存器和主存儲器寫入數(shù)據(jù)對象響應于主機應用程序產(chǎn)生、接收、指定或識別存儲器的數(shù)據(jù)更新而執(zhí)行步驟704。雖然任何主機110、112、114上運行的任何主機應用程序均可以提供更新(也被稱作數(shù)據(jù)對象),然而以主機110為例進行討論。在步驟704中,主機110指示連接設施120在緩存器128中存儲某些數(shù)據(jù)對象,并且指示主控制器134在主存儲器136中存儲其它數(shù)據(jù)對象。主機110可以例如通過向I/O例程115a發(fā)送數(shù)據(jù)來指示這種存儲。雖然如序列所示,然而當其它數(shù)據(jù)對象到達或需要在子系統(tǒng)104中存儲時,可以重復(未示出)步驟704。
此時緩存數(shù)據(jù)對象沒有被存儲在主存儲器136中,因為以后的處理被用來使緩存數(shù)據(jù)對象降級到主存儲器。通常,任何類型的數(shù)據(jù)對象均可以被存儲在緩存器128中,并且任何類型的數(shù)據(jù)對象均可以被"直接"存儲在主存儲器136中(通過主控制器)。雖然全部數(shù)據(jù)對象在被寫入主存儲器136之前可以被存儲在緩存器128中(并且沒有數(shù)據(jù)對象被直接存儲到主存儲器136),然而在許多環(huán)境中這會需要規(guī)模難以控制地巨大的緩存器。
伴隨在步驟704中存儲在緩存器128中的各個數(shù)據(jù)對象,主機110還指示連接設施120存儲對應于數(shù)據(jù)對象的初始時間標簽(或者連接設施120自動地自存儲這種時間標簽)。初始時間標簽表示數(shù)據(jù)對象被存儲在緩存器128的時間。
作為一個例子,系統(tǒng)記錄器(logger)設施通過在緩存器128中存儲元數(shù)據(jù)可以完成這個步驟,其中元數(shù)據(jù)包含記錄更新被放入緩存器128的實際時間。參照定時器118產(chǎn)生的系統(tǒng)時間可以確定日志更新的實際時間。
在步驟704中,隨著存儲在主存儲器136中的各個數(shù)據(jù)對象,主機指示主控制器134存儲與數(shù)據(jù)對象相關(guān)的當前時間標簽。當前時間標簽表示數(shù)據(jù)對象被存儲在主存儲器136的時間。作為一個例子,主機110可以通過調(diào)用START I/O EXIT例程來存儲數(shù)據(jù)對象及其時間標簽(步驟704),START I/O EXIT例程是z/OS或MVS操作系統(tǒng)的輸入輸出子系統(tǒng)(IOS)部件的一部分。START I/O EXIT例程在執(zhí)行START I/O EXIT例程時從118得到系統(tǒng)時間標簽,并且將這個時間標簽插入被提供給主控制器134的I/O命令中包含的元數(shù)據(jù)字段,從而指示控制器134在存儲器136中存儲時間標簽。"時間標簽"包含任何指示順序或次序的符號或編號,并且不局限于時間指示。
"數(shù)據(jù)對象"可以包括一或多個記錄、數(shù)據(jù)結(jié)構(gòu)、鏈接表、表格、位圖、字節(jié)、頁面、文件或其它數(shù)據(jù)構(gòu)造。作為一個例子,主機在策略上可以使用緩存器128存儲諸如z/OS記錄器數(shù)據(jù)(也被稱作日志數(shù)據(jù))的數(shù)據(jù)對象,并且使用主存儲器136存儲諸如數(shù)據(jù)庫表數(shù)據(jù)的數(shù)據(jù)對象。在這個例子中,例如通過XRC實現(xiàn)遠程數(shù)據(jù)影像的系統(tǒng)通過使用系統(tǒng)記錄器設施實現(xiàn)性能改進,所述系統(tǒng)記錄器設施(快速)將記錄器更新(logger update)寫入連接設施120的緩存器128,而不是(慢速)將記錄器更新"直接"寫入主存儲器136。系統(tǒng)記錄器設施(未示出)可以包括例如在一或多個主機110、112、114上運行的軟件。在本發(fā)明之前,在緩存器128中存儲記錄器數(shù)據(jù)更新會阻礙記錄器更新與表格更新保持順序一致的次序,其中表格更新被直接寫入主存儲器136,并且相關(guān)于緩存器中的記錄器數(shù)據(jù)。然而本發(fā)明的一個方面利于使記錄器數(shù)據(jù)與表格數(shù)據(jù)保持順序一致的次序。
在另一個例子中,數(shù)據(jù)可以駐留在兩個或更多開放文件系統(tǒng)中,其中來自一個文件系統(tǒng)的數(shù)據(jù)對象被臨時存儲在緩存器128中,而來自另一個文件系統(tǒng)并且相關(guān)于緩存數(shù)據(jù)對象的數(shù)據(jù)對象被直接寫入主存儲器136。
在另一個例子中,數(shù)據(jù)對象可以包括音頻信息。在一個具體例子中,緩存器128中存儲的數(shù)據(jù)對象來自一個音軌,而主存儲器136中直接存儲的數(shù)據(jù)對象來自另一個音軌。在另一個例子中,數(shù)據(jù)對象可以包括視頻和音頻信息,其中視頻被存儲在緩存器128中,而音頻被直接寫入主存儲器136,反之亦然。
緩存器降級介紹在步驟705,主機110開始緩存器降級。通常,這需要主機110得到各個緩存數(shù)據(jù)對象和對應于數(shù)據(jù)對象的"提前"時間標簽(下面描述),并且將它們發(fā)送到主控制器134以便在主存儲器136中存儲??刂破?34通過向存儲器136寫入數(shù)據(jù)對象及其對應的提前時間標簽來作出響應。
提前時間標簽不與初始時間標簽相同,但是可以根據(jù)提前時間標簽導出初始時間標簽。概括地講,每個提前時間標簽等于初始時間標簽加上預定余量,所述預定余量的量值足夠使加上該量值的初始時間標簽被識別成提前時間標簽,并且根據(jù)提前時間標簽可以可靠地導出初始時間標簽。例如,每個數(shù)據(jù)對象的提前時間標簽可以等于其初始時間標簽加上指定時間增量。下面進一步討論涉及指定時間增量的選擇的因素。
降級的調(diào)度在步驟705,主機110詢問緩存器128是否填滿。根據(jù)應用程序的需要,"填滿"可以被定義成完全填滿,某個百分比的填滿,與填滿相差指定余量,等等。評估緩存器填滿的程度,以便在調(diào)用主存儲器136之前較長時間地緩存數(shù)據(jù),從而利用緩存器的快速并避免主存儲器136加重負擔。
如果緩存器為"填滿",則步驟705前進到步驟710,步驟710開始將緩存器降級到主存儲器136(如下所述)。另一方面,如果緩存器沒有"填滿",則步驟705前進到步驟707,步驟707開始按照預定調(diào)度重復地向主存儲器136發(fā)送數(shù)據(jù)對象的過程,所述數(shù)據(jù)對象或者是來自主機的數(shù)據(jù)對象(如果該數(shù)據(jù)對象已經(jīng)被緩存),或者是空數(shù)據(jù)對象(如果緩存器為空)。
重復向主存儲器136寫入,使得發(fā)送任何2個數(shù)據(jù)對象之間的時間從不超過指定最大時間間隔。換言之,按照從不超過指定"最大時間間隔"的時間間隔將數(shù)據(jù)對象和對應的提前時間標簽寫入主存儲器136。下面更詳細地討論前面的操作。
降級細節(jié)如上所述,如果步驟705發(fā)現(xiàn)緩存為填滿,則在步驟710發(fā)生降級。在一個實施例中,可以通過由主機110調(diào)用I/O例程115a來執(zhí)行步驟710。然而對于每個數(shù)據(jù)對象,主機110還向I/O例程115a傳遞特殊命令,使得I/O例程115a發(fā)送具有提前時間標簽而不是其初始時間標簽的數(shù)據(jù)對象。
已知START I/O EXIT例程(實現(xiàn)成I/O例程115a)通常被用來從主機向主控制器134發(fā)送數(shù)據(jù)對象以便在136中存儲,并且還發(fā)送指示調(diào)用I/O例程115a的時間的"普通"時間標簽。然而,從主機110傳遞到I/O例程115a的特殊命令指示I/O例程115a發(fā)送具有其提前時間標簽的數(shù)據(jù)對象以便被控制器134存儲,而不是使用普通時間標簽。作為一個例子,特殊命令可以包括諸如"定義范圍","前綴"的IOS命令,或作為主機110和主控制器134之間通信協(xié)議的一部分的另一個命令。作為更加具體的例子,主機110可以向I/O例程115a傳遞參數(shù),以指示I/O例程115a將對應的提前時間標簽放到與針對主存儲器136的寫入相關(guān)的通道控制字(CCW)中。
在完成步驟710之后,通過將數(shù)據(jù)對象從緩存器128降級到主存儲器136,主機可以從緩存器128刪除數(shù)據(jù)對象以便為接收新數(shù)據(jù)對象而釋放緩沖存儲器。
使用提前時間標簽的原因現(xiàn)在對提前時間標簽的使用進行一些說明。在緩存器128中和數(shù)據(jù)對象一起存儲初始時間標簽(即在緩存器128中更新和存儲數(shù)據(jù)對象的時間)的原因是為了在以后數(shù)據(jù)對象被數(shù)據(jù)移動器108處理時,可以得到數(shù)據(jù)更新的實際時間。作為一個例子,當數(shù)據(jù)移動器108按照與其它數(shù)據(jù)對象順序一致的次序放置數(shù)據(jù)對象時,這個時間會有用。用對應的提前時間標簽替換初始時間標簽(步驟710)的原因在于,利用初始時間標簽對主存儲器136的寫入嘗試會導致不期望的結(jié)果。也就是,在某些情況下會用一時間標簽替換初始時間標簽,所述時間標簽不與數(shù)據(jù)對象被更新到和寫入緩存器128的時間相關(guān)。于是,當以后處理數(shù)據(jù)對象時,會丟失初始時間標簽。
更具體地,當主控制器134將數(shù)據(jù)對象寫入主存儲器136并且數(shù)據(jù)對象具有的時間標簽早于主控制器的最后已知時間標簽時,主控制器134忽略數(shù)據(jù)對象的現(xiàn)有時間標簽,并且使用等于主控制器的最后已知時間標簽加上少量時間的時間標簽向主存儲器136寫入數(shù)據(jù)對象。這保證針對主控制器134的后繼寫入始終具有晚于較早寫入的時間標簽,從而避免了使用XRC算法形成一致性組時會出現(xiàn)的問題。然而,按照這種方式替換初始時間標簽會導致?lián)p失表示在緩存器128中更新和存儲數(shù)據(jù)的時間的初始時間標簽,因為主控制器134寫入的替換時間標簽不會與初始時間標簽相關(guān)。
步驟710使用提前時間標簽避免了這個問題,其中保證提前時間標簽晚于存儲控制器會話的最后已知時間標簽。并且,由于提前時間標簽比初始時間標簽多出指定的時間增量,可以容易地根據(jù)提前時間標簽重構(gòu)初始時間標簽。也就是,以后數(shù)據(jù)移動器108在步驟722(下面討論)可以從提前時間標簽減去指定時間增量,從而計算恢復的時間標簽,所述恢復的時間標簽等于初始時間標簽,并且在數(shù)據(jù)移動器108以后處理數(shù)據(jù)對象時可以使用。
選擇時間增量前面有關(guān)過程700的討論足夠表明時間增量具有更多的用途,現(xiàn)在針對步驟703提供某些附加解釋。指定時間增量的最小時間存在若干約束。通常,增量必須足夠得大,使得當檢查主存儲器136的內(nèi)容時,數(shù)據(jù)移動器108可以區(qū)分提前時間標簽和非提前時間標簽。增量必須大于從在步驟704將數(shù)據(jù)對象寫入緩存器128的時間,到在步驟710將數(shù)據(jù)對象寫入主存儲器136的時間的最大延遲,使得初始時間標簽加上增量的總和(等于提前時間標簽)大于當在步驟710將對應數(shù)據(jù)對象寫入主存儲器136時的系統(tǒng)時間標簽。增量也必須大于從在步驟704將數(shù)據(jù)對象寫入緩存器128的時間,到在步驟720(下面討論)由數(shù)據(jù)移動器108確定時間標簽是否提前時間標簽的時間的最大延遲。換言之,初始時間標簽加上增量的總和必須大于在執(zhí)行步驟720時的系統(tǒng)時間標簽。于是,可被用于基于前面2個約束的增量的最小值涉及緩存器128的容量,因為來自較小緩存器128的數(shù)據(jù)必須比來自較大緩存器128的數(shù)據(jù)更為頻繁地被寫入主存儲器,以避免填滿緩存器128。并且,增量必須大于I/O操作之間的最小時間(通常為一秒的千分之幾)。增量也必須大于任何合理的空閑時間,其中在所述空閑時間內(nèi)沒有從應用程序?qū)懭敫?。例如,在具體實現(xiàn)中,增量可以是秒的一部分,秒,分鐘,小時,天,月,年,或任何其他滿足這些約束的數(shù)值。如果增量過小,則會導致數(shù)據(jù)不一致性。通常,單獨的數(shù)值被用于增量,雖然增量可以因時間標簽而有所不同,只要增量的數(shù)值滿足上述約束。作為一個例子,系統(tǒng)記錄器設施向初始時間標簽加入時間增量(例如24小時)以計算對應的提前時間標簽,而提前時間標簽被傳遞到主控制器134并且被存儲成針對對應記錄器數(shù)據(jù)對象的時間標簽。在這個例子中,24小時被選擇作為增量數(shù)值,因為在多數(shù)系統(tǒng)中24小時會滿足上述全部約束,并且因為諸如24小時的較大數(shù)值利于識別提前時間標簽。
緩存降級的頻率與前面的描述(其中步驟705發(fā)現(xiàn)緩存將被填滿并且繼續(xù)執(zhí)行以在步驟710中將緩存數(shù)據(jù)對象寫入存儲器)相反,在緩存器沒有填滿的情況下,步驟705前進到步驟707。如上所述,過程700等待數(shù)據(jù)對象降級,直到緩存器填滿,或直到"計數(shù)器"(下面描述)溢出。
在步驟707中,在查明緩存器128可能向主存儲器發(fā)送任何數(shù)據(jù)對象之前,主機110進行等待,直到計數(shù)器(未示出)溢出。這個計數(shù)器每當經(jīng)過預定間隔時便溢出,這個間隔被稱作"最大時間間隔"。每當緩存數(shù)據(jù)被寫入主存儲器時,例如在步驟710、718、716中,復位計數(shù)器。例如,計數(shù)器可以包括在主機內(nèi)部或可被主機訪問的硬件或軟件部件。
當計數(shù)器溢出時,執(zhí)行步驟714。在步驟714中,主機110確定緩存器128是否含有任何尚未寫入主存儲器136的數(shù)據(jù)對象,即任何"未降級"數(shù)據(jù)對象。如果沒有,則執(zhí)行步驟716。在步驟716中,主機110指示主控制器134向主存儲器136寫入空數(shù)據(jù)對象和對應的提前時間標簽。所謂的"空"數(shù)據(jù)對象可以包括只含有不具有任何數(shù)據(jù)的元數(shù)據(jù)“外殼(shell)”的數(shù)據(jù)對象,或含有預定模式或空內(nèi)容等等的數(shù)據(jù)對象??諗?shù)據(jù)對象不具有初始時間標簽,因為它不是真實數(shù)據(jù)對象,并且從不被緩存;于是,空數(shù)據(jù)對象的提前時間標簽包括足夠大的量值,以便可輕易被識別為提前時間標簽而不是初始時間標簽;例如,可以使用被加到定時器118的當前時間上的時間增量,或僅僅是時間增量。當在步驟716向主控制器發(fā)送空數(shù)據(jù)對象和時間標簽之后,主機也清除計數(shù)器。對于每個被寫入主存儲器的空數(shù)據(jù)對象和對應的提前時間標簽,主控制器134在步驟717將它們寫入第一副文件。
與步驟716相反,如果步驟714確定緩存器128含有任何未降級的數(shù)據(jù)對象,則主機110(步驟718)指示主控制器134向主存儲器136寫入數(shù)據(jù)對象和對應的提前時間標簽。當在步驟718向主控制器發(fā)送數(shù)據(jù)對象和時間標簽之后,主機清除計數(shù)器。在步驟718之后,主控制器134向第一副文件138寫入數(shù)據(jù)對象及其提前時間標簽(步驟717)。
在步驟717之后,無論來自步驟716還是步驟718,控制均返回到步驟707以等待計數(shù)器再次溢出。步驟707保證以足夠的速率重復執(zhí)行步驟716、718中的一個,使得按照不超過指定最大時間間隔的時間間隔將數(shù)據(jù)對象(無論是否為空)和對應的提前時間標簽寫入主存儲器136。
在可選實施例中,即使步驟714發(fā)現(xiàn)緩存器128中存在一或多個尚未寫入主存儲器136的附加數(shù)據(jù)對象,仍然可以延遲或跳過步驟718以便在緩存器中累積數(shù)據(jù)對象。在這種情況下,執(zhí)行步驟716。然而如果允許按照這種方式累積更新,則在緩存器128的容量被超出時,會丟失數(shù)據(jù)。
選擇最大時間間隔時考慮的因素為了將緩存器中的數(shù)據(jù)對象包含在正確的一致性組中,指定最大時間間隔必須不長于某個數(shù)值,該數(shù)值等于數(shù)據(jù)移動器108形成一致性組所使用的最小組時間間隔,減去在數(shù)據(jù)對象被寫入主存儲器136之后第一主控制器134將數(shù)據(jù)對象(空或非空)和對應的時間標簽寫入第一副文件138所需的時間的任何變化。用于形成一致性組的組時間間隔可以有所不同,因為當存儲控制器會話空閑時數(shù)據(jù)移動器108檢查更新以形成一致性組所用的組時間間隔(例如每秒或每10秒),會大于存儲控制器會話不空閑時所用的組時間間隔(例如每1/4秒)。另外,在主機110將數(shù)據(jù)對象和對應時間標簽寫入主存儲器136之后,主控制器134將數(shù)據(jù)對象和對應時間標簽寫入第一副文件138之前,通常會有較小的延遲,例如秒的一部分。如果這個延遲對于每次寫入均不一致,則在步驟703中,當確定指定最大時間間隔的數(shù)值時,將指定最大時間間隔的數(shù)值減去至少等于延遲的最大變化的量值,以保證數(shù)據(jù)對象和對應時間標簽到主存儲器136的后繼寫入(按照不大于最小組時間間隔的間隔),同樣也被按照不大于最小組時間間隔的時間間隔寫入第一副文件138。
副文件更新在步驟712中,主控制器134識別在步驟712中被降級的數(shù)據(jù)對象,并且將這些數(shù)據(jù)對象及其提前時間標簽存儲到第一副文件138。同樣地,并且也在步驟712中,主控制器134識別在步驟704存儲在主存儲器136中的數(shù)據(jù)對象,并且將這些數(shù)據(jù)對象及其當前時間標簽存儲到第二副文件140。這些操作可以分別發(fā)生,雖然根據(jù)圖解它們共同發(fā)生在步驟712。
副文件處理參照圖7B,在步驟719中,數(shù)據(jù)移動器108接收處理第一副文件138中的數(shù)據(jù)對象(被稱作"當前"數(shù)據(jù)對象)的請求。例如,可以從XRC程序的處理子部件接收這個請求,并且可以因此在數(shù)據(jù)移動器108內(nèi)產(chǎn)生這個請求。如圖所示,執(zhí)行步驟719、720、728、730、722、724以處理第一副文件138。還根據(jù)需要重復這些步驟(未示出)以處理第二副文件140。然而為了便于討論,有關(guān)步驟719、720、728、730、722的說明被限于第一副文件。
在步驟720中,數(shù)據(jù)移動器108確定第一副文件138中對應于第一副文件138中當前數(shù)據(jù)對象的時間標簽是否提前時間標簽。通過比較時間標簽和當前系統(tǒng)時間標簽來進行這種確定。由于對增量數(shù)值施加的約束,如果副文件時間標簽大于當前系統(tǒng)時間標簽,則副文件時間標簽一定是提前時間標簽。因此,如果副文件時間標簽大于當前系統(tǒng)時間標簽,則數(shù)據(jù)移動器108將副文件時間標簽識別為提前時間標簽。
如果步驟720確定副文件時間標簽是提前時間標簽,則在步驟722中,數(shù)據(jù)移動器108從副文件時間標簽中減去時間增量以計算恢復時間標簽(等于數(shù)據(jù)對象的初始時間標簽)。例如,如果數(shù)據(jù)對象被識別為記錄器數(shù)據(jù),則在步驟722中,數(shù)據(jù)移動器108將副文件時間標簽減少指定時間增量(例如24小時),其中所述指定時間增量先前被主機110上運行的系統(tǒng)記錄器設施加到初始時間標簽上以計算提前時間標簽。數(shù)據(jù)移動器108接著使用新計算的恢復時間標簽以計算不同控制器會話中記錄器數(shù)據(jù)對象和其它數(shù)據(jù)對象(例如表格數(shù)據(jù))之間的一致性(下面討論)。在步驟722中從副文件時間標簽減去時間增量的方式保證記錄器數(shù)據(jù)相對來自其它控制器會話的數(shù)據(jù)更新具有正確的時間標簽,所述數(shù)據(jù)可以被放在相同XRC控制器會話的卷中以作為記錄器數(shù)據(jù)。
當在步驟722中計算出恢復時間標簽之后,數(shù)據(jù)移動器108用恢復的(初始)時間標簽替換提前時間標簽,使得初始時間標簽會被用于所有未來的需要有關(guān)數(shù)據(jù)對象的時間標簽的操作(步驟724)。在步驟724之后,過程可以可選地結(jié)束,或者可以執(zhí)行到步驟732(圖7C)以開始涉及一致性組的形成的附加步驟。
步驟724與傳統(tǒng)的副文件處理形成強烈對比。在已知系統(tǒng)中,通常結(jié)合對應的"普通"時間標簽處理數(shù)據(jù)對象。普通時間標簽指示執(zhí)行I/O例程115a以便向主存儲器136寫入數(shù)據(jù)對象的時間。作為本發(fā)明的一個例子,在步驟706中和非緩存數(shù)據(jù)對象一起存儲在主存儲器136中的當前時間標簽是這種普通時間標簽;如下面詳細描述的,這些隨后被用來處理非緩存數(shù)據(jù)對象。相反,步驟724保證在未來的操作中數(shù)據(jù)移動器108會結(jié)合恢復的(初始)時間標簽處理第一副文件138中的數(shù)據(jù)對象。如下所述,這種未來處理可以包含形成數(shù)據(jù)對象的一致性組。在步驟724之后,過程700執(zhí)行到步驟732(圖7C)。
與上述描述相反,如果步驟720發(fā)現(xiàn)當前副文件中當前數(shù)據(jù)對象的時間標簽不是提前時間標簽,則可以(可選地)執(zhí)行附加步驟以執(zhí)行錯誤檢查。在這種情況下,步驟720前進到步驟728,其中數(shù)據(jù)移動器108詢問當前副文件中是否有任何前面的時間標簽曾被發(fā)現(xiàn)為提前時間標簽。例如,第一副文件應當含有所有的提前時間標簽(因為其中填充有來自緩存器的數(shù)據(jù)),而第二副文件不含有提前時間標簽(因為其中填充非緩存數(shù)據(jù))。于是,如果步驟728發(fā)現(xiàn)當前副文件的任何以往數(shù)據(jù)對象均具有提前時間標簽(其中根據(jù)步驟720,當前數(shù)據(jù)對象不具有),則數(shù)據(jù)移動器108在步驟730發(fā)出警告。這提醒可能存在不一致數(shù)據(jù),因為當前副文件含有具有提前時間標簽和非提前時間標簽的數(shù)據(jù)對象,這表明某些數(shù)據(jù)對象來自緩存器而其它數(shù)據(jù)對象不來自緩存器。根據(jù)需要,警告可以被發(fā)到主機110,主控制器134或任何其他實體。在步驟730之后,過程700執(zhí)行到步驟732(圖7C)。
一致性組的形成在圖7B的步驟724(或步驟730)之后,過程700前進到圖7C的步驟732,以便處理數(shù)據(jù)對象并且將數(shù)據(jù)對象裝配到一致性組中。
識別空閑控制器會話執(zhí)行步驟734、736、738的序列以識別和標明空閑控制器會話。在步驟734中,數(shù)據(jù)移動器108確定組時間間隔(對應于一致性組的形成的時間間隔)期間第一主控制器會話中是否存在數(shù)據(jù)對象更新。第一副文件138對應于第一主控制器會話,因此步驟734包括確定組時間間隔期間第一副文件138中是否已經(jīng)存在數(shù)據(jù)對象更新。通過讀取第一副文件138中的時間標簽和數(shù)據(jù)對象(可以包含非空和空數(shù)據(jù)對象)來完成步驟734。如果在組間隔期間存在更新,則控制器會話不空閑。因此,如下所述,步驟734跳過步驟738并且前進到步驟746。
在步驟736中,數(shù)據(jù)移動器108確定任何對應于第一主控制器會話中的數(shù)據(jù)對象的時間標簽是否提前時間標簽。如果是,則主控制器會話不空閑。因此,如下所述,步驟736跳過步驟738并且前進到步驟746。
與上述描述相反,如果在組間隔期間不存在更新,并且第一主控制器會話中沒有提前時間標簽,則執(zhí)行步驟738。這里,數(shù)據(jù)移動器108將第一主控制器會話標明為空閑。雖然為了便于討論未示出,然而會針對每個附加副文件(例如第二副文件140)而根據(jù)需要重復步驟734、736和738。
形成一致性組現(xiàn)在描述涉及數(shù)據(jù)對象一致性組的形成的附加步驟。一致性組是在組時間間隔上來自對應于不同存儲控制器會話的不同副文件的數(shù)據(jù)更新的組,所述數(shù)據(jù)更新被組合在一起,使得數(shù)據(jù)更新可以保持順序一致的次序。于是,不同控制器會話中在相同組時間間隔期間發(fā)生的更新被組合在一起,并且還按照時序次序被放置在每個組內(nèi)。
在步驟746中,數(shù)據(jù)移動器108確定第一主控制器會話是否被標明為空閑。如果是,數(shù)據(jù)移動器108在形成一組時間間隔的一致性組時通過跳過步驟748來繞過第一主控制器會話。這個動作也可以被稱作繞過與第一主控制器會話相關(guān)的時間標簽。另一方面,如果步驟746發(fā)現(xiàn)第一主控制器會話未被標明空閑,則執(zhí)行步驟748。在步驟748中,數(shù)據(jù)移動器108針對組時間間隔確定對應于第一副文件138中數(shù)據(jù)對象的最大恢復時間標簽。最大恢復時間標簽是第一副文件138中任何數(shù)據(jù)對象的最大時間標簽。
類似地,在步驟750中,如果第二主控制器會話已經(jīng)被標明為空閑,則數(shù)據(jù)移動器108在形成該組時間間隔的一致性組時通過跳過步驟752來繞過第二主控制器會話。如果第二主控制器會話未被標明空閑并且繞過,則在步驟752中,數(shù)據(jù)移動器108針對組時間間隔確定對應于第二副文件140中數(shù)據(jù)對象的最大當前時間標簽。
接著在步驟754中,數(shù)據(jù)移動器108識別通過步驟748、752確定的最大時間標簽中的最小值。在步驟756中,數(shù)據(jù)移動器108接著針對組時間間隔形成一致性組,其中一致性組包含具有恢復時間標簽的數(shù)據(jù)對象和具有當前時間標簽的數(shù)據(jù)對象,所述時間標簽小于或等于通過步驟754識別的最小值。當形成一致性組時,以彼此具有順序一致的次序的方式放置一致性組中的數(shù)據(jù)對象。作為一個例子,一致性組被發(fā)送到輔助站點152,以保持輔助站點152上數(shù)據(jù)更新的次序與數(shù)據(jù)更新在主站點109上導致的寫入I/O操作的次序相一致。作為另一個例子,數(shù)據(jù)更新可以是音頻數(shù)據(jù)軌道。第一軌道可以對應于第一主控制器會話。如果第一軌道為靜音并因此沒有數(shù)據(jù)更新,則第一主控制器會話被標明為空閑,這導致在第一軌道為靜音期間第一軌道不與其它音軌組合。
如果在XRC控制器會話中只使用一個主副文件(例如第一副文件138),則省略步驟750、752和754,并且在步驟748中確定的最大恢復時間標簽也被用作最小值。
在步驟758中,一致性組的數(shù)據(jù)對象被存儲在日志168中。在將數(shù)據(jù)存儲在輔助存儲器154中之前在日志168中存儲數(shù)據(jù)的方式允許在發(fā)生災難時根據(jù)日志168恢復中間數(shù)據(jù)。
在步驟760中,一致性組的數(shù)據(jù)對象被存儲在輔助存儲器154中。數(shù)據(jù)對象可以被存儲在輔助存儲器154中,無論數(shù)據(jù)對象是否也被存儲在日志中。作為一個例子,輔助存儲器154是位于輔助站點152的DASD。為了使災難中導致的數(shù)據(jù)損失量最小,期望頻繁執(zhí)行形成一致性組所需的上述步驟,并且將主站點109上的更新復制到輔助站點152。序列700在步驟762結(jié)束。
其它實施例雖然上述公開內(nèi)容示出了本發(fā)明的若干圖解實施例,然而本領(lǐng)域的技術(shù)人員應當理解,在不偏離所附權(quán)利要求書定義的本發(fā)明范圍的前提下,這里可以進行各種改變和修改。例如,雖然通常在異步遠程數(shù)據(jù)影像系統(tǒng)的環(huán)境中描述本發(fā)明,然而本發(fā)明也可以很好用于同步(例如PPRC)和半同步遠程數(shù)據(jù)影像系統(tǒng),以及不使用遠程數(shù)據(jù)影像的環(huán)境。此外,雖然可以單一地描述或要求保護本發(fā)明的要素,然而可以考慮多個要素,除非明確指出涉及單一要素的限制。
權(quán)利要求
1.使用時間標簽管理數(shù)據(jù)的方法,該方法包括以下操作在緩存器中存儲某些數(shù)據(jù)對象,并且在主存儲器中存儲其它非緩存數(shù)據(jù)對象;針對主存儲器中存儲的每個數(shù)據(jù)對象,向主存儲器寫入當前時間標簽,其中當前時間標簽表示數(shù)據(jù)對象被存儲在主存儲器的時間;針對緩存器中存儲的每個數(shù)據(jù)對象,在緩存器中放入對應于數(shù)據(jù)對象的初始時間標簽,初始時間標簽表示數(shù)據(jù)對象被存儲在緩存器的時間;將來自緩存器的數(shù)據(jù)對象和對應的提前時間標簽寫入主存儲器,其中每個提前時間標簽均等于初始時間標簽加上指定時間增量;響應對主存儲器中識別的數(shù)據(jù)對象應用預定一致性組形成例程的請求,針對每個數(shù)據(jù)對象,讀取對應于識別的數(shù)據(jù)對象的提前時間標簽,并且從中減去時間增量以計算恢復時間標簽,接著結(jié)合恢復時間標簽而不是提前時間標簽對識別的數(shù)據(jù)對象應用所述例程。
2.如權(quán)利要求1所述的方法,還包括按照不超過指定最大時間間隔的時間間隔重復寫操作。
3.如權(quán)利要求1所述的方法,所述操作還包括至少象指定最大時間間隔一樣經(jīng)常地確定緩存器是否含有任何尚未寫入主存儲器的附加數(shù)據(jù)對象;如果有,將來自緩存器的附加數(shù)據(jù)對象和對應的提前時間標簽寫入主存儲器,其中每個提前時間標簽均等于初始時間標簽加上指定時間增量;如果沒有,將空記錄和對應的提前時間標簽寫入主存儲器和副文件,其中提前時間標簽至少和時間增量一樣大。
4.如權(quán)利要求1所述的方法,其中向主存儲器寫入數(shù)據(jù)對象和對應的提前時間標簽的操作包括調(diào)用輸入/輸出例程,所述輸入/輸出例程被構(gòu)造成向主存儲器寫入數(shù)據(jù)對象,和指示執(zhí)行輸入/輸出例程以便向主存儲器寫入數(shù)據(jù)對象的時間的普通時間標簽,并且向輸入/輸出例程傳遞一命令,該命令指示輸入/輸出例程向主存儲器寫入對應的提前時間標簽而不是普通時間標簽。
5.如權(quán)利要求1所述的方法,其中所述操作還包括向主存儲器的副文件寫入來自緩存器的數(shù)據(jù)對象及其對應的提前時間標簽;向主存儲器的副文件寫入非緩存數(shù)據(jù)對象及其對應的當前時間標簽;如果(1)在指定組時間間隔期間沒有數(shù)據(jù)對象被存儲到具有一或多個副文件的指定組,并且(2)沒有對應于指定組中數(shù)據(jù)對象的時間標簽是提前時間標簽,將指定組標明為空閑。
6.在存儲于主存儲子系統(tǒng)之前臨時緩存數(shù)據(jù)以便不犧牲時間標簽信息地在輔助存儲子系統(tǒng)上進行異步鏡像的方法,在一系統(tǒng)中執(zhí)行所述方法,該系統(tǒng)包含主機,連接到主機的主存儲子系統(tǒng),連接到主機并且與主存儲子系統(tǒng)分離的緩存器,輔助存儲子系統(tǒng),和連接主存儲子系統(tǒng)和輔助存儲子系統(tǒng)的數(shù)據(jù)移動器,所述方法包括操作主機識別要在主存儲子系統(tǒng)中存儲的各種數(shù)據(jù)對象;主機在緩存器中存儲某些識別的數(shù)據(jù)對象,以及涉及緩存器中的存儲的時間的初始時間標簽;主機向主存儲子系統(tǒng)發(fā)送其它識別的數(shù)據(jù)對象以便在其中存儲,而主存儲子系統(tǒng)通過存儲其它數(shù)據(jù)對象和涉及主存儲子系統(tǒng)中的存儲的時間的當前時間標簽來作出響應;根據(jù)預定調(diào)度,主機將緩存數(shù)據(jù)對象發(fā)送到主存儲子系統(tǒng)以便在其中進行存儲,并且還包含使主存儲子系統(tǒng)存儲每個數(shù)據(jù)對象和提前時間標簽的命令,所述提前時間標簽包括與數(shù)據(jù)對象相關(guān)、加上預定余量的初始時間標簽,所述預定余量具有足夠使得加上該預定余量的初始時間標簽被識別為提前時間標簽的量值,和允許根據(jù)提前時間標簽導出初始時間標簽的量值。
7.如權(quán)利要求6所述的方法,所述操作還包括響應于數(shù)據(jù)移動器開始在主存儲子系統(tǒng)中準備數(shù)據(jù)對象以便存儲于輔助存儲子系統(tǒng)的指定處理,在處理被應用于主存儲子系統(tǒng)中指定集合的一或多個數(shù)據(jù)對象的情況下,執(zhí)行以下操作檢查集合中的各個數(shù)據(jù)對象以確定其相關(guān)時間標簽是提前時間標簽還是當前時間標簽;如果是提前時間標簽,則從提前時間標簽中減去預定余量以恢復初始時間標簽,并且使用恢復的初始時間標簽對數(shù)據(jù)對象進行未來的處理;如果是當前時間標簽,則使用當前時間標簽對數(shù)據(jù)對象進行未來的處理。
8.如權(quán)利要求6所述的方法,所述操作還包括主存儲子系統(tǒng)在各種副文件中存儲數(shù)據(jù)對象;處理副文件以便形成一致性組,其中處理包含在條件下將每個副文件標明為空閑,所述條件包含副文件具有至少一個與提前時間標簽相關(guān)的數(shù)據(jù)對象。
9.至少一個信號承載介質(zhì),實際包含可被至少一個數(shù)字處理設備運行以便執(zhí)行使用時間標簽管理數(shù)據(jù)的方法的機器可讀指令程序,所述方法包括以下操作在緩存器中存儲某些數(shù)據(jù)對象,并且在主存儲器中存儲其它非緩存數(shù)據(jù)對象;針對主存儲器中存儲的每個數(shù)據(jù)對象,向主存儲器寫入當前時間標簽,其中當前時間標簽表示數(shù)據(jù)對象被存儲在主存儲器的時間;針對緩存器中存儲的每個數(shù)據(jù)對象,在緩存器中放入對應于數(shù)據(jù)對象的初始時間標簽,初始時間標簽表示數(shù)據(jù)對象被存儲在緩存器的時間;將來自緩存器的數(shù)據(jù)對象和對應的提前時間標簽寫入主存儲器,其中每個提前時間標簽均等于初始時間標簽加上指定時間增量;響應對主存儲器中識別的數(shù)據(jù)對象應用預定一致性組形成例程的請求,針對每個數(shù)據(jù)對象,讀取對應于識別的數(shù)據(jù)對象的提前時間標簽,并且從中減去時間增量以計算恢復時間標簽,接著結(jié)合恢復時間標簽而不是提前時間標簽對識別的數(shù)據(jù)對象應用所述例程。
10.如權(quán)利要求9所述的介質(zhì),還包括按照不超過指定最大時間間隔的時間間隔重復寫操作。
11.如權(quán)利要求9所述的介質(zhì),所述操作還包括至少象指定最大時間間隔一樣經(jīng)常地確定緩存器是否含有任何尚未寫入主存儲器的附加數(shù)據(jù)對象;如果有,將來自緩存器的附加數(shù)據(jù)對象和對應的提前時間標簽寫入主存儲器,其中每個提前時間標簽均等于初始時間標簽加上指定時間增量;如果沒有,將空記錄和對應的提前時間標簽寫入主存儲器和副文件,其中提前時間標簽至少和時間增量一樣大。
12.如權(quán)利要求9所述的介質(zhì),其中向主存儲器寫入數(shù)據(jù)對象和對應的提前時間標簽的操作包括調(diào)用輸入/輸出例程,所述輸入/輸出例程被構(gòu)造成向主存儲器寫入數(shù)據(jù)對象,和指示執(zhí)行輸入/輸出例程以便向主存儲器寫入數(shù)據(jù)對象的時間的普通時間標簽,并且向輸入/輸出例程傳遞一命令,該命令指示輸入/輸出例程向主存儲器寫入對應的提前時間標簽而不是普通時間標簽。
13.如權(quán)利要求9所述的介質(zhì),其中所述操作還包括向主存儲器的副文件寫入來自緩存器的數(shù)據(jù)對象及其對應的提前時間標簽;向主存儲器的副文件寫入非緩存數(shù)據(jù)對象及其對應的當前時間標簽;如果(1)在指定組時間間隔期間沒有數(shù)據(jù)對象被存儲到具有一或多個副文件的指定組,并且(2)沒有對應于指定組中數(shù)據(jù)對象的時間標簽是提前時間標簽,將指定組標明為空閑。
14.至少一個信號承載介質(zhì),實際包含可被至少一個數(shù)字處理設備運行以便執(zhí)行操作的機器可讀指令程序,所述操作在存儲于主存儲子系統(tǒng)之前緩存數(shù)據(jù)以便不犧牲時間標簽信息地在輔助存儲子系統(tǒng)上進行異步鏡像,在一系統(tǒng)中執(zhí)行所述操作,該系統(tǒng)包含主機,連接到主機的主存儲子系統(tǒng),連接到主機并且與主存儲子系統(tǒng)分離的緩存器,輔助存儲子系統(tǒng),和連接主存儲子系統(tǒng)和輔助存儲子系統(tǒng)的數(shù)據(jù)移動器,所述方法包括操作主機識別要在主存儲子系統(tǒng)中存儲的各種數(shù)據(jù)對象;主機在緩存器中存儲某些識別的數(shù)據(jù)對象,以及涉及緩存器中的存儲的時間的初始時間標簽;主機向主存儲子系統(tǒng)發(fā)送其它識別的數(shù)據(jù)對象以便在其中存儲,而主存儲子系統(tǒng)通過存儲其它數(shù)據(jù)對象和涉及主存儲子系統(tǒng)中的存儲的時間的當前時間標簽來作出響應;根據(jù)預定調(diào)度,主機將緩存數(shù)據(jù)對象發(fā)送到主存儲子系統(tǒng)以便在其中進行存儲,并且還包含使主存儲子系統(tǒng)存儲每個數(shù)據(jù)對象和提前時間標簽的命令,所述提前時間標簽包括與數(shù)據(jù)對象相關(guān)、加上預定余量的初始時間標簽,所述預定余量具有足夠使得加上該預定余量的初始時間標簽被識別為提前時間標簽的量值,和允許根據(jù)提前時間標簽導出初始時間標簽的量值。
15.如權(quán)利要求14所述的介質(zhì),所述操作還包括響應于數(shù)據(jù)移動器開始在主存儲子系統(tǒng)中準備數(shù)據(jù)對象以便存儲于輔助存儲子系統(tǒng)的指定處理,在處理被應用于主存儲子系統(tǒng)中指定集合的一或多個數(shù)據(jù)對象的情況下,執(zhí)行以下操作檢查集合中的各個數(shù)據(jù)對象以確定其相關(guān)時間標簽是提前時間標簽還是當前時間標簽;如果是提前時間標簽,則從提前時間標簽中減去預定余量以恢復初始時間標簽,并且使用恢復的初始時間標簽對數(shù)據(jù)對象進行未來的處理;如果是當前時間標簽,則使用當前時間標簽對數(shù)據(jù)對象進行未來的處理。
16.如權(quán)利要求14所述的介質(zhì),所述操作還包括主存儲子系統(tǒng)在各種副文件中存儲數(shù)據(jù)對象;處理副文件以便形成一致性組,其中處理包含在條件下將每個副文件標明為空閑,所述條件包含副文件具有至少一個與提前時間標簽相關(guān)的數(shù)據(jù)對象。
17.一種數(shù)據(jù)存儲系統(tǒng),包括緩存器;主存儲器;主機,被編程以便執(zhí)行以下操作在緩存器中存儲某些數(shù)據(jù)對象,并且在主存儲器中存儲某些數(shù)據(jù)對象;針對緩存器中存儲的每個數(shù)據(jù)對象,在緩存器中放入對應于數(shù)據(jù)對象的初始時間標簽,初始時間標簽表示數(shù)據(jù)對象被存儲在緩存器的時間;將來自緩存器的數(shù)據(jù)對象和對應的提前時間標簽寫入主存儲器,其中每個提前時間標簽均等于初始時間標簽加上指定時間增量;主存儲器,被編程以便執(zhí)行以下操作針對主存儲器中存儲的每個數(shù)據(jù)對象,向主存儲器寫入當前時間標簽,其中當前時間標簽表示數(shù)據(jù)對象被存儲在主存儲器的時間;數(shù)據(jù)移動器,被編程以便執(zhí)行操作,所述操作包括響應對主存儲器中識別的數(shù)據(jù)對象應用預定一致性組形成例程的請求,針對每個數(shù)據(jù)對象,讀取對應于從副文件識別的數(shù)據(jù)對象的提前時間標簽,并且從中減去時間增量以計算恢復時間標簽,接著結(jié)合恢復時間標簽而不是提前時間標簽對識別的數(shù)據(jù)對象應用所述例程。
18.數(shù)據(jù)存儲系統(tǒng),被構(gòu)造成臨時緩存等待存儲于主存儲子系統(tǒng)的數(shù)據(jù)以便不犧牲時間標簽信息地在輔助存儲子系統(tǒng)上進行異步鏡像,包括主機;連接到主機的主存儲子系統(tǒng);緩存器,連接到主機并且與主存儲子系統(tǒng)分離;輔助存儲子系統(tǒng);數(shù)據(jù)移動器,連接主存儲子系統(tǒng)和輔助存儲子系統(tǒng);其中主機,主存儲子系統(tǒng)和數(shù)據(jù)移動器被編程以執(zhí)行以下操作主機識別要在主存儲子系統(tǒng)中存儲的各種數(shù)據(jù)對象;主機在緩存器中存儲某些識別的數(shù)據(jù)對象,以及涉及緩存器中的存儲的時間的初始時間標簽;主機向主存儲子系統(tǒng)發(fā)送其它識別的數(shù)據(jù)對象以便在其中存儲,而主存儲子系統(tǒng)通過存儲其它數(shù)據(jù)對象和涉及主存儲子系統(tǒng)中的存儲的時間的當前時間標簽來作出響應;根據(jù)預定調(diào)度,主機將緩存數(shù)據(jù)對象發(fā)送到主子系統(tǒng)以便進行存儲,并且還包含使主存儲子系統(tǒng)存儲每個數(shù)據(jù)對象和提前時間標簽的命令,所述提前時間標簽包括與數(shù)據(jù)對象相關(guān)、加上預定余量的初始時間標簽,所述預定余量具有足夠使得加上該預定余量的初始時間標簽被識別為提前時間標簽的量值,和允許根據(jù)提前時間標簽導出初始時間標簽的量值。
19.如權(quán)利要求18所述的系統(tǒng),所述操作還包括響應于數(shù)據(jù)移動器開始在主存儲子系統(tǒng)中準備數(shù)據(jù)對象以便存儲于輔助存儲子系統(tǒng)的指定處理,在處理被應用于主存儲子系統(tǒng)中指定集合的一或多個數(shù)據(jù)對象的情況下,執(zhí)行以下操作檢查集合中的各個數(shù)據(jù)對象以確定其相關(guān)時間標簽是提前時間標簽還是當前時間標簽;如果是提前時間標簽,則從提前時間標簽中減去預定余量以恢復初始時間標簽,并且使用恢復的初始時間標簽對數(shù)據(jù)對象進行未來的處理;如果是當前時間標簽,則使用當前時間標簽對數(shù)據(jù)對象進行未來的處理。
20.如權(quán)利要求18所述的系統(tǒng),所述操作還包括主存儲子系統(tǒng)在各種副文件中存儲數(shù)據(jù)對象;處理副文件以便形成一致性組,其中處理包含在條件下將每個副文件標明為空閑,所述條件包含至少一個條件,在所述至少一個條件中副文件具有至少一個與提前時間標簽相關(guān)的數(shù)據(jù)對象。
21.一種數(shù)據(jù)存儲系統(tǒng),包括緩存器;主存儲器;主機裝置,用于執(zhí)行以下操作在緩存器中存儲某些數(shù)據(jù)對象,并且在主存儲器中存儲某些數(shù)據(jù)對象;針對緩存器中存儲的每個數(shù)據(jù)對象,在緩存器中放入對應于數(shù)據(jù)對象的初始時間標簽,初始時間標簽表示數(shù)據(jù)對象被存儲在緩存器的時間;將來自緩存器的數(shù)據(jù)對象和對應的提前時間標簽寫入主存儲器,其中每個提前時間標簽均等于初始時間標簽加上指定時間增量;主存儲器中的主控制器,用于執(zhí)行操作,所述操作包括針對主存儲器中存儲的每個數(shù)據(jù)對象,向主存儲器寫入當前時間標簽,其中當前時間標簽表示數(shù)據(jù)對象被存儲在主存儲器的時間;數(shù)據(jù)移動器裝置,用于執(zhí)行操作,所述操作包括響應對主存儲器中識別的數(shù)據(jù)對象應用預定一致性組形成例程的請求,針對每個數(shù)據(jù)對象,讀取對應于從副文件識別的數(shù)據(jù)對象的提前時間標簽,并且從中減去時間增量以計算恢復時間標簽,接著結(jié)合恢復時間標簽而不是提前時間標簽對識別的數(shù)據(jù)對象應用所述例程。
全文摘要
一個系統(tǒng)中,臨時緩存數(shù)據(jù)以便將來存儲在主存儲子系統(tǒng)中,從而保存時間標簽信息并且保持輔助子系統(tǒng)上數(shù)據(jù)異步鏡像的數(shù)據(jù)一致性,所述系統(tǒng)包含主機,連接到主機的主存儲子系統(tǒng),連接到主機并且與主存儲系統(tǒng)分離的緩存器,輔助存儲子系統(tǒng),和連接主存儲系統(tǒng)和輔助存儲系統(tǒng)的數(shù)據(jù)移動器。
文檔編號G06F3/06GK1495612SQ0312740
公開日2004年5月12日 申請日期2003年8月6日 優(yōu)先權(quán)日2002年8月7日
發(fā)明者羅伯特·V·吉納, 羅伯特 V 吉納, M 克恩, 羅納德·M·克恩, 格里戈里·E·麥克布萊德, 里 E 麥克布萊德, F 麥卡, 威廉·F·麥卡, M 尼克, 杰弗里·M·尼克, R 佩里, 拉里·R·佩里, B 比德森, 戴維·B·比德森, M 沙克埃弗德, 戴維·M·沙克埃弗德, G 斯通, 哈羅德·G·斯通, M 尤登弗蘭德, 哈里·M·尤登弗蘭德, 斯 M 左布瑞, 道格拉斯·M·左布瑞 申請人:國際商業(yè)機器公司