專利名稱:存儲系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲系統(tǒng),特別是涉及多個存儲系統(tǒng)間的數(shù)據(jù)復制。
背景技術(shù):
近年來,經(jīng)常由于要對顧客提供連續(xù)的服務(wù),因此,既便是在第一存儲系統(tǒng)中發(fā)生障礙的情況下,數(shù)據(jù)處理系統(tǒng)也能夠提供服務(wù)的、有關(guān)存儲系統(tǒng)間的數(shù)據(jù)復制的技術(shù)變得越來越重要。作為將第一存儲系統(tǒng)內(nèi)存儲的信息復制到第二和第三存儲系統(tǒng)的技術(shù),存在以下的專利文獻中所公開的技術(shù)。
美國專利No.5170480號公報中,公開了這樣一種技術(shù)連接在第一存儲系統(tǒng)上的第一計算機,通過第一計算機和第二計算機間的通信鏈路,將第一存儲系統(tǒng)內(nèi)存儲的數(shù)據(jù)傳送給第二計算機,第二計算機再將其傳送給與第二計算機相連的第二存儲系統(tǒng)。
在美國專利6209002號公報中公開了以下技術(shù)第一存儲系統(tǒng)將第一存儲系統(tǒng)內(nèi)存儲的數(shù)據(jù)傳送給第二存儲系統(tǒng),而后,第二存儲系統(tǒng)將其傳送給第三存儲系統(tǒng)。計算機和第一存儲系統(tǒng)是通過通信鏈路而連接的,第一存儲系統(tǒng)和第二存儲系統(tǒng)是通過通信鏈路連接的,而且,第二存儲系統(tǒng)和第三存儲系統(tǒng)是通過通信鏈路連接的。第一存儲系統(tǒng)保持復制對象的第一邏輯卷。第二存儲系統(tǒng),保存作為第一邏輯卷的副本(copy)的第二邏輯卷,以及作為第二邏輯卷的副本的第三邏輯卷。第三存儲系統(tǒng)保存作為第三邏輯卷的副本的第四邏輯卷。在該專利文獻中,第二邏輯系統(tǒng)排他地執(zhí)行從第二邏輯卷到第三邏輯卷的數(shù)據(jù)復制處理,與從第三邏輯卷到第四邏輯卷的數(shù)據(jù)復制處理。
(專利文獻1)美國專利No.5170480號公報(專利文獻2)美國專利No.6209002號公報
發(fā)明內(nèi)容
(發(fā)明目的)美國專利No.5170480號公報中所公開的技術(shù),為了數(shù)據(jù)復制而經(jīng)常要使用第一計算機和第二計算機。第一計算機執(zhí)行通常的業(yè)務(wù),不能無視對于第一計算機所添加的數(shù)據(jù)復制處理的負荷。再有,用于復制的數(shù)據(jù),由于使用第一計算機和第一存儲系統(tǒng)間的通信鏈路,因此與通常業(yè)務(wù)所必需的數(shù)據(jù)傳輸發(fā)生沖突,存在通常業(yè)務(wù)所必需的數(shù)據(jù)參考、數(shù)據(jù)更新時間變長的問題。
美國專利No.6209002號公報中公開的技術(shù),在第二存儲系統(tǒng)和第三存儲系統(tǒng)中,必須是執(zhí)行復制的數(shù)據(jù)量的存儲容量的2倍的存儲容量。由于復制對象的數(shù)據(jù)量多,因此,數(shù)據(jù)復制處理所花費的時間變長,第三存儲系統(tǒng)的數(shù)據(jù)會變舊。其結(jié)果,使用第三存儲系統(tǒng)的數(shù)據(jù)再次執(zhí)行業(yè)務(wù)的情況下,使第三存儲系統(tǒng)的數(shù)據(jù)變?yōu)樽钚聰?shù)據(jù)的時間變長,存在到再開始業(yè)務(wù)時的時間延長的問題。再者,在該文獻中,第一存儲系統(tǒng),除了執(zhí)行第一存儲系統(tǒng)內(nèi)的數(shù)據(jù)更新處理外,還在與第二存儲系統(tǒng)之間的數(shù)據(jù)行進處理結(jié)束的時間點上,還對上一級計算機執(zhí)行數(shù)據(jù)更新完畢報告。因此,來自于計算機的數(shù)據(jù)更新所耗費的時間長,如果第一存儲系統(tǒng)和第二存儲系統(tǒng)之間的距離越遠,則數(shù)據(jù)更新所耗費的時間越長。其結(jié)果,如果按照該文獻中所公開的技術(shù),則存在不能把各存儲系統(tǒng)間的距離設(shè)置得太遠的問題。
本發(fā)明的目的是對于存儲系統(tǒng)的上一級計算機不施加影響,而在多個存儲系統(tǒng)間執(zhí)行數(shù)據(jù)傳輸或數(shù)據(jù)復制。再者,本發(fā)明的目的還有對存儲系統(tǒng)和計算機間的通信也不施加影響。
還有,本發(fā)明的目的是能夠使多個存儲系統(tǒng)內(nèi)存儲的數(shù)據(jù)存儲區(qū)變少。另外,以不對多個存儲系統(tǒng)的上一級計算機的業(yè)務(wù)施加影響的方式,高速有效地在多個存儲系統(tǒng)之間執(zhí)行數(shù)據(jù)傳輸或數(shù)據(jù)復制。
(發(fā)明概述)為了解決這些問題,在本發(fā)明中,第一存儲系統(tǒng),將有關(guān)第一存儲系統(tǒng)內(nèi)存儲的數(shù)據(jù)之更新的信息作為日志(journal)進行存儲。日志,具體而言是用更新中使用的數(shù)據(jù)的拷貝和更新時的寫入命令等更新信息構(gòu)成的。另外,第二存儲系統(tǒng)通過第一存儲系統(tǒng)和第二存儲系統(tǒng)間的通信線,獲取所述日志。第二存儲系統(tǒng)保持第一存儲系統(tǒng)所保持的數(shù)據(jù)的副本,并使用所述日志,按照第一存儲系統(tǒng)中的數(shù)據(jù)更新順序,更新與第一存儲系統(tǒng)的數(shù)據(jù)相對應(yīng)的數(shù)據(jù)。
在本發(fā)明中,第二存儲系統(tǒng)保持第二存儲區(qū),用于存儲第一存儲系統(tǒng)執(zhí)行存儲的第一存儲區(qū)內(nèi)所存儲的數(shù)據(jù)的副本;將有關(guān)第二存儲區(qū)的數(shù)據(jù)的更新之信息作為日志,存儲在日志專用的第三存儲區(qū)內(nèi)。第三存儲區(qū)的存儲容量,可以是比第二存儲區(qū)少的存儲容量。另外,第三存儲系統(tǒng),通過第二存儲系統(tǒng)和第三存儲系統(tǒng)之間的通信線,來獲取所述日志,并將其存儲在日志專用的第四存儲區(qū)內(nèi)。第四存儲區(qū)的存儲容量可以是比第二存儲區(qū)少的存儲容量。第三存儲系統(tǒng),保持用于存儲被存儲在第二存儲區(qū)內(nèi)的數(shù)據(jù)之副本的第五存儲區(qū),并使用所述日志,按照第二存儲區(qū)中的數(shù)據(jù)更新順序,對與第二存儲區(qū)相對應(yīng)的第五存儲區(qū)的數(shù)據(jù)進行更新。
圖1是本發(fā)明一實施例的邏輯結(jié)構(gòu)框圖。
圖2是本發(fā)明一實施例的存儲系統(tǒng)的框圖。
圖3是用于說明本發(fā)明一實施例的更新信息和寫入數(shù)據(jù)的關(guān)系的圖。
圖4是用于說明本發(fā)明一實施例的卷信息的例子的圖。
圖5是用于說明本發(fā)明一實施例的對(pair)信息的例子的圖。
圖6是用于說明本發(fā)明一實施例組信息的例子的圖。
圖7是用于說明本發(fā)明一實施例的指針信息的例子的圖。
圖8是用于說明本發(fā)明一實施例的日志邏輯卷的結(jié)構(gòu)的圖。
圖9是用于說明本發(fā)明一實施例的開始數(shù)據(jù)復制的順序的流程圖。
圖10是用于說明本發(fā)明一實施例的初期拷貝處理的流程圖。
圖11是用于說明本發(fā)明一實施例的命令接收處理的圖。
圖12是用于說明本發(fā)明一實施例的命令接收處理的流程圖。
圖13是本發(fā)明一實施例的日志生成處理的流程圖。
圖14是用于說明本發(fā)明一實施例的日志讀接收處理的圖。
圖15是用于說明本發(fā)明一實施例的日志讀接收處理的流程圖。
圖16是用于說明本發(fā)明一實施例的日志讀命令處理的圖。
圖17是用于說明本發(fā)明一實施例的日志讀命令處理的流程圖。
圖18是用于說明本發(fā)明一實施例的日志存儲處理的流程圖。
圖19是用于說明本發(fā)明一實施例的重新啟動處理的圖。
圖20是用于說明本發(fā)明一實施例的重新啟動處理的流程圖。
圖21是用于說明本發(fā)明一實施例的更新信息的例子的圖。
圖22是用于說明本發(fā)明一實施例的日志生成處理時的更新信息的例子的圖。
圖23是顯示本發(fā)明第2實施例的圖。
圖24是顯示本發(fā)明第3實施例的圖。
具體實施例方式
以下,將利用附圖,詳細地說明按照本發(fā)明的數(shù)據(jù)處理系統(tǒng)的實施例。
圖1是顯示本發(fā)明第一實施例的邏輯結(jié)構(gòu)的框圖。
本發(fā)明的一個實施例是這樣構(gòu)成的主機180和存儲系統(tǒng)100A通過連接總線190相連,存儲系統(tǒng)100A和用于保持存儲系統(tǒng)100A中所保存的數(shù)據(jù)之副本的存儲系統(tǒng)100B通過連接總線200相連。在以下的說明中,為了容易區(qū)分保持復制對象的數(shù)據(jù)的存儲系統(tǒng)100,和保持復制數(shù)據(jù)的存儲系統(tǒng)100,我們決定將保持復制對象的數(shù)據(jù)的存儲系統(tǒng)100稱為正存儲系統(tǒng)100A,將保持復制數(shù)據(jù)的存儲系統(tǒng)100稱為副存儲系統(tǒng)100B。
對存儲系統(tǒng)100的存儲區(qū)進行分割管理,分割后的存儲區(qū)叫做邏輯卷230。邏輯卷230的容量和存儲系統(tǒng)100內(nèi)的物理存儲位置(物理地址),能夠使用連接在存儲系統(tǒng)100上的計算機等維修終端或主機180來指定。各邏輯卷230的物理地址,保存在后述的卷信息400內(nèi)。物理地址,例如是用于識別存儲系統(tǒng)100內(nèi)的存儲裝置150的編號(存儲裝置編號),和唯一地顯示存儲裝置內(nèi)的存儲區(qū)的數(shù)值,例如是從存儲裝置的存儲區(qū)的開頭開始的位置。在以下的說明中,設(shè)物理地址是存儲裝置編碼和從存儲裝置的存儲區(qū)的開頭開始的位置的組。在以下的說明中,邏輯卷是一個存儲裝置的存儲區(qū),但是,通過邏輯地址和物理地址的變換,1個邏輯卷可能對應(yīng)多個存儲裝置的存儲區(qū)。
存儲系統(tǒng)100保存的數(shù)據(jù)的參照、更新,能夠利用識別邏輯卷的編號(邏輯卷編號)和唯一顯示存儲區(qū)的數(shù)值,例如是從邏輯卷的存儲區(qū)開頭開始的位置,來唯一指定。以下,將邏輯卷編號和從邏輯卷的存儲區(qū)開頭開始的位置(邏輯地址內(nèi)位置)的組稱為邏輯地址。
在以下說明中,為了容易區(qū)分復制對象的數(shù)據(jù)和復制數(shù)據(jù),我們決定將復制對象的邏輯卷230稱為正邏輯卷,而將作為復制數(shù)據(jù)的邏輯卷230稱為副邏輯卷。一對正邏輯卷和副邏輯卷稱為對(pair)。正邏輯卷和副邏輯卷的關(guān)系和狀態(tài)等保存在后述的對信息500內(nèi)。
為了遵守邏輯卷間的數(shù)據(jù)的更新順序,設(shè)置了所謂組管理單元。例如,主機180,更新正邏輯卷1的數(shù)據(jù)1,之后,讀出數(shù)據(jù)1,使用數(shù)據(jù)1的數(shù)值,來執(zhí)行更新正邏輯卷2的數(shù)據(jù)2的處理。在從正邏輯卷1到副邏輯卷1的數(shù)據(jù)復制處理,以及從正邏輯卷2到副邏輯卷2的數(shù)據(jù)復制處理是獨立執(zhí)行的情況下,存在在復制到副邏輯卷1的數(shù)據(jù)1的復制處理之前,執(zhí)行復制到副邏輯卷2的數(shù)據(jù)2的復制處理的情況。在復制到副邏輯卷2的數(shù)據(jù)2的復制處理和復制到副邏輯卷1的數(shù)據(jù)1的復制處理之間,在由于故障等發(fā)生復制到副邏輯卷1的數(shù)據(jù)1的復制處理停止的情況下,則缺少副邏輯卷1和副邏輯卷2的數(shù)據(jù)的一致性。為了在這種情況下也保持副邏輯卷1和副邏輯卷2的數(shù)據(jù)的一致性,遵守數(shù)據(jù)更新順序所必要的某個邏輯卷,在同一組中進行登錄,每當有數(shù)據(jù)更新時,就分配后述的組信息600的更新編號,并按照更新編號的順序,在副邏輯卷中執(zhí)行復制處理。例如,在圖1中,正存儲系統(tǒng)100A的邏輯卷(DATA1)和邏輯卷(DATA2)構(gòu)成了組1。作為邏輯卷(DATA1)之副本的邏輯卷(COPY1)和邏輯卷(DATA2)之副本的邏輯卷(COPY2),構(gòu)成了副存儲系統(tǒng)內(nèi)的組1。
在更新作為數(shù)據(jù)復制對象的正邏輯卷的數(shù)據(jù)的情況下,為了更新副邏輯卷的數(shù)據(jù),生成了后述的日志,并將器保存在正存儲系統(tǒng)100A內(nèi)的邏輯卷內(nèi)。在本實施例的說明中,為每組分配僅保存日志的邏輯卷(以下稱為日志邏輯卷)。圖1中,為組1分配了邏輯卷(JNL1)。
還為副存儲系統(tǒng)100B的組,分配了日志邏輯卷。日志邏輯卷,是為了保存從正存儲系統(tǒng)100A傳送到副存儲系統(tǒng)100B的日志而使用的。通過將日志保存于日志邏輯卷內(nèi),例如,在副存儲系統(tǒng)100B的負荷高的情況下,在日志接收時不執(zhí)行副邏輯卷的數(shù)據(jù)更新,稍后,能夠在副存儲系統(tǒng)100B的負荷低的時侯,更新副邏輯卷的數(shù)據(jù)。又,在連接線200有多條的情況下,多路(日文多重に)執(zhí)行從正存儲系統(tǒng)100A到副存儲系統(tǒng)100B的日志的傳輸,從而能夠有效利用連接線200的傳輸能力。存在為了輪流進行更新,而在副存儲系統(tǒng)100B中積壓了許多日志的可能性,由于不能立刻用于副邏輯卷的數(shù)據(jù)更新的日志,退避到日志邏輯卷內(nèi),因此能夠釋放高速緩沖存儲器。圖1中,對副存儲系統(tǒng)內(nèi)的組1分配了邏輯卷(JNL2)。
日志由寫入數(shù)據(jù)和更新信息構(gòu)成。更新信息是用于管理寫入數(shù)據(jù)的信息,由接收寫入命令的時刻、組編號、后述的組信息600的更新編號、寫入命令的邏輯地址、寫入數(shù)據(jù)的數(shù)據(jù)大小、存儲寫入數(shù)據(jù)的日志的邏輯卷的邏輯地址等構(gòu)成。更新信息也可以僅僅保持接收寫入命令的時刻和更新編號中的任何一方。當在來自主機180的寫入命令中存在寫入命令之產(chǎn)生時刻的情況下,也可以使用該寫入命令內(nèi)的產(chǎn)生時刻,而不是接收寫入命令的時刻。使用圖3和圖21,來說明日志的更新信息的例子。更新信息310,存儲了在1999年3月17日的22時20分10秒時所接收的寫入命令。該寫入命令,是將寫入數(shù)據(jù)存儲在從邏輯卷編號1的存儲區(qū)開頭開始700的位置上的命令,數(shù)據(jù)大小是300。日志的寫入數(shù)據(jù),是從邏輯卷編號4(日志邏輯卷)的存儲區(qū)開頭開始1500的位置開始存儲的。我們明白,邏輯卷編號1的邏輯卷屬于組1,是從組1的數(shù)據(jù)復制開始的第4個數(shù)據(jù)更新。
例如如圖3所示,將日志邏輯卷分割為存儲更新信息的存儲區(qū)(更新信息區(qū)域)和存儲寫入數(shù)據(jù)的存儲區(qū)(寫入數(shù)據(jù)區(qū))來使用。更新信息區(qū)域,從更新信息區(qū)域的開頭開始,按照更新編號的順序執(zhí)行存儲,在到達更新信息區(qū)域的終端后,就從更新信息區(qū)域的開頭開始執(zhí)行存儲。寫入數(shù)據(jù)區(qū),從寫入數(shù)據(jù)區(qū)的開頭開始存儲寫入數(shù)據(jù),如果到達寫入數(shù)據(jù)區(qū)的終端,就從寫入數(shù)據(jù)區(qū)的開頭開始執(zhí)行存儲。更新信息區(qū)域和寫入數(shù)據(jù)區(qū)的比可以是固定值,也可以是由維修終端或主機180設(shè)定的。這些信息保持在后述的指針信息700內(nèi)。在以下的說明中,將日志邏輯卷分割為更新信息和寫入數(shù)據(jù)的區(qū)域,并使用日志邏輯卷,但也可以采用從邏輯卷的開頭開始,連續(xù)存儲日志即更新信息和寫信息的方式。
將使用圖1,將傳給存儲系統(tǒng)100A的正邏輯卷之數(shù)據(jù)更新,反映給副存儲系統(tǒng)100B的副邏輯卷的操作,進行簡要說明。
(1)存儲系統(tǒng)100A,在接收了來自主機180的、針對正邏輯卷內(nèi)的數(shù)據(jù)的寫入命后,利用后述的命令接收處理210以及寫處理220,執(zhí)行正邏輯卷(DATA1)內(nèi)的數(shù)據(jù)更新,以及在日志邏輯卷(JNL1)內(nèi)執(zhí)行日志的保存(圖1的270)。
(2)存儲系統(tǒng)100B,利用后述的日志讀處理240,從存儲系統(tǒng)100A中讀出日志,通過讀寫處理220,在日志邏輯卷(JNL2)內(nèi)保存日志(圖1的280)。
(3)存儲系統(tǒng)100A,在接收了讀取來自存儲系統(tǒng)100B的日志之命令后,通過后述的命令接收處理210和讀寫處理220,從日志邏輯卷(JNL1)讀出日志,并將其傳送給存儲系統(tǒng)100B(圖1的280)。
(4)存儲系統(tǒng)100B,通過后述的重新啟動處理250和讀寫處理220,使用指針信息700,按照更新編號的升序,從日志邏輯卷(JNL2)中讀出日志,并更新副邏輯卷(COPY1)的數(shù)據(jù)(圖1的290)。
在圖2中顯示了存儲系統(tǒng)100的內(nèi)部結(jié)構(gòu)。存儲系統(tǒng)100是這樣構(gòu)成的,它具有一個以上的主適配器110、一個以上的盤適配器120、一個以上的高速緩沖存儲器130、一個以上的公用存儲器140、一個以上的存儲裝置150、一個以上的公共總線160、以及一個以上的連接線170。主適配器110、盤適配器120、高速緩沖存儲器130、公用存儲器140通過公共總線160而相互連接。公共總線160也可以因公共總線160發(fā)生障礙時而被2路復用。盤適配器120和存儲裝置150通過連接線170進行連接。盡管圖中未示,但是,用于執(zhí)行存儲系統(tǒng)100的設(shè)定、監(jiān)視、維修等的維修終端,利用專用線,與所有的主適配器110和盤適配器120相連接。
主適配器110,控制主機180和高速緩沖存儲器130間的數(shù)據(jù)傳輸。主適配器110,利用連接線190和連接線200,與主機180或其他存儲系統(tǒng)100相連接。盤適配器120控制高速緩沖存儲器130和存儲裝置150之間的數(shù)據(jù)傳輸。高速緩沖存儲器130,是用于臨時保存將所接收的來自于主機180的數(shù)據(jù),或?qū)拇鎯ρb置150讀出的數(shù)據(jù)的存儲器。公用存儲器140是存儲系統(tǒng)100內(nèi)的所有主適配器110和盤適配器120共用的存儲器。
卷信息400是管理邏輯卷的信息,它保持了卷狀態(tài)、格式形式、容量、對編號以及物理地址。圖4中顯示了卷信息400的一個例子。卷信息400被保存在可由主適配器110和盤適配器120進行查找的存儲器,例如是管理存儲器140內(nèi)。卷狀態(tài)保持“正?!?、“正”、“副”、“異?!薄ⅰ拔词褂谩敝械娜魏我粋€。卷狀態(tài)為“正常”或“正”的邏輯卷230,顯示其是可從主機180正常進行訪問的邏輯卷230。卷狀態(tài)為“副”的邏輯卷230也可以許可來自主機180的訪問。卷狀態(tài)為“正”的邏輯卷230顯示其是執(zhí)行數(shù)據(jù)復制的邏輯卷230。卷狀態(tài)為“副”的邏輯卷230顯示其是復制中使用的邏輯卷230。卷狀態(tài)為“異常”的邏輯卷230顯示其是由于故障而不能正常進行訪問的邏輯卷230。所謂故障例如是保持邏輯卷230的存儲裝置150的故障。卷狀態(tài)為“未使用”的邏輯卷230顯示其是沒有使用的邏輯卷230。對編號,在卷狀態(tài)為“正”或“副”的情況下是有效的,保持用于指定后述的對信息500的對編號。在圖4所示的例子中,邏輯卷1從格式形式為OPEN3、容量為3GB、存儲裝置編號1的存儲裝置150的存儲區(qū)的開頭開始存儲數(shù)據(jù),其顯示為可以進行訪問,并且是數(shù)據(jù)復制對象。
對信息500是管理對的信息,保持由對狀態(tài)、正存儲系統(tǒng)編號、正邏輯卷編號、副存儲系統(tǒng)編號、副邏輯卷編號、組編號、以及拷貝結(jié)束地址。圖5中,顯示了對信息500的一個例子。對信息500保存在可從主適配器110和盤適配器120進行查找的存儲器例如是管理存儲器140內(nèi)。對狀態(tài)保存“正常”、“異?!?、“未使用”、“為復制”、“復制中”中的任何一個。對狀態(tài)為“正?!钡那闆r,顯示正邏輯卷230的數(shù)據(jù)復制正在正常執(zhí)行。對狀態(tài)為“異?!钡那闆r顯示了由于故障而沒有執(zhí)行正邏輯卷230的復制。所謂障礙,例如是連接總線200的斷線等。對狀態(tài)為“未使用”的情況下,顯示該對編號的信息不是有效的。對狀態(tài)為“復制中”的情況顯示是后述的初期復制處理中。對狀態(tài)是“未復制”的情況顯示還沒有執(zhí)行后述的初期復制處理。正存儲系統(tǒng)編號,保持用于指定保持正邏輯卷230的正存儲系統(tǒng)100A的編號。副存儲系統(tǒng)編號,保持指定保持副邏輯卷230的副存儲系統(tǒng)100B的編號。組編號在正存儲系統(tǒng)的情況下,保持正邏輯卷所屬的組編號。在副存儲系統(tǒng)的情況下,保持副邏輯卷所屬的組編號??截惤Y(jié)束地址將在后述的初期拷貝處理中進行說明。圖5的對信息1,顯示執(zhí)行了數(shù)據(jù)復制對象是正存儲系統(tǒng)1的正邏輯卷1、數(shù)據(jù)復制接受者是副存儲系統(tǒng)2的副邏輯卷1的、正常的數(shù)據(jù)復制處理。
組信息600保持組狀態(tài)、對集合、日志邏輯卷編號以及更新編號。圖6中顯示了組信息600的一個例子。組信息600保存在可從主適配器110和盤適配器120進行查找的存儲器例如是管理存儲器140內(nèi)。組狀態(tài)保持“正?!薄ⅰ爱惓!?、“未使用”中的任何一個。組狀態(tài)為“正?!钡那闆r,顯示了對集合的至少一個對狀態(tài)為“正?!?。組狀態(tài)為“異常”的情況,顯示了對集合的所有對狀態(tài)都為“異?!薄=M狀態(tài)為“未使用”的情況,顯示了該組編號的信息不是有效的。對集合,在正存儲系統(tǒng)的情況下,保持組編號所示的組所屬的所有正邏輯卷的對編號。在副存儲系統(tǒng)的情況下,保持組編號所示的組所屬的所有副邏輯卷的對編號。日志邏輯卷編號顯示該組編號的組所屬的日志邏輯卷編號。更新編號初始值為1,在對組內(nèi)的正邏輯卷執(zhí)行了數(shù)據(jù)寫入后,加1。更新編號存儲在日志的更新信息內(nèi),是為了在副存儲系統(tǒng)100B中遵守數(shù)據(jù)的更新順序而使用的。例如,圖6的組信息1,根據(jù)對信息1,2,由正邏輯卷1,2以及日志邏輯卷4構(gòu)成,它顯示正常地執(zhí)行數(shù)據(jù)的復制處理。
指針信息700為每一組進行保持,它是用于管理該組的日志邏輯卷的信息,它保持了更新信息區(qū)域起始地址、寫入數(shù)據(jù)區(qū)起始地址、更新信息最新地址、更新信息最舊地址、寫入數(shù)據(jù)最新地址、寫入數(shù)據(jù)最舊地址、讀開始地址、重試開始地址。圖7和圖8中顯示了指針信息700的一個例子。更新信息區(qū)域起始地址保持用于存儲日志邏輯卷的更新信息之存儲區(qū)(更新信息區(qū)域)的起始邏輯地址。寫入數(shù)據(jù)區(qū)起始地址,保持用于存儲日志邏輯卷的寫入數(shù)據(jù)之存儲區(qū)(寫入數(shù)據(jù)區(qū))的起始邏輯地址。更新信息最新地址,在存儲下一個日志的情況下,保持更新信息的保存中所使用的起始邏輯地址。更新信息最舊地址,保持用于保存最老的(更新編號小的)日志的更新信息之起始邏輯地址。寫入數(shù)據(jù)最新地址,在存儲下一個日志的情況下,保持寫入數(shù)據(jù)的保存中所使用的起始邏輯地址。寫入數(shù)據(jù)最舊地址,保持用于保存最舊的(更新編號小的)日志的寫入數(shù)據(jù)之起始邏輯地址。寫起始地址和重試起始地址,僅僅在正存儲系統(tǒng)100A中使用,在后述的日志讀接收處理中使用。在圖7和圖8的指針信息700的例子中,保存日志的管理信息的區(qū)域(更新信息區(qū)域),從邏輯卷4的存儲區(qū)開頭到699的位置為止;保存日志的寫入數(shù)據(jù)之區(qū)域(寫入數(shù)據(jù)區(qū))是邏輯卷4的存儲區(qū)的從700的位置到2699的位置為止。日志的管理信息被保存在邏輯卷4的存儲區(qū)的從200的位置到499的位置中,下一個日志的管理信息是從邏輯卷4的存儲區(qū)的500的位置開始保存。日志的寫入數(shù)據(jù)被保存在邏輯卷4的存儲區(qū)的從1300的位置到2199的位置中;下一個日志的寫入數(shù)據(jù)從邏輯卷4的存儲區(qū)2200的位置開始保存。
在下述說明中,盡管是在為1個組分配了一個日志邏輯卷的狀態(tài)下進行的說明,但是,也可以為1個組分配多個日志邏輯卷。例如,為一個組分配2個日志邏輯卷,并為每個日志邏輯卷設(shè)置指針信息700,以交替存儲日志。由此,能夠分散對于日志的存儲裝置150的寫入,預計能夠提高性能。另外,也提高了日志的讀性能。作為另一個例子,為一個組分配2個日志邏輯卷,通常,僅僅使用1個日志邏輯卷。另一個日志邏輯卷是在正在使用的日志邏輯卷的性能低下的情況下使用的。性能低下的例子是這樣一種情況日志邏輯卷由多個存儲裝置150構(gòu)成,按RAID 5的方式正在保持數(shù)據(jù)的、所構(gòu)成的存儲裝置150的一臺處于故障中。
上述卷信息400、對信息500、組信息600、以及指針信息700等,最好是存儲在公用存儲器140內(nèi)。但是,本實施例并不僅限于這種情況,也可以將這些信息集中存儲或分散存儲在高速緩沖存儲器130、主適配器110、盤適配器120、其他其他存儲裝置150內(nèi),來執(zhí)行存儲。
接下來,將使用圖9、圖10,從正存儲系統(tǒng)100A對副存儲系統(tǒng)100B開始數(shù)據(jù)復制的順序進行說明。
(1)就組生成進行說明(步驟900)。用戶使用維修終端或主機180,對照正存儲系統(tǒng)100A的組信息600,來獲取組狀態(tài)為“未使用”之組編號。用戶使用維修終端或主機180,來指定組編號A,并對正存儲系統(tǒng)100A執(zhí)行組生成指示。
正存儲系統(tǒng)100A接受組生成指示,并將指定的組編號A的組狀態(tài)改變?yōu)椤罢!薄?br>
同樣,用戶對照副存儲系統(tǒng)100B的組信息600,來獲取組狀態(tài)為“未使用”之組編號B。用戶使用維修終端或主機180,來指定副存儲系統(tǒng)100B和組編號B,并在正存儲系統(tǒng)100A上執(zhí)行組生成指示。正存儲系統(tǒng)100A,將所接收的組生成指示傳送到副存儲系統(tǒng)100B。副存儲系統(tǒng)100B,將所指定的組編號B的組狀態(tài)改變?yōu)椤罢!薄?br>
用戶也可以使用副存儲系統(tǒng)100B的維修終端,或連接于副存儲系統(tǒng)100B上的主機180,來指定組編號B,并對副存儲系統(tǒng)100B執(zhí)行組生成指示。
(2)就對登錄進行說明(步驟910)。用戶使用維修終端或主機180,來指定顯示數(shù)據(jù)復制對象之信息和顯示數(shù)據(jù)復制接受者之信息,并在正存儲系統(tǒng)100A上執(zhí)行對登錄指示。顯示數(shù)據(jù)復制對象的信息,是數(shù)據(jù)復制對象的組編號A和正邏輯卷的編號。顯示數(shù)據(jù)接受者的信息是保存復制數(shù)據(jù)之副記錄系統(tǒng)100B和組編號B、副邏輯卷編號。
接受所述對登錄指示,正存儲系統(tǒng)100A,從對信息500中獲取對信息為“未使用”之對編號,將對狀態(tài)設(shè)定為“未拷貝”,將顯示正存儲系統(tǒng)100A的正存儲系統(tǒng)編號設(shè)定為正存儲系統(tǒng)編號,將被指示的正邏輯卷編號設(shè)定為正邏輯卷編號,將被指示的副存儲系統(tǒng)編號設(shè)定為副存儲系統(tǒng)編號,將被指示的副邏輯卷編號設(shè)定為副邏輯卷編號,將被指示的組編號A設(shè)定為組編號。正存儲系統(tǒng)100A,將所獲取的對編號追加到被指示的組編號A的組信息600的對集合中,并將正邏輯卷編號的卷狀態(tài)修改為“正”。
正存儲系統(tǒng)100A向副存儲系統(tǒng)100B指示顯示正存儲系統(tǒng)100A之正存儲系統(tǒng)編號、由用戶指定的組編號B、正邏輯卷編號、以及副邏輯卷編號。副存儲系統(tǒng)100B從對信息500中獲取未使用的對編號,將對狀態(tài)設(shè)定為“未拷貝”,將顯示存儲系統(tǒng)100A的正存儲系統(tǒng)編號設(shè)定為正存儲系統(tǒng)編號,將被指示的正邏輯卷編號設(shè)定為正邏輯卷編號,將顯示副存儲系統(tǒng)B的副存儲系統(tǒng)編號設(shè)定為副存儲系統(tǒng)編號,將被指示的副邏輯卷編號設(shè)定為副邏輯卷編號,將被指示的組編號B設(shè)定為組編號。
副存儲系統(tǒng)100B向所指示的組編號B的組信息600的對集合中,追加了所述獲取到的對編號,并將副邏輯卷編號的卷狀態(tài)改變?yōu)椤案薄薄?br>
以上操作是針對所有的數(shù)據(jù)復制對象的對執(zhí)行的。
在所述說明中,盡管說明了通知執(zhí)行對于邏輯卷的組的登錄,以及邏輯卷的對的設(shè)置,但是,它們也可以分別執(zhí)行。
(3)就日志邏輯卷登錄進行說明(步驟920)。用戶使用維修終端或主機180,對正存儲系統(tǒng)100A執(zhí)行將把日志保存中所使用的邏輯卷(日志邏輯卷)登錄到組內(nèi)之指示(日志邏輯卷登錄指示)。日志邏輯卷登錄指示,由組編號和邏輯卷編號構(gòu)成。
正存儲系統(tǒng)100A,將被指示的邏輯卷編號登錄為所指示的組編號之組信息600的日志邏輯卷編號。將該邏輯卷的卷信息400的卷狀態(tài)設(shè)定為“正?!薄?br>
同樣,用戶使用維修終端或主機180,對照副存儲系統(tǒng)100B的卷信息400,來指定副存儲系統(tǒng)100B、組編號B、作為日志邏輯卷使用的邏輯卷編號,并對正存儲系統(tǒng)100A執(zhí)行日志邏輯卷登錄。正存儲系統(tǒng)100A將日志邏輯卷登錄指示傳送給副存儲系統(tǒng)100B。副存儲系統(tǒng)100B,將被指示的邏輯卷編號登錄為所指示的組編號B之組信息600的日志邏輯卷編號。將該邏輯卷的卷信息400的卷狀態(tài)設(shè)定為“正?!薄?br>
也可以是用戶使用副存儲系統(tǒng)100B的維修終端或連接于副存儲系統(tǒng)100B上的主機180,來指定組編號、作為日志邏輯卷使用的邏輯卷編號,并對副存儲系統(tǒng)100B執(zhí)行日志邏輯卷登錄指示。
以上的操作是針對作為全體日志邏輯卷而使用的邏輯卷執(zhí)行的。步驟910和步驟920的順序沒有不同。
(4)對數(shù)據(jù)復制處理的開始進行說明(步驟930)。用戶使用維修終端或主機180,來指定開始數(shù)據(jù)復制處理的組編號,并將數(shù)據(jù)復制處理的開始指示給正存儲系統(tǒng)100A。正存儲系統(tǒng)100A將所指示的組所屬的所有對信息400的拷貝結(jié)束地址設(shè)定為“0”。
正存儲系統(tǒng)100A向副存儲系統(tǒng)100B指示了后述日志讀處理和重新啟動處理的開始。
正存儲系統(tǒng)100A開始后述的初期拷貝處理。
(5)就初期拷貝技術(shù)進行說明(步驟940)。
當初期復制結(jié)束后,正存儲系統(tǒng)100A將初期拷貝處理的結(jié)束通知給副存儲系統(tǒng)100B。副存儲系統(tǒng)100B將所指示的組所屬的所有副邏輯卷的對裝置改變?yōu)椤罢!薄?br>
圖10是初期拷貝處理的流程圖。初期拷貝處理,對于數(shù)據(jù)復制對象的正邏輯卷的所有存儲區(qū),使用對信息500的拷貝完畢地址,從存儲區(qū)開頭開始順序執(zhí)行以下操作每單位大小就產(chǎn)生一個日志??截愅戤叺刂罚涑跏贾禐?,每做成一個日志就加上所做成的數(shù)據(jù)量。從邏輯卷的存儲區(qū)開頭開始到拷貝結(jié)束地址的前一個,是利用初期拷貝處理做成的日志。由于執(zhí)行了初期拷貝處理,因此,可能將正邏輯卷中未更新的數(shù)據(jù)傳送給副邏輯卷。在以下說明中,記載的是正存儲系統(tǒng)100A內(nèi)的主適配器A執(zhí)行處理,但是也可以是盤適配器120來執(zhí)行處理。
(1)正存儲系統(tǒng)100A的主適配器A,得到了處理對象的組所屬的對中其對狀態(tài)為“未拷貝”的正邏輯卷A,并將對的狀態(tài)修改為“拷貝中”,并反復執(zhí)行以下操作(步驟1010,1020)。在正邏輯卷A不存在的情況下,結(jié)束處理(步驟1030)。
(2)在步驟1020中,在邏輯卷A不存在的情況下,主適配器A以單位大小(例如是1MB)的數(shù)據(jù)為對象,作成日志。日志作成處理將在后面進行說明(步驟1040)。
(3)主適配器A將作成的日志的數(shù)據(jù)大小加到拷貝結(jié)束地址上。
(4)拷貝結(jié)束地址在到達正邏輯卷A的容量之前,一直重復執(zhí)行上述處理(步驟1060)。在拷貝結(jié)束地址變?yōu)榕c正邏輯卷A的容量相等的情況下,由于針對邏輯卷A的所有存儲區(qū)作成了日志,因此,將對狀態(tài)更新為“正常”,并開始另一個正邏輯卷的處理(步驟1070)。
所述流程圖中,是平均以一個邏輯卷為對象來進行說明的,但也可以同時處理多個邏輯卷。
圖11是說明命令接收處理210的處理的圖,圖12是命令接收處理210的流程圖,圖13是日志作成處理的流程圖。以下,將使用這些圖,就正存儲系統(tǒng)100A在接收了來自主機180的、對數(shù)據(jù)復制對象的邏輯卷230之寫入命令的情況下的操作進行說明。
(1)存儲系統(tǒng)100A內(nèi)的主適配器A接收來自于主機的訪問命令。訪問命令,含有讀、寫、后述的日志讀等的命令、命令對象的邏輯地址、數(shù)據(jù)量等。以下,令訪問命令內(nèi)的邏輯地址為邏輯地址A,邏輯卷編號為邏輯卷A,邏輯卷內(nèi)位置為邏輯卷內(nèi)位置A,數(shù)據(jù)量為數(shù)據(jù)量A(步驟1200)。
(2)主適配器A調(diào)查訪問命令(步驟1210、1215)。在步驟1215的調(diào)查中,在訪問命令為日志讀命令的情況下,執(zhí)行后述的日志接收處理(步驟1220)。訪問命令除了是日志讀命令和寫命外,例如讀命令的情況下,以與已有技術(shù)相同的方式執(zhí)行讀處理(步驟1230)。
(3)在步驟1210的調(diào)查中,在訪問明令為寫入命令的情況下,參照邏輯卷A的卷信息400來調(diào)查卷狀態(tài)(步驟1240)。在步驟1240的調(diào)查中,在邏輯卷A的卷狀態(tài)為“正?!被颉罢币酝獾那闆r下,由于不可能對邏輯卷A進行訪問,因此,將主機180報告異常結(jié)束(步驟1245)。
(4)在步驟1240的調(diào)查中,在邏輯卷A的卷狀態(tài)為“正常”、“正”的任何一種情況下,主適配器A確保高速緩沖存儲器130,并將已作好數(shù)據(jù)接收準備之事通知主機180。主機180接受該通知,并將寫入數(shù)據(jù)傳送給正存儲系統(tǒng)100A。主適配器A接收寫入數(shù)據(jù),并將器保存在該高速緩沖存儲器130內(nèi)(步驟1250、圖11的1100)。
(5)主適配器A參照邏輯卷A的卷狀態(tài),調(diào)查邏輯卷A是否是數(shù)據(jù)復制對象(步驟1260)。在步驟1260的調(diào)查中,在卷狀態(tài)為“正”的情況下,由于邏輯卷A是數(shù)據(jù)復制對象,因此執(zhí)行后述的日志作成處理(步驟1265)。
(6)在步驟1260的調(diào)查中,在卷狀態(tài)為“正?!钡那闆r下,或者在步驟1265的日志作成處理結(jié)束后,主適配器A,對數(shù)據(jù)適配器120發(fā)出命令,令其將寫入數(shù)據(jù)寫入存儲裝置150(圖11)的1140,并向主機180進行結(jié)束報告(步驟1270、1280)。之后,該盤適配器120,通過讀些處理,將寫入數(shù)據(jù)保存在存儲裝置150內(nèi)(圖11的1110)。
接下來,將就日志作成處理進行說明。
(1)主適配器A調(diào)查日志邏輯卷的卷狀態(tài)(步驟1310)。在步驟1310的調(diào)查中,在日志邏輯卷的卷狀態(tài)為“異?!钡那闆r下,由于不能向日志邏輯卷存儲日志,因此組狀態(tài)變更為“異?!?,并結(jié)束處理(步驟1315)。這種情況下,執(zhí)行將日志邏輯卷變更為正常的邏輯卷等。
(2)在步驟1310的調(diào)查中,在日志邏輯卷為正常的情況下,繼續(xù)執(zhí)行日志作成處理。日志作成處理,根據(jù)是初期拷貝處理內(nèi)的處理,還是命令接收處理內(nèi)的處理,其處理不同(步驟1320)。在日志作成處理是命令接收處理內(nèi)的處理的情況下,執(zhí)行從步驟1330開始的處理。在日志作成處理是初期拷貝處理內(nèi)的情況下,執(zhí)行從步驟1370開始的處理。
(3)在日志作成處理是命令接收處理內(nèi)的處理的情況下,主適配器A調(diào)查寫入對象的邏輯地址A是否已成為初期拷貝處理的處理對象(步驟1330)。在邏輯卷A的對狀態(tài)為“未拷貝”的情況下,由于后面要執(zhí)行初期拷貝處理中的日志作成處理,因此在這里不產(chǎn)生日志而是結(jié)束處理(步驟1335)。邏輯卷A的對裝置為“拷貝中”的情況下,當拷貝結(jié)束地址等于或小于邏輯地址內(nèi)位置A時,由于在后面會執(zhí)行初期拷貝處理中的日志作成處理,因此,在這里不產(chǎn)生日志而是結(jié)束處理(步驟1335)。除上述情況外,即當邏輯卷A的對狀態(tài)為“拷貝中”,且拷貝結(jié)束地址為邏輯地址內(nèi)位置A以上的情況時,由于初期拷貝處理已經(jīng)結(jié)束,因此繼續(xù)執(zhí)行日志作成處理。
(4)接下來,主適配器A調(diào)查日志可能存儲在日志邏輯卷內(nèi)。使用指針信息700,來調(diào)查是否有更新信息區(qū)域的未使用區(qū)域(步驟1340)。在指針信息700的更新信息最新地址與更新信息最舊地址相等的情況下,由于更新信息區(qū)域中不存在未使用區(qū)域,因此結(jié)束處理,作為日志作成失敗(步驟1390)。
在步驟1340的調(diào)查中,在更新信息區(qū)域中存在未使用區(qū)域的情況下,使用指針信息700,來調(diào)查能否在寫入數(shù)據(jù)區(qū)內(nèi)存儲寫入數(shù)據(jù)(步驟1345)。在寫入數(shù)據(jù)最新地址和數(shù)據(jù)量A的和,等于或大于寫入數(shù)據(jù)最老地址的情況下,由于不能存儲在寫入數(shù)據(jù)區(qū)內(nèi),因此結(jié)束處理,作為日志作成失敗(步驟1390)。
(5)在可能存儲日志的情況下,主適配器A獲取用來存儲更新編號和更新信息之邏輯地址,以及用于存儲寫入數(shù)據(jù)之邏輯地址,并在高速緩沖存儲器130內(nèi)作成更新信息。更新編號是從對象組的組信息600中獲取到的,并將加1后的數(shù)值設(shè)定為組信息600的更新編號。存儲更新信息的邏輯地址,是指針信息700的更新信息最新地址,將加上了更新信息大小后的數(shù)值設(shè)定為指針信息700的更新信息最新地址。存儲寫入數(shù)據(jù)的邏輯地址是指針信息700的寫入數(shù)據(jù)最新地址,將寫入數(shù)據(jù)最新地址加上了數(shù)據(jù)量A后的數(shù)值,設(shè)定為指針信息700的寫入數(shù)據(jù)最新地址。
主適配器A將上述獲取的數(shù)值和組編號、接收寫命令的時刻、寫命令內(nèi)的邏輯地址A、數(shù)據(jù)量A設(shè)定為更新信息(步驟1350、圖11的1120)。例如,在圖6所示的組信息600、圖7所示的指針信息700的狀態(tài)下,在從組1所屬的正邏輯卷1的存儲區(qū)開頭開始的800的位置處接收到數(shù)據(jù)大小100的寫命令的情況下,作成圖22所示的更新信息。組信息的更新編號變?yōu)?,指針信息的更新信息最近地址變?yōu)?00(設(shè)最近信息的大小為100),寫入數(shù)據(jù)最新地址變?yōu)?300。
(6)主適配器A對盤適配器120發(fā)出命令,令其將日志的更新信息和寫入數(shù)據(jù)寫入存儲裝置150內(nèi),并正常結(jié)束(步驟1360、圖11的1130、1140、1150)。
(7)日志作成處理,在是初期拷貝處理內(nèi)的處理的情況下,執(zhí)行從步驟1370開始的處理。主適配器A調(diào)查日志是可以作成的。使用指針信息700,來調(diào)查有無更新信息區(qū)域的未使用區(qū)域(步驟1370)。在指針信息700的更新信息最新地址和更新信息最舊地址相等的情況下,由于在更新信息區(qū)域內(nèi)不存在未使用區(qū)域,因此結(jié)束處理,作為日志作成失敗(步驟1390)。在本實施例中,在所示的初期拷貝處理的情況下,日志的寫入數(shù)據(jù)是從正邏輯卷中讀出的,由于沒有使用寫入數(shù)據(jù)區(qū),因此不需要確認寫入數(shù)據(jù)區(qū)的未使用區(qū)域。
(8)在步驟1370的調(diào)查中,在可以作成日志的情況下,主適配器A獲取在更新信息內(nèi)設(shè)定的數(shù)值,并在高速緩沖存儲器130內(nèi)作成更新信息。更新編號是從對象組的組信息600中獲取的,并將加1后的數(shù)值設(shè)定為組信息600的更新編號。存儲更新信息的邏輯地址,是指針信息700的更新信息最新地址的位置,將加上更新信息大小后的數(shù)值設(shè)定為指針700的更新信息最新地址。
主適配器A將初期拷貝處理對象的邏輯地址,設(shè)定為存儲上述獲取的數(shù)值、以及組編號、本處理的開始時刻、處理拷貝處理對象的邏輯地址、初期拷貝一次的處理量、以及寫入數(shù)據(jù)的日志邏輯卷的邏輯地址(步驟1380,圖11的1120)。
(9)主適配器A對盤適配器120發(fā)出命令,令其將更新信息寫入存儲裝置150內(nèi),并正常結(jié)束(步驟1385、圖11的1140、1160)。
在上述說明中,盡管是以更新信息存在于高速緩沖存儲器130內(nèi)的方式進行記載的,但是也可以將其存儲于公共存儲器140內(nèi)。
將寫入數(shù)據(jù)寫入存儲裝置150的寫入操作也可以是非同步的,即也可以不必緊跟著步驟1360和步驟1385。但是,在主機180再次對邏輯地址A執(zhí)行寫命令的情況下,由于沒有寫上日志的寫入數(shù)據(jù),因此,在從主機接收寫入數(shù)據(jù)之前,日志的寫入數(shù)據(jù),必須要寫入與更新信息的日志邏輯卷的邏輯地址相對應(yīng)的存儲裝置150中?;蛘呤?,也可以退避到別的高速緩沖存儲器內(nèi),之后,執(zhí)行寫入到與更新信息的日志邏輯卷的邏輯地址對應(yīng)的存儲裝置150內(nèi)。
在所述日志作成處理中,將日志保存在存儲裝置150內(nèi),但是,由于為日志用途準備了預定量的高速緩沖存儲器130,因而使用了所有的高速緩沖存儲器,因此,也可以將日志保存在存儲裝置150內(nèi)。日志用的高速緩沖存儲器的量例如可以從維修端進行指定。
讀寫處理220是盤適配器120實施接受來自于主適配器110或盤適配器120的命令的處理。實施的處理是將被指定的高速緩沖存儲器130的數(shù)據(jù)寫入與被指定的邏輯地址相對應(yīng)的存儲裝置150內(nèi)的存儲區(qū)之處理、從與被指定的邏輯地址對應(yīng)的存儲裝置150內(nèi)的存儲區(qū)中讀出數(shù)據(jù)至高速緩沖存儲器130的處理等。
圖14是說明接收了日志讀命令的正存儲系統(tǒng)100A的主適配器的操作(日志讀接收處理)的圖,圖15是流程圖。以下,使用這些圖,來說明正存儲系統(tǒng)100A接收了來自于副存儲系統(tǒng)100B的日志讀命令情況下之操作。
(1)正存儲系統(tǒng)100A內(nèi)的主適配器A接收來自于副存儲系統(tǒng)100B的訪問命令。訪問命令包含顯示為日志讀命令的標識符、命令對象的組編號、有無重試指示。以下,設(shè)訪問命令內(nèi)的組編號為組編號A(步驟1220、圖14的1410)。
(2)主適配器A調(diào)查組編號A的組狀態(tài)是否為“正常”(步驟1510)。在步驟1510的調(diào)查中,組狀態(tài)為“正?!敝饫鐬椤肮收稀钡那闆r下,將組狀態(tài)通知副存儲系統(tǒng)100B,并結(jié)束處理。副存儲系統(tǒng)100B根據(jù)所接收的組狀態(tài)來執(zhí)行處理。例如,在組狀態(tài)為“故障”的情況下,結(jié)束日志讀處理(步驟1515)。
(3)在步驟1510的調(diào)查中,在組編號A的組狀態(tài)為“正?!钡那闆r下,主適配器A調(diào)查日志邏輯卷的狀態(tài)(步驟1520)。在步驟1520的調(diào)查中,在日志邏輯卷的邏輯狀態(tài)不是“正常”的情況下,例如在“故障”的情況下,組狀態(tài)變更為“故障”,將給組狀態(tài)通知給副存儲系統(tǒng)100B,并結(jié)束處理。副存儲系統(tǒng)100B根據(jù)所接收的組狀態(tài)來執(zhí)行處理。例如,在組狀態(tài)為“故障”的情況下,結(jié)束日志讀處理(步驟1525)。
(4)在步驟1520的調(diào)查中,在日志邏輯卷的邏輯狀態(tài)為“正?!钡那闆r下,調(diào)查日志讀命令是否是重試指示(步驟1530)。
(5)在步驟1530的調(diào)查中,在調(diào)查日志讀命令是重試指示的情況下,主適配器A將前一次發(fā)送的日志再次傳送給副存儲系統(tǒng)100B。主適配器A,確保高速緩沖存儲器130,并命令盤適配器從指針信息700的重試開始地址開始,將更新信息之大小的信息讀入高速緩沖存儲器內(nèi)(圖14的1430)。
盤適配器的讀寫處理,從存儲裝置150中讀出更新信息,將其保存在高速緩沖存儲器130內(nèi),并通知給主適配器A(圖14的1430)。
主適配器A接受更新信息的讀結(jié)束的通知,并從更新信息中獲取寫入數(shù)據(jù)的邏輯地址以及寫入數(shù)據(jù),確保高速緩沖存儲器130,并命令盤適配器將寫入數(shù)據(jù)讀入高速緩沖存儲器內(nèi)(步驟1540,圖14的1440)。
盤適配器的讀寫處理,從存儲裝置150中讀出寫入數(shù)據(jù),將其保存于高速緩沖存儲器內(nèi),并通知給主適配器A(圖14的1450)。
主適配器A接受寫入數(shù)據(jù)的寫入結(jié)束通知,將更新信息和寫入數(shù)據(jù)傳送到副存儲系統(tǒng)100B,釋放保持日志的高速緩沖存儲器130,并結(jié)束處理(步驟1545,圖14的1460)。
(6)在步驟1530的調(diào)查中,在不是重試指示的情況下,主適配器A調(diào)查是否存在沒有發(fā)送的日志,如果存在,則將日志傳送給副存儲系統(tǒng)100B。主適配器A對指針信息700的讀開始地址和更新信息最新地址進行比較(步驟1550)。
在讀開始地址與更新信息最新地址相等的情況下,由于將所有的日志都傳送給了副存儲系統(tǒng)100B,因此,向副存儲系統(tǒng)100B傳送“無日志”(步驟1560),并釋放前一次的日志命令時,傳送給副存儲系統(tǒng)100B的日志的存儲區(qū)(步驟1590)。
日志的存儲區(qū)的釋放處理,是將重試開始地址設(shè)定為指針信息700的更新信息最舊地址。在更新信息最舊地址變?yōu)閷懭霐?shù)據(jù)區(qū)開始地址的情況下,令更新信息最舊地址為零。指針信息700的寫入數(shù)據(jù)最舊地址,變更為加上了根據(jù)前一次的讀日志命令所發(fā)送的寫入數(shù)據(jù)之大小后的數(shù)值。在寫入數(shù)據(jù)最舊地址變?yōu)槿罩具壿嬀淼娜萘恳陨系倪壿嫷刂返那闆r下,減去寫入數(shù)據(jù)區(qū)開始地址來進行修正。
(7)在步驟1550的調(diào)查中,在存在未發(fā)送的日志的情況下,主適配器A確保高速緩沖存儲器130,并命令盤適配器將從指針信息700的讀出開始地址開始的、更新信息之大小的信息讀入高速緩沖存儲器內(nèi)(圖14的1420)。
主適配器A的讀寫處理是從存儲裝置150中讀出更新信息,并將其保存于高速緩沖存儲器130內(nèi),并通知給主適配器(圖4的1430)。
主適配器A接受更新信息的讀結(jié)束通知,并從更新信息中獲取寫入數(shù)據(jù)的邏輯地址以及寫入數(shù)據(jù)的大小,確保高速緩沖存儲器130,并命令盤適配器將寫入數(shù)據(jù)讀入高速緩沖存儲器內(nèi)(步驟1570,圖14的1440)。
主適配器A的讀寫處理是從存儲裝置150中讀出寫入數(shù)據(jù),并將其保存于高速緩沖存儲器130內(nèi),并通知給主適配器(圖4的1450)。
主適配器A接受寫入數(shù)據(jù)的讀結(jié)束通知,將更新信息以及寫入數(shù)據(jù)傳送到副存儲系統(tǒng)100B內(nèi)(步驟1580),并釋放保持日志的高速緩沖存儲器130(圖14的1460)。于是,將讀開始地址設(shè)定為指針信息700的重試開始地址,并將加上了發(fā)送的日志之更新信息大小后的數(shù)值設(shè)定為讀開始地址。
(8)主適配器A釋放在前一次日志讀命令的處理時,發(fā)送給副存儲系統(tǒng)100B的日志的存儲區(qū)(步驟1590)。
在前述日志讀接收處理中,正存儲系統(tǒng)100A,是將日志發(fā)送給平均一個副存儲系統(tǒng)100B,但是,也可以將其同時發(fā)送給多個副存儲系統(tǒng)100B。在一個日志讀命令中,發(fā)送的日志數(shù)目也可以由副存儲系統(tǒng)100B在日志讀命令中進行指定,在組登錄時等情況中,也可以由用戶指定給正存儲系統(tǒng)100A和副存儲系統(tǒng)100B。另外,也可以根據(jù)正存儲系統(tǒng)100A和副存儲系統(tǒng)100B的連接總線200的傳輸能力或負荷等,動態(tài)地利用一個日志讀命令來改變發(fā)送的日志數(shù)。也可以不考慮日志數(shù)而是考慮日志的寫入數(shù)據(jù)的大小,來指定日志的傳輸量。
在所述日志讀接收處理中,將日志從存儲裝置150中讀入到高速緩沖存儲器130內(nèi),但是,在存在于高速緩沖存儲器130內(nèi)的情況下,就不需要該處理。
前述日志讀接收處理內(nèi)的日志的存儲區(qū)的釋放處理,是在下一個日志讀命令的處理時刻進行的,但是,也可以直接在將日志發(fā)送給副存儲系統(tǒng)100B后就釋放。副存儲系統(tǒng)100B設(shè)定也可以在日志讀命令內(nèi)進行釋放的更新編號,正存儲系統(tǒng)100A也可以根據(jù)其指示,釋放日志的存儲區(qū)。
圖16是說明日志讀命令處理240的圖,圖17是流程圖,圖18是日志存儲處理的流程圖。以下,將使用這些流程圖,對副存儲系統(tǒng)100B的主適配器B從正存儲系統(tǒng)100A中讀出日志,并將其存儲于日志邏輯卷內(nèi)的操作進行說明。
(1)副存儲系統(tǒng)100B內(nèi)的主適配器B,確保存儲日志的高速緩沖存儲器130,并向正存儲系統(tǒng)100A發(fā)送包含顯示是日志讀命令之標識符、命令對象的正存儲系統(tǒng)100A的組編號、以及有無重試指示的訪問命令。以下,設(shè)訪問命令內(nèi)的組編號為組編號A(步驟1700,圖16的1610)。
(2)主適配器B接收正存儲系統(tǒng)100A的應(yīng)答以及日志(圖16的1620)。主適配器調(diào)查應(yīng)答,當來自正存儲系統(tǒng)100A的應(yīng)答為“無日志”的情況下,由于在正存儲系統(tǒng)100A中不存在指定組的日志,因此,在一定時間后,將讀日志命令發(fā)送給正存儲系統(tǒng)100A(步驟1720、1725)。
(4)當正存儲系統(tǒng)100A的應(yīng)答為“組狀態(tài)故障”或者是“組狀態(tài)未使用”的情況下,副存儲系統(tǒng)100B的組狀態(tài)改變?yōu)榻邮諣顟B(tài),并結(jié)束日志讀處理(步驟1730、1735)。
(5)當正存儲系統(tǒng)100A的應(yīng)答為上述情況之外,即正常結(jié)束的情況下,調(diào)查日志邏輯卷的卷狀態(tài)(步驟1740)。在日志邏輯卷的卷狀態(tài)為“異常”的情況下,由于不可能在日志邏輯卷中存儲日志,因此,組狀態(tài)改變?yōu)椤爱惓!?,并結(jié)束處理(步驟1745)。這種情況,執(zhí)行將日志邏輯卷變更為正常邏輯卷等,并正常返回組的狀態(tài)。
(6)在步驟1740的調(diào)查中,在日志邏輯卷的卷狀態(tài)為“正?!钡那闆r下,執(zhí)行后述的日志存儲處理1800。在日志存儲處理1800正常結(jié)束的情況下,發(fā)送下一個日志讀命令?;蛘呤窃诮?jīng)過一定時間后,發(fā)送下一個日志讀命令(步驟1760)。發(fā)送下一個日志命令的定時,可以以一定的時間間隔定期發(fā)送,也可以由接收的日志的個數(shù),或者是,連接線200的通信量、副存儲系統(tǒng)100B保持的日志的存儲容量,副存儲系統(tǒng)100B的負荷等來決定。此外,也可以從副存儲系統(tǒng)100B中,讀出存儲系統(tǒng)100A保持的日志的存儲容量,或者正存儲系統(tǒng)100A的指針信息,從而根據(jù)該數(shù)值來作決定。上述信息的傳輸,也可以用專用的指令來執(zhí)行,也可以包含于日志讀命令的應(yīng)答內(nèi)。此后的處理,與步驟1710后的相同。
(7)在步驟1800的日志存儲處理沒有正常結(jié)束的情況下,由于不足日志邏輯卷的未使用區(qū)域,因此舍棄接收的日志,并在一定時間后發(fā)送重試指示的日志讀命令(步驟1755)。或者是,將日志保持在高速緩沖存儲器內(nèi),并在一定時間后,再次執(zhí)行日志存儲處理。這是因為,由于執(zhí)行后述的重新啟動處理250,因此,在一定時間后,存在日志邏輯卷內(nèi)的未使用區(qū)域增加的可能性。在這種方式的情況下,就不需要日志讀命令內(nèi)的重試指示的有無。
接下來,就圖18所示的日志存儲處理1800進行說明。
(1)主適配器B調(diào)查日志是否可能存儲在日志邏輯卷內(nèi)。使用指針信息700,來調(diào)查更新信息區(qū)域內(nèi)的未使用區(qū)域的有無(步驟1810)。在指針信息700的更新信息最新地址和更新信息最舊地址相等的情況下,由于在更新信息區(qū)域內(nèi)不存在未使用區(qū)域,因此以日志作成失敗而結(jié)束了處理(步驟1820)。
(2)在步驟1810的調(diào)查中,當更新信息區(qū)域內(nèi)存在未使用區(qū)域的情況下,使用指針信息700,來調(diào)查是否能夠在寫入數(shù)據(jù)區(qū)內(nèi)存儲寫入數(shù)據(jù)(步驟1830)。在寫入數(shù)據(jù)最新地址和接收的日志的寫入數(shù)據(jù)的數(shù)據(jù)量的和,等于或大于寫入數(shù)據(jù)最舊地址的情況下,由于不能在寫入數(shù)據(jù)區(qū)內(nèi)存儲寫入數(shù)據(jù),因此以日志作成失敗而結(jié)束了處理(步驟1820)。
(3)在日志可存儲的情況下,主適配器B改變接收的更新信息的組編號,和日志邏輯卷的邏輯地址。組編號變更為副存儲系統(tǒng)100B的組編號,日志邏輯卷的邏輯地址變更為指針信息700的寫入數(shù)據(jù)最新地址。主適配器B,將指針信息700的更新信息最新地址變更為在更新信息最新地址上加上了更新信息之大小后的數(shù)值。主適配器B,將指針信息700的寫入數(shù)據(jù)最新地址,變更為在寫入數(shù)據(jù)最新地址上加上了寫入數(shù)據(jù)之大小后的數(shù)值(步驟1840)。
(4)主適配器B,命令盤適配器120將跟新信息和寫入數(shù)據(jù)讀入存儲裝置150內(nèi),并以日志作成成功而結(jié)束該處理(步驟1850,圖16的1630)。之后,盤適配器120通過讀寫處理,將更新信息和寫入數(shù)據(jù)寫入存儲裝置150,并釋放高速緩沖存儲器130(圖16的1640)。
在前述的日志存儲處理中,是將日志保存于存儲裝置150內(nèi)的,但是由于為日志用途準備了一定量的高速緩沖存儲器130,因而使用了所有的高速緩沖存儲器,因此,也可以將日志保存于存儲裝置150內(nèi)。日志用的日志存儲器量例如從維修終端進行指定。
圖19是說明重新啟動處理250的圖。圖20是流程圖。以下,使用這些附圖,對副存儲系統(tǒng)100B的主適配器B利用日志,來執(zhí)行數(shù)據(jù)更新之操作進行說明。重新啟動處理250也可以是副存儲系統(tǒng)100B的盤適配器120執(zhí)行處理。
(1)主適配器B,調(diào)查組編號B的紐狀態(tài)是否為“正常”(步驟2010)。在步驟2010的調(diào)查中,在組狀態(tài)為“正?!币酝猓纭肮收稀钡那闆r下,結(jié)束重新啟動處理(步驟2015)。
(2)在步驟2010的調(diào)查中,當組狀態(tài)為“正常”的情況下,調(diào)查日志邏輯卷的卷狀態(tài)(步驟2020)。在步驟2020的調(diào)查中,在日志邏輯卷的卷狀態(tài)為“異?!钡那闆r下,由于不可能進行訪問,組狀態(tài)改變?yōu)椤爱惓!?,并結(jié)束處理(步驟2025)。
(3)在步驟2020的調(diào)查中,在日志邏輯卷的卷狀態(tài)為“正?!钡那闆r下,調(diào)查是否存在重新啟動對象的日志。主適配器B獲取指針信息700的更新信息最舊地址和更新信息最新地址。當更新信息最舊地址和更新信息最新地址相等的情況下,由于不存在日志,因此一旦重新啟動處理結(jié)束,則會在一定時間后,再次開始重新啟動處理(步驟2030)。
(4)在步驟2030的調(diào)查中,在存在重新啟動對象的日志的情況下,針對持有最舊(最小)的更新編號之日志執(zhí)行下一個處理。持有最舊(最小)的更新編號之日志的更新信息,從指針信息700的更新信息最舊地址開始被保存。主適配器B,確保高速緩沖存儲器130,命令盤適配器從更新信息最舊地址開始,將更新信息之大小信息讀入高速緩沖存儲器130內(nèi)(圖19的1910)。
盤適配器的讀寫處理,從存儲裝置150中讀出更新信息,保存于高速緩沖存儲器130內(nèi),并通知給主適配器B(圖19的1920)。
主適配器B接受更新信息的讀結(jié)束通知,并從更新信息中獲取寫入數(shù)據(jù)的邏輯地址以及寫入數(shù)據(jù)的大小,確保高速緩沖存儲器130,并命令盤適配器將寫入數(shù)據(jù)讀入高速緩沖存儲器內(nèi)(圖19的1930)。
主適配器B的讀寫處理是從存儲裝置150中讀出寫入數(shù)據(jù),并將其保存于高速緩沖存儲器130內(nèi),并通知給主適配器(步驟2040、圖19的1940)。
(5)主適配器B從更新信息中求出更新的副邏輯卷的邏輯地址,并命令盤適配器將寫入數(shù)據(jù)寫入副邏輯卷內(nèi)(步驟2050,圖19的1950)。盤適配器的讀寫處理,將數(shù)據(jù)寫入與副邏輯卷的邏輯地址對應(yīng)的存儲裝置150內(nèi),并釋放高速緩沖存儲器130,之后,通知給主適配器(圖19的1960)。
(6)主適配器B接受盤適配器的寫入處理結(jié)束的通知,釋放日志的存儲區(qū)。日志的存儲區(qū)的釋放處理,將指針信息700的更新信息最舊地址變更為加上了更新信息之大小后的數(shù)值。在最新信息最舊地址變?yōu)閷懭霐?shù)據(jù)區(qū)開始地址的情況下,寫入數(shù)據(jù)區(qū)開始地址為0。指針信息700的寫入數(shù)據(jù)最舊地址,變更為加上了寫入數(shù)據(jù)之大小后的數(shù)值。當寫入數(shù)據(jù)最舊地址變成日志邏輯卷的容量以上的邏輯地址的情況下,減去寫入數(shù)據(jù)區(qū)開始地址而進行修正。之后,主適配器B開始下一個重新啟動處理(步驟2060)。
前述重新啟動處理250,將日志從存儲裝置150讀入到高速緩沖存儲器130內(nèi),但是,當其存在與高速緩沖存儲器130內(nèi)的情況下,則不需要該處理。
在所述日志讀接收處理和日志讀命令處理240中,是利用指針信息700來決定正存儲系統(tǒng)100A發(fā)送的日志的,但是,也可以決定副存儲系統(tǒng)100B發(fā)送的日志。例如,將更新編號追加到日志讀命令上。在這種情況下,在日志讀接收處理中,為了求出副存儲系統(tǒng)100B指定的更新編號的更新信息的邏輯地址,而在正存儲系統(tǒng)100A的共用存儲器140內(nèi),設(shè)置了表或檢索方法,用于從更新編號中求出存儲了更新信息之邏輯地址。
在前述日志讀接收處理和日志讀命令處理240中,盡管使用了日志讀命令,但是也可以使用通常的讀命令。例如,將正存儲系統(tǒng)100A的組信息600和指針信息700預先傳送到副存儲系統(tǒng)100B內(nèi),副存儲系統(tǒng)100B讀出正存儲系統(tǒng)100A的日志邏輯卷的數(shù)據(jù)(即日志)。
在前述的日志讀接收處理中,是以按照更新編號的順序,將日志從正存儲系統(tǒng)100A發(fā)送到副存儲系統(tǒng)100B內(nèi)的情況為例進行說明,但是,也可以不按更新編號的順序發(fā)送。也可以將多個日志讀命令從正存儲系統(tǒng)100A發(fā)送到副存儲系統(tǒng)100B內(nèi)。這種情況下,為了在重新啟動處理中按照更新編碼順序處理日志,因此,在副存儲系統(tǒng)100B中,設(shè)置了從更新編號中求出存儲了更新信息之邏輯地址的表或檢索方法。
在前述本發(fā)明的數(shù)據(jù)處理系統(tǒng)中,正存儲系統(tǒng)獲取了日志,副存儲系統(tǒng)執(zhí)行數(shù)據(jù)的復制。由此,與正存儲系統(tǒng)相連的主機,不承擔與數(shù)據(jù)復制相關(guān)的負荷。此外,由于在正存儲系統(tǒng)和副存儲系統(tǒng)之間傳輸日志,因此,沒有使用正存儲系統(tǒng)和與正存儲系統(tǒng)相連的主機的通信線。
圖23是顯示本發(fā)明第二實施例的邏輯結(jié)構(gòu)的圖。
主機180和存儲系統(tǒng)100C通過連接總線190相連,存儲系統(tǒng)100C和正存儲系統(tǒng)100A通過連接總線200相連,正存儲系統(tǒng)100A和副存儲系統(tǒng)100B通過連接總線200而連接構(gòu)成。存儲系統(tǒng)100C,在對存儲系統(tǒng)100C的邏輯卷(ORG1)執(zhí)行數(shù)據(jù)更新時,執(zhí)行邏輯卷(ORG1)的數(shù)據(jù)更新和正存儲系統(tǒng)100A內(nèi)的邏輯卷(DATA1)的數(shù)據(jù)更新。
正存儲系統(tǒng)100A,如第一實施中所說明的那樣,在對正邏輯卷(DATA1)進行數(shù)據(jù)更新時,還利用前述的命令接收處理210和讀寫處理220,而在日志邏輯卷(JNL1)內(nèi)執(zhí)行日志的保存(2310)。
副存儲系統(tǒng)100B,利用前述的日志讀處理240,從正存儲系統(tǒng)100A中讀出日志,利用讀寫處理220,將日志保存到日志邏輯卷(JNL2)內(nèi)(2320)。
正存儲系統(tǒng)100A在接收到從副存儲系統(tǒng)100B中讀出日志的命令后,利用命令接收處理210和讀寫處理220,從日志邏輯卷(JNL1)中讀出日志,并將其傳送給副存儲系統(tǒng)100B(2320)。
副存儲系統(tǒng)100B利用前述的重新啟動處理250和讀寫處理220,按照更新編號,從日志邏輯卷(JNL2)中讀出日志,并更新作為正邏輯卷(DATA1)之副本的副邏輯卷(COPY1)的數(shù)據(jù)(2330)。如此,由于按照更新編號的順序來更新數(shù)據(jù),因此能夠確保邏輯卷之間的數(shù)據(jù)的一致性。
在前述的本發(fā)明的數(shù)據(jù)處理系統(tǒng)中,正存儲系統(tǒng)獲取日志,并將其存儲于日志專用的存儲區(qū)內(nèi)。另外,副存儲系統(tǒng)將從正存儲系統(tǒng)中接收的日志存儲在日志專用的存儲區(qū)內(nèi)。日志專用的存儲區(qū)可能比數(shù)據(jù)復制對象的存儲區(qū)更少,但利用這更少的存儲容量,能夠在副存儲系統(tǒng)中,實現(xiàn)正存儲系統(tǒng)的數(shù)據(jù)的復制。
圖24是顯示第三實施例的邏輯結(jié)構(gòu)的圖。
主機180和存儲系統(tǒng)100C通過連接總線190進行連接,存儲系統(tǒng)100C和正存儲系統(tǒng)100A通過連接總線200進行連接,正存儲系統(tǒng)100A和副存儲系統(tǒng)100B通過連接總線200連接而構(gòu)成。存儲系統(tǒng)100C就像是在已有技術(shù)中說明的那樣,在執(zhí)行對存儲系統(tǒng)100C的邏輯卷(ORG1)的數(shù)據(jù)更新時,執(zhí)行邏輯卷(ORG1)的數(shù)據(jù)更新和正存儲系統(tǒng)100A的邏輯卷(DATA1)的數(shù)據(jù)更新。
正存儲系統(tǒng)100A是以相對于存儲系統(tǒng)100C的、具有正邏輯卷(DATA1)的方式顯現(xiàn)的,但是實際的存儲區(qū),即存儲裝置150并沒有分割。例如,在卷信息400的物理地址中,設(shè)定了顯示沒有分割存儲裝置150的數(shù)值。正存儲系統(tǒng)100A,在從存儲系統(tǒng)100C到正邏輯卷(DATA1)的數(shù)據(jù)的寫入命令接收時,不執(zhí)行前述的命令接收處理210內(nèi)的步驟1270的處理,而僅僅在日志邏輯卷(JNL1)中執(zhí)行日志的保存(2410)。
副存儲系統(tǒng)100B通過所述日志讀處理240,從正存儲系統(tǒng)100A中讀出日志,并利用讀寫處理220,將日志保存于日志邏輯卷(JNL2)內(nèi)(2420)。
正存儲系統(tǒng)100A,在從副存儲系統(tǒng)100B接收了讀出如之的命令之后,利用命令接收處理210和讀寫處理220,從日志邏輯卷(JNL1)中讀出日志,并將其發(fā)送到存儲系統(tǒng)100B內(nèi)(2420)。
副存儲系統(tǒng)100B,利用所述重新啟動處理250和讀寫處理220,根據(jù)更新編號,從日志邏輯卷(JNL2)中讀出日志,并更新作為邏輯卷(ORG1)之副本的副邏輯卷(COPY1)的數(shù)據(jù)(2430)。這樣,由于按照跟新編號的順序來更新數(shù)據(jù),因此,可能保持邏輯卷間的數(shù)據(jù)的一致性。
在前述的本發(fā)明的數(shù)據(jù)處理系統(tǒng)中,在存儲系統(tǒng)100C,或者與存儲系統(tǒng)100C相連的主機180中產(chǎn)生故障的情況下,由于對副存儲系統(tǒng)100B的邏輯卷(COPY1),反映了正存儲系統(tǒng)100A內(nèi)的日志(JNL1),因此,利用與存儲系統(tǒng)100B相連的主機,可以執(zhí)行最新數(shù)據(jù)的對照、更新。此外,通過在正存儲系統(tǒng)100A內(nèi)不保持數(shù)據(jù)副本,而僅僅存儲日志,從而可使數(shù)據(jù)復制中所需的存儲容量減少。
以上,是基于實施例的形式來具體說明本發(fā)明的發(fā)明人所作出的發(fā)明,但是,本發(fā)明并不僅僅限于實施例例,在不脫離其主旨的范圍內(nèi),也可以有各種改變。
(發(fā)明效果)根據(jù)本發(fā)明,能夠提供這樣一種存儲系統(tǒng)不對存儲系統(tǒng)的上一級計算機施加影響,而可以在多個存儲系統(tǒng)間執(zhí)行數(shù)據(jù)傳輸或數(shù)據(jù)復制。此外,能夠提供對存儲系統(tǒng)和計算機之間的通信也不施加影響的存儲系統(tǒng)。
此外,根據(jù)本發(fā)明,能夠減少在多個存儲系統(tǒng)內(nèi)保持的數(shù)據(jù)存儲區(qū)。又,能夠以不對多個存儲系統(tǒng)的上一級計算機的業(yè)務(wù)施加影響的方式,高速且有效地在多個存儲系統(tǒng)之間執(zhí)行數(shù)據(jù)傳輸或數(shù)據(jù)的復制。
權(quán)利要求
1.一種存儲系統(tǒng),適于連接到與主計算機相連接的另一存儲系統(tǒng),所述存儲系統(tǒng)包括多個第一復制卷,被分配到第一組,該第一組中在多個第一復制卷之間保持數(shù)據(jù)一致性,所述多個第一復制卷對應(yīng)另一存儲系統(tǒng)的多個第一卷中存儲的多個數(shù)據(jù)存儲多個復制數(shù)據(jù);至少一個第一日志存儲區(qū),用于存儲從另一存儲系統(tǒng)接收的、與第一組相關(guān)的多個第一日志數(shù)據(jù),該多個第一日志數(shù)據(jù)對應(yīng)將被存儲在至少一個所述多個第一復制卷中的多個復制數(shù)據(jù);多個第二復制卷,被分配到第二組,該第二組中在多個第二復制卷之間保持數(shù)據(jù)一致性,所述多個第二復制卷對應(yīng)另一存儲系統(tǒng)的多個第二卷中存儲的數(shù)據(jù)存儲復制數(shù)據(jù);和至少一個第二日志存儲區(qū),用于存儲從另一存儲系統(tǒng)接收的、與第二組相關(guān)的多個第二日志數(shù)據(jù),該多個第二日志數(shù)據(jù)對應(yīng)將被存儲在至少一個所述多個第二復制卷中的多個復制數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其中所述至少一個第一日志存儲區(qū)位于對應(yīng)至少一部分多個磁盤驅(qū)動器的至少一個卷中。
3.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其中所述至少一個第二日志存儲區(qū)位于對應(yīng)至少一部分多個磁盤驅(qū)動器的至少一個卷中。
4.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其中所述至少一個第一日志存儲區(qū)位于存儲系統(tǒng)的至少一個第三卷中,所述至少一個第二日志存儲區(qū)位于存儲系統(tǒng)的至少一個第四卷中,該至少一個第四卷與第三卷不同。
5.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其中每個所述多個第一日志數(shù)據(jù)都包括第一組中寫入順序的信息和復制數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其中每個所述多個第一日志數(shù)據(jù)都包括第一組的更新數(shù)量。
7.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其中每個所述多個第一日志數(shù)據(jù)都包括第一組中寫入順序的信息,每個所述多個第二日志數(shù)據(jù)都包括第二組中寫入順序的信息。
8.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其中每個所述多個第一日志數(shù)據(jù)都包括第一組的更新數(shù)量和復制數(shù)據(jù),每個所述多個第二日志數(shù)據(jù)都包括第二組的更新數(shù)量和復制數(shù)據(jù)。
9.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其中存儲在第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第一日志存儲區(qū)中讀取,對應(yīng)于存儲在第一日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中。
10.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其中存儲在第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第一日志存儲區(qū)中讀取,對應(yīng)于存儲在第一日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中,存儲在第二日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第二日志存儲區(qū)中讀取,對應(yīng)于存儲在第二日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第二復制卷中的一個中。
11.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),進一步包括與所述第一日志存儲區(qū)和第二日志存儲區(qū)連接的控制器,其中該控制器控制從第一日志存儲區(qū)中讀取存儲在第一日志存儲區(qū)中的最老的日志數(shù)據(jù),該控制器控制在一個所述多個第一復制卷中對應(yīng)第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)而存儲復制數(shù)據(jù),該控制器控制在一個所述多個第一復制卷中對應(yīng)第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)存儲復制數(shù)據(jù)后,釋放一部分第一日志存儲區(qū),該控制器控制從第二日志存儲區(qū)中讀取存儲在第二日志存儲區(qū)中的最老的日志數(shù)據(jù),該控制器控制在一個所述多個第二復制卷中對應(yīng)第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)而存儲復制數(shù)據(jù),該控制器控制在一個所述多個第二復制卷中對應(yīng)第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)存儲復制數(shù)據(jù)后,釋放一部分第二日志存儲區(qū)。
12.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其中存儲在第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第一日志存儲區(qū)中讀取,對應(yīng)于存儲在第一日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中,在一個所述多個第一復制卷中對應(yīng)第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)寫入復制數(shù)據(jù)后,釋放一部分第一日志存儲區(qū),存儲在第二日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第二日志存儲區(qū)中讀取,對應(yīng)于存儲在第二日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第二復制卷中的一個中,在一個所述多個第二復制卷中對應(yīng)第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)寫入復制數(shù)據(jù)后,釋放一部分第二日志存儲區(qū)。
13.一種控制器,適于在存儲系統(tǒng)中使用,該控制器包括至少一個第一端口,與連接到主計算機的另一存儲系統(tǒng)相連接;和至少一個第二端口,與多個第一復制卷、至少一個第一日志存儲區(qū)、多個第二復制卷和至少一個第二日志存儲區(qū)相連,其中所述多個第一復制卷,被分配到第一組,該第一組中在多個第一復制卷之間保持數(shù)據(jù)一致性,所述多個第一復制卷對應(yīng)另一存儲系統(tǒng)的多個第一卷中存儲的多個數(shù)據(jù)存儲多個復制數(shù)據(jù),所述至少一個第一日志存儲區(qū),用于存儲從另一存儲系統(tǒng)接收的、與第一組相關(guān)的多個第一日志數(shù)據(jù),該多個第一日志數(shù)據(jù)對應(yīng)將被存儲在至少一個所述多個第一復制卷中的多個復制數(shù)據(jù),所述多個第二復制卷,被分配到第二組,該第二組中在多個第二復制卷之間保持數(shù)據(jù)一致性,所述多個第二復制卷對應(yīng)另一存儲系統(tǒng)的多個第二卷中存儲的數(shù)據(jù)存儲復制數(shù)據(jù),所述至少一個第二日志存儲區(qū),用于存儲從另一存儲系統(tǒng)接收的、與第二組相關(guān)的多個第二日志數(shù)據(jù),該多個第二日志數(shù)據(jù)對應(yīng)將被存儲在至少一個所述多個第二復制卷中的多個復制數(shù)據(jù)。
14.根據(jù)權(quán)利要求13所述的控制器,其中所述至少一個第一日志存儲區(qū)位于對應(yīng)至少一部分多個磁盤驅(qū)動器的至少一個卷中。
15.根據(jù)權(quán)利要求13所述的控制器,其中所述至少一個第二日志存儲區(qū)位于對應(yīng)至少一部分多個磁盤驅(qū)動器的至少一個卷中。
16.根據(jù)權(quán)利要求13所述的控制器,其中所述至少一個第一日志存儲區(qū)位于存儲系統(tǒng)的至少一個第三卷中,所述至少一個第二日志存儲區(qū)位于存儲系統(tǒng)的至少一個第四卷中,該至少一個第四卷與第三卷不同。
17.根據(jù)權(quán)利要求13所述的控制器,其中每個所述多個第一日志數(shù)據(jù)都包括第一組中寫入順序的信息和復制數(shù)據(jù)。
18.根據(jù)權(quán)利要求13所述的控制器,其中每個所述多個第一日志數(shù)據(jù)都包括第一組的更新數(shù)量。
19.根據(jù)權(quán)利要求13所述的控制器,其中每個所述多個第一日志數(shù)據(jù)都包括第一組中寫入順序的信息,每個所述多個第二日志數(shù)據(jù)都包括第二組中寫入順序的信息。
20.根據(jù)權(quán)利要求13所述的控制器,其中每個所述多個第一日志數(shù)據(jù)都包括第一組的更新數(shù)量和復制數(shù)據(jù),每個所述多個第二日志數(shù)據(jù)都包括第二組的更新數(shù)量和復制數(shù)據(jù)。
21.根據(jù)權(quán)利要求13所述的控制器,其中存儲在第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第一日志存儲區(qū)中讀取,對應(yīng)于存儲在第一日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中。
22.根據(jù)權(quán)利要求13所述的控制器,其中存儲在第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第一日志存儲區(qū)中讀取,對應(yīng)于存儲在第一日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中,存儲在第二日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第二日志存儲區(qū)中讀取,對應(yīng)于存儲在第二日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第二復制卷中的一個中。
23.根據(jù)權(quán)利要求13所述的控制器,其中該控制器控制從第一日志存儲區(qū)中讀取存儲在第一日志存儲區(qū)中的最老的日志數(shù)據(jù),該控制器控制在一個所述多個第一復制卷中對應(yīng)第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)而存儲復制數(shù)據(jù),該控制器控制在一個所述多個第一復制卷中對應(yīng)第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)存儲復制數(shù)據(jù)后,釋放一部分第一日志存儲區(qū),該控制器控制從第二日志存儲區(qū)中讀取存儲在第二日志存儲區(qū)中的最老的日志數(shù)據(jù),該控制器控制在一個所述多個第二復制卷中對應(yīng)第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)而存儲復制數(shù)據(jù),該控制器控制在一個所述多個第二復制卷中對應(yīng)第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)存儲復制數(shù)據(jù)后,釋放一部分第二日志存儲區(qū)。
24.根據(jù)權(quán)利要求13所述的控制器,其中存儲在第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第一日志存儲區(qū)中讀取,對應(yīng)于存儲在第一日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中,在一個所述多個第一復制卷中對應(yīng)第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)寫入復制數(shù)據(jù)后,釋放一部分第一日志存儲區(qū),存儲在第二日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第二日志存儲區(qū)中讀取,對應(yīng)于存儲在第二日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第二復制卷中的一個中,在一個所述多個第二復制卷中對應(yīng)第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)寫入復制數(shù)據(jù)后,釋放一部分第二日志存儲區(qū)。
25.根據(jù)權(quán)利要求139所述的控制器,其中存儲在至少一個第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從所述至少一個第一日志存儲區(qū)中讀取,對應(yīng)于存儲在至少一個第一日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中,在一個所述多個第一復制卷中對應(yīng)至少一個第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)寫入復制數(shù)據(jù)后,釋放一部分所述至少一個第一日志存儲區(qū),存儲在至少一個第二日志存儲區(qū)中的最老的日志數(shù)據(jù)被從所述至少一個第二日志存儲區(qū)中讀取,對應(yīng)于存儲在至少一個第二日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第二復制卷中的一個中,在一個所述多個第二復制卷中對應(yīng)至少一個第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)寫入復制數(shù)據(jù)后,釋放一部分所述至少一個第二日志存儲區(qū)。
26.一種計算機程序,存儲在計算機可讀存儲介質(zhì)中并在控制器中執(zhí)行,該控制器適于在存儲系統(tǒng)中使用并與連接到主計算機的另一存儲系統(tǒng)相連接,所述計算機程序包括控制將從另一存儲系統(tǒng)接收的至少一個日志數(shù)據(jù)傳輸?shù)街辽僖粋€第一日志存儲區(qū);控制從第一日志存儲區(qū)中讀取傳輸?shù)降谝蝗罩敬鎯^(qū)中的至少一個日志數(shù)據(jù);控制將與從第一日志存儲區(qū)讀取的至少一個日志數(shù)據(jù)相對應(yīng)和與存儲在另一存儲系統(tǒng)的多個第一卷的至少其一中的至少一個數(shù)據(jù)相對應(yīng)的至少一個復制數(shù)據(jù)傳輸?shù)蕉鄠€第一復制卷的至少其一中,所述多個第一復制卷被分配到第一組,該第一組中多個第一復制卷的多個復制數(shù)據(jù)保持一致性;控制將從另一存儲系統(tǒng)接收的至少一個日志數(shù)據(jù)傳輸?shù)街辽僖粋€第二日志存儲區(qū);控制從第二日志存儲區(qū)中讀取傳輸?shù)降诙罩敬鎯^(qū)中的至少一個日志數(shù)據(jù);控制將與從第二日志存儲區(qū)讀取的至少一個日志數(shù)據(jù)相對應(yīng)和與存儲在另一存儲系統(tǒng)的多個第二卷的至少其一中的至少一個數(shù)據(jù)相對應(yīng)的至少一個復制數(shù)據(jù)傳輸?shù)蕉鄠€第二復制卷的至少其一中,所述多個第二復制卷被分配到第二組,該第二組中多個第二復制卷的多個復制數(shù)據(jù)保持一致性。
27.根據(jù)權(quán)利要求26所述的計算機程序,其中所述至少一個第一日志存儲區(qū)位于對應(yīng)至少一部分多個磁盤驅(qū)動器的至少一個卷中。
28.根據(jù)權(quán)利要求26所述的計算機程序,其中所述至少一個第二日志存儲區(qū)位于對應(yīng)至少一部分多個磁盤驅(qū)動器的至少一個卷中。
29.根據(jù)權(quán)利要求26所述的計算機程序,其中所述至少一個第一日志存儲區(qū)位于存儲系統(tǒng)的至少一個第三卷中,所述至少一個第二日志存儲區(qū)位于存儲系統(tǒng)的至少一個第四卷中,該至少一個第四卷與第三卷不同。
30.根據(jù)權(quán)利要求26所述的計算機程序,其中存儲在至少一個第一日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第一組中寫入順序的信息和復制數(shù)據(jù)。
31.根據(jù)權(quán)利要求26所述的計算機程序,其中存儲在至少一個第一日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第一組的更新數(shù)量。
32.根據(jù)權(quán)利要求26所述的計算機程序,其中存儲在至少一個第一日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第一組中寫入順序的信息,存儲在至少一個第二日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第二組中寫入順序的信息。
33.根據(jù)權(quán)利要求26所述的計算機程序,其中存儲在至少一個第一日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第一組的更新數(shù)量和復制數(shù)據(jù),存儲在至少一個第二日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第二組的更新數(shù)量和復制數(shù)據(jù)。
34.根據(jù)權(quán)利要求26所述的計算機程序,其中存儲在至少一個第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第一日志存儲區(qū)中讀取,與存儲在至少一個第一日志存儲區(qū)中最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中。
35.根據(jù)權(quán)利要求26所述的計算機程序,其中存儲在至少一個第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從至少一個第一日志存儲區(qū)中讀取,與存儲在至少一個第一日志存儲區(qū)中最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)被寫入所述多個第一復制卷的一個中,存儲在第二日志存儲區(qū)中的最老的日志數(shù)據(jù)被從至少一個第二日志存儲區(qū)中讀取,與存儲在至少一個第二日志存儲區(qū)中最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)被寫入所述多個第二復制卷中的一個中。
36.根據(jù)權(quán)利要求26所述的計算機程序,其中所述計算機程序進一步包括控制從至少一個第一日志存儲區(qū)中讀取存儲在至少一個第一日志存儲區(qū)中的最老的日志數(shù)據(jù),控制將與至少一個第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)傳輸?shù)揭粋€所述多個第一復制卷中;控制將與至少一個第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)傳輸?shù)揭粋€所述多個第一復制卷中后,釋放一部分所述至少一個第一日志存儲區(qū);控制從至少一個第二日志存儲區(qū)中讀取存儲在至少一個第二日志存儲區(qū)中的最老的日志數(shù)據(jù);控制將與至少一個第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)傳輸?shù)揭粋€所述多個第二復制卷中;控制將與至少一個第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)傳輸?shù)揭粋€所述多個第二復制卷中后,釋放一部分所述至少一個第二日志存儲區(qū)。
37.根據(jù)權(quán)利要求26所述的計算機程序,其中從所述至少一個第一日志存儲區(qū)中讀取存儲在至少一個第一日志存儲區(qū)中的最老的日志數(shù)據(jù),對應(yīng)于存儲在至少一個第一日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中,在將與至少一個第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)寫入一個所述多個第一復制卷中后,釋放一部分所述至少一個第一日志存儲區(qū),從第二日志存儲區(qū)中讀取存儲在至少一個第二日志存儲區(qū)中的最老的日志數(shù)據(jù),對應(yīng)于存儲在至少一個第二日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第二復制卷中的一個中,在將與至少一個第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)寫入一個所述多個第二復制卷中后,釋放一部分所述至少一個第二日志存儲區(qū)。
38.一種控制器中執(zhí)行的存儲數(shù)據(jù)的方法,該控制器適于在存儲系統(tǒng)中使用并與連接到主計算機的另一存儲系統(tǒng)相連接,所述方法包括步驟控制將從另一存儲系統(tǒng)接收的至少一個日志數(shù)據(jù)傳輸?shù)街辽僖粋€第一日志存儲區(qū);控制從第一日志存儲區(qū)中讀取傳輸?shù)降谝蝗罩敬鎯^(qū)中的至少一個日志數(shù)據(jù);控制將與從第一日志存儲區(qū)讀取的至少一個日志數(shù)據(jù)相對應(yīng)和與存儲在另一存儲系統(tǒng)的多個第一卷的至少其一中的至少一個數(shù)據(jù)相對應(yīng)的至少一個復制數(shù)據(jù)傳輸?shù)蕉鄠€第一復制卷的至少其一中,所述多個第一復制卷被分配到第一組,該第一組中多個第一復制卷的多個復制數(shù)據(jù)保持一致性;控制將從另一存儲系統(tǒng)接收的至少一個日志數(shù)據(jù)傳輸?shù)街辽僖粋€第二日志存儲區(qū);控制從第二日志存儲區(qū)中讀取傳輸?shù)降诙罩敬鎯^(qū)中的至少一個日志數(shù)據(jù);控制將與從第二日志存儲區(qū)讀取的至少一個日志數(shù)據(jù)相對應(yīng)和與存儲在另一存儲系統(tǒng)的多個第二卷的至少其一中的至少一個數(shù)據(jù)相對應(yīng)的至少一個復制數(shù)據(jù)傳輸?shù)蕉鄠€第二復制卷的至少其一中,所述多個第二復制卷被分配到第二組,該第二組中多個第二復制卷的多個復制數(shù)據(jù)保持一致性。
39.根據(jù)權(quán)利要求38所述的方法,其中所述至少一個第一日志存儲區(qū)位于對應(yīng)至少一部分多個磁盤驅(qū)動器的至少一個卷中。
40.根據(jù)權(quán)利要求38所述的方法,其中所述至少一個第二日志存儲區(qū)位于對應(yīng)至少一部分多個磁盤驅(qū)動器的至少一個卷中。
41.根據(jù)權(quán)利要求38所述的方法,其中所述至少一個第一日志存儲區(qū)位于存儲系統(tǒng)的至少一個第三卷中,所述至少一個第二日志存儲區(qū)位于存儲系統(tǒng)的至少一個第四卷中,該至少一個第四卷與第三卷不同。
42.根據(jù)權(quán)利要求38所述的方法,其中存儲在至少一個第一日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第一組中寫入順序的信息和復制數(shù)據(jù)。
43.根據(jù)權(quán)利要求38所述的方法,其中存儲在至少一個第一日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第一組的更新數(shù)量。
44.根據(jù)權(quán)利要求38所述的方法,其中存儲在至少一個第一日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第一組中寫入順序的信息,存儲在至少一個第二日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第二組中寫入順序的信息。
45.根據(jù)權(quán)利要求38所述的方法,其中存儲在至少一個第一日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第一組的更新數(shù)量和復制數(shù)據(jù),存儲在至少一個第二日志存儲區(qū)中的每個所述多個日志數(shù)據(jù)都包括第二組的更新數(shù)量和復制數(shù)據(jù)。
46.根據(jù)權(quán)利要求38所述的方法,其中存儲在至少一個第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從第一日志存儲區(qū)中讀取,與存儲在至少一個第一日志存儲區(qū)中最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中。
47.根據(jù)權(quán)利要求38所述的方法,其中存儲在至少一個第一日志存儲區(qū)中的最老的日志數(shù)據(jù)被從至少一個第一日志存儲區(qū)中讀取,與存儲在至少一個第一日志存儲區(qū)中最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)被寫入所述多個第一復制卷的一個中,存儲在第二日志存儲區(qū)中的最老的日志數(shù)據(jù)被從至少一個第二日志存儲區(qū)中讀取,與存儲在至少一個第二日志存儲區(qū)中最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)被寫入所述多個第二復制卷中的一個中。
48.根據(jù)權(quán)利要求38所述的方法,其中所述方法進一步包括控制從至少一個第一日志存儲區(qū)中讀取存儲在所述至少一個第一日志存儲區(qū)中的最老的日志數(shù)據(jù),控制將與至少一個第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)傳輸?shù)揭粋€所述多個第一復制卷中;控制將與至少一個第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)傳輸?shù)揭粋€所述多個第一復制卷中后,釋放一部分所述至少一個第一日志存儲區(qū);控制從至少一個第二日志存儲區(qū)中讀取存儲在至少一個第二日志存儲區(qū)中的最老的日志數(shù)據(jù);控制將與至少一個第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)傳輸?shù)揭粋€所述多個第二復制卷中;控制將與至少一個第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)傳輸?shù)揭粋€所述多個第二復制卷中后,釋放一部分所述至少一個第二日志存儲區(qū)。
49.根據(jù)權(quán)利要求38所述的方法,其中從所述至少一個第一日志存儲區(qū)中讀取存儲在至少一個第一日志存儲區(qū)中的最老的日志數(shù)據(jù),對應(yīng)于存儲在至少一個第一日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第一復制卷中的一個中,在將與至少一個第一日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)寫入一個所述多個第一復制卷中后,釋放一部分所述至少一個第一日志存儲區(qū),從第二日志存儲區(qū)中讀取存儲在至少一個第二日志存儲區(qū)中的最老的日志數(shù)據(jù),對應(yīng)于存儲在至少一個第二日志存儲區(qū)中最老的日志數(shù)據(jù)的復制數(shù)據(jù)被寫入所述多個第二復制卷中的一個中,在將與至少一個第二日志存儲區(qū)中存儲的最老的日志數(shù)據(jù)相對應(yīng)的復制數(shù)據(jù)寫入一個所述多個第二復制卷中后,釋放一部分所述至少一個第二日志存儲區(qū)。
全文摘要
第一存儲系統(tǒng),將與第一存儲系統(tǒng)中被存儲數(shù)據(jù)的更新有關(guān)之信息作為日志進行存儲。日志,具體來說,是由更新中使用的數(shù)據(jù)的拷貝和更新時的寫入命令等的更新信息而構(gòu)成的。另外,第二存儲系統(tǒng),通過第一存儲系統(tǒng)和第二存儲系統(tǒng)間的通信線,獲取所述日志。第二存儲系統(tǒng),保持第一存儲系統(tǒng)保持的數(shù)據(jù)的副本,使用所述日志,按照第一存儲系統(tǒng)中的數(shù)據(jù)更新順序,更新與第一存儲系統(tǒng)的數(shù)據(jù)對應(yīng)的數(shù)據(jù)。
文檔編號G06F12/00GK101051286SQ20071010549
公開日2007年10月10日 申請日期2004年6月24日 優(yōu)先權(quán)日2003年6月27日
發(fā)明者平川裕介, 荒川敬史, 武田貴彥, 佐藤孝夫 申請人:株式會社日立制作所