專利名稱:非同步遠程復(fù)制系統(tǒng)以及存儲控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及進行作為存儲裝置間的數(shù)據(jù)的復(fù)制的遠程復(fù)制的存儲系統(tǒng)中的存儲控制。
背景技術(shù):
已知有作為第一以及第二存儲裝置之間的數(shù)據(jù)復(fù)制的遠程復(fù)制(remote copy)。 作為遠程復(fù)制,例如有同步遠程復(fù)制以及非同步遠程復(fù)制。當(dāng)?shù)谝淮鎯ρb置從主機接收了寫請求時,如果采用了同步遠程復(fù)制,則按照該寫請求的數(shù)據(jù)從第一存儲裝置被轉(zhuǎn)發(fā)到第二存儲裝置后,向主機裝置發(fā)送寫結(jié)束應(yīng)答,但如果采用了非同步遠程復(fù)制,則即使按照該寫請求的數(shù)據(jù)沒有從第一存儲裝置被轉(zhuǎn)發(fā)到第二存儲裝置,也向主機裝置發(fā)送寫結(jié)束應(yīng)答。在采用了非同步遠程復(fù)制的遠程復(fù)制系統(tǒng)(以下稱為非同步遠程復(fù)制系統(tǒng))中, 例如第一存儲裝置除了第一 DVOL (存儲了數(shù)據(jù)的邏輯卷)之外還具有第一 JVOL (存儲日志 (以下稱為JNL)的邏輯卷)。同樣,第二存儲裝置除了第二 DVOL之外還具有第二 JV0L。第一存儲裝置在接收了寫請求時,在第一 DVOL中存儲按照寫請求的數(shù)據(jù),而且在第一 JVOL中存儲該數(shù)據(jù)的JNL。第一存儲裝置向第二存儲裝置轉(zhuǎn)發(fā)第一 JVOL內(nèi)的JNL,第二存儲裝置將來自第一存儲裝置的JNL寫入第二 JV0L。之后,第二存儲裝置將第二 JVOL內(nèi)的JNL所具有的數(shù)據(jù)寫入第二 DV0L。由此,寫入第一 DVOL的數(shù)據(jù)被復(fù)制到第二 DV0L。在專利文獻1中公開了多目標(biāo)(multi target)方式的非同步遠程復(fù)制系統(tǒng)。在多目標(biāo)方式中對于一個復(fù)制源存在多個復(fù)制目的地。具體地說,在專利文獻1中公開了例如以下內(nèi)容。(*)有第一存儲裝置、第二存儲裝置以及第三存儲裝置。(*)第一存儲裝置是復(fù)制源,第二以及第三存儲裝置是從第一存儲裝置的復(fù)制目的地。(*)第一存儲裝置與第一主機裝置連接,第二存儲裝置與第二主機裝置連接,第三存儲裝置與第三主機裝置連接。(*)第一存儲裝置具有第一 DV0L、第一個第一 JVOL以及第二個第一 JV0L。(*)第二存儲裝置具有第二 DVOL以及第二 JV0L。(*)第一以及第二 DVOL成對。第一 DVOL是主DV0L,第二 DVOL是副DV0L。(*)第三存儲裝置具有第三DVOL以及第三JV0L。⑷第一以及第三DVOL成對。第一 DVOL是主DV0L,第三DVOL是副DV0L。(*)第一主機裝置在第一 DVOL中寫入數(shù)據(jù)。(*)第一存儲裝置在第一個第一 JVOL和第二個第一 JVOL的雙方中寫入已被寫入第一 DVOL的數(shù)據(jù)的JNL。JNL除主機裝置的輸入輸出對象數(shù)據(jù)以外,還包含更新序號。(*)第一個第一 JVOL內(nèi)的JNL被復(fù)制到第二 JV0L。(*)第二存儲裝置向第二 DVOL反映第二 JVOL內(nèi)的一個以上的未反映的JNL中的、具有最舊的更新序號的JNL(在第二 DVOL中寫入JNL所具有的數(shù)據(jù))。(*)第二個第一 JVOL內(nèi)的JNL被復(fù)制到第三JV0L。(*)第三存儲裝置向第三DVOL反映第三JVOL內(nèi)的一個以上的未反映的JNL中的、 具有最舊的更新序號的JNL(在第三DVOL中寫入JNL所具有的數(shù)據(jù))。而且,根據(jù)專利文獻1,在第一存儲裝置中發(fā)生了故障時,第二存儲裝置成為復(fù)制源,第三存儲裝置成為復(fù)制目的地?,F(xiàn)有技術(shù)文獻專利文獻專利文獻1 日本特開2006-65629號公報
發(fā)明內(nèi)容
發(fā)明要解決的課題當(dāng)?shù)诙鎯ρb置成為復(fù)制源后,第二主機裝置在第二 DVOL中寫入數(shù)據(jù),第二存儲裝置對更新序號進行更新,并將包含更新序號和數(shù)據(jù)的JNL寫入第二 JV0L。JNL從第二 JVOL 被復(fù)制到第三JV0L,第三存儲裝置將第三JVOL內(nèi)的JNL所具有的數(shù)據(jù)寫入第三DV0L。在此,考慮了在第二存儲裝置中的更新序號的起點是在第二存儲裝置中已反映的 JNL中的最新的更新序號。這是由于第二DVOL具有到該最新的更新序號所表示的順序為止的數(shù)據(jù)。但是其存在不理想的情形。該情形例如是在第二存儲裝置中已反映的JNL中的最新的更新序號比在第三存儲裝置中已反映的JNL中的最新的更新序號舊的情形。這是由于在該情形中,第二 DVOL的狀態(tài)比第三DVOL的狀態(tài)舊,從舊的狀態(tài)的DVOL向新的狀態(tài)的 DVOL復(fù)制數(shù)據(jù)。這樣,在第一存儲裝置中發(fā)生了故障時存在不能恰當(dāng)?shù)乩^續(xù)業(yè)務(wù)的情形。在第一存儲裝置因故障以外的原因而停止時(例如因用于維護的所謂計劃停止而停止第一存儲裝置時)存在這樣的問題。因此,本發(fā)明的目的是在多目標(biāo)方式的非同步遠程復(fù)制系統(tǒng)中,即使第一存儲裝置停止也恰當(dāng)?shù)乩^續(xù)進行業(yè)務(wù)。用于解決課題的手段具有第一存儲裝置,其具有第一存儲資源組,且與第一主機裝置連接;第二存儲裝置,其具有第二存儲資源組,且與第二主機裝置連接;和第三存儲裝置,其具有第三存儲資源組,且與第三主機裝置連接。第一存儲資源組具有作為被寫入數(shù)據(jù)的邏輯卷的第一數(shù)據(jù)卷、以及作為被寫入數(shù)據(jù)的日志的存儲資源的第一日志存儲資源。第二存儲資源組具有作為被寫入數(shù)據(jù)的邏輯卷的第二數(shù)據(jù)卷、以及作為被寫入數(shù)據(jù)的日志的存儲資源的第二日志存儲資源。第三存儲資源組具有作為被寫入數(shù)據(jù)的邏輯卷的第三數(shù)據(jù)卷、以及作為被寫入數(shù)據(jù)的日志的存儲資源的第三日志存儲資源。在從主機裝置向第一數(shù)據(jù)卷寫入數(shù)據(jù)時,第一存儲裝置更新更新序號,制作包含該更新序號和該數(shù)據(jù)的日志,并將該日志寫入第一日志存儲資源,其中,該更新序號是每次在第一存儲資源組內(nèi)的數(shù)據(jù)卷中寫入數(shù)據(jù)時被更新的序號。進行多目標(biāo)方式的非同步遠程復(fù)制,在該非同步遠程復(fù)制中,日志被從第一存儲裝置轉(zhuǎn)發(fā)到第二存儲裝置,并被反映到第二數(shù)據(jù)卷,由此把第一數(shù)據(jù)卷內(nèi)的數(shù)據(jù)寫入第二數(shù)據(jù)卷,而且日志被從第一存儲裝置轉(zhuǎn)發(fā)到第三存儲裝置,并被反映到第三數(shù)據(jù)卷,由此把第一數(shù)據(jù)卷內(nèi)的數(shù)據(jù)寫入第三數(shù)據(jù)卷。具體來說,例如在非同步遠程復(fù)制中進行以下處理(Al)日志被從第一日志存儲資源復(fù)制到第二日志存儲資源。(Bi)第二存儲裝置按照更新序號的順序向第二數(shù)據(jù)卷反映第二日志存儲資源中的一個以上的未反映的日志。(A2)日志被從第一日志存儲資源復(fù)制到第三日志存儲資源。(B2)第三存儲裝置按照更新序號的順序向第三數(shù)據(jù)卷反映第三日志存儲資源中的一個以上的未反映的日志。在第一存儲裝置停止時,進行以下處理(xl)判斷在第二存儲裝置中最近反映的日志所具有的更新序號和在第三存儲裝置中最近反映的日志所具有的更新序號中的哪一個新。(x2)判斷在第二以及第三存儲裝置中的新存儲裝置(具有在(xl)中判斷為新的更新序號的存儲裝置)中是否有一個以上的差分日志。一個以上的差分日志是從具有在 (xl)中沒有判斷為新的更新序號的下一個更新序號的日志開始到具有在(xl)中判斷為新的更新序號的日志為止的一個以上的日志。(x3)在(x2)的判斷結(jié)果為肯定的情況下,從新存儲裝置向舊存儲裝置(第二以及第三存儲裝置中不是新存儲裝置的存儲裝置)復(fù)制一個以上的差分日志。(x4)舊存儲裝置按照更新序號的順序向舊存儲裝置內(nèi)的數(shù)據(jù)卷反映一個以上的
差分日志。
圖1表示本發(fā)明的實施例1的非同步遠程復(fù)制系統(tǒng)的結(jié)構(gòu)。圖2表示存儲裝置之間的路徑。圖3表示圖6中的JNL組112A、112B以及112C的狀態(tài)以及鏡像的有效/無效。圖4表示圖7中的JNL組112B以及112C的狀態(tài)以及鏡像的有效/無效。圖5表示圖10中的JNL組112B以及112C的狀態(tài)以及鏡像的有效/無效。圖6表示多目標(biāo)方式的非同步遠程復(fù)制的概要。圖7表示在第一存儲器105A中發(fā)生故障時進行的處理的一部分。圖8表示從第三存儲器105C到第二存儲器105B的差分遠程同步(rsync)的概要。圖9表示從第二存儲器105B到第三存儲器105C的差分遠程同步的概要。圖10表示結(jié)束差分遠程同步后的業(yè)務(wù)的繼續(xù)的概要。圖11表示第一存儲器105A的概要。圖12表示JNL的結(jié)構(gòu)。圖13表示JVOLl 15A的結(jié)構(gòu)。圖14表示元信息的結(jié)構(gòu)。
圖15表示各存儲器所具有的控制信息。圖16表示JVOL有效位圖701A的結(jié)構(gòu)。圖17表示DVOL有效位圖702A的結(jié)構(gòu)。圖18表示JVOL管理表703A的結(jié)構(gòu)。圖19表示JNL組管理表704A的結(jié)構(gòu)。圖20表示對管理表705A的結(jié)構(gòu)。圖21表示差分管理以及形成復(fù)制的流程。圖22表示第一存儲器105A中的寫處理的流程。圖23表示JNL的讀處理的流程。圖24表示JNL的反映處理的流程。圖25表示與第一 JVOLl 15A的使用率的核對相關(guān)的處理的流程。圖26表示在第一存儲器105A中發(fā)生故障時進行的處理的流程。圖27表示可進行差分遠程同步的情形的一例。圖28表示不能進行差分遠程同步的情形的一例。圖29表示許可從第二主機103B向第二 DVOLl 13B寫入數(shù)據(jù)的定時。圖30表示在本發(fā)明的實施例2中許可從第二主機103B向第二 DVOLl 13B寫入數(shù)據(jù)的定時。圖31表示在本發(fā)明的實施例2中,從第三存儲器105C向第二存儲器105B進行差分遠程同步時的、第二存儲器105B中的寫處理的流程。圖32表示在本發(fā)明的實施例2中,從第三存儲器105C向第二存儲器105B進行差分遠程同步時的、第二存儲器105B中的JNL反映處理的流程。圖33表示在本發(fā)明的實施例3中,從第三存儲器105C向第二存儲器105B進行差分遠程同步時的、第二存儲器105B中的讀處理的流程。圖34表示在本發(fā)明的實施例4中與是否需要轉(zhuǎn)發(fā)差分JNL的判斷相關(guān)的處理的流程。圖35表示存在不需要轉(zhuǎn)發(fā)的差分JNL的情形的一例。
具體實施例方式以下,參照
本發(fā)明的幾個實施例。另外,在以下的說明中,有時通過“XX X表”、“XX X位圖”的表述來說明各種信息,但也可以用表或位圖以外的數(shù)據(jù)結(jié)構(gòu)來表現(xiàn)各種信息。為了表示不依賴于數(shù)據(jù)結(jié)構(gòu), 可以把“ X X X表”、“ X X X位圖”稱為“ X X X信息”。此外,在以下的說明書中,作為各種對象識別信息主要使用了序號,但可以代替序號而采用其它種類的識別信息(例如名稱)。實施例1圖1表示本發(fā)明的實施例1的非同步遠程復(fù)制系統(tǒng)的結(jié)構(gòu)。另外,在以下的說明中,將日志記載為“ JNL”,將作為被寫入數(shù)據(jù)的邏輯卷的數(shù)據(jù)卷記載為“DV0L”,將作為被寫入JNL的邏輯卷的JNL卷記載為“JV0L”,將主機裝置記載為“主機”,將存儲裝置記載為“存儲器”、將控制器記載為“DKC”。
有三個以上的站點(site),例如第一站點101A、第二站點IOlB以及第三站點 101C。以下為使說明易于理解,第一站點IOlA具有的要素的參照符號是主序號和子符號 “A”的組合,第二站點IOlB具有的要素的參照符號是主序號和子符號“B”的組合,第三站點 IOlB具有的要素的參照符號是主序號和子符號“C”的組合。第一站點IOlA具有第一存儲器105A以及與第一存儲器105A連接的第一主機 103A。第一存儲器105A具有第一 DKC111A以及第一 JNL組112A。一個JNL組112A包含 DVOL113A 以及 JVOLl 115A。第二以及第三站點IOlB以及IOlC具有與第一站點IOlA相同的結(jié)構(gòu)。存儲器105A以及105B彼此經(jīng)由專用線(或通信網(wǎng)絡(luò))物理地連接。存儲器105B 以及105C彼此也經(jīng)由專用線(或通信網(wǎng)絡(luò))物理地連接。存儲器105A以及105C彼此也經(jīng)由專用線(或通信網(wǎng)絡(luò))物理地連接。作為連接存儲器彼此的路徑,如圖2所示,有控制路徑以及數(shù)據(jù)轉(zhuǎn)發(fā)路徑??刂坡窂绞遣罘诌h程同步(后述)所需要的路徑。具體地說,例如在差分遠程同步處理中,是時序 (sequence)序號取得請求(后述)流過的路徑。數(shù)據(jù)轉(zhuǎn)發(fā)路徑是JNL流過的路徑??刂坡窂揭约皵?shù)據(jù)轉(zhuǎn)發(fā)路徑都是可雙向通信的路徑。再次參照圖1。有“鏡像(mirror) ”這樣的JNL組彼此的邏輯連接。根據(jù)圖1,JNL組112A以及 112B彼此的連接是鏡像#0(被分配了序號“0”的鏡像(M0)),JNL組112A以及112C彼此的連接是鏡像#1 (被分配了序號“1”的鏡像(Ml)),JNL組112B以及112C彼此的連接是鏡像#2 (被分配了序號“2”的鏡像(M2))。以下說明本實施例的處理的概要。另外,在以下說明中,JNL組112A、112B以及 112C只要不特殊說明則分別是一個。在本實施例的遠程復(fù)制系統(tǒng)中進行多目標(biāo)方式的非同步遠程復(fù)制,第一站點IOlA 是運用站點。此時,如圖3所示,第一 JNL組112A的狀態(tài)是“主(Master)”,第二以及第三 JNL組112B以及112C的狀態(tài)是“還原(Restore) ”。狀態(tài)“主”表示是復(fù)制源。狀態(tài)“還原” 表示是復(fù)制目的地。另外,在圖3 (以及此后的圖4以及圖5)中,虛線的鏡像是無效的鏡像, 實線的鏡像是有效的鏡像。從而,如圖6所示,第一 DVOLl 13A是主DVOL (以下稱為PV0L),第二以及第三 DVOL113B以及113C是副DVOL (以下稱為SV0L)。如圖6所示,在作為運用站點的第一站點IOlA中,第一主機103A伴隨業(yè)務(wù)的執(zhí)行而在PV0L113A中寫入數(shù)據(jù)(S11)。第一存儲器105A更新時序序號(以下稱為SEQ#),制作具有更新后的SEQ#和在PV0L113A中寫入的數(shù)據(jù)的JNL,將制作的JNL寫入第一 JV0L115A 中(S12)。SEQ#是每次在第一 JNL組112A (第一 JNL組112A內(nèi)的DV0L)中寫入數(shù)據(jù)時被更新(例如增加1 (或減小1))的序號。第二存儲器105B從第一 JV0L115A讀出JNL,并將讀出的JNL寫入第二 JV0L115B 中(S21)。第二存儲器105B按SEQ#從小到大的順序向SV0L113B反映第二 JV0L115B內(nèi)的一個以上的未反映的JNL(S22)。具體地說,第二存儲器105B將第二 JVOLl 15B內(nèi)的未反映的JNL所具有的數(shù)據(jù)寫入SVOLl 13B中。由此,在PV0L113A中寫入的數(shù)據(jù)被復(fù)制到SV0L113B中。
第三存儲器105C從第一 JV0L115A讀出JNL,并將讀出的JNL寫入第三JV0L115C 中(S31)。第三存儲器105C按SEQ#從小到大的順序向SVOLl 13C反映第三JVOLl 115C內(nèi)的一個以上未反映的JNL(S32)。具體地說,第三存儲器105C將第三JVOLl 15C內(nèi)的未反映的 JNL所具有的數(shù)據(jù)寫入SV0L113C中。由此,在PV0L113A中寫入的數(shù)據(jù)被復(fù)制到SV0L113C中。也可以對于一個復(fù)制源JNL組存在多于兩個的復(fù)制目的地JNL組。根據(jù)本實施例,在多個復(fù)制目的地JNL組中共用在一個復(fù)制源JNL組中所包含的 JV0L。換言之,在一個復(fù)制源JNL組中包含的JVOL的數(shù)量不依賴于復(fù)制目的地JNL組的數(shù)量。這存儲裝置之間的JNL的復(fù)制(轉(zhuǎn)發(fā)),通過復(fù)制目的地的存儲裝置從復(fù)制源的存儲裝置內(nèi)的JVOL讀出JNL來實現(xiàn)。根據(jù)該特征,能夠節(jié)約在第一存儲器105A中消耗的存儲容量。如圖7所示,假設(shè)在作為運用站點的第一站點IOlA中,在第一存儲器105A中發(fā)生了故障(S40)。此時,運用站點從第一站點IOlA切換到第二站點101B。具體地說,進行從第一主機103A向第二主機103B的故障切換(failover) (S41)。第二主機103B向第二存儲器105B發(fā)送預(yù)定的命令(S42)。第二存儲器105B接收預(yù)定的命令。此時如圖4所示,通過存儲器105B和/或105C 將鏡像#2設(shè)為有效,第二以及第三JNL組112B以及112C的狀態(tài)暫時成為“主/還原”。為了 S43的判斷,在第二存儲器105B和第三存儲器105C之間交換SEQ#。狀態(tài)“主/還原”表示是復(fù)制源,也是復(fù)制目的地。到差分遠程同步(后述)結(jié)束為止,第二以及第三JNL組 112B以及112C的狀態(tài)是“主/還原”。第二存儲器105B應(yīng)答預(yù)定的命令,向第三存儲器105C請求在第三存儲器105C中最近反映的JNL所具有的SEQ#(以下稱為SEQ#(3))(發(fā)送時序序號取得請求),應(yīng)答該請求,從第三存儲器105C接收SEQ# (3)。第二存儲器105B判斷SEQ# (3)和在第二存儲器105B 中最近反映的JNL所具有的SEQ#(以下稱為SEQ#(2))哪個新。根據(jù)該判斷的結(jié)果,進行圖 8以及圖9中所示的差分遠程同步。S卩,在SEQ#(3)比SEQ#(2)新的情況下,如圖8所示,第二存儲器105B從第三 JV0L115C讀出一個以上的差分JNL,并寫入第二 JV0L115B中(S44-1)。這里所說的“一個以上的差分JNL”是從具有SEQ#(2)的下一個SEQ#的JNL到具有SEQ#(3)的JNL為止的一個以上的JNL。第二存儲器105B從具有SEQ#(2)的下一個SEQ#的日志開始,先按SEQ#從小到大的順序向第二 DV0L113B反映第二 JV0L115B內(nèi)的一個以上的差分JNL(S45-1)。由此,第二 DV0L113B內(nèi)的數(shù)據(jù)與開始差分遠程同步時的第三DV0L113C內(nèi)的數(shù)據(jù)一致。另一方面,在SEQ#(2)比SEQ#(3)新的情況下,如圖9所示,第二存儲器105B在第三JVOLl 15C中寫入第二 JVOLl 15B內(nèi)的一個以上的差分JNL(S44-1)。這里所說的“一個以上的差分JNL”是從具有SEQ#(3)的下一個SEQ#的JNL到具有SEQ#(2)的JNL為止的一個以上的JNL。第三存儲器105C從具有SEQ#(3)的下一個SEQ#的日志開始,先按SEQ#從小到大的順序向第三DV0L113C反映第三JV0L113C內(nèi)的一個以上的差分JNL(S45_2)。由此, 第三DV0L113C內(nèi)的數(shù)據(jù)與開始差分遠程同步時的第二 DV0L113B內(nèi)的數(shù)據(jù)一致。此后,第二站點IOlB成為運用站點,繼續(xù)業(yè)務(wù)。具體地說,如圖5所示,第二 JNL 組112B的狀態(tài)變?yōu)椤爸鳌?,第三JNL組112C的狀態(tài)變?yōu)椤斑€原”。從而如圖10所示,第二DVOLl 13B成為PV0L,第三DVOLl 13C成為SV0L。第二主機103B在PV0L113B中寫入數(shù)據(jù) (S51)。第二存儲器105B更新SEQ#,制作具有SEQ#和在PV0L113B中寫入的數(shù)據(jù)的JNL,并將制作的JNL寫入第二 JV0L115B中(S52)。第三存儲器105C從第二 JV0L115B讀出JNL, 并將讀出的JNL寫入第三JV0L115C中(S53)。第三存儲器105C按SEQ#從小到大的順序向 SVOLl 13C 反映第三 JVOLl 15C 內(nèi)的 JNL (S54)。根據(jù)本實施例,第二存儲器105B從第三存儲器105C取得SEQ#(3),判斷SEQ#(3) 和SEQ#(2)中的哪個新,根據(jù)該判斷的結(jié)果控制從第二以及第三存儲器105B以及105C中的哪一個向哪一個轉(zhuǎn)發(fā)一個以上的差分JNL。由此,即使在第一存儲器105A中發(fā)生了故障也能夠恰當(dāng)?shù)乩^續(xù)業(yè)務(wù)。此外,轉(zhuǎn)發(fā)的一個以上的差分JNL不超過第二以及第三存儲器 105B以及105C之間的差分,因此能夠把所轉(zhuǎn)發(fā)的JNL的數(shù)量抑制得較少。以下詳細(xì)說明本實施例。此時,以第一站點IOlA內(nèi)的要素為例進行了說明,但是沒有特別說明的話,第二以及第三站點IOlB以及IOlC內(nèi)的要素實質(zhì)上與第一站點IOlA內(nèi)的要素相等。圖11表示第一存儲器105A的結(jié)構(gòu)。第一存儲器105A 具有第一 DKCl 11A、多個 RAID (Redundant Array of Independent (or inexpensive) Disk)組(以下稱為 RG)900A。RG900A 由多個 HDD (Hard Disk Drive)構(gòu)成。也可以采用閃速存儲器等其他物理存儲設(shè)備來代替HDD。一個或多個邏輯卷基于一個RG900A。邏輯卷是例如前述的DVOL或JV0L,其中的哪一個都可以是作為RG900A的存儲空間的一部分的實體的邏輯卷,也可以是從基于一個以上的RG900構(gòu)成的池(由多個實際區(qū)域構(gòu)成的存儲區(qū)域)動態(tài)分配實際區(qū)域的虛擬的邏輯卷(遵從Thin Provisioning的技術(shù)的虛擬的邏輯卷)。DKC111A具有多個前端接口裝置(以下稱為FE_IF) 610A、后端接口裝置(以下稱為BE-IF) 150A、高速緩沖存儲器(以下稱為CM)620A、共享存儲器(以下稱為SM)640A以及與它們連接的一個以上的CPU (Central Processing Unit)630A。DKCl IlA的處理可以通過 CPTO30A執(zhí)行一個以上的計算機程序來進行,但也可以通過硬件電路來執(zhí)行該處理中的至少一部分。在多個FE-IF610A上連接了第一主機103A、第二以及第三存儲器105B以及105C。 DKCllIA(CPU630A)經(jīng)由FE-IF610A與第一主機103A、第二以及第三存儲器105B以及105C
進行通信。在BE-IF150A上連接了多個RG900A。DKC111A(CPU630A)經(jīng)由 BE-IF150A在成為寫入目的地邏輯卷(例如第一 DV0L113A或第一 JV0L115A)的基礎(chǔ)的RG900A中寫入數(shù)據(jù)(或 JNL)。CM620A對在RG900A中寫入的數(shù)據(jù)(以及JNL)、從RG900A讀出的數(shù)據(jù)(以及JNL) 進行存儲。SM640A對在DKC111A的處理的控制中使用的各種控制信息進行存儲。CPU630A控制DKCl IlA進行的處理。以上說明了第一存儲器105A的結(jié)構(gòu)。另外,DKC111A并不限于圖11中所示的結(jié)構(gòu),也可以具有其他結(jié)構(gòu)。此外,第二以及第三存儲器105B以及105C的結(jié)構(gòu)與第一存儲器 105A的結(jié)構(gòu)實質(zhì)上相同。DKC111B或IllC的結(jié)構(gòu)也可以與DKC111A的結(jié)構(gòu)不同。
圖12表示JNL的結(jié)構(gòu),圖13表示JVOLl 15A的結(jié)構(gòu)。JNL由元(meta)信息和數(shù)據(jù)構(gòu)成。JV0L115A由元區(qū)域1201A和數(shù)據(jù)區(qū)域1203A構(gòu)成。元區(qū)域1201A存儲元信息,數(shù)據(jù)區(qū)域1203A存儲數(shù)據(jù)。另外,元區(qū)域1201A也可以存在于CM620A等與RG900A不同的存
儲資源中。圖14表示元信息的結(jié)構(gòu)。元信息是與在JNL中包含的數(shù)據(jù)有關(guān)的管理信息。元信息例如包含以下的信息(*)SEQ#、(*)寫目的地信息(表示在DVOL的哪個部分寫入數(shù)據(jù)的信息)、⑷PV0L# (復(fù)制源的DVOL的序號)、(*) SV0L# (復(fù)制目的地的DVOL的序號)、(*)表示與該元信息對應(yīng)的數(shù)據(jù)的JVOL中的位置的信息(在JVOL中寫入JNL時包含該信息)。通常,第一 DKCl IlA管理SEQ#。在每個JNL組112A中有SEQ#。在某個JNL組112A 內(nèi)的DV0L113A中寫入了數(shù)據(jù)時,第一 DKC111A更新與該JNL組112A相對應(yīng)的SEQtL SEQ# 例如存儲在SM640A或其他存儲資源中。在第一存儲器105A中發(fā)生了故障,第二站點IOlB成為了運用站點時,第二存儲器 105B管理每個JNL組112B的SEQtL如圖15所示,SM640A作為控制信息來存儲例如JVOL有效位圖701A、DV0L有效位圖702A、JVOL管理表703A、JNL組管理表704A、對(pair)管理表705A、差分位圖706A以及鏡像位圖707A。同樣,第二存儲器105B內(nèi)的SM640B存儲控制信息701B 707B,第三存儲器105C內(nèi)的SM640C存儲控制信息701C 707C。以下,以控制信息701A 707A為代表進行說明,JNL組例如能夠具有最大64個邏輯卷。如圖16所示,JVOL有效位圖701A在每一 JNL組中具有64個位(bit)。如果第η個(η是0以上63以下的整數(shù))邏輯卷是JVOLl 15Α, 則第η個位為開(ON)(例如1)。如圖17所示,DVOL有效位圖702A在每一 JNL組中具有64個位。如果第η個(η 是0以上63以下的整數(shù))邏輯卷是JV0L115A,則第η個位為開(例如1)。JVOL管理表703Α存在于每個JNL組112Α中。如圖18所示,表703Α在每一 JV0L115A中具有表示元區(qū)域的開頭地址的信息、表示元區(qū)域的大小的信息、表示數(shù)據(jù)區(qū)域的開頭地址的信息、表示數(shù)據(jù)區(qū)域的大小的信息。即、表703Α表示在每一 JV0L115A中從哪到哪是元區(qū)域、從哪到哪是數(shù)據(jù)區(qū)域。JNL組管理表704Α具有與JNL組有關(guān)的信息。具體地說,例如,如圖19所示,表 704Α在每一 JNL組中具有下述的信息(*)表示JNL組的序號的JNL組#1001Α、(*)表示JNL組的狀態(tài)的狀態(tài)1002Α、(*)表示本實施例的遠程復(fù)制系統(tǒng)中存在的鏡像的序號的鏡像#1003Α、(*)表示對方的JNL組的序號的對方JNL組#1004Α、(*)表示具有對方的JNL組的存儲裝置的序號的對方存儲器#1005Α、
(*)表示最近被清除的JNL具有的SEQ#的已清除SEQ#1006A、(*)表示可以清除的JNL具有的SEQ#的可清除SEQ#1007A、(*)表示最近讀出的JNL具有的SEQ#的已讀取SEQ#1008A。對管理表705A具有與DVOL彼此的對有關(guān)的信息。具體地說,例如,如圖20所示, 表705A在每一 DVOLl 13A中具有以下信息(*)表示 DV0L113A 的序號的 DV0L#1101A、⑷表示包含DVOLl 13A的JNL組112A的序號的JNL組#1102A、(*)表示DVOLl 13A的復(fù)制目的地的DVOL的序號的復(fù)制目的地V0L#1103A、⑷關(guān)于DV0L113A和復(fù)制目的地的DVOL的對,表示DV0L113A的對狀態(tài)的狀態(tài) 1104A。每一 DVOLl 13A具有差分位圖706A。DVOL113A由多個塊構(gòu)成。差分位圖706A表示更新了 DV0L113A的哪個塊。即、差分位圖706A所具有的位與塊相對應(yīng)。在DV0L113A的對狀態(tài)為預(yù)定的狀態(tài)時,更新差分位圖706A。具體地說,例如在某個DVOLl 13A的對狀態(tài)為預(yù)定的狀態(tài)、且在該DV0L113A內(nèi)的某個塊中寫入了數(shù)據(jù)時,DKC111A將與該DV0L113A對應(yīng)的差分位圖706A中的、與該塊對應(yīng)的位變更為開(例如1)。鏡像位圖707A表示哪個鏡像有效、哪個鏡像無效。具體地說,鏡像位圖707A具有與多個鏡像對應(yīng)的多個位。例如,通常鏡像#0以及#1有效、鏡像#2無效(參照圖6)。此時,與鏡像#0以及#1對應(yīng)的位為開(例如1),與鏡像#2對應(yīng)的位為關(guān)(OFF)(例如0)。 此外,在第一存儲器105A發(fā)生了故障時,鏡像#0以及#1無效,鏡像#2有效(參照圖10)。 此時,與鏡像#0以及#1對應(yīng)的位為關(guān),與鏡像#2對應(yīng)的位為開。以下說明在本實施方式中進行的幾個處理?!葱纬蓮?fù)制〉在從PVOL向SVOL的非同步復(fù)制(利用JNL的遠程復(fù)制)開始之前,需要使PVOL 具有的數(shù)據(jù)(PV0L的內(nèi)容)與SVOL具有的數(shù)據(jù)(SV0L的內(nèi)容)互相一致。為此進行形成復(fù)制。所謂“形成復(fù)制”,是使PVOL的內(nèi)容與SVOL的內(nèi)容一致的復(fù)制。如圖21所示,有時PVOL113A和SVOL113B的對的狀態(tài)、以及PVOL113A和SVOL113C 的對的狀態(tài)的雙方被設(shè)為掛起(S2101-1、S2101-2)。具體地說,PV0L113A的對狀態(tài)成為 “PSUS”(主設(shè)備(primary)的掛起)、SV0L113B以及113C的對狀態(tài)成為“SSUS”。此時,第一 DKCl IlA將與包含該PVOLl 13A的JNL組112A相對應(yīng)的SEQ#復(fù)位為預(yù)定值(例如0)。此時,即使在PV0L113A中寫入了數(shù)據(jù),第一 DKC111A也不制作具有該數(shù)據(jù)的JNL。 第一 DKCl 1IA在PVOLl 13A的某個寫入目的地塊中寫入了數(shù)據(jù)時(S2102),若該PVOLl 13A的對狀態(tài)為“PSUS”,則使與該PV0L113A對應(yīng)的差分位圖706A中的、與寫入目的地塊對應(yīng)的位為開(例如1) (S2103)。在PVOL113A的對狀態(tài)為“PSUS”的情況下,每次在PVOL113A中的未更新的塊中寫入數(shù)據(jù)時,進行S2103。第一 DKC111A從第一主機103A(或與第一 DKC111A連接的未圖示的管理終端)接收形成復(fù)制指示(S2111)。該形成復(fù)制指示的接收是開始進行形成復(fù)制的的契機。可以對于第一對(PV0L113A和SVOL113B的對)和第二對(PV0L113A和SVOLl 13C的對)并行進行形成復(fù)制,但在本發(fā)明中不是并行執(zhí)行,而是依次執(zhí)行。因此,能夠緩和對PVOLl 13A的訪問的集中。
例如,首先如圖21所示,對第一對進行形成復(fù)制。S卩、第一 DKC111A確定與在差分位圖706A中成為開(ON)的位對應(yīng)的塊(與該差分位圖706A對應(yīng)的PV0L113A中的塊)。然后,第一 DKC111A制作具有所確定的塊內(nèi)的數(shù)據(jù)的JNL,不將制作的JNL存儲在第一 JV0L115A 內(nèi),而寫入第二 JV0L115B(S2112)。第二 DKCl IlB 將第二 JVOLl 15B 內(nèi)的 JNL 反映到SV0L113B(S2113)。針對PVOLl 13A中的全部已更新的塊(與成為開(ON)的位對應(yīng)的塊),進行S2112以及S2113。在對于第一對結(jié)束形成復(fù)制后,對于第二對進行形成復(fù)制。S卩、第一 DKC111A制作具有PVOLl 13A中的已更新的塊內(nèi)的數(shù)據(jù)的JNL,不將制作的JNL存儲在第一 JVOLl 15A 內(nèi),而是寫入第三JV0L115C內(nèi)(S2115)。第三DKC111C將第三JV0L115C內(nèi)的JNL反映到 SVOLl 13C(S2116)。針對PV0L113A中的全部已更新的塊,進行S2115以及S2116。<寫處理以及JNL制作處理>如圖22所示,第一 DKC111A從第一主機103A接收指定了 PV0L113A的寫請求 (S2201),在CM630A中確保CM區(qū)域(高速緩沖存儲器區(qū)域),在確保的CM區(qū)域中寫入按照該寫請求的數(shù)據(jù)(寫對象數(shù)據(jù))(S2202)。第一 DKCl IlA可以在該時刻向第一主機103A應(yīng)答寫入結(jié)束。第一DKC111A 將 CM630A 內(nèi)的寫對象數(shù)據(jù)寫入 PVOLl 13A(S2203)。第一DKC111A更新與包含該PV0L113A的JNL組112A對應(yīng)的SEQ#(S2211)。第一 DKC111A制作JNL(S2212),將制作的JNL寫入第一 JV0L115A。在S2212中制作的JNL具有 包含在S2211中更新的SEQ#(或更新前的SEQ#)的元信息、以及在S2203中寫入PV0L113A 的數(shù)據(jù)。該數(shù)據(jù)可以是從PV0L113A讀出的數(shù)據(jù),也可以是在CM630A中剩余的數(shù)據(jù)。<JNL的讀處理〉采用第二 DKC111B從第一 JV0L115A讀出JNL的情形為例說明JNL讀處理。如圖23所示,第二 DKCl IlB計算讀對象SEQ#(S2301)?!白x對象SEQ#”是應(yīng)該讀取的JNL中包含的SEQ#。具體地說,讀對象SEQ#是在與JNL組112B的鏡像#0對應(yīng)的已讀取的SEQ#1008B(JNL組管理表704B內(nèi)的信息1008B)表示的值上加1而得的值(即已讀取的 SEQ#1008B表示的值的下一個值)。第二 DKC111B向第一存儲器105A發(fā)送讀請求(S2302)。該讀請求具有在S2301 中計算出的讀對象SEQ#、和成為JNL的讀取源的JV0L115A的序號(或與其對應(yīng)的 LUN (Logical Unit Number))。例如根據(jù)SM640B存儲的控制信息確定JV0L115A的序號。 具體地說,控制信息包含與具有SV0L113B的JNL組112B相對應(yīng)的JNL組112A所具有的 JVOL112A的序號。第一 DKClIlA從第二 DKClIlB接收讀請求。第一 DKClIlA根據(jù)該讀請求,從讀取源JVOLl 15A確定具有讀對象JNL(S2303)。第一 0此11認(rèn)從作為讀取源的101^15八中讀取所確定的JNL,并將讀取的JNL經(jīng)由第一以及第二存儲器105A以及105B之間的數(shù)據(jù)轉(zhuǎn)發(fā)路徑發(fā)送給第二 DKCll IB (S2304)。第二 DKC111B從第一 DKC111A接收J(rèn)NL,并將接收到的JNL寫入第二 JVOLl 15B(S2305)。第二 DKCl IlB將與具有SVOLl 13B的JNL組112B的鏡像#0相對應(yīng)的已讀取的SEQ#1008B所表示的值變更為讀對象SEQ#所表示的值(S2306)。S卩、第二 DKC111B 在該已讀取的SEQ#1008B所表示的值上加1。
<JNL的反映處理〉以第二存儲器105B中的JNL的反映為例,說明JNL的反映處理。如圖24 所示,第二 DKCl IlB 向 SVOLl 13B 反映 JNL (S2401),該 JNL 是第二 JVOLl 15B 內(nèi)的一個以上的未反映的JNL中的、具有最舊的SEQ#的JNL。具體地說,第二 DKC111B從第二 JV0L115B讀出包含比與JNL組112B的鏡像#0對應(yīng)的可清除的SEQ#1007B(JNL組管理表704B具有的信息1007B)表示的值大1的SEQ#的JNL,并將讀取的JNL所具有的數(shù)據(jù)寫入 SVOLl13B。第二 DKClIlB變更與JNL組112B的鏡像#0對應(yīng)的可清除的SEQ#1007B表示的值 (S2402)。具體地說,第二 DKClIlB在該可清除的SEQ#1007B表示的值上加1。第二 DKC111B向第一DCK111A通知更新后的可清除SEQ#1007B表示的值(S2403)。第一 DKClIlA將與JNL組112A的鏡像#0相對應(yīng)的可清除的SEQ#1007A所表示的值變更為從第二 DKCl IlB通知的值(S2404)。<JV0L的使用率的核對>各DKC定期(或不定期)核對具有該DKC的存儲器內(nèi)的JV0L。以下,以第一存儲器105A為例對其進行說明。第一 DKC111A定期(或不定期)進行圖25中所示的處理。S卩、第一 DKC111A判斷第一 JV0L115A的使用率(第一 JV0L115A中的一個以上的 JNL的總?cè)萘肯鄬τ诘谝?JVOLl 15A的容量的比例)是否超過預(yù)定的閾值(S2501)。如果該判斷的結(jié)果為否定(S2501 否),則結(jié)束處理。如果該判斷的結(jié)果為肯定(S2501 是),則第一 DKClIlA判斷在第一 JVOLl 15A內(nèi)的JNL中是否存在可清除的JNL(S2502)??汕宄腏NL是從以下的(A)的JNL到(B)的 JNL。(A)作為SEQ#而包含與JNL組112A相對應(yīng)的已清除的SEQ#1006A(參照圖19)所表示的值的JNL。(B)作為SEQ#而包含與JNL組112A的鏡像#0相對應(yīng)的可清除的SEQ#1007A所表示的值、和與JNL組112A的鏡像#1相對應(yīng)的可清除的SEQ#1007A所表示的值中的較小一方的值的JNL。如果S2502的判斷結(jié)果為肯定(S2502 是),則第一 DKC111A從第一 JV0L115A中清除可清除的JNL(S2503)。此后,第一 DKClIlA進行S2501。如果S2502的判斷結(jié)果為否定(S2502 否),則第一 DKC111A將成為瓶頸(neck) 的對(pair)掛起(S2504)。“成為瓶頸的對”是與鏡像#0以及鏡像#1中的某一個對應(yīng)的對,是可清除的SEQ#10007A表示的值較小的一方的對。該對為瓶頸的理由是,小的一方的可清除的SEQ#10007A比大的一方的可清除的SEQ#10007A小得多,所以可清除的JNL的數(shù)
量變少。在將成為瓶頸的對掛起的情況下,可清除的JNL的數(shù)量增加。具體地說,可清除的 JNL是到作為SEQ#而包含大的一方的可清除的SEQ#10007A所表示的值的JNL為止。因此, 第一 DKC111A在S2504之后進行S2502以及S2503。此外,第一 DKC111A在將成為瓶頸的對掛起的情況下,對于該對進行差分管理以及遠程同步(S2510)。具體地說,進行下述步驟(在這里的說明中,假設(shè)成為瓶頸的對是與鏡像#1對應(yīng)的對)。⑷第一 DKC111A在PV0L113A中寫入了數(shù)據(jù)的情況下,如果與該數(shù)據(jù)的寫入目的地塊對應(yīng)的位(與PV0L113A對應(yīng)的差分位圖706內(nèi)的位)為關(guān),則使該位為開。(*)第一 DKC111A在預(yù)定的時刻(例如從第一主機103A (或管理終端)接收到遠程同步指示時)進行遠程同步。具體地說,第一 DKC111A在第三JV0L115C中寫入包含與為開(ON)的位相對應(yīng)的塊內(nèi)的數(shù)據(jù)的JNL。另外,即使是將與鏡像#0以及鏡像#1相對應(yīng)的對中的瓶頸對掛起,并進行了 S2502以及S2503之后,在S2501的判斷的結(jié)果為肯定的情況下,該S2502的判斷的結(jié)果也變?yōu)榉穸?。此時,第一 DKC111A將剩余的對也掛起。結(jié)果,在圖21中,進行S2101-1和 S2101-2雙方。此時,與JNL組112A有關(guān)的全部JNL是可清除的JNL,所以如果在S2503中清除這些JNL,則S2501的判斷的結(jié)果必然變?yōu)榉穸ǎY(jié)束處理。<在第一存儲器105A中發(fā)生故障時進行的處理>如圖26所示,在第一存儲器105A中發(fā)生了故障時(S2601),進行從第一主機103A 向第二主機103B的故障切換(S2602)。然后,第二主機103B,作為預(yù)定的命令,將接管命令發(fā)送給第二存儲器 105B(S2603)。接著,第二 DKC111B應(yīng)答接管命令,更新各種狀態(tài)(S2604)。具體地說,例如,第二 DKClIlB進行下述的更新。⑷將與DV0L113B以及鏡像#0相對應(yīng)的對狀態(tài)更新為“SSWS”。如果DV0L113B 為SV0L,則第二 DKClIlB通常禁止從第二主機103B向DV0L113B的數(shù)據(jù)寫入,但“SSWS”表示即使DV0L113B為SV0L,也許可數(shù)據(jù)的寫入。(*)將與DV0L113B以及鏡像#1對應(yīng)的對狀態(tài)更新為“SSUS”。“SSUS”表示與鏡像 #1相對應(yīng)的對被掛起。由此,即使與鏡像#0相對應(yīng)的對狀態(tài)成為“SSWS”,也維持從第二主機103B向DVOLl 13B的數(shù)據(jù)寫入的禁止。(*)將DV0L113B的狀態(tài)變更為“HOLD”。“HOLD”表示等待差分遠程同步的開始。(*)使鏡像位圖707B中的、與鏡像#0相對應(yīng)的位為關(guān),與鏡像#2對應(yīng)的位為開。接著,第二 DKClIlB從第三存儲器105C取得可清除的SEQ#所表示的值(S2605)。 具體地說,例如,第二 DKC111B經(jīng)由第二以及第三存儲器105B以及105C之間的控制路徑, 向第三存儲器105C請求與JNL組112C以及鏡像#2相對應(yīng)的可清除的SEQ#1007C (JNL組管理表704C內(nèi)的信息1007C)所表示的值。第三DKC111C應(yīng)答該請求,經(jīng)由上述控制路徑,向第二 DKClIlB通知與JNL組112C以及鏡像#2相對應(yīng)的可清除的SEQ#1007C所表示的值。然后,第二 DKC111B比較與JNL組112B以及鏡像#2相對應(yīng)的可清除的SEQ#1007B 所表示的值、和所取得的可清除的SEQ#1007C所表示的值(S2606)。S卩,第二 DKClIlB比較在第二存儲器105B中最近反映的JNL所具有的SEQ#(以下稱為SEQ#(2))與在第三存儲器 105C中最近反映的JNL所具有的SEQ#(以下稱為SEQ#(3))。然后,第二 DKC111B判斷是否能夠進行差分遠程同步(S2607)。在此,說明可進行差分遠程同步的情形以及不能進行差分遠程同步的情形。此時,將SEQ# (2)以及SEQ# (3)中較大的SEQ#稱為“SEQ# (大)”,將較小的SEQ#稱為 “SEQ#(小)”。此外,在第二以及第三存儲器105B以及105C中的具有SEQ#(大)的存儲器稱為存儲器(大),將另一方的存儲器稱為存儲器(小)??蛇M行差分遠程同步的情形是圖27所示的情形,即與存儲器(大)的JNL組以及鏡像#2相對應(yīng)的已清除SEQ#所表示的值在SEQ#(小)以下的情形。換言之,是存儲器 (大)具有從包含SEQ# (小)的下一個SEQ# (等于SEQ# (小)+1的SEQ#)的JNL (以下稱為 JNL(X))到包含SEQ#(大)的JNL(以下稱為JNL(Y))的情形。以下,將從JNLOO至JNUY) 的一個以上的JNL(即包含從等于SEQ#(小)+1的SEQ#到SEQ#(大)為止的SEQ#的一個以上的JNL)稱為“一個以上的差分JNL”。另一方面,不能進行差分遠程同步的情形是圖28所示的情形,即與存儲器(大) 內(nèi)的JNL組以及鏡像#2對應(yīng)的已清除的SEQ#所表示的值成為大于SEQ#(小)的下一個 SEQ#(等于SEQ#(小)+1的SEQ#)的值的情形。這是由于SEQ#不連續(xù)而導(dǎo)致的。再參照圖26。在S2607的判斷的結(jié)果為否定的情況下(S2607 否),第二 DKClIlB進行全部復(fù)制 (S2608)。即第二 DKClIlB將具有SEQ#(2)和SEQ#(3)中的大的一方的SEQ#的存儲器內(nèi)的 DVOL(例如DVOLl 13B)中所存儲的全部數(shù)據(jù)復(fù)制到具有SEQ#(2)和SEQ#(3)中的小的一方的SEQ#的存儲器內(nèi)的DVOL (例如DVOLl 13C)中。由此,DVOLl 13B的內(nèi)容和DVOLl 13C的內(nèi)
容一致。S2607的判斷結(jié)果為肯定的情況下(S2607 是),如果SEQ#⑵大于SEQ# (3) (S2609 是),則進行從第二存儲器105B向第三存儲器105C的差分遠程同步(S2610)。艮口, 進行圖9中所示的差分遠程同步。具體地說,第二 DKC111B通過從第二 JV0L115B讀取一個以上的差分JNL,并向第三存儲器105C發(fā)送一個以上的差分JNL的寫請求(指定了第三 JVOLl 15C的寫請求),在第三JV0L115C中寫入一個以上的差分JNL(也可以代替該操作, 由第三DKC111C發(fā)送指定了第二 JV0L115B的讀請求(包含從SEQ#(3)的下一個SEQ#到 SEQ#(2)的讀請求),對其進行應(yīng)答,從第二存儲器105B接收一個以上的JNL差分,并將該一個以上的差分JNL寫入第三JV0L115C)。第三DKClIlC從具有SEQ#(3)的下一個SEQ# 的JNL開始,先按SEQ#從小到大的順序?qū)⒌谌齁V0L115C內(nèi)的一個以上的JNL差分反映到 DVOLl 13Cο由此,DVOLl 13C的內(nèi)容與DVOL113B的內(nèi)容一致。在S2607的判斷的結(jié)果為肯定的情況下(S2607 是),如果SEQ# (2)小于SEQ# (3) (S2609 否),則進行從第三存儲器105B向第二存儲器105C的差分遠程同步(S2611)。即進行圖8中所示的差分遠程同步。具體地說,第二 DKC111B發(fā)送指定了第三JV0L115C的讀請求(包含從SEQ#(2)的下一個SEQ#到SEQ#(3)的讀請求),應(yīng)答該讀請求,從第三存儲器105C接收一個以上的差分JNL,并將該一個以上的差分JNL寫入第二 JV0L115B (也可以代替該操作,由第三DKC111B從第三JV0L115C讀取一個以上的差分JNL,并向第二存儲器105B發(fā)送一個以上的差分JNL的寫請求(指定了第二 JV0L115B的寫請求),由此將一個以上的差分JNL寫入第二 JVOLl 15B)。第二 DKClIlB從具有SEQ# (2)的下一個SEQ#的 JNL開始,先按SEQ#從小到大的順序,將第二 JV0L115B內(nèi)的一個以上的差分JNL反映到 DV0L113B。由此,DVOL113B的內(nèi)容與DVOLl 13C的內(nèi)容一致。如圖29所示,第二 DKCl 1IB在S2610或S2611的差分遠程同步結(jié)束的情況下 (S2609 是),許可從第二主機103B向第二 DV0L113B的數(shù)據(jù)的寫入(S2902)。具體地說,第二 DKCl IlB將與DVOLl 13B以及鏡像#2相對應(yīng)的對狀態(tài)更新為“SSWS”(即寫許可)。由此,不僅與DV0L113B以及鏡像#0對應(yīng)的對狀態(tài),與鏡像#2對應(yīng)的對狀態(tài)也成為“SSWS”,所以能夠進行從第二主機103B向第二 DV0L113B的數(shù)據(jù)寫入。另外,在結(jié)束了 S2601或S2611的差分遠程同步的情況下,第二 DKCllB將第二 DVOLl 13B作為PVOL (第三DVOLl 13C為SV0L)。此后,在第二站點IOlB中繼續(xù)進行業(yè)務(wù)。在第二站點IOlB中,與JNL組112B相對應(yīng)的SEQ#的初始值是SEQ# (2)以及SEQ# (3)中的大的一方的SEQ#的下一個SEQ# (即在 SEQ# (2)以及SEQ#(3)中的大的一方的SEQ#上加1而得的值)。第二主機103B根據(jù)業(yè)務(wù)向第二存儲器105B發(fā)送指定了 PV0L113B的寫請求。第二 DKCl 1IB將按照該寫請求的數(shù)據(jù)寫入CM630B中,此后寫入PVOLl 13B中。第二 DKCl 1IB更新 SEQ#,制作包含更新后的SEQ#(或更新前的SEQ#)以及在PV0L113B中寫入的數(shù)據(jù)的JNL,并寫入第二 JV0L115B中。第三DCK111C通過向第二存儲器105B發(fā)送指定了第二 JV0L115B 的讀請求,從第二存儲器105B接收第二 JV0L115B內(nèi)的JNL。第三DKClIlC將接收到的JNK 寫入第三JV0L115C。第三DKClIlC將第三JVOLl 15C內(nèi)的未反映的JNL,按SEQ#從小到大的順序向SV0L113C反映。通過該一連串的處理,寫入PV0L113B的數(shù)據(jù)被復(fù)制到SV0L113C。以上,根據(jù)實施例1,在運用站點的切換目的地的站點IOlB中,第二存儲器105B 取得在第三存儲器105C中最近反映的JNL的SEQ#(SEQ#(3)),將SEQ#(3)與在第二存儲器 105B中最近反映的JNL所具有的SEQ#(SEQ#(2))進行比較。此外,第二存儲器105B根據(jù)具有SEQ#(2)以及SEQ#(3)中的大的一方的SEQ#的存儲器中的已清除的SEQ#、和SEQ# (2)以及SEQ#(3)中的小的一方的關(guān)系,判斷是否可以進行差分遠程同步。然后,基于該判斷結(jié)果和SEQ#(2)以及SEQ#(3)的關(guān)系進行差分遠程同步。由此,即使第一存儲器105A 因故障等原因而停止,也能夠恰當(dāng)?shù)乩^續(xù)進行業(yè)務(wù)。此外,根據(jù)實施例1,在多個復(fù)制目的地JNL組中共用在一個復(fù)制源JNL組中所包含的JV0L。換言之,在一個復(fù)制源JNL組中所包含的JVOL的數(shù)量不依賴于復(fù)制目的地JNL 組的數(shù)量。由此能夠節(jié)約在第一存儲器105A中消耗的存儲容量。實施例2以下,說明本發(fā)明的實施例2。此時主要說明與實施例1的不同點,省略或簡略說明與實施例1的共同點(這一點對于后述的實施例3以及4也相同)。在實施例2中,在差分遠程同步中也許可對第二DV0L113B的數(shù)據(jù)寫入。具體地說, 如圖30所示,第二 DKC111B在判斷圖26的S2607中成為“是”的情況下(S3001 是),許可從第二主機103B向第二 DV0L113B的數(shù)據(jù)寫入(S3002)。具體地說,第二 DKC111B將與第二 DV0L113B以及鏡像#0相對應(yīng)的對狀態(tài)、和與第二 DV0L113B以及鏡像#2相對應(yīng)的對狀態(tài)的雙方變更為“SSWS”。另外,“判斷S2607中成為“是”的情況下”是確定了進行在S2610 和S2611中的某一個的差分遠程同步的時候。但是,此時如果不采取任何措施則會產(chǎn)生以下問題。即,在從第三存儲器105C向第二存儲器105B的差分遠程同步中,在具有從第二主機103B寫入的數(shù)據(jù)(最新的數(shù)據(jù)) 的塊(DV0L113B內(nèi)的塊)中,有可能寫入差分JNL內(nèi)的數(shù)據(jù)(舊的數(shù)據(jù))。為了避免該問題,在實施例2中,在確定了從第三存儲器105C向第二存儲器105B 進行差分遠程同步的情況下,進行圖31中所示的處理。S卩,第二 DKC111B,在從第二主機103B接收到指定了 DVOLl 13B的寫請求時 (S3101),在DV0L113B中的寫入目的地的塊中寫入作為寫對象的數(shù)據(jù)(S3102)。此時,第二 DKC111B將該寫入目的地塊作為JNL的非反映目的地來管理(S3103)。具體地說,例如,SM640B存儲表示不需要JNL的反映的寫入目的地的非反映管理信息,第二 DKC111B 在SM640B中,將DVOL113B的序號和DVOL113B的塊的地址(例如LBA (Logical Block Address))登記在非反映管理信息中。如圖32所示,第二 DKC111B,在從第二 JV0L115B讀出了 JNL的情況下,如果該 JNL的反映目的地的塊(DV0L113B中的塊)不是非反映目的地(S3202 否),則反映該 JNL(S3203),但如果該JNL的反映目的地的塊為非反映目的地(S3202 是),則不反映該 JNL(S3204)。在S3202中,“JNL的反映目的地的塊是否為非反映目的地”是指例如該反映目的地的塊的地址是否登記在上述非反映管理信息中。在S3204中,“不反映JNL”是指例如忽略JNL。被忽略的JNL也可以留在第二 JVOLl 15B中,也可以立即從第二 JV0L115B中被刪除。根據(jù)實施例2,與實施例1相比能夠盡快開始業(yè)務(wù),而且也可以避免因在差分遠程同步中DV0L113B為寫入許可狀態(tài)而產(chǎn)生的問題(在寫入了最新的數(shù)據(jù)的塊中,寫入差分 JNL內(nèi)的舊的數(shù)據(jù))。實施例3在實施例3中,在差分遠程同步中也許可第二主機103B從第二 DVOLl 13B讀取數(shù)據(jù)(在實施例1中禁止該讀取)。具體地說,例如第二 DKC111B設(shè)為在圖26的S2607中判斷為“是”的情況下許可從第二 DV0L113B中讀出數(shù)據(jù)的狀態(tài)。但是,此時如果不采取任何措施則會產(chǎn)生以下問題。即,在從第三存儲器105C向第二存儲器105B的差分遠程同步的進行中,第二主機103B從DV0L113B讀出的數(shù)據(jù),有可能是舊的數(shù)據(jù)而不是最新的數(shù)據(jù)(SEQ#最大的差分JNL所具有的數(shù)據(jù))。為了避免該問題,實施例3在確定了進行從第三存儲器105C到第二存儲器105B 的差分遠程同步的情況下,進行圖33中所示的處理。S卩,第二DKC111B在到結(jié)束差分遠程同步為止的期間內(nèi)接收到指定了 DV0L113B的讀請求時(S3301),在CM630B中確保CM區(qū)域(S3302),判斷差分遠程同步是否是從第三存儲器105C向第二存儲器105B的差分遠程同步(S3303)。在該判斷結(jié)果為否定的情況下(S3303 否),第二DKC111B從在讀請求中指定的讀取源塊(DV0L113B內(nèi)的塊)讀出數(shù)據(jù),將讀出的數(shù)據(jù)寫入CM區(qū)域,并將CM區(qū)域內(nèi)的數(shù)據(jù)發(fā)送至第二主機103B(S3307)。在S3303的判斷結(jié)果為肯定的情況下(S3303 是),第二 DKC111B判斷讀取源塊成為反映目的地的最新的JNL是否位于第二 JV0L115B (S3304)。在此所說的“最新的JNL” 是第二以及第三JVOLl 15B以及115C所具有的一個以上的差分JNL中的、讀取源塊成為反映目的地的一個以上的JNL中的某一個,是包含這些一個以上的JNL所具有的一個以上的 SEQ#中的最大的SEQ#的JNL。從而,為了該判斷,第二 DKC111B掌握第三DV0L115B內(nèi)的差分JNL所具有的SEQ#。在該判斷的結(jié)果為肯定的情況下(S3304 是),第二 DKClIlB從第二 JVOLl 15B向 DVOL113B內(nèi)的讀取源塊反映最新的JNL (S3306),此后進行S3307。另外,第二 DKCl 1IB在差分遠程同步中,即使取得了上述讀取源塊為反映目的地的差分JNL、即比上述最新的JNL舊的差分JNL (包含比最新的JNL所具有的SEQ#小的SEQ#的JNL),也不向讀取源塊反映該差分JNL(例如,從第二 JVOLl 15B中清除該JNL)。此外,S3304 是的情況下的S3307中,可以代替從第二 DVOLl 13B提供向第二主機103B發(fā)送的數(shù)據(jù),而從JNL提供向第二主機103B發(fā)送的數(shù)據(jù)。在S3304的判斷結(jié)果為否定的情況下(S3304 否),第二 DKC111B向第三存儲器 105C發(fā)送包含最新的JNL的SEQ#的讀請求,由此從第三存儲器105C接收最新的JNL,并將該最新的JNL寫入第二 JV0L115B。S卩,第二 DKC111B與其他JNL相比優(yōu)先從第三存儲器 105C取得最新的JNL。此后,第二 DKC111B進行上述的S3306以及S3307。另外,在S3304: 否的情況下的S3307中,也可以代替從第二 DKC111B提供發(fā)送給第二主機103B的數(shù)據(jù),而從JNL提供發(fā)送給第二主機103B的數(shù)據(jù)。根據(jù)實施例3,與實施例1相比能夠盡快開始業(yè)務(wù),而且也可以避免因在差分遠程同步中DVOLl 13B為讀取許可狀態(tài)而產(chǎn)生的問題(向第二主機103C提供舊的數(shù)據(jù)而不是最新的數(shù)據(jù))。實施例4在實施例4中,即使在存儲器105B以及105C之間不進行全部差分JNL的轉(zhuǎn)發(fā),也能夠進行差分遠程同步。例如,在圖26的S2606之后,第二 DKC111B判斷與差分JNL相當(dāng)?shù)奈捶从车腏NL 是否存在于舊存儲器中(S3401)。在此,“舊存儲器”是存儲器105B或105C中作為可清除SEQ#而具有SEQ#(2)以及 SEQ#(3)中的小的一方的SEQ#的存儲裝置。以下,將存儲器105B以及105C中的不是舊存儲器的一方稱為“新存儲器”。此外,“與差分JNL相當(dāng)?shù)奈捶从车腏NL存在于舊存儲器”是指如圖35所示,在舊存儲器內(nèi)的JVOL中存在具有大于舊存儲器中的可清除的SEQ#的SEQ#的未反映JNL。在舊存儲器為第二存儲器105B的情況下,例如如果在第二 JV0L115B中有至少一個未反映的JNL,則S3401的判斷結(jié)果是肯定。此外,在舊存儲器為第三存儲器105C的情況下,例如第二 DKCl 1IB向第三DKCl 1IC 詢問一個以上的未反映的JNL中的最新的JNL具有的SEQ#表示的值,由此能夠進行S3401 的判斷。具體地說,第二 DKC111B通過比較從第三DKC111C回答的SEQ#(以下稱為回答 SEQ#)和SEQ#(3)+1,能夠進行S3401的判斷。如果回答SEQ#為SEQ#(3)+1以上,貝丨J S3401 的判斷結(jié)果為肯定。在S3401的判斷結(jié)果為否定的情況下(S3401 否)的情況下,進行圖26的S2607。在S3401的判斷結(jié)果為肯定的情況下(S3401 否)的情況下,第二 DKC111B判斷舊存儲器內(nèi)的未反映JNL是否足夠(S3402)。如果舊存儲器內(nèi)的最新的未反映JNL所具有的SEQ#是一個以上的差分JNL中的最新的JNL所具有的SEQ#以上,則該判斷的結(jié)果是肯定。如果該判斷的結(jié)果為肯定(S3402:是),則舊存儲器內(nèi)的DKC向舊存儲器內(nèi)的 DVOL反映舊存儲器內(nèi)的一個以上的未反映的JNL中的、全部的相當(dāng)于一個以上的差分JNL 的JNL(S3403)。假如,未反映的JNL剩余,則舊存儲器內(nèi)的DKC可以清除剩余的JNL。如果S3402的判斷結(jié)果為否定(S3402 否)則進行S3404。SP,舊存儲器內(nèi)的DKC從新存儲器取得不足的部分的差分JNL(與舊存儲器內(nèi)的未反映的JNL和一個以上的差分 JNL之間的差分相當(dāng)?shù)腏NL),并將該差分JNL存儲在舊存儲器內(nèi)的JV0L。然后,舊存儲器內(nèi)的DKC向舊存儲器內(nèi)的DVOL反映舊存儲器內(nèi)的JVOL內(nèi)的全部未反映JNL以及差分JNL。以上說明了本發(fā)明的幾個實施例,但本發(fā)明并不限定于這些實施例,當(dāng)然可以在不脫離其主旨的范圍內(nèi)進行各種變更。例如,也可以組合實施例1 4中的兩個以上的實施例。此外,例如在上述的說明中作為更新序號而使用了時序序號(SEQ#),但也可以采用按規(guī)則變大或者變小的其他種類的序號。此外,例如在實施例1 4中,在第一存儲器105A停止的情況下,運用的切換目的地的站點中的第二存儲器105B進行各種處理(例如判斷是否可以進行差分(△)遠程同步),但也可以通過第三存儲器105C來進行實施例1 4中的至少一個中的各種處理中的至少一個處理。此外,例如全部JNL具有更新后的SEQ#,但也可以代替它們而具有更新前的SEQ#。此外,例如存儲器105A 105C中的至少一個存儲器可以有多個JNL組。此外,例如存儲器105A 105C中的至少一個存儲器可以具有在JNL組中包含的邏輯卷以外的邏輯卷。此外,例如存儲裝置之間的JNL的轉(zhuǎn)發(fā),可以是通過復(fù)制目的地的存儲裝置從復(fù)制源的存儲裝置內(nèi)的JVOL讀出JNL來進行的轉(zhuǎn)發(fā)、和復(fù)制源的存儲裝置在復(fù)制目的地的存儲裝置內(nèi)的JVOL中寫入JNL來進行的轉(zhuǎn)發(fā)中的任意一種。符號說明IOlA…第一存儲裝置;IOlB…第二存儲裝置;IOlC…第三存儲裝置
權(quán)利要求
1.一種非同步遠程復(fù)制系統(tǒng),是進行非同步遠程復(fù)制的存儲系統(tǒng),該非同步遠程復(fù)制系統(tǒng)的特征在于,具有第一存儲裝置,其具有第一存儲資源組,且與第一主機裝置連接; 第二存儲裝置,其具有第二存儲資源組,且與第二主機裝置連接;和第三存儲裝置,其具有第三存儲資源組,所述第一存儲資源組具有作為被寫入數(shù)據(jù)的邏輯卷的第一數(shù)據(jù)卷、以及作為被寫入數(shù)據(jù)的日志的存儲資源的第一日志存儲資源,所述第二存儲資源組具有作為被寫入數(shù)據(jù)的邏輯卷的第二數(shù)據(jù)卷、以及作為被寫入數(shù)據(jù)的日志的存儲資源的第二日志存儲資源,所述第三存儲資源組具有作為被寫入數(shù)據(jù)的邏輯卷的第三數(shù)據(jù)卷、以及作為被寫入數(shù)據(jù)的日志的存儲資源的第三日志存儲資源,在從所述主機裝置向所述第一數(shù)據(jù)卷寫入數(shù)據(jù)時,所述第一存儲裝置更新更新序號, 制作包含該更新序號和該數(shù)據(jù)的日志,并將該日志寫入所述第一日志存儲資源,其中,該更新序號是每次在所述第一存儲資源組內(nèi)的數(shù)據(jù)卷中寫入數(shù)據(jù)時被更新的序號,進行多目標(biāo)方式的非同步遠程復(fù)制,在該非同步遠程復(fù)制中,所述日志被從所述第一存儲裝置轉(zhuǎn)發(fā)到所述第二存儲裝置,并被反映到所述第二數(shù)據(jù)卷,由此把所述第一數(shù)據(jù)卷內(nèi)的數(shù)據(jù)寫入所述第二數(shù)據(jù)卷,而且所述日志被從所述第一存儲裝置轉(zhuǎn)發(fā)到所述第三存儲裝置,并被反映到所述第三數(shù)據(jù)卷,由此把所述第一數(shù)據(jù)卷內(nèi)的數(shù)據(jù)寫入所述第三數(shù)據(jù)卷, (X)在所述第一存儲裝置停止時,(xl)判斷在所述第二存儲裝置中最近反映的日志所具有的更新序號和在所述第三存儲裝置中最近反映的日志所具有的更新序號中的哪一個新;(χ2)判斷在所述第二以及第三存儲裝置中、作為具有在所述(xl)中判斷為新的更新序號的存儲裝置的新存儲裝置中是否有一個以上的差分日志,該一個以上的差分日志是從具有在所述(xl)中沒有判斷為新的更新序號的下一個更新序號的日志開始到具有在所述 (xl)中判斷為新的更新序號的日志為止的一個以上的日志;(x3)在所述(χ2)的判斷結(jié)果為肯定的情況下,從所述新存儲裝置向舊存儲裝置復(fù)制所述一個以上的差分日志,所述舊存儲裝置是所述第二以及第三存儲裝置中不是所述新存儲裝置的存儲裝置;(x4)所述舊存儲裝置按照更新序號的順序向所述舊存儲裝置內(nèi)的數(shù)據(jù)卷反映所述一個以上的差分日志。
2.根據(jù)權(quán)利要求1所述的非同步遠程復(fù)制系統(tǒng),其特征在于,所述第二存儲裝置是所述舊存儲裝置,所述第三存儲裝置是所述新存儲裝置, 所述第二數(shù)據(jù)卷處于禁止來自所述第二主機裝置的數(shù)據(jù)的寫入的寫入禁止?fàn)顟B(tài), 在所述(x2)的判斷結(jié)果為肯定的情況下,所述第二存儲裝置使所述第二數(shù)據(jù)卷成為可以進行來自所述第二主機裝置的數(shù)據(jù)的寫入的寫入許可狀態(tài),所述第二存儲裝置,在使所述第二數(shù)據(jù)卷成為寫入許可狀態(tài)后,從所述第二主機裝置接收到指定了所述第二數(shù)據(jù)卷中的寫入目的地的寫入請求時, (wl)將按照所述寫入請求的數(shù)據(jù)寫入所述寫入目的地, (w2)將所述寫入目的地作為差分日志的非反映目的地來管理,在所述(x4)中,所述第二存儲裝置進行如下操作(x41)判斷所述第二日志存儲資源內(nèi)的差分日志的反映目的地是否是非反映目的地; (x42)如果所述(x41)的判斷結(jié)果為否定,則反映所述差分日志; (x43)如果所述(x41)的判斷結(jié)果為肯定,則不反映所述差分日志。
3.根據(jù)權(quán)利要求1所述的非同步遠程復(fù)制系統(tǒng),其特征在于,所述第二存儲裝置是所述舊存儲裝置,所述第三存儲裝置是所述新存儲裝置, 所述第二數(shù)據(jù)卷處于禁止從所述第二主機裝置讀取數(shù)據(jù)的讀取禁止?fàn)顟B(tài), 在所述(x2)的判斷結(jié)果為肯定的情況下,所述第二存儲裝置使所述第二數(shù)據(jù)卷成為可以從所述第二主機裝置讀取數(shù)據(jù)的讀取許可狀態(tài),所述第二存儲裝置,在使所述第二數(shù)據(jù)卷成為讀取許可狀態(tài)之后,從所述第二主機裝置接收到指定了所述第二數(shù)據(jù)卷中的讀取源的讀取請求時,(R)將對象日志所具有的數(shù)據(jù)發(fā)送給所述第二主機裝置,所述對象日志是讀取源成為反映目的地的差分日志中的、具有最新的更新序號的差分日志。
4.根據(jù)權(quán)利要求3所述的非同步遠程復(fù)制系統(tǒng),其特征在于, 在所述(R)中,所述第二存儲裝置進行如下操作(rl)判斷所述第二以及第三日志存儲資源中的、讀取源成為反映目的地的差分日志中,作為具有最新的更新序號的差分日志的對象日志是否在所述第二日志存儲資源中;(r2)如果所述(rl)的判斷結(jié)果為肯定,則向所述第二數(shù)據(jù)卷反映所述對象日志,且向所述第二主機裝置發(fā)送所述對象日志所具有的數(shù)據(jù);(r3)如果所述(rl)的判斷結(jié)果為否定,則與其他日志相比優(yōu)先從所述第三存儲裝置取得所述對象日志,將所述對象日志寫入所述第二日志存儲資源中,向所述第二數(shù)據(jù)卷反映所述對象日志,并將所述對象日志所具有的數(shù)據(jù)發(fā)送給所述第二主機裝置。
5.根據(jù)權(quán)利要求1所述的非同步遠程復(fù)制系統(tǒng),其特征在于,(P)所述第二或第三存儲裝置判斷在所述舊存儲裝置內(nèi)的日志存儲資源中是否有相當(dāng)于所述差分日志的未反映的日志;(Q)如果所述(P)的判斷結(jié)果為肯定,則所述舊存儲裝置向自身的數(shù)據(jù)卷反映相當(dāng)于所述差分日志的未反映的日志;針對與在所述(Q)中被反映的未反映的日志相對應(yīng)的差分日志,代替所述(χ3)以及 (χ4),進行所述(Q)。
6.根據(jù)權(quán)利要求1所述的非同步遠程復(fù)制系統(tǒng),其特征在于, 所述第一存儲裝置進行如下操作(H)從所述第一日志存儲資源中清除關(guān)于所述第二以及第三存儲資源組共同的可清除的日志;(I)判斷所述第一日志存儲資源的使用率是否超過預(yù)定的閾值;(J)在所述(I)的判斷結(jié)果為肯定的情況下,在第一關(guān)系以及第二關(guān)系中,解除從所述第一日志存儲資源中可清除的日志的數(shù)量少的一方的關(guān)系,所述第一關(guān)系是所述第一存儲資源組和所述第二存儲資源組的關(guān)系,所述第二關(guān)系是所述第一存儲資源組和所述第三存儲資源組的關(guān)系;(K)從所述第一日志存儲資源中清除關(guān)于所述第二以及第三存儲資源組中與未被解除的關(guān)系相關(guān)的存儲資源組的可清除的日志,所述第一日志存儲資源的使用率是所述第一日志存儲資源內(nèi)的一個以上的JNL的總?cè)萘肯鄬τ谒龅谝蝗罩敬鎯Y源的容量的比例。
7.根據(jù)權(quán)利要求6所述的非同步遠程復(fù)制系統(tǒng),其特征在于,(L)所述第一存儲裝置關(guān)于被掛起的對,在所述第一數(shù)據(jù)卷內(nèi)的寫入目的地寫入了數(shù)據(jù)的情況下,對于不制作具有該數(shù)據(jù)的JNL,而在該寫入目的地中進行了更新的情況進行管理,(M)所述第一存儲裝置應(yīng)答預(yù)定的命令,制作包含位于進行了更新的寫入目的地的數(shù)據(jù)的日志,并將該日志發(fā)送給具有與所述作為瓶頸的對相關(guān)的數(shù)據(jù)卷的存儲裝置,(N)該存儲裝置將該日志寫入自身的日志存儲資源中,并將該日志存儲資源內(nèi)的日志反映到自身的數(shù)據(jù)卷。
8.根據(jù)權(quán)利要求1所述的非同步遠程復(fù)制系統(tǒng),其特征在于,在所述(χ)的情況下,從所述第一主機裝置向所述第二主機裝置進行故障切換,所述第二主機裝置向所述第二存儲裝置發(fā)送預(yù)定的命令,所述第二存儲裝置接收所述預(yù)定的命令,應(yīng)答所述預(yù)定的命令,執(zhí)行所述(xl)以及 (χ2)。
9.根據(jù)權(quán)利要求1所述的非同步遠程復(fù)制系統(tǒng),其特征在于,所述第二數(shù)據(jù)卷處于禁止從所述第二主機裝置寫入數(shù)據(jù)的寫入禁止?fàn)顟B(tài), 在完成所述(x4)之后,所述第二存儲裝置使所述第二數(shù)據(jù)卷成為可以從所述第二主機裝置寫入數(shù)據(jù)的寫入許可狀態(tài)。
10.根據(jù)權(quán)利要求1所述的非同步遠程復(fù)制系統(tǒng),其特征在于, 所述第二以及第三存儲資源組共用所述第一日志存儲資源,在所述(Dl)中,所述第二存儲裝置從所述第一存儲裝置讀取具有在所述第二日志存儲資源中最新的更新序號的下一個更新序號的日志,并將讀取的日志寫入所述第二日志存儲資源中,在所述(D2)中,所述第三存儲裝置從所述第一存儲裝置讀取具有在所述第三日志存儲資源中最新的更新序號的下一個更新序號的日志,并將讀取的日志寫入所述第三日志存儲資源中。
11.一種存儲控制方法,是作為進行非同步遠程復(fù)制的存儲系統(tǒng)的非同步遠程復(fù)制系統(tǒng)中的存儲控制方法,其特征在于,所述非同步遠程復(fù)制系統(tǒng)具有第一存儲裝置,其具有第一存儲資源組,且與第一主機裝置連接; 第二存儲裝置,其具有第二存儲資源組,且與第二主機裝置連接;以及第三存儲裝置,其具有第三存儲資源組,且與第三主機裝置連接, 所述第一存儲資源組具有作為被寫入數(shù)據(jù)的邏輯卷的第一數(shù)據(jù)卷、以及作為被寫入數(shù)據(jù)的日志的存儲資源的第一日志存儲資源,所述第二存儲資源組具有作為被寫入數(shù)據(jù)的邏輯卷的第二數(shù)據(jù)卷、以及作為被寫入數(shù)據(jù)的日志的存儲資源的第二日志存儲資源,所述第三存儲資源組具有作為被寫入數(shù)據(jù)的邏輯卷的第三數(shù)據(jù)卷、以及作為被寫入數(shù)據(jù)的日志的存儲資源的第三日志存儲資源,在從所述主機裝置向所述第一數(shù)據(jù)卷寫入數(shù)據(jù)時,所述第一存儲裝置更新更新序號, 制作包含該更新序號和該數(shù)據(jù)的日志,并將該日志寫入所述第一日志存儲資源中,其中,該更新序號是每次在所述第一存儲資源組內(nèi)的數(shù)據(jù)卷中寫入數(shù)據(jù)時被更新的序號,進行多目標(biāo)方式的非同步遠程復(fù)制,在該非同步遠程復(fù)制中,所述日志被從所述第一存儲裝置轉(zhuǎn)發(fā)到所述第二存儲裝置,并被反映到所述第二數(shù)據(jù)卷,由此把所述第一數(shù)據(jù)卷內(nèi)的數(shù)據(jù)寫入所述第二數(shù)據(jù)卷,而且所述日志被從所述第一存儲裝置轉(zhuǎn)發(fā)到所述第三存儲裝置,并被反映到所述第三數(shù)據(jù)卷,由此把所述第一數(shù)據(jù)卷內(nèi)的數(shù)據(jù)寫入所述第三數(shù)據(jù)卷, 在所述第一存儲裝置停止時,所述存儲控制方法執(zhí)行如下步驟 (xl)判斷在所述第二存儲裝置中最近反映的日志所具有的更新序號和在所述第三存儲裝置中最近反映的日志所具有的更新序號中的哪一個新;(x2)判斷在所述第二以及第三存儲裝置中、作為具有在所述(xl)中判斷為新的更新序號的存儲裝置的新存儲裝置中,是否有一個以上的差分日志,該一個以上的差分日志是從具有在所述(xl)中沒有判斷為新的更新序號的下一個更新序號的日志開始到具有在所述(xl)中判斷為新的更新序號的日志為止的一個以上的日志;(x3)在所述(χ2)的判斷結(jié)果為肯定的情況下,從所述新存儲裝置內(nèi)的日志存儲資源向舊存儲裝置內(nèi)的日志存儲資源復(fù)制所述一個以上的差分日志,所述舊存儲裝置是所述第二以及第三存儲裝置中不是所述新存儲裝置的存儲裝置;(x4)在所述舊存儲裝置中,按照更新序號的順序向所述舊存儲裝置內(nèi)的數(shù)據(jù)卷反映所述一個以上的差分日志。
全文摘要
在第一存儲裝置停止的情況下,判斷在第二存儲裝置中最近反映的日志所具有的更新序號和在第三存儲裝置中最近反映的日志所具有的更新序號中的哪一個新。判斷在具有被判斷為新的更新序號的新存儲裝置中是否有從具有沒有被判斷為新的更新序號的下一個更新序號的日志開始到具有被判斷為新的更新序號的日志為止的一個以上的差分日志。在該判斷的結(jié)果為肯定的情況下,從新存儲裝置向第二以及第三存儲裝置中不是新存儲裝置的一方、即舊存儲裝置復(fù)制一個以上的差分日志。在舊存儲裝置中,一個以上的差分日志按更新序號的順序被反映到舊存儲裝置內(nèi)的數(shù)據(jù)卷。
文檔編號G06F12/00GK102326152SQ20108000883
公開日2012年1月18日 申請日期2010年4月7日 優(yōu)先權(quán)日2010年4月7日
發(fā)明者奧元勝博, 近藤修次 申請人:株式會社日立制作所