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