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

一種遠程數(shù)據(jù)復制方法及系統(tǒng)與流程

文檔序號:11133770閱讀:442來源:國知局
一種遠程數(shù)據(jù)復制方法及系統(tǒng)與制造工藝

本發(fā)明實施例涉及存儲技術領域,特別是一種遠程數(shù)據(jù)復制方法及系統(tǒng)。



背景技術:

數(shù)據(jù)容災,又稱為遠程數(shù)據(jù)復制技術,是指建立一個異地的數(shù)據(jù)系統(tǒng),該系統(tǒng)是本地數(shù)據(jù)的一個可用復制。在本地數(shù)據(jù)及整個應用系統(tǒng)出現(xiàn)災難時,系統(tǒng)至少在異地保存有一份可用的關鍵業(yè)務的數(shù)據(jù)。

典型的數(shù)據(jù)容災系統(tǒng)包括生產(chǎn)中心和災備中心。在生產(chǎn)中心,部署有主機、存儲陣列,用于正常的業(yè)務運行;在災備中心,部署有主機、存儲陣列,用于在生產(chǎn)中心發(fā)生災難后,接管其業(yè)務。在某些應用場景下,生產(chǎn)中心和災備中心的存儲陣列均包含文件系統(tǒng)。生產(chǎn)中心的業(yè)務產(chǎn)生的數(shù)據(jù)寫入生產(chǎn)陣列后,可以經(jīng)容災鏈路復制到災備中心,寫入災備陣列。在現(xiàn)有技術中,遠程數(shù)據(jù)復制是基于塊語義的。也就是說,復制的時候可以不用考慮數(shù)據(jù)塊上層的文件,直接將生產(chǎn)陣列的硬盤中所有的數(shù)據(jù)復制到災備陣列中。這些數(shù)據(jù)不僅包括了業(yè)務數(shù)據(jù),還包括描述業(yè)務數(shù)據(jù)的元數(shù)據(jù),例如業(yè)務數(shù)據(jù)的屬性以及業(yè)務數(shù)據(jù)在硬盤中的物理布局等。這就會導致容災鏈路的負擔較重。



技術實現(xiàn)要素:

本實施例提供了一種遠程數(shù)據(jù)復制方法和存儲系統(tǒng),能夠減輕生產(chǎn)陣列和災備陣列之間的容災鏈路的負擔。

第一方面,提供了一種遠程數(shù)據(jù)復制方法。在該方法中,生產(chǎn)陣列向災備陣列發(fā)送數(shù)據(jù)復制請求。所述數(shù)據(jù)復制請求包括源對象的標識以及所述源對象對應的數(shù)據(jù)塊,所述源對象包括用于承載文件或者目錄的數(shù)據(jù)容器,所述數(shù)據(jù)塊保存在所述生產(chǎn)陣列的硬盤的物理空間中,所述數(shù)據(jù)塊保存在所述生產(chǎn)陣列的物理空間中的地址為源物理地址。所述災備陣列接收所述數(shù)據(jù)復制請求,確定所述災備陣列沒有包括與所述源對象的標識相同的對象時,創(chuàng)建目標對象。所述目標對象與所述災備陣列的硬盤的一段或幾段物理空間對應,所述目標對象的標識和所述源對象的標識相同。所述災備陣列將所述數(shù)據(jù)塊寫入所述物理空間中,所述數(shù)據(jù)塊保存在所述物理空間中的地址為目標物理地址,所述目標物理地址與所述源物理地址不同。

利用本實施例第一方面提供的遠程數(shù)據(jù)復制方法,生產(chǎn)陣列將源對象的標識以及源對象對應的數(shù)據(jù)塊發(fā)送給災備陣列。若災備陣列確定沒有包括與源對象的標識相同的對象時,創(chuàng)建目標對象,將所述源對象對應的數(shù)據(jù)塊寫入所述目標對象中。所謂寫入所述目標對象是指將所述數(shù)據(jù)塊寫入與所述目標對象對應的物理空間中。與現(xiàn)有技術不同的是,本實施例中所述數(shù)據(jù)塊保存災備陣列中的物理地址與所述數(shù)據(jù)塊保存在生產(chǎn)陣列中的物理地址不相同。因此,災備陣列在存儲所述數(shù)據(jù)塊時相對比較靈活,生產(chǎn)陣列不需要將描述數(shù)據(jù)塊保存在生產(chǎn)陣列中的物理地址,以及描述數(shù)據(jù)塊在生產(chǎn)陣列中的物理地址與對象的標識之間的對應關系的數(shù)據(jù)復制到災備陣列,節(jié)省了生產(chǎn)陣列與災備陣列之間的帶寬開銷。

另外,第一方面還可以有其他實現(xiàn)方式。例如,目標對象的標識與源對象的標識不相同,所述災備陣列為所述目標對象分配標識之后,保存目標對象的標識與源對象的標識之間的對應關系,然后將所述對應關系發(fā)送給所述生產(chǎn)陣列。采用這種方式,災備陣列在創(chuàng)建目標對象時可以更加靈活,不要求目標對象的標識與源對象的標識相同。

在第一方面的一種具體實現(xiàn)中,所述數(shù)據(jù)復制請求還包括所述數(shù)據(jù)塊的邏輯地址,所述邏輯地址為所述數(shù)據(jù)塊位于源對象內(nèi)的位置;所述數(shù)據(jù)塊保存在所述目標對象內(nèi)的位置與所述數(shù)據(jù)塊位于源對象內(nèi)的位置相同。

在上述具體實現(xiàn)中,所述災備陣列保存所述邏輯地址與所述目標物理地址的對應關系,以及所述目標對象的標識與所述目標物理地址的對應關系,所述邏輯地址與所述目標物理地址的對應關系不同于所述邏輯地址與所述源物理地址的對應關系,并且所述目標對象的標識與所述目標物理地址的對應關系不同于所述源對象的標識與所述源物理地址的對應關系。正是由于邏輯地址與目標物理地址的對應關系不同于所述邏輯地址與所述源物理地址的對應關系,并且所述目標對象的標識與所述目標物理地址的對應關系不同于所述源對象的標識與所述源物理地址的對應關系,所以災備陣列可以相對靈活地在硬盤中布局所述目標對象。生產(chǎn)陣列也避免了將描述這些對應關系的數(shù)據(jù)發(fā)送給災備陣列,減輕了鏈路負擔。

在上述任一種具體實現(xiàn)中,所述生產(chǎn)陣列向所述災備陣列發(fā)送增量數(shù)據(jù)復制請求,所述增量數(shù)據(jù)復制請求包括增量數(shù)據(jù)以及所述增量數(shù)據(jù)的地址信息,所述增量數(shù)據(jù)是用于對所述數(shù)據(jù)塊進行更新的數(shù)據(jù)塊,所述增量數(shù)據(jù)的地址信息包括所述源對象的標識以及所述邏輯地址。當生產(chǎn)陣列對源對象中的數(shù)據(jù)塊有更新時,也需要將用于更新所述數(shù)據(jù)塊的增量數(shù)據(jù)發(fā)送給災備陣列,以實現(xiàn)災備陣列對目標對象的同步更新。

在上面的具體實現(xiàn)中,所述災備陣列接收所述增量數(shù)據(jù)復制請求,根據(jù)所述增量數(shù)據(jù)的地址信息中的所述源對象的標識,確定所述增量數(shù)據(jù)對應的對象是所述目標對象;根據(jù)所述增量數(shù)據(jù)的地址信息中的邏輯地址確定所述增量數(shù)據(jù)待寫入的目標對象內(nèi)的位置,將所述增量數(shù)據(jù)寫入所述目標對象的所述邏輯地址中。由此,災備陣列實現(xiàn)了對目標對象的更新。并且,生產(chǎn)陣列在將增量數(shù)據(jù)發(fā)送給災備陣列時也不需要將描述所述增量數(shù)據(jù)在硬盤上如何布局的元數(shù)據(jù)發(fā)送給災備陣列,而是由災備陣列在將所述增量數(shù)據(jù)寫入時重新生成布局元數(shù)據(jù)。因此,節(jié)省了生產(chǎn)陣列端與災備陣列端之間的帶寬開銷。

本實施例第二方面還提供了一種存儲系統(tǒng),包括生產(chǎn)陣列和災備陣列,分別用于執(zhí)行第一方面的遠程數(shù)據(jù)復制方法。

本實施例第三方面還提供了一種存儲設備,包括控制器和硬盤,源文件系統(tǒng)和目標文件系統(tǒng)構建于所述硬盤上,其中源文件系統(tǒng)包括源對象,所述源對象包括用于承載文件或者目錄的數(shù)據(jù)容器,所述源對象對應的數(shù)據(jù)塊保存在源文件系統(tǒng)對應的物理空間中,所述源對象對應的數(shù)據(jù)塊保存在物理空間中的地址為源物理地址。所述控制器用于確定目標文件系統(tǒng)中沒有包括與所述源對象的標識相同的對象時,創(chuàng)建目標對象。為所述目標在目標文件系統(tǒng)對應的物理空間中分配物理空間。所述目標對象的標識與所述源對象的標識相同。所述控制器將所述數(shù)據(jù)塊寫入為所述目標對象分配的物理空間中,所述數(shù)據(jù)塊保存在為所述目標對象分配的物理空間中的地址為目標物理地址,所述目標物理地址與所述源物理地址不同。

另外,第三方面還可以有其他實現(xiàn)方式。例如,目標對象的標識與源對象的標識不相同,所述控制器為所述目標對象分配標識之后,保存目標對象的標識與源對象的標識之間的對應關系。

在第三方面的一種具體實現(xiàn)中,所述控制器具體用于根據(jù)所述數(shù)據(jù)塊位于源對象中的邏輯地址將所述數(shù)據(jù)塊寫入為所述目標對象分配的物理空間中,所述數(shù)據(jù)塊保存在所述目標對象內(nèi)的位置與所述數(shù)據(jù)塊位于源對象內(nèi)的位置相同。

本實施例第四方面還提供了一種數(shù)據(jù)備份方法,用于第三方面提供的存儲設備中。

附圖說明

為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹。

圖1是本發(fā)明實施例提供的系統(tǒng)架構示意圖;

圖2是本發(fā)明實施例提供的生產(chǎn)陣列的結構圖;

圖3是本發(fā)明實施例提供的災備陣列的結構圖;

圖4是本發(fā)明實施例提供的遠程數(shù)據(jù)復制方法的流程示意圖。

具體實施方式

本發(fā)明實施例提出了一種遠程數(shù)據(jù)復制方法及系統(tǒng),能夠減輕生產(chǎn)陣列和災備陣列之間的容災鏈路的負擔。

圖1為本發(fā)明實施例提供的遠程數(shù)據(jù)復制方法的系統(tǒng)架構示意圖,如圖1所示,生產(chǎn)中心包括生產(chǎn)主機、連接設備和生產(chǎn)陣列20;災備中心的系統(tǒng)架構與生產(chǎn)中心類似,包括災備主機、連接設備和災備陣列30。在本發(fā)明實施例中,災備中心可以不止一個。其中,生產(chǎn)中心與災備中心可以通過IP(Internet Protocol)或者FC(Fiber Chanel)或者其他協(xié)議進行數(shù)據(jù)傳輸。生產(chǎn)中心和災備中心之間可以有一個控制中心,所述控制中心可以部署在生產(chǎn)中心側,也可以部署在災備中心側,還可以部署在生產(chǎn)中心和災備中心之間的第三方設備中。所述控制中心用于當生產(chǎn)陣列20發(fā)生故障時,向災備陣列30發(fā)出信號讓其接替生產(chǎn)陣列20處理主機業(yè)務。

生產(chǎn)主機和災備主機均可以是任何計算設備,如服務器、臺式計算機等等。在主機內(nèi)部,安裝有操作系統(tǒng)以及其他應用程序。

連接設備可以是存儲設備和主機之間的任何接口,如光纖交換機,或者其他現(xiàn)當前技術已知有的交換機。

生產(chǎn)陣列20和災備陣列30均可以是存儲設備,如獨立硬盤冗余陣列(Redundant Arrays of Inexpensive Disks,RAID)、硬盤簇(Just a Bunch Of Disks,JBOD)、直接存取存儲器(Direct Access Storage Device,DASD)的一個或多個互連的硬盤驅動器,諸如磁帶庫、一個或多個存儲單元的磁帶存儲設備。

本實施例中的生產(chǎn)陣列20和災備陣列30均是具有文件系統(tǒng)的存儲設備,也就是說,存儲介質(zhì)中保存的數(shù)據(jù)是以文件為單位進行管理和訪問的。文件系統(tǒng)是一種存儲和組織數(shù)據(jù)的方法,它使得對數(shù)據(jù)的訪問和查找變得容易,文件系統(tǒng)使用文件和樹形目錄的抽象邏輯概念代替了硬盤等物理設備使用的數(shù)據(jù)塊的概念。生產(chǎn)陣列20在使用文件系統(tǒng)來保存數(shù)據(jù)后,用戶不必關心數(shù)據(jù)實際保存在硬盤的地址為多少的數(shù)據(jù)塊上,只需要記住這個文件的所屬目錄和文件名。同樣的,在寫入新數(shù)據(jù)之前,用戶不必關心硬盤上的那個塊地址沒有被使用,硬盤上的存儲空間管理(分配和釋放)功能由文件系統(tǒng)自動完成,用戶只需要記住數(shù)據(jù)被寫入到了哪個文件中。需要說明的是,雖然存儲在生產(chǎn)陣列20中的數(shù)據(jù)是以文件的形式呈現(xiàn)給用戶的,然而文件在硬盤31中存儲的單位仍然是數(shù)據(jù)塊。因此,一個文件可以包含多個數(shù)據(jù)塊。另外,本實施例引入了“對象”的概念,對象是用于存儲文件或者目錄的容器。每個對象在文件系統(tǒng)內(nèi)具有唯一的標識(例如,ID)。

生產(chǎn)陣列20和災備陣列30的硬件結構是相同的。圖2是本發(fā)明實施例生產(chǎn)陣列20的結構示意圖,圖3是本發(fā)明實施例災備陣列30的結構示意圖。

如圖2所示,生產(chǎn)陣列20包括控制器21和若干個硬盤31。控制器21可以包括任何計算設備,如服務器、臺式計算機等等。在控制器內(nèi)部,安裝有文件系統(tǒng)以及其他應用程序??刂破?1用于執(zhí)行和對象相關的各種操作,例如創(chuàng)建文件、創(chuàng)建目錄、讀文件操作、寫文件操作、發(fā)送數(shù)據(jù)復制請求等等。生產(chǎn)陣列20包含的若干個硬盤31用于提供存儲空間保存文件。

控制器21主要包括處理器(processor)118、緩存(cache)120、存儲器(memory)122、通信總線(簡稱總線)126以及通信接口(Communication Interface)128。處理器118、緩存120、存儲器122以及通信接口128通過通信總線126完成相互間的通信。

通信接口128,用于與生產(chǎn)主機、災備陣列以及硬盤31通信。

存儲器122,用于存放程序124,存儲器122可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個硬盤存儲器??梢岳斫獾氖?,存儲器122可以為隨機存儲器(Random-Access Memory,RAM)、磁碟、硬盤、光盤、固態(tài)硬盤(Solid State Disk,SSD)或者非易失性存儲器等各種可以存儲程序代碼的非短暫性的(non-transitory)機器可讀介質(zhì)。

程序124可以包括程序代碼,所述程序代碼包括上面描述的文件系統(tǒng)以及其他程序代碼。

緩存120(Cache)用于緩存從生產(chǎn)主機接收的數(shù)據(jù)或從硬盤中讀取的數(shù)據(jù)。緩存120可以是RAM、ROM、閃存(Flash memory)或固態(tài)硬盤(Solid State Disk,SSD)等各種可以存儲數(shù)據(jù)的非短暫性的(non-transitory)機器可讀介質(zhì),在此不做限定。

另外,存儲器122和緩存120可以合設或者分開設置,本發(fā)明實施例對此不做限定。

處理器118可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。

如圖3所示,災備陣列30包括控制器41和若干個硬盤51。控制器41可以包括任何計算設備,如服務器、臺式計算機等等。在控制器41內(nèi)部,安裝有文件系統(tǒng)以及其他應用程序。控制器41用于執(zhí)行和對象相關的各種操作,例如創(chuàng)建文件、創(chuàng)建目錄、讀文件操作、寫文件操作等等。災備陣列30包含的若干個硬盤51用于提供存儲空間保存文件。

控制器41主要包括處理器(processor)218、緩存(cache)220、存儲器(memory)222、通信總線(簡稱總線)226以及通信接口(Communication Interface)228。處理器218、緩存220、存儲器222以及通信接口228通過通信總線226完成相互間的通信。

通信接口228,用于與生產(chǎn)陣列、災備主機以及硬盤51通信。

存儲器222,用于存放程序224,存儲器222可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個硬盤存儲器。可以理解的是,存儲器222可以為隨機存儲器(Random-Access Memory,RAM)、磁碟、硬盤、光盤、固態(tài)硬盤(Solid State Disk,SSD)或者非易失性存儲器等各種可以存儲程序代碼的非短暫性的(non-transitory)機器可讀介質(zhì)。

程序224可以包括程序代碼,所述程序代碼包括上面描述的文件系統(tǒng)以及其他程序代碼。

緩存220(Cache)用于緩存從生產(chǎn)陣列接收的數(shù)據(jù)或從硬盤中讀取的數(shù)據(jù)。緩存220可以是RAM、ROM、閃存(Flash memory)或固態(tài)硬盤(Solid State Disk,SSD)等各種可以存儲數(shù)據(jù)的非短暫性的(non-transitory)機器可讀介質(zhì),在此不做限定。

另外,存儲器222和緩存220可以合設或者分開設置,本發(fā)明實施例對此不做限定。

處理器218可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。

下面結合圖1、圖2和圖3,描述本發(fā)明實施例一種遠程數(shù)據(jù)復制方法。該方法應用在圖1所示的異步遠程復制的場景中,由生產(chǎn)陣列20和災備陣列30執(zhí)行。如圖3所述,所述方法可以包括以下步驟:

步驟1:生產(chǎn)陣列20向災備陣列30發(fā)送數(shù)據(jù)復制請求。所述數(shù)據(jù)復制請求包括對象的ID,以及所述對象對應的數(shù)據(jù)塊。

對象是指用于承載文件或者目錄的數(shù)據(jù)容器。對象在生產(chǎn)陣列20的硬盤31上面對應一段或幾段物理空間??梢岳斫獾氖?,將對象對應的數(shù)據(jù)塊寫入該對象實際上是將所述數(shù)據(jù)塊寫入所述物理空間。而對于外部設備而言,所述物理空間是不可見的,只能看到所述數(shù)據(jù)塊位于一個數(shù)據(jù)容器中。在本實施例中,將數(shù)據(jù)塊寫入的所述物理空間的地址稱為物理地址。需要說明的是,本實施例中的物理地址并不一定是數(shù)據(jù)塊位于硬盤中的實際地址,只要是對外部設備屏蔽,反映物理空間的地址都稱之為物理地址。與物理地址相對應的,數(shù)據(jù)塊還具有邏輯地址。所述邏輯地址是指外部設備可以訪問的,反映數(shù)據(jù)塊在所述對象內(nèi)的位置的地址。對象的元數(shù)據(jù)可以包括所述對象ID、所述對象對應的數(shù)據(jù)塊的邏輯地址、所述數(shù)據(jù)塊的物理地址、所述對象ID與物理地址的對應關系以及所述邏輯地址與物理地址的對應關系。在實際應用中,如果一個對象較大,那么該對象也可能對應硬盤31上面的幾段物理空間。

由于生產(chǎn)陣列20和災備陣列30都保存有對象,為了區(qū)分兩端保存的對象,在本實施例中,將生產(chǎn)陣列20中的對象稱為源對象,將災備陣列30的對象稱為目標對象。同樣的,源對象的邏輯地址稱為源邏輯地址,源對象的物理地址稱為源物理地址,目標對象的邏輯地址稱為目標邏輯地址,目標對象的物理地址稱為目標物理地址。

另外,本實施例中所描述的遠程數(shù)據(jù)復制是指異步遠程復制。生產(chǎn)陣列20周期性地向災備陣列30發(fā)送數(shù)據(jù)復制請求,遠程復制的周期可以控制中心設置。例如,在控制中心中設置一個計時器(timer)。當預定時間達到時,控制中心給生產(chǎn)陣列20發(fā)送指令,指示生產(chǎn)陣列20執(zhí)行數(shù)據(jù)復制任務。

在步驟1中,生產(chǎn)陣列20向災備陣列30發(fā)送的數(shù)據(jù)復制請求可以包括對象的ID,以及所述對象對應的數(shù)據(jù)塊。在某些實施方式中,所述數(shù)據(jù)復制請求還可以包括數(shù)據(jù)塊的邏輯地址。需要說明的是,生產(chǎn)陣列20并不需要將所述數(shù)據(jù)塊的布局元數(shù)據(jù)發(fā)送給災備陣列30。所謂數(shù)據(jù)塊的布局元數(shù)據(jù)是指所述數(shù)據(jù)塊的源物理地址、源對象的ID與源物理地址的對應關系以及源邏輯地址與源物理地址的對應關系。這意味著災備陣列30接收所述數(shù)據(jù)塊之后,并不需要按照與生產(chǎn)陣列30相同的布局方式來存儲所述數(shù)據(jù)塊。所述數(shù)據(jù)塊存儲在災備陣列30的目標物理地址與所述數(shù)據(jù)塊存儲在生產(chǎn)陣列20的源物理地址不相同。

具體的,步驟1可以由生產(chǎn)陣列20中的處理器118來執(zhí)行。

在步驟2中,災備陣列30接收所述數(shù)據(jù)復制請求。災備陣列30可以根據(jù)所述數(shù)據(jù)復制請求中攜帶的對象的ID判斷其本地是否存在于與源對象的ID相同的對象。若存在ID相同的對象,那么所述數(shù)據(jù)復制請求是一個增量數(shù)據(jù)復制請求,接下來執(zhí)行步驟6。所述增量數(shù)據(jù)復制請求用于更新所述對象。若判斷的結果是不存在ID相同的對象,那么災備陣列30就需要所述數(shù)據(jù)復制請求中創(chuàng)建一個目標對象,如步驟3所示。

在步驟3中,災備陣列30創(chuàng)建所述目標對象。所述目標對象的ID與所述源對象的ID可以相同,也可以不相同。若ID相同,那么無論對生產(chǎn)陣列20還是災備陣列30而言都相對更容易查找到與源對象相對應的目標對象,或者與目標對象相對應的源對象。若ID不同,那么災備陣列30在設定目標對象的ID之后,還需要保存源對象的ID與目標對象的ID之間的對應關系,并且將所述對應關系通知生產(chǎn)陣列20。采用這種方式,雖然查找起來相對復雜一點,但是災備陣列30在創(chuàng)建目標對象時更為靈活。所以兩者各有優(yōu)勢。另外,如前面對對象的描述可知,目標對象是邏輯上用于承載文件或者目錄的數(shù)據(jù)容器,在災備陣列30的硬盤上對應一段或幾段物理空間。所述物理空間是創(chuàng)建所述目標對象時,為其分配的。

在步驟4中,災備陣列30將所述數(shù)據(jù)復制請求中攜帶的數(shù)據(jù)塊寫入所述物理空間中。所述數(shù)據(jù)塊保存在所述物理空間中的地址為目標物理地址,目標物理地址與源物理地址不同。

具體的,生產(chǎn)陣列20向災備陣列30發(fā)送的所述數(shù)據(jù)復制請求中還可以包括所述數(shù)據(jù)塊的邏輯地址。所述邏輯地址對于生產(chǎn)陣列20和災備陣列30而言都是適用的。這意味著,所述數(shù)據(jù)塊位于源對象的位置與所述數(shù)據(jù)塊位于目標對象的位置相同。因此,災備陣列30在將所述數(shù)據(jù)塊寫入所述物理空間時可以根據(jù)所述數(shù)據(jù)塊的邏輯地址寫入所述物理空間??梢岳斫獾氖牵鰯?shù)據(jù)塊實際占用的物理空間可以是為所述目標對象分配的物理空間的一部分,也可以是全部。

在步驟5中,災備陣列30在將所述數(shù)據(jù)塊寫入物理空間之后,生成并保存所述數(shù)據(jù)塊的布局元數(shù)據(jù)。所述布局元數(shù)據(jù)包括目標對象的ID與目標物理地址的對應關系,以及邏輯地址與所述目標物理地址的對應關系。由于目標物理地址與源物理地址不同,那么相應的,災備陣列端的布局元數(shù)據(jù)和生產(chǎn)陣列端的布局元數(shù)據(jù)也不相同。

在執(zhí)行步驟5之后,災備陣列30可以向生產(chǎn)陣列20發(fā)送一個響應請求,以指示所述數(shù)據(jù)復制請求執(zhí)行成功。至此,本實施例實現(xiàn)了將生產(chǎn)陣列中的對象以及所述對象對應的數(shù)據(jù)塊復制到災備陣列中。由于所述數(shù)據(jù)塊存儲在災備陣列30中的目標物理地址與所述數(shù)據(jù)塊存儲在生產(chǎn)陣列20中的源物理地址不相同,生產(chǎn)陣列20并不需要指示災備陣列30存儲所述數(shù)據(jù)塊的物理地址,因此生產(chǎn)陣列20也不需要將布局元數(shù)據(jù)發(fā)給災備陣列30,節(jié)省了生產(chǎn)陣列與災備陣列之間的帶寬開銷。

具體的,步驟2-步驟5可以由災備陣列30中的處理器218來執(zhí)行。

下面介紹增量數(shù)據(jù)復制請求的處理。

在步驟2中,如果災備陣列30判斷出所述目標對象已經(jīng)存在,那么步驟2中的數(shù)據(jù)復制請求就是一個增量數(shù)據(jù)復制請求。另外,在步驟5之后,在步驟6中(即創(chuàng)建所述目標對象之后)災備陣列30也可能接收增量數(shù)據(jù)復制請求。所述增量數(shù)據(jù)復制請求用于對目標對象中的數(shù)據(jù)塊進行更新。

具體的,在完成一次復制任務之后生產(chǎn)陣列20可能會接收來自生產(chǎn)主機的增量數(shù)據(jù),用于源對象對應的數(shù)據(jù)塊進行更新。為了保持兩端的數(shù)據(jù)的一致性,生產(chǎn)陣列20需要將所述增量數(shù)據(jù)發(fā)送給災備陣列30。所述增量數(shù)據(jù)復制請求包括所述增量數(shù)據(jù)、源對象的標識(例如,ID)以及邏輯地址。與數(shù)據(jù)復制請求類似,增量數(shù)據(jù)復制請求也是周期性發(fā)送的,其周期可以和遠程復制的周期相同。

在實際應用中,生產(chǎn)陣列20在接收增量數(shù)據(jù)之后,可以保存為增量日志。所述增量日志可以描述為“源對象的ID+邏輯地址”。當復制任務觸發(fā)時,生產(chǎn)陣列20根據(jù)所述增量日志讀取所述增量數(shù)據(jù),并將所述增量數(shù)據(jù)與所述邏輯地址發(fā)送給災備陣列30。當生產(chǎn)陣列20中保存有多條增量日志時,生產(chǎn)陣列20可以將一個遠程復制周期內(nèi)的多條增量日志,一次性地或者分別發(fā)送給災備陣列30,以實現(xiàn)災備陣列端和生產(chǎn)陣列端數(shù)據(jù)的一致性。

例如,在步驟6中,生產(chǎn)陣列20向災備陣列30發(fā)送增量數(shù)據(jù)復制請求,災備陣列30接收所述增量數(shù)據(jù)復制請求之后,根據(jù)源對象的ID查找待更新的目標對象。示例性的,目標對象的ID可以和源對象的ID相同,這種情況下,災備陣列30可以直接根據(jù)所述源對象的ID查找到目標對象。另外,在其他實施方式中,目標對象的ID可以和源對象的ID不相同,那么災備陣列30就需要根據(jù)所述源對象的ID和本地保存的目標對象的ID與源對象的ID之間的對應關系,查找到目標對象。

在步驟7中,災備陣列30根據(jù)所述增量數(shù)據(jù)復制請求中攜帶的邏輯地址確定所述目標對象內(nèi)待更新的數(shù)據(jù)塊的位置,將所述增量數(shù)據(jù)復制請求中攜帶的數(shù)據(jù)塊寫入該位置。災備陣列30在將所述增量數(shù)據(jù)寫入為所述目標對象對應的物理空間之后,生成并保存目標物理地址與所述邏輯地址之間的對應關系,以及所述目標物理地址與所述目標對象的ID之間的對應關系。

具體的,步驟6-步驟7可以由災備陣列30中的處理器218來執(zhí)行。

通過步驟6和步驟7,災備陣列30完成了對目標對象的更新。并且,生產(chǎn)陣列20在將增量數(shù)據(jù)發(fā)送給災備陣列30時也不需要將描述所述增量數(shù)據(jù)在硬盤上如何布局的元數(shù)據(jù)發(fā)送給災備陣列30,而是由災備陣列30在將所述增量數(shù)據(jù)寫入時重新生成布局元數(shù)據(jù)。因此,節(jié)省了生產(chǎn)陣列端與災備陣列端之間的帶寬開銷。

在實際應用中,生產(chǎn)陣列20可能刪除某個文件或者某個目錄,或者截斷某個文件,從而導致該文件或者目錄所在的對象被刪除,或者該對象的部分數(shù)據(jù)被刪除,使對象實際占用的物理空間變小。這種場景下,生產(chǎn)陣列20也需要將刪除文件或者目錄、或截斷文件的信息同步至災備陣列30。

示例性的,生產(chǎn)陣列20接收刪除、截斷指令之后,根據(jù)刪除、截斷指令中的邏輯地址將該邏輯地址的數(shù)據(jù)塊釋放,并且保存刪除日志。所述刪除日志可以描述為“源對象的ID+邏輯地址”。當復制任務觸發(fā)時,生產(chǎn)陣列20根據(jù)所述刪除日志讀取對應位置的數(shù)據(jù),若該位置對應的數(shù)據(jù)塊被釋放,則讀取不到有效數(shù)據(jù),在這種情況下,生產(chǎn)陣列將數(shù)據(jù)內(nèi)容替換為某種特殊標記(如標記為全0),該標記的含義代表對應的邏輯地址的數(shù)據(jù)塊需要被釋放,并將所述含有特殊標記的數(shù)據(jù)、所述邏輯地址以及源對象的ID發(fā)送給災備陣列30。

災備陣列30檢測到接收的數(shù)據(jù)中含有特殊標記,根據(jù)源對象的ID確定待修改的目標對象,將所述目標對象的邏輯地址的數(shù)據(jù)塊釋放,從而實現(xiàn)刪除對象、或刪除對象的部分數(shù)據(jù),即達到在目標文件系統(tǒng)中刪除文件或目錄,截斷文件的效果。

另外,本實施例還可以用于陣列內(nèi)部源文件系統(tǒng)與目標文件系統(tǒng)之間的數(shù)據(jù)復制。在具體實現(xiàn)上,可以由陣列內(nèi)部的控制器(參見圖2所示的結構圖)執(zhí)行。

例如,當源文件系統(tǒng)中的一個對象需要備份到目標文件系統(tǒng)時,控制器判斷目標文件系統(tǒng)中是否有與源對象ID相同的目標對象,若沒有則創(chuàng)建一個目標對象,所述目標對象的ID與源對象的ID相同,所述目標對象對應硬盤上的一段或幾段物理空間。與圖4所示的實施例不同之處在于,陣列內(nèi)的備份,源對象和目標對象所對應的物理空間都位于該陣列內(nèi)。而圖4所示的實施例由于陣列間的數(shù)據(jù)復制,源對象對應的物理空間位于生產(chǎn)陣列中,目標對象對應的物理空間位于災備陣列中。在目標對象創(chuàng)建完成之后,控制器再將所述源對象對應的數(shù)據(jù)塊寫入目標對象對應的物理空間中。

示例性的,控制器可以根據(jù)所述數(shù)據(jù)塊位于所述源對象的邏輯地址將所述數(shù)據(jù)塊寫入目標對象對應的物理空間中,以保證所述數(shù)據(jù)塊在目標對象中保存的位置與源對象中保存的位置一致。

其余的步驟,例如當源對象對應的數(shù)據(jù)有更新時,增量數(shù)據(jù)也需要備份給目標對象。具體的實施方式與圖4所示的實施例類似,這里不再贅述。

在某些基于文件語義的數(shù)據(jù)備份技術中,源文件系統(tǒng)將接收的數(shù)據(jù)記錄到日志中。日志中按順序記錄所有的文件語義寫操作和寫數(shù)據(jù),如創(chuàng)建文件、刪除文件、移動文件、對文件寫入數(shù)據(jù)、修改文件屬性、創(chuàng)建目錄、刪除目錄等。文件語義寫操作具有順序依賴性,例如,創(chuàng)建文件前,該文件所屬的目錄必須先存在,所以必須先創(chuàng)建目錄,再創(chuàng)建文件。由于順序依賴性的存在,使得備份時必須按照一系列的規(guī)則進行,從而使得基于文件語義的數(shù)據(jù)備份技術實現(xiàn)起來比較復雜。或者,周期性地對源文件系統(tǒng)創(chuàng)建快照,通過對比前后快照的差異,推導出兩次快照之間源文件系統(tǒng)發(fā)生哪些文件語義寫操作和寫數(shù)據(jù)。然后,后臺任務獲取該記錄,以文件語義寫操作的形式發(fā)送給目標文件系統(tǒng)。目標文件系統(tǒng)按照類似于應用程序在災備陣列的文件系統(tǒng)上重新執(zhí)行的方式執(zhí)行該寫操作。這種方式導致災備陣列在執(zhí)行文件語義復制時,需要對每個文件執(zhí)行相應的操作(例如open操作或者close操作),導致很多額外的開銷,使得備份效率較低。而本發(fā)明實施例在實現(xiàn)時,不用考慮寫操作之間的順序依賴性。只需要將對象對應的數(shù)據(jù)塊由源文件系統(tǒng)備份到目標文件系統(tǒng),數(shù)據(jù)塊之間沒有依賴關系,不用考慮備份數(shù)據(jù)塊的先后順序,降低了方案復雜度。并且,在備份時,可以直接執(zhí)行對對象的讀取和寫入,不需要執(zhí)行額外的操作(例如open操作或者close操作),降低了系統(tǒng)開銷,提高了備份效率。

另外,在基于塊語義的備份中,文件系統(tǒng)必須構建于卷上。卷提供的是塊(block)語義的訪問接口和地址空間,該語義只有讀一段地址和寫一段地址,沒有復雜的文件操作。所以,基于塊語義的備份,本質(zhì)上是利用卷的復制方法實現(xiàn)。該方法周期性地對生產(chǎn)陣列中的源卷創(chuàng)建快照,比較前后快照之間哪些數(shù)據(jù)塊發(fā)生了變化。然后,獲取發(fā)生變化的數(shù)據(jù)塊以及數(shù)據(jù)塊的地址,發(fā)送給目標文件系統(tǒng)。目標文件系統(tǒng)將數(shù)據(jù)塊寫入相同地址的目標卷中。然而,基于塊語義的備份,必須依賴于文件系統(tǒng)構建于卷上的基礎架構,若不是基于這種架構則無法采用該技術。本發(fā)明實施例擺脫了文件系統(tǒng)需要構建于卷上的依賴,無論文件系統(tǒng)構建于何種物理空間之上,都可以實現(xiàn)文件的備份。

需要說明的是,上述兩段話中的源文件系統(tǒng)和目標文件系統(tǒng)可以是指一個陣列內(nèi)的兩個文件系統(tǒng),也可以分別是兩個陣列中的文件系統(tǒng)。

最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
兴文县| 长阳| 华容县| 康平县| 大港区| 松桃| 马边| 大安市| 安塞县| 清远市| 江都市| 奉贤区| 大姚县| 连平县| 台江县| 扎兰屯市| 泸州市| 防城港市| 额敏县| 连州市| 兖州市| 洮南市| 顺平县| 上饶县| 胶南市| 白水县| 临朐县| 乌拉特后旗| 万州区| 永福县| 北川| 宜章县| 平山县| 常宁市| 桑植县| 南江县| 防城港市| 沂源县| 洪江市| 清水县| 定兴县|