欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在存儲區(qū)域網絡中的異步鏡像的制作方法

文檔序號:6425775閱讀:218來源:國知局
專利名稱:在存儲區(qū)域網絡中的異步鏡像的制作方法
技術領域
本發(fā)明主要涉及鏡像和數據復制的領域,更確切的說,本發(fā)明一般涉及在與存儲區(qū)域(SAN)或與網絡連通性相耦合的存儲設備之間數據目標的異步鏡像。
術語一個被選擇的數據目標可以是一個單個的數據目標,也可以是多個的數據目標或者是一組數據目標。
一個數據目標可以一個數據塊(卷),一個邏輯塊或虛擬塊,一個數據文件,或者任何數據結構。下文中,術語“數據目標”和“塊”經常是交替使用的。
術語“本地”常用于表示起源,例如,表示一個本地存儲設備。
術語“遠程”常用于表示目的,例如,表示一個遠程存儲設備。
存儲設備可以是磁盤,光盤,RAIDS(磁盤陣列),以及JBODS(高可用性存儲系統(tǒng)及磁盤柜)。
適用于一個數據目標的存儲空間可以只是一個存儲設備的整個空間容量中的一個部分,或者是整個部分,或者是大于空間容量。
一個計算裝置和處理裝置是一個計算機的處理器,一個主機,一個服務器,一個PC,也可以是一個存儲開關和網絡開關,一個存儲路由器和網絡路由器,或者是一個存儲控制器。一個計算裝置可以采用一個適用于運行計算機程序的RAM來操作,或者可以采用一個存儲器和存儲于磁性和其它存儲部件中的計算機程序來操作。
一個網絡的連通性是一個本地網(LAN),一個廣域網(WAN),或者一個存儲區(qū)域網絡(SAN)。
背景技術
現有技術中的直接訪問存儲系統(tǒng)可以執(zhí)行從一個存儲設備到第二個存儲設備的遠程鏡像和存儲,例如,可以從本地存儲設備到遠程存儲設備,然而這類系統(tǒng)所規(guī)定的要求難以進行復制,以下將討論一些這類實例。
例如,某些系統(tǒng)要需要本地存儲設備和遠程存儲設備是相同類型的,這就意味著在本地存儲位置的硬件和在遠程存儲位置的硬件必須是同一銷售商。另外一些系統(tǒng)能夠希望在復制到遠程存儲設備之前,所有的本地數據都先必須發(fā)送到本地系統(tǒng)中。還有一些系統(tǒng)在一個本地數據塊分布在多個存儲系統(tǒng)時就需要一個同步的系統(tǒng),以便于能在遠程位置上保持數據的連貫性。還有一些系統(tǒng)是通過對本地位置上的I/O請求的排隊來獲得在一個位置和一個遠程位置之間的數據復制的連貫性,然而這會迫使需要大量存儲資源,因為寫命令的次序是必須保護的。
在Yanai等人發(fā)明美國專利No.5,742,792“遠程數據鏡像”中披露了一種適用于提供遠程復制數據存儲的系統(tǒng)。然而,該系統(tǒng)需要一個專用的數據存儲系統(tǒng)控制器。此外,在主要和次要數據存儲系統(tǒng)之間的鏡像需要在復制數據之前要求這些數據存儲系統(tǒng)同步。
在Micka等人發(fā)明的美國專利No.5,657,440中也披露了一種遠程數據復制,但是這些技術都需要在其相互之間具有一個更新系統(tǒng),該系統(tǒng)用于提供時序一致的寫操作但這種寫操作需要一個周期性同步的時間量綱的校正點信號。
于是,這有利于提供數據復制裝置,以利于從不同銷售商所采購的具有不同結構的多種存儲設備硬件的使用。連續(xù)的復制是多余的,并且較佳的是節(jié)省了每隔一段時間所產生的復制。此外,只要能節(jié)省最后所產生的復制一般就足夠了,并且能夠節(jié)省存儲的容量。另外,最好是能避免需要專用控制器。
下列披露主要是針對這類需求的。

發(fā)明內容
本發(fā)明提出了一種通過離散數據塊的序列凍結和復制來實現所選擇的數據目標從一個本地存儲設備到一個遠程存儲設備的鏡像和復制系統(tǒng)的實施方法。在鏡像的過程中,所選擇的數據目標可以不間斷地使用,因為對操作系統(tǒng)來說該鏡像是透明的。連續(xù)的離散數據塊的復制是異步和以后臺方式執(zhí)行的。
本發(fā)明的一個目的是提供依照適用于所選擇的數據目標從至少一個本地存儲設備(SDL)到至少一個遠程存儲設備(SDRx)的鏡像操作的方法和系統(tǒng)。至少有一個本地存儲設備是與一個第一處理裝置(HL)相耦合的,以及至少有一個遠程存儲設備是與一個第二處理裝置相耦合(HR)。至少有一個本地存儲設備、至少一個遠程存儲設備、第一和第二處理裝置是與一個由多個用戶、多個處理裝置和多個存儲設備所組成的網絡連通性相耦合。該方法和系統(tǒng)包括在第一和第二處理裝置中所運行鏡像功能;該鏡像功能包括用于凍結所選擇的數據目標的凍結過程,用于將所凍結的選擇數據目標復制到至少一個遠程存儲設備中的復制過程,允許使用和更新與運行鏡像功能相并行的選擇數據目標,以及,通過缺省的控制,重復運行用于對選擇數據目標的更新復制的鏡像功能,除非接受到鏡像中斷的命令,否則可以復制駐留在至少一個本地存儲設備中所選擇的數據目標以及依次更新到至少一個遠程存儲設備中。
本發(fā)明的另一目的是提供一種方法和系統(tǒng),可以適用于應用凍結作為數據源塊(SV)的選擇數據目標的凍結過程,創(chuàng)建至少一個本地輔助數據塊(卷)(AVL),使得指向所選擇的數據目標的更新重新指向與該本地輔助數據塊,所選擇的數據目標的各個信號數據目標對應于至少一個輔助數據塊以外的一個數據塊,在至少一個遠程存儲設備以外的各個遠程存儲設備中創(chuàng)建至少一個遠程數據塊,該數據塊對應于所創(chuàng)建的各個本地輔助數據塊,形成至少一個所產生的源數據塊的至少一個本地存儲設備,該設備包括所凍結的選擇數據目標和至少一個本地輔助數據塊,以及,應用將所凍結的選擇數據目標從至少一個所產生的數據塊復制到至少一個遠程存儲設備的復制過程。
鏡像功能可以同時應用于多個數據目標,和應用于從至少一個本地存儲設備鏡像到至少一個遠程設備,以及反之亦然。
本發(fā)明的另一目的是提供一種方法和系統(tǒng),可以適用于應用同時凍結多個數據目標的凍結過程,應用同時復制多個所凍結的選擇數據目標的復制過程,將駐留在一個本地存儲設備中的一個信號數據目標同時鏡像到多個遠程存儲設備中,將分別駐留在相同的多個本地存儲設備中的多個信號數據目標同時鏡像到一個遠程存儲設備中,將駐留在一個本地存儲設備中的多個信號數據目標分別同時鏡像到相同的多個遠程存儲設備中,以及,將駐留在多個本地存儲設備以外的各個本地存儲設備中的一個信號數據目標同時鏡像到一個遠程存儲設備中。
本發(fā)明還有一個目的是提供一種方法和系統(tǒng),可以適用于在所選擇的時間點上開始一個鏡像周期,凍結所選擇的數據目標,在至少一個本地存儲設備(SDL)中創(chuàng)建至少一個輔助數據塊(AVL)和在至少一個遠程存儲設備(SDRx)中創(chuàng)建至少一個遠程數據塊(RV),形成至少一個包含所凍結的選擇數據目標和本地輔助數據塊(AVL)的所產生源數據塊,以及,在選擇的時間點之后將所凍結的選擇數據目標從所產生的源數據塊復制到至少一個遠程數據塊中,直至復制完成為止,將更新的本地輔助數據塊重新指向所選擇的數據目標,通過與所產生的源數據塊的結合操作,允許在鏡像的過程中使用所選擇的數據目標,以及,利用缺省命令,重復在完成了復制到至少一個遠程存儲設備之后的下一個鏡像周期,除非接受到中斷鏡像的命令。
本發(fā)明還有一個目的是提供一種方法和系統(tǒng),可以適用于在完成了復制到至少一個遠程存儲設備(SDR)之后,在下一個時間點上開始下一個鏡像周期,凍結所產生的源數據塊,在本地存儲設備中創(chuàng)建一個最終的本地輔助數據塊和在至少一個遠程存儲設備中創(chuàng)建一個最終的遠程數據塊,形成一個包含倒數第二個所產生的源數據塊和一個最終本地輔助數據塊的最終所產生的源數據塊(AVL),以及,在下一個時間點之后將倒數第二個本地輔助數據塊復制到最終的遠程數據塊中,將更新的本地輔助數據塊重新指向所選擇的數據目標,通過與最終所產生的源數據塊的結合操作,允許在鏡像的過程中使用所選擇的數據目標,以及,在完成了復制到最終遠程數據塊之后將倒數最終本地輔助數據塊與所凍結的選擇數據目標相同步,利用第二處理裝置(HR)的命令,將至少一個最終的遠程數據塊與倒數第二遠程數據塊相同步,以及,利用缺省命令,重復在完成了復制到至少一個第二存儲設備之后的下一個鏡像周期,除非接受到中斷鏡像的命令。
本發(fā)明還有一個目的是提供一種方法和系統(tǒng),可以適用于在完成了復制倒數第二本地輔助數據塊之后,選擇另一個時間點,凍結所產生的源數據塊,在本地存儲設備中創(chuàng)建一個最終的本地輔助數據塊和在至少一個遠程存儲設備中創(chuàng)建一個最終的遠程數據塊,形成一個包含倒數第二所產生的源數據塊和最終本地輔助數據塊的最終所產生的源數據塊,以及,將倒數第二本地輔助數據塊復制到至少一個最終遠程數據塊中,將更新的最終本地輔助數據塊重新指向所選擇的數據目標,在與最終所產生的源數據塊的結合操作中,允許在鏡像過程中使用所選擇的數據目標,將倒數第二個本地輔助數據塊與所選擇的數據目標相同步,將至少一個最終遠程數據塊與倒數第二遠程數據塊相同步,以及,利用缺省命令,重復在完成了復制到至少一個第二存儲設備之后的下一個鏡像周期,除非接受到中斷鏡像的命令。
本發(fā)明還有一個目的是提供一種方法和系統(tǒng),可以適用于在至少一個遠程存儲設備中,存儲所完成的選擇數據目標的鏡像復制,該數據目標包括在完成倒數第二個本地輔助數據塊之前的復制時所輸入的更新內容。
本發(fā)明另外一個目的是提供一種方法和系統(tǒng),可以適用于只要是在最終本地輔助數據塊復制到最終遠程數據塊的過程中,就以最后所定義的時間的離散重復時間間隔來重復鏡像功能的操作,將更新與所重寫所選擇的數據目標相同步,以及,將最后的遠程數據塊與所重寫的倒數第二個所產生的第一遠程數據塊相同步。
附圖的簡要說明為了能更好地描述本發(fā)明以及顯示出在實踐上是如何實現本發(fā)明的,現在參照附圖進行討論,附圖包括

圖1是一例網絡連通性的實例,圖2顯示了凍結的過程,圖3是適用于在各種不同類型的I/O READ和I/O WRITE指令之間分類的流程圖,圖4說明了在開始了凍結過程之后針對源數據塊SV的I/O READ指令的流程,圖5顯示了在凍結命令之后包含數據更新的I/O WRITE命令的處理步驟,圖6顯示了I/O WRITE指令的步驟,它可適用于凍結時間開始之后沒有變化的數據,圖7提供了鏡像功能機理的基本概念,以及,圖8詳細說明了鏡像功能的各個步驟。
具體實施例方式
本發(fā)明通過離散數據塊的序列凍結和復制從而獲得一個選擇的數據目標能夠從一個本地存儲設備鏡像或復制到一個遠程存儲設備中。在鏡像的過程中,所選擇的數據目標可以不間斷地使用,因為對于操作系統(tǒng)來說,鏡像是透明的。連續(xù)的離散數據塊的復制是異步執(zhí)行的并且可以在后臺進行的。
鏡像包括在連續(xù)的鏡像周期中連續(xù)重復凍結和復制過程的連續(xù)性。只有最終所更新的鏡像內容保留在遠程存儲設備。各個信息的更新內容寫在以前內容的上面。當鏡像是以第一鏡像周期s=1開始時所存在的更新內容,就可以在大于兩個鏡像周期,s=3之后安全地加以存儲。
在本討論中所使用的術語較易與支持虛擬化的存儲區(qū)域網絡(SAN)有關。這類虛擬化SAN的虛擬數據塊可以包括一組數據目標,多個本地存儲設備,和多個遠程存儲設備。然而,為了便于理解該方法,可以認為一個系統(tǒng)只具有一個數據目標,一個本地存儲設備,和一個遠程存儲設備。
當進行鏡像功能的操作時,可采用凍結過程來凍結一個所選擇的數據目標,例如,作為一個源數據塊。同時,在該本地存儲設備中創(chuàng)建一個第一本地輔助數據塊,以及在遠程存儲設備中創(chuàng)建一個與所凍結的源數據塊具有相同大小的第一遠程數據塊。因為源數據塊是凍結著的且必須被凍結,所以它不能發(fā)生變化,但是它可以通過復制到遠程存儲設備的復制過程來復制。
在鏡像過程中可以使用所選擇的數據目標。在凍結的時候,操作系統(tǒng)OS創(chuàng)建一個包含所凍結的選擇數據目標和第一本地輔助數據塊所產生的源數據塊。I/O READ和/O Write操作可以訪問所產生的源數據塊。很顯然,只允許對所凍結的源數據塊進行讀操作,同時對所選擇數據目標的寫更新可重新指向第一本地輔助數據塊。
一旦所凍結的源數據塊鏡像到遠程存儲設備,則重復該凍結和復制過程。在所產生的源數據塊中的第一本地輔助數據塊是被新凍結的,并且同時,創(chuàng)建了一個第二本地輔助數據塊和一個第二遠程數據塊。該第二本地輔助數據塊可與原先所創(chuàng)建產生的源數據塊相疊加,以形成一個適用于操作系統(tǒng)所使用的新產生的源數據塊。接著,將所凍結的第一本地輔助數據塊復制到第二遠程數據塊。同樣,使用數據目標與最后所凍結的本地輔助數據塊相疊加的原先產生源數據塊,以形成最后所產生的源數據塊。從原理上說,鏡像功能執(zhí)行連續(xù)的凍結和復制過程將一個或多個本地存儲設備中的一個或一組數據目標復制到一個或多個其它或遠程存儲設備中。一種特殊的情況涉及到將包括駐留在一個本地存儲設備中唯一的一個單個數據目標的一個選擇數據目標鏡像到另外一個遠程存儲設備中。
鏡像功能能夠同時執(zhí)行多個鏡像操作。例如,兩個不同的數據目標,各個數據目標駐留在所說的在一個不同的本地存儲設備中的一個不同的數據塊中。很顯然,同時鏡像并不限制于兩個所選擇的數據目標。
鏡像功能也能夠進行交叉鏡像,這種交叉鏡像是與最后實例相并行的,可產生鏡像的兩個不同數據目標,一個駐留在本地存儲設備中,而另一個則駐留在遠程存儲設備中,對于鏡像而言,相當于到遠程存儲設備和到本地存儲設備中。交叉鏡像并不限制于同時鏡像兩個選擇的數據目標。
一般來說,鏡像功能可獲得數組數據目標從數個本地存儲設備鏡像到數個遠程存儲設備,以及兩個定向的交叉鏡像。鏡像的觀察表顯示出了包括I至VI的鏡像選擇,它適用于將直接鏡像與交叉鏡像相疊加,以適用于所有的I至VI的選擇。

鏡像觀察表實施本發(fā)明的模式參照由相同申請人所申請的共同待批專利申請PCT/IL00/00309,題為“在存儲網絡中的存儲虛擬化”的圖1,其內容引用于此作全面參考,以下稱之為’309專利。也參照本發(fā)明的圖1,該圖說明了一個網絡的連通性NET。與網絡連通性NET相耦合的有多個用戶U、諸如主機或服務器H或處理器的計算裝置,和諸如硬盤HD的存儲設備SD。在第一和本地處理裝置的控制下,可以發(fā)生從一個本地存儲設備到另一個由第二或遠程處理裝置所控制的遠程存儲設備的鏡像。例如,主機H4可以進行從一個存儲設備SDA到另一個由其它處理裝置H3所控制的存儲設備的鏡像。同樣,主機H1可以控制從第一硬盤HD1到與處理器H2相耦合的第二硬盤HD2的鏡像。采用同樣的方式,主機H2可以進行從第一硬盤HD2到第二硬盤HD3或另一個硬盤HD4的鏡像。所選擇的駐留在多個存儲設備中的數據目標的鏡像會影響一個或多個存儲設備。在網絡連通性上至少需要兩個處理裝置和至少兩個存儲設備一個是用于從其進行復制的本地存儲設備和另一個是用于寫入其中的遠程存儲設備。
正如所闡述的,一個數據目標從一個存儲設備到另一個存儲設備的鏡像需要應用連續(xù)的凍結和復制過程。然而,在鏡像的同時不能妨礙網絡連通性的操作。因此,以下的討論首先說明凍結過程,隨后說明在凍結過程中所執(zhí)行的系統(tǒng)操作,最后說明復制過程。
凍結過程凍結過程的圖形說明正如圖2從2a至2d分段描述。水平軸指時間,且以t=0開始。
假定鏡像功能是對至少兩個處理裝置進行操作的,例如,一個第一處理裝置和第二處理裝置,可分別表示為HL和HR,它們與網絡連通性NET相耦合。一個第一存儲設備SDL和至少一個第二處理裝置SDRx(其中,x表示特殊的存儲設備)可分別稱之為本地存儲設備和至少一個遠程存儲設備,并且與網絡連通性NET相耦合。因此,至少一個遠程存儲設備SDRx可以包括一個第一遠程存儲設備SDR1,一個第二遠程存儲設備SDR2以及其它等等。
所指定的本地和遠程都可以用于起源和目的,這并不意味著對存儲設備的物理位置存在著任何限制。于是,也就是說,本地和遠程存儲設備都可以駐留在與SAN相耦合或者與主機H相耦合的相同或不同的存儲設備中,其中不同的存儲設備可以相互鄰近或各自在相對的另一邊。可以從本地存儲設備復制到一個或多個遠程存儲設備。任何存儲設備都可以指定其中一個名稱,但是當從其中鏡像時只存在唯一的一個本地存儲設備。
從開始起,包含了凍結過程和復制過程的鏡像功能接受需要凍結所選擇的數據目標的指示。正如圖2中的階段2a所說明的,在一個給定的時間間隙,在時間t=1,凍結過程接受將一個所選擇的數據目標凍結成一個源數據塊SV的請求。因此,所“凍結”的源數據塊SV就因此限制為“只讀”,這就不能再改變源數據塊的內容了?,F在,所凍結的源數據塊SV就可以進行復制,正如以下所討論的那樣。
在保持鏡像功能對OS透明的同時,允許數據目標的使用。在時間t=1源數據塊SV凍結的同時,凍結過程也創(chuàng)建一個第一輔助的,也可能是虛擬的,局部數據塊,并以本地輔助數據塊1或AVL 1來表示。所凍結的源數據塊SV和本地輔助數據塊一起形成了一個產生的源數據塊。從操作系統(tǒng)OS的觀點來看,所產生的源數據塊可以視為原始的選擇數據目標且可以透明地使用。
依次,從凍結源數據塊SV的瞬間開始,由本地處理裝置所指向凍結源數據塊的WRITE操作由鏡像功能重新指向駐留在所產生的源數據塊中的本地輔助數據塊1 AVL 1。于是,只要讀操作是與凍結源數據塊SV內容的原始不變的部分有關,就允許進行READ操作。對凍結源數據塊SV的寫操作重新指向本地輔助數據塊1,因為不然的話,就會影響凍結源數據塊SV內容的變化。鏡像功能,和凍結過程,都駐留在本地和遠程處理裝置中,并且允許中斷指向凍結數據目標的I/O命令,正如以下有關系統(tǒng)操作的討論。改變指向本地輔助數據塊1 AVL1的WRITE操作可以定義成更新。值得注意的是,一個本地輔助數據塊從創(chuàng)建開始直至發(fā)生下一次凍結時始終保持可操作性。換句話說,直至創(chuàng)建下一個本地輔助數據塊。此外,有關處理裝置的性能,也僅僅受到只處理路由指令的凍結功能的少許影響,例如,I/O READ和I/O WRITE指令的重新指向的影響。
參照圖2的階段2b,在時間t=2,在凍結源數據塊SV復制之后,就進行下一個凍結,并且應用于本地輔助數據塊1 AVL1。同時,還采用與所討論的本地輔助數據塊1 AVL1相同的方法來創(chuàng)建了一個新的本地輔助數據塊。與此并行的是,現在使得一個新產生的源數據塊包含了原先所產生的源數據塊和另一本地輔助數據塊2 AVL2。現在,就能復制在凍結本地輔助數據塊1 AVL1中所包含的更新內容,正如以下所討論的。另外,OS可以將最后所產生的源數據塊視為原始源數據塊,因為凍結過程是透明的。
在圖2所示的階段2c中,在凍結的本地輔助數據塊1 AVL1復制之后,在時間t=3凍結本地輔助數據塊2 AVL2,并且創(chuàng)建一個本地輔助數據塊3 AVL3?,F在可以復制原先已寫入凍結本地輔助數據塊2 AVL2的更新內容。如同以前一樣,最后所創(chuàng)建的或者最終的本地輔助數據塊3 AVL3與原先所產生的源數據塊一起成為新的或最終所產生的源數據塊的一部分。
于是,第三次所產生的源數據塊包括在時間t=1所凍結的第一源數據塊SV,凍結的本地輔助數據塊1和2,分別表示為AVL1和AVL2,以及最終的本地輔助數據塊3 AVL3。利用在時間t=3第一凍結源數據塊SV和凍結本地輔助數據塊1 AVL1已經通過鏡像進行復制了的事實,現在這最后兩個數據塊就可以同步。圖2的階段2d反映了這最后的步驟,在時間t=3,于是,在本地輔助數據塊1 AVL1中所包含的更新內容與第一凍結源數據塊SV相同步。刪除本地輔助數據塊1 AVL1,從而可節(jié)省存儲空間,同時可保持最終所產生的源數據塊的內容不變。現在,可允許進行凍結過程操作的鏡像功能繼續(xù)進行操作,也可以中斷操作。
當命令鏡像繼續(xù)進行時,則在時間t=4,盡管圖2中并沒有顯示,但是在完成了本地輔助數據塊2 AVL2的復制之后,就可以使一個新的本地輔助數據塊變成為最終的本地輔助數據塊。同時,開始倒數第二個本地復制數據塊AVL的復制,在這種情況下是本地輔助數據塊3 AVL3的復制。與此同時,駐留在之前倒數第二個本地輔助數據塊AVL中的更新內容,即,本地輔助數據塊2 AVL2中的更新內容可與第一凍結源數據塊SV相同步?,F在就可以刪除本地輔助數據塊2 AVL2。很顯然,通過結合了包括最后所產生的源數據塊和最終的本地輔助數據塊的最終所產生的源數據塊,就可允許連續(xù)使用數據目標。
凍結的數據結構當將源數據塊的凍結安排在時間t=1時,則新的凍結源數據塊就可以隨意分成依次編號的1MB的字段或小塊,例如,在凍結表1中所列的這些小塊都是在本地輔助數據塊1 AVL1中的凍結時間所創(chuàng)建的。在凍結表1中項目總數等于所凍結源數據塊SV的容量,且以MB來表示。如果所進行的劃分不能產生整數,則在凍結表中所列的小塊的數目可以循環(huán)到下一個整數。凍結表1駐留在本地輔助數據塊1中并且是將OS指向的I/O指令重新指向數據目標的工具。
凍結命令在t=1開始后,指向數據目標的所有I/O WRITE指令的更新內容都又循環(huán)到本地輔助數據塊1。I/O READ命令可以分成為兩類。第一類READ命令是與從t=1凍結開始以來不能改寫的數據有關,并且不能變更地駐留在源數據塊SV中。第二類READ指由WRITE命令所更新過的數據,這是在凍結之后所發(fā)生的更新,因此發(fā)送到本地輔助數據塊1。
為了在凍結的源數據塊SV和本地復制數據塊1之間形成聯系,就需要一個映射表。例如,當OS命令對凍結之后的所更新的數據進行I/O READ指令時,就需要在本地輔助數據塊中的數據的地址。

凍結表1參照凍結表1,首先是左邊一列顯示了源數據塊SV的數據小塊的序號,其次是右邊一列顯示了指向各個數據小塊所映射的地址的索引。在凍結表1的左列第一行中的數據小塊序號0的索引為在同一行中右列的-1。根據約定,索引-1表示原始的條件或從最后的凍結以來沒有變化的條件。于是,正被討論的數據小塊,這里是數據小塊0,從凍結時間t=1開始就不能更新了,并因此可在源數據塊SV中發(fā)現有關的數據。任何不是-1和大于或等于0的索引則表示了在凍結時間t=1之后所指定的特殊數據小塊需要更新的地址和事實。不是-1的表示則是I/O指令重新指向在最終本地輔助數據塊中將發(fā)現的特定地址。
值得注意的是,適用于I/O指令循環(huán)至凍結源數據塊SV和循環(huán)至本地輔助數據塊的機制能夠無妨礙地連續(xù)使用數據目標。
凍結過程凍結過程可根據三種不同的條件使得I/O指令能指向數據目標。為了能簡化討論,只以第一凍結過程作為參考,于是,就只產生一個凍結的源數據塊Sv和一個第一本地輔助數據塊。
1.READ指令或者是指向源數據塊SV(只要凍結之后沒有變化)或者是指向本地輔助數據塊。
2.適用于在t=1凍結開始之后一個數據小塊更新的WRITE指令指向本地輔助數據塊。
3.適用于駐留在源數據塊SV中未變化的數據小塊的WRITE指令需要復制到本地輔助數據塊中的數據小塊,并且可以隨后將其寫入到本地輔助數據塊中。
I/O指令的分解以下將討論適用于根據三種以上所提及的條件來分解I/O指令的時序。
參照圖3,在步驟D1,OS等待I/O指令,并且當接受到這類指令時,在步驟D2的測試區(qū)分,READ和WRITE指令之間的差異。對于READ指令來說,則以是(YES)來表示,控制轉入步驟D3,進一步的控制如圖4所示步驟A1所示,以下將作進一步討論。對于WRITE指令的否(NO)表示的情況來說,控制就通過處理寫I/O指令的步驟D4,轉入步驟D5,以確認是否存在著原有的更新或者這是否是凍結之后的第一次WRITE。如果存在著原有的更新,則控制就轉入到步驟D6,以進行圖5所示步驟B1的處理,以下將作進一步的解釋。在沒有原有更新的情況下,則控制流程就轉入到步驟D7,這就使I/O WRITE指令能在沒有原有更新的條件下轉入到以下步驟C1。
讀指令圖4說明了適用于在凍結開始之后將I/O READ指令發(fā)送至數據目標的過程。由“等待I/O”第一步驟A1所接受到的指令經過步驟A2,在步驟A2,指令在尋找READ指令中經過濾。在否(N)的情況下,就將WRITE指令轉發(fā)至步驟A3,以進入到圖5所示的步驟B1。在是(Y)的情況下,則將READ命令發(fā)送至步驟A4。
如果凍結的源數據塊SV可分成1MB的數據小塊的話,則在步驟A4計算數據小塊的序號并且尋找在凍結表中的索引。數據小塊的序號可通過地址數值與1MB的整數除法來計算,并且進一步除以512就能獲得扇區(qū)數。即,1MB/512=(1024比特×1024比特)/512。該結果發(fā)送至下一步驟A5。同時,當數據跨越了一個數據小塊的邊界時,便提供了多個數據小塊,正如在地址中發(fā)現的信息所指出的那樣。該信息一直表示著I/O指令的起始位置和長度。隨后,OS就提供所計算的數據小塊的序號來尋找在凍結表中的地址。
步驟A5區(qū)分指定凍結之后未改變的數據的索引-1和其它索引之間的差異。零和正的整數數值表示數據駐留在本地輔助數據塊中。
如果轉入到步驟A5的數據小塊的序號是-1,則將READ命令發(fā)送至步驟A6,以“從源數據塊中讀取”。否則,READ命令就指向在本地輔助數據塊中的地址,正如在凍結表1中所看到的,依此作為步驟A7。在完成之后,步驟A6和A7都將控制返回到圖3所示的第一步驟D1。
寫指令圖5顯示了I/O WRITE指令對本地輔助數據塊的數據小塊的處理步驟,它包含了在凍結命令之后的數據更新。
在第一步驟B1中,過程等待接受一個I/O命令,隨后轉入下一步驟B2。在B2,濾波器確認該I/O命令是READ命令還是WRITE命令。是I/O READ命令則轉入到步驟B3,采用與圖4所示步驟A1的I/O READ命令相似的方式進行處理,然而,是I/O WRITE命令就指向步驟B4,在步驟B4,正如以上所解釋的,采用除法來計算數據小塊的序號以訪問凍結表1。WRITE命令應該是跨越多個單個的數據小塊和跨過數據小塊的邊界,因此就能夠獲得兩個和多個數據小塊。
一個和多個數據小塊會經過步驟B5,在步驟B5中,查詢凍結表1以找到對應于正在處理的數據小塊的索引。如果所發(fā)現的數值是-1,則控制就轉入到步驟B6,以類似于駐留于源數據塊SV中沒有改變的數據的方式來處理。在從凍結表1發(fā)現零或正的索引數值的情況下,則由步驟B7,使指令指向本地輔助數據塊,用于寫入特定的地址。從步驟B6和B7開始,控制就返回到圖3所示的I/O等待步驟D1。
圖6解釋了一個I/O WRITE指令的步驟,該指令適用于在時間t=1凍結之后沒有改變的數據。第一步驟C1是“等待I/O”指令,一旦接受到該指令,則進入到步驟C2,進行“寫I/O”濾波器的操作。如果所接受到的I/O指令不是“寫I/O”指令,則控制就轉入到步驟C3,以類似于圖4所示步驟A1的“讀I/O”方式來處理。否則,對于寫指令來說,就在步驟C4計算數據小塊的序號。也要處理跨越一個數據小塊邊界的I/O命令,使之產生至少兩個數據小塊的序號。
依次,步驟C5使用所計算得到的數據小塊的序號來尋找凍結表并且區(qū)分沒有改變數據和更新數據之間的差異。在后一種情況中,控制就轉入到步驟C6,指向I/O使之采用類似于圖5所示步驟B1原先所更新的寫I/O命令的方式來處理。
對于沒有改變的數據來說,控制就轉入到步驟C7。然而,在將數據寫入輔助數據塊之前,要將數據寫入到凍結之后第一次需要更新的數據小塊中,因此就必須找到空的存儲器位置。因此,在步驟C7,首先是尋找在本地輔助數據塊中的第一個空的數據小塊。找到之后,就改變對應于在步驟C4中所計算的數據小塊序號的索引,不再表示為-1,而是在本地輔助數據塊中的地址。實踐中,必須是首先從源數據塊SV向本地輔助數據塊復制一個和多個數據小塊,并且隨后只是采用WRITE指令來重新寫入,以用于更新。
控制從步驟C7轉入到步驟C8,在步驟C8,確認是否已經在本地輔助數據塊中找到了多個存儲空間。對于支持虛擬化的SAN中的多個存儲空間來說,就請求轉入到虛擬應用。根據’309專利的披露,該請求可轉入虛擬應用,以尋求在本地輔助數據塊中擴大存儲空間,作為步驟C9的工作。對于其它環(huán)境來說,則由本地主機HL的OS所運行的存儲位置程序來處理另外的存儲空間。
根據這一情況,不需要另外存儲空間的控制從步驟C8轉入到步驟C10,而從步驟C9轉出的控制在擴展了存儲空間之后轉入到步驟C10,在步驟C10,將所完成的數據小塊從源數據塊SV復制到本地輔助數據塊中。一旦完成了該項工作之后,控制就轉入到步驟C11。
在最終的步驟C11中,更新凍結表1以及對應于在步驟C4中所計算的數據小塊的序號,不再是數值-1,而是輸入了在本地輔助數據塊中的地址。從步驟C11開始,控制返回到圖5所示的步驟B1,或者是步驟C6。值得注意的是,本地輔助數據塊幾乎都具有與源數據塊SV相同數量的數據小塊。當源數據塊SV的所有數據小塊、數據片段都予以寫入時,就會發(fā)生這情況。I/C WRITE指令更新源數據塊的相同數據小塊并重新寫入隨后丟失的原先WRITE命令。
復制過程參照圖2所示階段2a有關源數據塊SV凍結的討論,它闡述了在發(fā)生凍結之后復制源數據塊。于是,鏡像功能可以命令將所凍結的源數據塊SV從所定義的一個本地存儲設備且駐留源數據塊的起源的存儲設備復制到稱之為遠程存儲設備的任何其它存儲設備中。該遠程存儲設備也可能是在同一位置上或者是在遠程位置上的其它存儲設備,或者是由在多個位置上的許多遠程存儲設備所組合。甚至于可以選擇遠程存儲設備作為保存源數據塊SV的相同存儲設備。
鏡像功能可以是連續(xù)重復,也可以在任何凍結和復制周期之后停止。
從所凍結的源數據塊SV到遠程存儲設備的復制并不會加重處理裝置資源的負載和減慢通信速度,或者對處理裝置的操作產生其它干擾,因為它只需要提供凍結和復制的過程。
圖7以基本概念的方式說明了鏡像功能的機制,同時還參照圖8提供了更加詳細的討論。
在圖7中,左列與本地存儲設備SDL有關,它表示數據目標駐留在源數據塊SV中,而刪除的部分顯示了時間軸t。右列表示了與這些本地存儲設備所并行發(fā)生的事件,并且描述了在遠程存儲設備SDRx中的處理,其中x[1,2,...,n]可以從至少一個x有效的存儲設備中選出。在以下至少一個存儲設備的情況下采用了“遠程存儲設備SDRx”的命名。
圖7所示的階段7A顯示了在鏡像之前的情景。在左列中,時間t=0所創(chuàng)建的源數據塊SV包含著數據目標,同時鏡像周期計數器設置為零。在右列中沒有任何事件。
在階段7B,在左列中,鏡像計數器增1為s=1并且在時間t=1命令源數據塊SV凍結。同時,在本地存儲設備SDL中創(chuàng)建第一本地輔助數據塊1 AVL1,從而指向對數據目標的更新。更新是來自計算裝置HL且重新指向本地輔助數據塊的那些I/O WRITE指令。
與t=1凍結的同時,在遠程存儲設備SDRx中創(chuàng)建了第一遠程數據塊RVx/s,這里是RVx/1,正如圖7的右列所示,該數據塊的大小與源數據塊SV相同。隨后,以后臺方式復制所凍結的源數據塊SV,并且寫入遠程數據塊RVx/1。
正如以上所闡述的,凍結過程將所凍結的數據目標分成為諸如1MB的數據小塊。一旦創(chuàng)建了一個本地輔助數據塊和所產生的源數據塊之后,也因此而創(chuàng)建了一個凍結表,該凍結表與源數據塊和更新之間的關系有關。只要需要,該凍結表就可將數據目標的I/O指令重新指向本地輔助數據塊。
同時,OS與源數據塊SV和第一本地輔助數據塊AVL1兩者保持操作上的結合,一起形成結果的源數據塊。要注意,鏡像是在后臺來執(zhí)行的,不需要等待來自遠程存儲設備的I/O指令。因此,本地處理器HL或網絡設備的工作速度均未受削弱。
在圖7所示的階段7C,鏡像計數器增1為s=2,并且在t=2時,在源數據塊SV復制到第一遠程數據塊RVx/1的操作過程中或之后,接受第二個凍結命令。同時,凍結第一本地輔助數據塊AVL1以及在遠程存儲設備SDRx中創(chuàng)建第二遠程數據塊RVx/2,如右列所示,它的大小與第一本地輔助數據塊AVL1相同。在本地存儲設備SDL中創(chuàng)建了第二本地輔助數據塊2 AVL2,從而使得更新指向數據目標。
由凍結過程自動產生一個凍結表,它駐留在各個本地輔助數據塊中,以便于OS的使用。因此,第一本地輔助數據塊AVL1包括了有利于第二計算裝置HR所使用的凍結表,可以復制和寫入第二遠程數據塊RVx/2。
同時,與新的凍結表一起創(chuàng)建了新產生的源數據塊。該新的源數據塊包含著原先產生的源數據塊并附加了第二本地輔助數據塊AVL2。于是,OS可以與新產生的源數據塊相通信,以在鏡像的并行過程中使用該數據目標。
在時間t=2,在階段7C的左列中,本地存儲設備SDL包含著源數據塊SV,第一本地輔助數據塊AVL1和第二本地輔助數據塊AVL2。同時,在該右列中,遠程存儲設備SDRx包含著第一和第二遠程數據塊。
鏡像計數器仍在s=2,但是是在階段7D,,稱之為源數據塊SV的所凍結的數據塊是與第一本地輔助數據塊相同步的,從而原先寫入到第一本地輔助數據塊AVL1中的更新就輸入到了源數據塊SV。駐留在第一本地輔助數據塊AVL1中的凍結表可以用于正確的同步更新。第一本地輔助數據塊AVL1幾乎包含了許多與源數據塊SV類似的數據小塊和片段,它可以復制以重新寫入源數據塊SV的內容并保持原有的大小?,F在就可刪除第一本地輔助數據塊AVL1。
對應于駐留在第二本地輔助數據塊AVL2中的凍結表中數據小塊序號的索引可將索引數值設置為-1,以反映同步數據塊的狀態(tài)。并行處理的是,第二遠程數據塊RVx/2是與第一數據塊RVx/1相同步的,它同樣保持著與源數據塊SV同樣的大小。在遠程存儲設備上所進行同步是由第二處理裝置HR使用凍結表與最后復制的本地輔助數據塊一起復制來完成的。于是,現在可以刪除第二遠程數據塊RVx/2。
通過刪除了現在已經變成為不需要的本地輔助數據塊和遠程數據塊,使得同步限制了在本地存儲設備SDL和遠程存儲設備SDRx中所需要的存儲空間。
階段7E是另一凍結階段,它等效于階段7B和7C。在第一計算裝置HL上的鏡像周期計數器增1為s=3,并且在時間t=3時執(zhí)行第二本地輔助數據塊AVL2的凍結。此外,由本地存儲設備SDL創(chuàng)建第三本地輔助數據塊AVL3。同時,在遠程存儲設備SDRx中創(chuàng)建第三遠程數據塊RVx/3,正如右列所示,它的大小與第二輔助數據塊AVL2相同?,F在,最終所產生的源數據塊包含著原先產生的源數據塊和最終的本地輔助數據塊AVL3。
類似于之前,最后所凍結的輔助數據塊,這里是AVL2,被復制到最后所產生的遠程數據塊RVx/3中。在確認對第一計算裝置HL的復制完成之后,給出的命令使得最后所凍結的本地輔助數據塊AVL2與源數據塊SV相同步。
在遠程存儲設備SDRx中,在第二計算裝置HR的控制下,第二遠程數據塊RVx/2是與第一遠程數據塊RVx/1相同步的。值得注意的是,在第三鏡像周期s=3時,遠程存儲設備SDRx現在包含著在第一鏡像周期s=1中所存在的產生的源數據塊的復制。在s=T的鏡像周期中,在遠程存儲設備SDRx中所保存的復制始終時在時間s=T-2所產生的源數據塊的復制。在所有的時間上大都會記載著在遠程存儲設備中最后所保持的復制和在本地存儲設備SDL中最終所產生的源數據塊之間的兩個鏡像周期的變化。
接著,繼續(xù)以上述討論的同樣方式來處理。
值得注意的是,命名遠程存儲設備x為SDRx,該名稱用于區(qū)別于本地存儲設備在同一位置或在遠程位置上的存儲設備。于是,使用相同的鏡像過程,從駐留在本地位置上的本地SANL中的源數據塊不僅有可能鏡像到在本地位置上的存儲設備中,還有可能鏡像到裝備在遠程位置上的存儲設備中。同樣,交叉鏡像以及同時交叉鏡像都是有可能的。
控制的鏡像流程圖8說明了可應用于任何網絡連通性的鏡像功能的連續(xù)步驟。對于存儲區(qū)域網絡或者SAN來說,參照’309專利的SAN虛擬化裝置,該SAN至少包括一個本地主機HL,一個遠程主機HR和兩個獨立的存儲設備,本地和遠程,這些都可參照與圖8但是圖8并沒有顯示。一個本地主機HL和一個遠程主機HR的相同最小化,以及兩個存儲設備都是其它網絡連通性所必需的。正如以上所闡述的,為了能區(qū)分在兩個存儲設備之間的差異,這兩個存儲設備分別被指定為本地存儲設備SDL和遠程存儲設備SDRx。對存儲設備所給出的名稱與它們的位置無關。
在圖8的步驟202中,給出的命令是鏡像所選擇的源數據塊SV,該數據塊駐留在與本地主機HL相耦合的本地存儲設備SDL中。可以由用戶輸入該命令,或者由系統(tǒng)管理員來輸入該命令,或者由操作系統(tǒng)OS來輸入該命令,或者由軟件命令來輸入該命令,在圖8中并沒有顯示。該鏡像指向一個和多個被稱為遠程存儲設備x,SDRx的存儲設備,其中x是一個整數,它可以從1到n??刂剖紫绒D入到步驟204,在步驟204,鏡像周期計數器s可以設置為s=1,并且繼續(xù)至步驟206。
步驟206應用凍結過程在鏡像周期s=1中在本地存儲設備SDL中創(chuàng)建一個包含著所凍結源數據塊SV和新創(chuàng)建的第一本地輔助(虛擬)數據塊AVL/s的所產生的源數據塊。相并行的是,控制轉入到步驟208,它命令在遠程存儲設備x中的SDRx中創(chuàng)建第一遠程虛擬數據塊RVx/s,這里稱之為RVx/1,它的大小與源數據塊SV相同。在SAN的情況下,虛擬數據塊的創(chuàng)建和管理,可簡稱為數據塊的創(chuàng)建和管理對于OS來說都是透明的,并且在物理存儲設備中的數據存儲采用在共同待審查的’309專利中所解釋的方式來操作。對于其它非虛擬的環(huán)境來說,就需要使用由本地主機HL運行存儲定位程序來完成。
現在控制就可轉入到步驟210,在步驟210確認步驟208以來的完成情況,以確保第一遠程數據塊RVx/s的有效性。如果確認是否定的,則開始到步驟210的新的檢查環(huán)路。否則,在步驟212,獲得對步驟210的肯定答復,命令就開始將源數據塊SV復制到第一遠程(虛擬)數據塊RVx/s,并且控制就轉入到步驟214。
到步驟214之后,作為對步驟212的補充,將源數據塊SV寫入到第一遠程數據塊RVx/1,并且在結束時,對計算裝置HL確認其完成情況,由計算裝置HL在步驟216以類似于步驟210的方式來進行完成的確認。正如以前那樣,否定的結果會在步驟216引起再次通過完成確認的環(huán)路,而肯定的結果將使命令轉入到步驟218,在步驟218鏡像周期計數器增1,即,s=s+1,這里為s=2。
現在控制將轉入步驟220,以繼續(xù)鏡像。在第一次創(chuàng)建的本地存儲設備SDL中,對s=2來說,指定為AVL/s的最終本地輔助數據塊是第二本地輔助數據塊AVL2,并且隨后凍結倒數第二個本地輔助數據塊AVL/s-1,這里是AVL1。也采用以上所討論的方式來創(chuàng)建一個最終所產生的源數據塊。
現在對遠程存儲設備SDRx的控制將轉入到步驟222,在步驟222中,創(chuàng)建第二遠程數據塊,稱之為RVx/s,這里是RVx/2,它的大小與倒數第二個本地輔助數據塊AVL1相同,這里可將其稱之為AVL/s-1。完成的確認發(fā)送至步驟224。
當由步驟224完成確認接受到第二遠程虛擬數據塊RVx/s的創(chuàng)建確認時,控制就轉入到步驟226,否則控制就重復完成的確認。
在步驟226,給出命令,將所凍結的倒數第二,這里是第一,本地輔助數據塊AVL/s-1復制到最終,這里是第二,遠程數據塊RVx/s中。步驟228執(zhí)行從第一本地輔助數據塊AVL/s-1到第二遠程數據塊RVx/s的寫操作,一旦完成了寫操作,就在步驟230中得到確認。
值得注意的是,在這一階段中,所確認的源數據塊SV和第一本地輔助數據塊AVL1實際上都是鏡像到在RVx/1和AVRx/2中的SDRx。同時,第二凍結是在本地主機HL上進行操作的,并且新的更新重新指向本地輔助虛擬數據塊AVL2。
實踐中,沒有其它理由將第一本地輔助數據塊AVL1或第二遠程數據塊RVx/2單獨操作,因此,這些(虛擬)數據塊可以分別與源數據塊SV和第一本地數據塊RVx/1相同步。在步驟232和234中分別進行這類同步和統(tǒng)一,從而只有源數據塊SV和第一遠程虛擬數據塊RVx/1保持著有效性,而第一本地輔助數據塊AVL1和第二遠程數據塊RVx/2都被刪除。如果希望的話,就可在步驟236終止鏡像環(huán)路并且在步驟238結束,否則的話,則將控制轉移到步驟218繼續(xù)鏡像。
如果鏡像環(huán)路沒有中止,則控制就返回到步驟218,在步驟218鏡像計數器再次增1,使之為S=3。則過程就重復步驟218到236所包括的環(huán)路,這就繼續(xù)鏡像,否則的話,就根據命令來結束鏡像。
以上所討論的方法有可能實現將單個的或多個數據目標從一個或多個存儲設備中鏡像到一個或多個遠程存儲設備中。以下表2呈現了不同可能性以及對本地輔助數據塊和遠程數據塊的一些認識。

表2以上所討論的鏡像功能以表2中的行I來描述。這是適用于實現將一個數據目標從一個本地存儲設備鏡像到一個遠程存儲設備的最簡單和最基本的鏡像方式。對于各個鏡像周期來說,都會創(chuàng)建一個本地輔助數據塊AVL和一個遠程數據塊RVx。
例如,在行II中,一個數據目標存儲與一個本地存儲設備SDL中,用于鏡像多個遠程存儲設備SDRx,其中x接受特定存儲設備的身份標識,這就需要在各個鏡像周期中創(chuàng)建等于多個遠程存儲設備數量的遠程數據塊的序號。于是,如果需要對四個遠程存儲設備SDR1至SDR4進行鏡像,則鏡像功能就應用于凍結過程,如同行I所示,接著與四次(各個遠程存儲設備各一次)凍結過程的同時進行復制過程的操作。于是,經過兩個連續(xù)鏡像周期之間的時間間隔,在完成了復制和寫入所有四個存儲設備之后,就開始下一個鏡像周期。各個鏡像周期都需要一個本地輔助數據塊和四個遠程數據塊RVx,其中例如x的范圍是從1至4。本地輔助數據塊的最小數量和由鏡像功能在各個鏡像周期中所創(chuàng)建的遠程數據塊的最小數量如表2的第三行和最后一行所顯示。很顯然,遠程存儲設備的數量可以與整數相乘。因此,可以獲得8,12,16等等遠程存儲設備的鏡像。
表2的行III需要將以單個數據目標駐留在本地存儲設備SDL中的所選擇的數據目標以一組數據目標的方式鏡像到一個遠程存儲設備SDRx。于是,可以通過同時凍結所有的單個數據目標來應用行I所描述的鏡像功能。例如,如果所選擇的數據目標是一組三個單個的數據目標,則同時凍結這三個目標,并且隨后將各個復制到遠程存儲設備SDRx。可以在寫入到存儲設備SDRx完成之后再開始下一個鏡像周期。
行IV呈現了將一個包含了例如駐留在三個不同本地數據塊SDLi中的三個數據目標的所選擇數據目標鏡像到一個遠程存儲設備SDRx的情況,其中,i=1,2,和3。同樣,凍結過程可同時應用于三個單個的數據目標,并且行I的方法也可以應用于三個單個數據目標中的每一個。在對目的遠程存儲設備SDRx的最后寫入操作完成之后將開始下一個鏡像周期。
將行V應用于如同行III方法的凍結過程以及應用于如同行II方法復制到許多遠程存儲設備的復制過程。
在行VI中顯示了一個實例,該實例適用于包含著駐留在一組存儲設備中的一組單個數據目標的所選擇數據目標的鏡像,其中單個數據目標的數量等于目的遠程存儲設備的數量。對多個數據目標的同時凍結類似于在行III中所應用的凍結過程,并且復制過程也類似于在行II中所應用的復制過程。
很重要的是。應該注意到,凍結過程是同時對所有多個要凍結的數據目標的,無論它是屬于相同選擇的數據目標還是存儲于多個本地存儲設備中。當要進行多個復制時,例如,對許多遠程存儲設備進行復制時,就由完成最后復制的復制過程所需要的時間來規(guī)定下一個鏡像周期的周期時間。
還值得注意的是,采用行I和行II所包括的方法,同時進行從本地到遠程存儲設備和相反的交叉鏡像也是可行的。作為行I方法的一個簡單實例,本地主機HL和遠程主機HR都可以進行鏡像功能的操作,各個主機都可以作為本地主機,而另一個主機可作為遠程主機。
本領域的熟練技術人員應該理解的是,本發(fā)明并不限制于以上已經特別顯示和描述的內容。例如,可以考慮由更多的選擇數據目標,本地和遠程存儲設備的組合。然而,本發(fā)明的范圍將由所附加的權利要求所定義,并且包括了以上所討論的各種不同性能的組合和子組合以及本領域的熟練技術人員根據上文所討論的內容所進行各種變化和改進。
權利要求
1.一種方法,它適用于將一個所選擇的數據目標從至少一個本地存儲設備(SDL)鏡像到至少一個遠程存儲設備(SDRx),其中,至少一個本地存儲設備耦合于第一處理裝置(HL)和至少一個遠程存儲設備耦合于第二處理裝置(HR),并且至少一個本地存儲設備,至少一個遠程存儲設備,第一和第二處理裝置耦合于一個包括多個用戶,多個處理裝置和多個存儲設備的網絡連通性,該方法所包括的步驟在第一處理裝置和在第二處理裝置運行鏡像功能,該鏡像功能包括一個適用于凍結所選擇數據目標的凍結過程,一個適用于將所凍結的選擇數據目標復制到至少一個遠程存儲設備的復制過程,在運行鏡像功能的同時允許所選擇的數據目標的使用和更新,采用缺省的方法,命令重復運行適用于將更新內容復制到所選擇的數據目標的鏡像功能,除非接受到鏡像終止的命令,從而復制駐留在至少一個本地存儲設備中的所選擇的數據目標并且連續(xù)更新到至少一個遠程存儲設備中。
2.依據權利要求1所述方法,其特征在于,所述鏡像功能還包括步驟應用所述凍結過程,將所選擇的數據目標凍結成一個源數據塊(SV),創(chuàng)建至少一個本地輔助數據塊(AVL),使得所更新的地址重新指向所選擇的數據目標,選擇數據目標以外的各個單個數據目標對應于至少一個本地輔助數據塊以外的一個本地輔助數據塊,在至少一個遠程存儲設備以外的各個遠程存儲設備中創(chuàng)建至少一個遠程數據塊,使之對應于所創(chuàng)建的各個本地輔助數據塊,在至少一個本地存儲設備中形成至少一個所產生源數據塊,它可以包括所凍結的選擇數據目標和至少一個本地輔助數據塊,以及,應用所述輔助過程,用于將所凍結的選擇數據目標從至少一個所產生的數據塊中復制到至少一個遠程存儲設備中。
3.依據權利要求1所述方法,還包括步驟同時對多個數據目標應用鏡像功能。
4.依據權利要求1所述方法,還包括步驟同時從至少一個本地存儲設備鏡像到至少一個遠程存儲設備,且反之相反。
5.依據權利要求2所述方法,其特征在于,所述鏡像功能還包括步驟應用所述凍結過程,用于同時凍結多個數據目標。
6.依據權利要求2所述方法,其特征在于,所述鏡像功能還包括步驟應用所述復制過程,用于同時復制多個所凍結的選擇數據目標。
7.依據權利要求1或2所述方法,還包括步驟同時將駐留在一個本地存儲設備中的一個單個數據目標鏡像到多個遠程存儲設備中。
8.依據權利要求1或2所述方法,還包括步驟同時將多個單個的數據目標從一個本地存儲設備鏡像到一個遠程存儲設備中。
9.依據權利要求1或2所述方法,還包括步驟同時將駐留在相同的多個本地存儲設備中的多個單個的數據目標鏡像到一個遠程存儲設備中。
10.依據權利要求1或2所述方法,還包括步驟同時將駐留在一個本地存儲設備中的多個單個數據目標鏡像到相同的多個遠程存儲設備中。
11.依據權利要求1或2所述方法,還包括步驟同時將駐留在多個本地存儲設備以外的各個本地存儲設備中的一個單個的數據目標鏡像到一個遠程存儲設備中。
12.依據權利要求1所述方法,其特征在于,鏡像還包括步驟在一個選擇的時間點上開始一個鏡像周期,凍結所選擇的數據目標,在至少一個本地存儲設備(SDL)中創(chuàng)建至少一個本地輔助數據塊(AVL)以及在至少一個遠程存儲設備(SDRx)中創(chuàng)建至少一個遠程數據塊(RV),形成至少一個包括所凍結的選擇數據目標和本地輔助數據塊(AVL)的所產生的源數據塊,以及,將所凍結的選擇數據目標從所產生的源數據塊復制到至少一個本地輔助數據塊中,直至復制完成為此,將針對本地輔助數據塊的更新重新指向所選擇的數據目標,通過結合所產生的源數據塊的操作,允許在鏡像過程中使用所選擇的數據目標,以及,在完成對至少一個遠程存儲設備的復制之后,通過缺省命令重復下一個鏡像周期,除非接受鏡像終止的命令。
13.依據權利要求12所述方法,其特征在于,所述鏡像還包括步驟在完成對至少一個遠程存儲設備的復制之后的下一個時間點上,開始下一個鏡像周期,凍結所產生的源數據塊,在本地存儲設備中創(chuàng)建一個最終的本地輔助數據塊以及在至少一個遠程存儲設備中創(chuàng)建一個最終的遠程數據塊,形成一個最終所產生的源數據塊,它包括倒數第二個所產生的源數據塊和最終的本地輔助數據塊,以及,在下一個時間點上將倒數第二個本地輔助數據塊復制到最終的遠程數據塊中,以及將針對最終本地輔助數據塊的更新重新指向所選擇的數據目標,通過結合最終所產生的源數據塊的操作,允許在鏡像的過程中使用所選擇的數據目標,以及,在完成對最終遠程數據塊的復制之后,使倒數第二個本地輔助數據塊與所凍結的選擇數據目標相同步,在完成對至少一個第二存儲設備的復制之后,通過缺省命令重復下一個鏡像周期,除非接受到鏡像終止的命令。
14.依據權利要求13所述方法,其特征在于,所述鏡像還包括步驟選擇在完成倒數第二個本地輔助數據塊的復制之后所發(fā)生的另一個時間點,凍結所產生的源數據塊,在本地存儲設備中創(chuàng)建一個最終的本地輔助數據塊和在至少一個遠程存儲設備中創(chuàng)建一個最終的遠程數據塊,形成一個最終所產生的源數據塊,它包括倒數第二個所產生的源數據塊和最終的本地輔助數據塊,以及,將倒數第二個本地輔助數據塊復制到至少一個最終的遠程數據塊中,將針對倒數第二個本地輔助數據塊的更新重新指向所選擇的數據目標,結合最終所產生的源數據塊的操作,允許在鏡像過程中使用所選擇的數據目標,將倒數第二個本地輔助數據塊與所選擇的數據目標相同步,將至少一個最終的遠程數據塊與倒數第二個遠程數據塊相同步,以及,在完成對至少一個第二存儲設備的復制之后,通過缺省命令重復下一個鏡像周期,除非接受到鏡像終止的命令。
15.依據權利要求14所述方法,其特征在于,所述鏡像還包括步驟在至少一個遠程存儲設備中存儲所選擇數據目標的完整鏡像的復制,它包括在完成倒數第二個本地輔助數據塊之前復制時所輸入的更新內容。
16.依據權利要求1所述方法,其特征在于,所述鏡像適用于從包含數據塊、虛擬數據塊、數據文件、系統(tǒng)文件、應用程序、操作系統(tǒng)、數據結構、以及數據庫記錄的組中選出的數據目標。
17.依據權利要求1所述方法,其特征在于,所述鏡像適用于從包含本地網、廣域網和存儲區(qū)域網絡的組中選出的數據目標。
18.依據權利要求1所述方法,其特征在于,所述鏡像還包括至少是根據在對最終遠程數據塊的最終本地輔助數據塊的復制過程中最后所確定時間的離散重復時間間隔來重復鏡像功能的操作。
19.依據權利要求1所述方法,其特征在于,所述鏡像還包括將更新內容與重新寫入的選擇數據目標相同步,以及,將最后的遠程數據塊與重新寫入倒數第二個所產生的第一遠程數據塊相同步。
20.依據權利要求1所述方法,其特征在于,所述選擇的數據目標包括從包含著部分內容、全部內容以及多于本地存儲設備的內容的一組內容范圍中選出的內容。
21.依據權利要求1所述方法,其特征在于,所述鏡像還包括步驟在時間t=1,在本地存儲設備(SDL)中將計數器設置為s=1并且創(chuàng)建一個本地輔助數據塊s,凍結所選擇的數據目標,并且將所述本地輔助數據塊s和所述選擇的數據目標包括在一個所產生的源數據塊s中,允許使用與所產生的源數據塊s相結合的數據目標,以及,在至少一個遠程存儲設備中在時間t,創(chuàng)建至少一個大小等于所述數據目標的遠程數據塊s,以及,從時間t開始將所凍結的數據目標從所產生的源數據塊復制到所述遠程數據塊s,直至復制完成,其中,在時間t所凍結的數據目標鏡像到至少一個遠程存儲設備中。
22.依據權利要求15所述方法,其特征在于,所述鏡像還包括步驟在完成對至少一個遠程存儲設備的復制之后所發(fā)生的時間t=t+1,在所述本地存儲設備中a.計數器增1使之為s=s+1,b.創(chuàng)建一個本地輔助數據塊s,c.凍結所產生的源數據塊s-1,并且將所述本地輔助數據塊s和所述產生的源數據塊s-1包括于一個所產生的虛擬數據塊s中,以及,d.允許使用與所產生本地數據塊s相結合的數據目標,以及,在至少一個遠程存儲設備中e.在時間t創(chuàng)建一個至少等于源數據塊的大小的遠程數據塊,以及,從時間t開始f.將本地輔助數據塊s-1從所產生的源數據塊s復制到遠程數據塊s中并且完成復制,g.第二處理裝置通過將遠程數據塊s重新寫入到遠程數據塊s-1來實現同步操作,以及,在第一存儲設備(SDL)中,h.第一處理裝置通過將遠程數據塊s重新寫入到遠程數據塊s-1來實現同步操作,以及,在步驟f完成之后,通過步驟a至h所定義的重復周期來重復鏡像,除非命令鏡像終止。
23.依據權利要求22所述方法,其特征在于,一個數據塊是從包含多個數據塊、虛擬的和邏輯的數據塊以及文件中選出的。
24.依據權利要求22所述方法,還包括在時間t存儲于至少一個遠程存儲設備中完整鏡像復制的所選擇數據目標包含著在時間t-2時所輸入的更新內容。
25.一種系統(tǒng),它適用于將一個所選擇的數據目標從至少一個本地存儲設備(SDL)鏡像到至少一個遠程存儲設備(SDRx),其中,至少一個本地存儲設備耦合于第一處理裝置(HL)和至少一個遠程存儲設備耦合于第二處理裝置(HR),并且至少一個本地存儲設備,至少一個遠程存儲設備,第一和第二處理裝置耦合于一個包括多個用戶,多個處理裝置和多個存儲設備的網絡連通性,該系統(tǒng)包括在第一處理裝置和在第二處理裝置運行的鏡像功能,該鏡像功能包括一個適用于凍結所選擇數據目標的凍結過程,一個適用于將所凍結的選擇數據目標復制到至少一個遠程存儲設備的復制過程,在運行鏡像功能的同時允許所選擇的數據目標的使用和更新,采用缺省的方法,命令重復運行適用于將更新內容復制到所選擇的數據目標的鏡像功能,除非接受到鏡像終止的命令,從而復制駐留在至少一個本地存儲設備中的所選擇的數據目標并且連續(xù)更新到至少一個遠程存儲設備中。
26.依據權利要求25所述系統(tǒng),其特征在于,所述鏡像功能還包括應用所述凍結過程,將所選擇的數據目標凍結成一個源數據塊(SV),至少一個本地輔助數據塊(AVL)使得所更新的地址重新指向所選擇的數據目標,選擇數據目標以外的各個單個數據目標對應于至少一個本地輔助數據塊以外的一個本地輔助數據塊,在至少一個遠程存儲設備以外的各個遠程存儲設備中創(chuàng)建至少一個遠程數據塊,使之對應于所創(chuàng)建的各個本地輔助數據塊,在至少一個本地存儲設備中形成至少一個所產生源數據塊,它可以包括所凍結的選擇數據目標和至少一個本地輔助數據塊,以及,應用所述輔助過程,用于將所凍結的選擇數據目標從至少一個所產生的數據塊中復制到至少一個遠程存儲設備中。
27.依據權利要求25所述系統(tǒng),還包括同時對多個數據目標應用鏡像功能。
28.依據權利要求25至27所述系統(tǒng),還包括所構成的鏡像功能可同時從至少一個本地存儲設備鏡像到至少一個遠程存儲設備,且反之相反。
29.依據權利要求26所述系統(tǒng),還包括應用所述凍結過程,可用于同時凍結多個數據目標。
30.依據權利要求26所述系統(tǒng),還包括應用所述復制過程,可用于同時復制多個所凍結的選擇數據目標。
31.依據權利要求25和26所述系統(tǒng),其特征在于,所述鏡像功能還包括一種能同時將駐留在一個本地存儲設備中的一個單個數據目標鏡像到多個遠程存儲設備中的結構。
32.依據權利要求25或26所述系統(tǒng),其特征在于,所述鏡像功能還包括一種能同時將多個單個的數據目標從一個本地存儲設備鏡像到一個遠程存儲設備中的結構。
33.依據權利要求25或26所述系統(tǒng),其特征在于,所述鏡像功能還包括一種能同時將駐留在相同的多個本地存儲設備中的多個單個的數據目標鏡像到一個遠程存儲設備中的結構。
34.依據權利要求25或26所述系統(tǒng),其特征在于,所述鏡像功能還包括一種能同時將駐留在一個本地存儲設備中的多個單個數據目標鏡像到相同的多個遠程存儲設備中的結構。
35.依據權利要求25或26所述系統(tǒng),其特征在于,所述鏡像功能還包括一種能同時將駐留在多個本地存儲設備以外的各個本地存儲設備中的一個單個的數據目標鏡像到一個遠程存儲設備中的結構。
36.依據權利要求25所述系統(tǒng),其特征在于,所述鏡像還包括在一個選擇的時間點上開始一個鏡像周期,凍結所選擇的數據目標,在至少一個本地存儲設備(SDL)中創(chuàng)建至少一個本地輔助數據塊(AVL)以及在至少一個遠程存儲設備(SDRx)中創(chuàng)建至少一個遠程數據塊(RV),所形成的至少一個所產生的源數據塊包括所凍結的選擇數據目標和本地輔助數據塊(AVL),以及,在一個選擇的時間點之后將所凍結的選擇數據目標從所產生的源數據塊復制到至少一個本地輔助數據塊中,直至復制完成為此,將針對本地輔助數據塊的更新重新指向所選擇的數據目標,通過結合所產生的源數據塊的操作,允許在鏡像過程中使用所選擇的數據目標,以及,在完成對至少一個遠程存儲設備的復制之后,通過缺省命令重復下一個鏡像周期,除非接受鏡像終止的命令。
37.依據權利要求36所述系統(tǒng),其特征在于,所述鏡像還包括在完成對至少一個遠程存儲設備的復制之后的下一個時間點上,開始下一個鏡像周期,凍結所產生的源數據塊,在本地存儲設備中創(chuàng)建一個最終的本地輔助數據塊以及在至少一個遠程存儲設備中創(chuàng)建一個最終的遠程數據塊,形成一個最終所產生的源數據塊,它包括倒數第二個所產生的源數據塊和最終的本地輔助數據塊,以及,在下一個時間點上將倒數第二個本地輔助數據塊復制到最終的遠程數據塊中,以及將針對最終本地輔助數據塊的更新重新指向在最終所產生的源數據塊中的最終本地輔助數據塊,通過結合最終所產生的源數據塊的操作,允許在鏡像的過程中使用所選擇的數據目標,以及,在完成對最終遠程數據塊的復制之后使倒數第二個本地輔助數據塊與所凍結的選擇數據目標相同步,通過遠程處理裝置(HR)的命令重復下一個鏡像周期,使得至少一個最終的遠程數據塊與倒數第二個遠程數據塊相同步,以及,通過在完成至少一個第二存儲設備(SDR)的復制之后的缺省命令,重復下一個鏡像周期,除非接受到鏡像終止的命令。
38.依據權利要求37所述系統(tǒng),其特征在于,所述鏡像還包括選擇在完成倒數第二個本地輔助數據塊的復制之后所發(fā)生的另一個時間點,凍結所產生的源數據塊,在本地存儲設備中創(chuàng)建一個最終的本地輔助數據塊和在至少一個遠程存儲設備中創(chuàng)建一個最終的遠程數據塊,所形成的一個最終所產生的源數據塊包括倒數第二個所產生的源數據塊和最終的本地輔助數據塊,以及,將倒數第二個本地輔助數據塊復制到至少一個最終的遠程數據塊中,將針對所選擇數據目標的更新重新指向在最終所產生的源數據塊中的最終本地輔助數據塊,結合最終所產生的源數據塊的操作,允許在鏡像過程中使用所選擇的數據目標,將倒數第二個本地輔助數據塊與所選擇的數據目標相同步,將至少一個最終的遠程數據塊與所選擇的數據目標相同步,至少一個最終遠程數據塊與倒數第二個遠程數據塊相同步,以及,在完成對至少一個第二存儲設備(SDR)的復制之后,通過缺省命令重復下一個鏡像周期,除非接受到鏡像終止的命令。
39.依據權利要求38所述系統(tǒng),其特征在于,所述鏡像還包括在至少一個遠程存儲設備中存儲著所選擇數據目標的完整鏡像的復制,它包括在完成倒數第二個本地輔助數據塊之前復制時所輸入的更新內容。
40.依據權利要求25所述系統(tǒng),還包括所述鏡像適用于從包含數據塊、虛擬數據塊、數據文件、系統(tǒng)文件、應用程序、操作系統(tǒng)、數據結構、以及數據庫記錄的組中選出的數據目標。
41.依據權利要求25所述系統(tǒng),還包括所述鏡像適用于從包含本地網、廣域網和存儲區(qū)域網絡的組中選出的數據目標。
42.依據權利要求25所述系統(tǒng),還包括至少是根據在對最終遠程數據塊的最終本地輔助數據塊的復制過程中最后所確定時間的離散重復時間間隔來重復鏡像功能的操作。
43.依據權利要求25所述系統(tǒng),還包括將更新內容與重新寫入的選擇數據目標相同步,以及,將最后的遠程數據塊與重新寫入倒數第二個所產生的第一遠程數據塊相同步。
44.依據權利要求25所述系統(tǒng),還包括所述選擇的數據目標包括從包含著部分內容、全部內容以及多于本地存儲設備的內容的一組內容范圍中選出的內容。
45.依據權利要求25所述系統(tǒng),還包括在時間t=1,在本地存儲設備(SDL)中將計數器設置為s=1并且創(chuàng)建一個本地輔助數據塊s,凍結所選擇的數據目標,并且將所述本地輔助數據塊s和所述選擇的數據目標包括在一個所產生的源數據塊s中,允許使用與所產生的源數據塊s相結合的數據目標,以及,在至少一個遠程存儲設備中在時間t,創(chuàng)建至少一個大小等于所述數據目標的遠程數據塊s,以及,從時間t開始將所凍結的數據目標從所產生的源數據塊復制到所述遠程數據塊s,直至復制完成,其中,在時間t所凍結的數據目標鏡像到至少一個遠程存儲設備中。
46.依據權利要求45所述系統(tǒng),還包括在完成對至少一個遠程存儲設備的復制之后所發(fā)生的時間t=t+1,在所述本地存儲設備中a.計數器增1使之為s=s+1,b.創(chuàng)建一個本地輔助數據塊s,c.凍結所產生的源數據塊s-1,并且將所述本地輔助數據塊s和所述產生的源數據塊s-1包括于一個所產生的虛擬數據塊s中,以及,d.允許使用與所產生本地數據塊s相結合的數據目標,以及,在至少一個遠程存儲設備中e.在時間t創(chuàng)建一個至少等于源數據塊的大小的遠程數據塊,以及,從時間t開始f.將本地輔助數據塊s-1從所產生的源數據塊s復制到遠程數據塊s中,直至完成復制,g.第二處理裝置通過將遠程數據塊s重新寫入到遠程數據塊s-1來實現同步操作,以及,在第一存儲設備(SDL)中,h.第一處理裝置通過將遠程數據塊s重新寫入到遠程數據塊s-1來實現同步操作,以及,在步驟f完成之后,通過步驟a至h所定義的重復周期來重復鏡像,除非命令鏡像終止。
47.依據權利要求46所述系統(tǒng),還包括一個數據塊是從包含多個數據塊、虛擬的和邏輯的數據塊以及文件中選出的。
48.依據權利要求46所述系統(tǒng),還包括在時間t存儲于至少一個遠程存儲設備中所選擇數據目標的完整鏡像復制包含著在時間t-2時所輸入的更新內容。
全文摘要
一種適用于同時將一個或許多數據目標從一個或許多本地存儲設備鏡像到一個或許多遠程存儲設備的方法和系統(tǒng)。在鏡像過程中可以使用一個或許多數據目標。鏡像功能可以包括在連續(xù)的鏡像周期中依次重復的一系列凍結和復制過程的應用程序。在遠程存儲設備中僅僅只保存了最后的本地更新的鏡像內容。每一個新的更新內容都重新寫入原有的內容中。通過凍結和復制一系列離散的數據塊。從而在后臺同時進行鏡像。鏡像功能能夠同時進行多個鏡像操作和同時進行交叉鏡像。
文檔編號G06F12/00GK1549974SQ02815948
公開日2004年11月24日 申請日期2002年8月13日 優(yōu)先權日2001年8月14日
發(fā)明者N·納湖姆, N 納湖姆 申請人:存儲網絡技術公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
雷州市| 井冈山市| 清水县| 枣强县| 铜鼓县| 潼南县| 宁德市| 玉山县| 清涧县| 沁水县| 常州市| 土默特右旗| 华宁县| 明水县| 达孜县| 宜阳县| 湾仔区| 张家界市| 凌源市| 巫山县| 澄城县| 朝阳区| 康平县| 北票市| 临汾市| 宁国市| 宁城县| 昌江| 隆德县| 扎兰屯市| 兴隆县| 东乡| 云安县| 徐汇区| 丘北县| 新宾| 新宾| 沅江市| 濮阳县| 启东市| 耒阳市|