新四季網

一種源存儲設備發送源文件和源文件的克隆文件至備份存儲設備的方法、源存儲設備以及備份存儲設備與流程

2023-09-24 03:05:45 3


本發明涉及遠程技術,尤其涉及,一種發送源文件和源文件的克隆文件至備份存儲設備的方法、源存儲設備、以及備份存儲設備。



背景技術:

當今技術時代,企業和政府機構越來越依賴於高性能的計算和存儲系統。作為重要數據保護的一部分,必須考慮到災害的影響。洪澇或地震等自然災害或者重大計算機故障等技術災害會導致存儲系統癱瘓。這樣一來,其包含的數據便不可用或者被破壞。為了避免這種不可接受的可能性,現已採用遠程複製存儲系統。

在遠程複製存儲系統中,數據仍然存儲在本地站點,其中,應用程式正常運行。在遠程站點(可能但未必總是距離很遠)中,部署有另一個存儲系統。所有的或者至少一部分存儲在本地站點的數據也被複製到遠程站點。因此,如果在本地站點有災害發生,那麼在遠程站點中至少可以在一定程度上及時恢復數據。某些情況下,本地站點的存儲設備可以有一個文件系統,可以將數據(也稱為數據塊)整理成文件。特別地,有些文件有它們的克隆文件,其為這些文件可更改的副本。本地站點將文件及其克隆文件都發送至遠程站點以確保遠程站點有相同的文件及其克隆文件,從而能夠接管業務。一種方式為複製文件中包含的數據塊。然而,為了讓遠程站點存儲文件的克隆文件,本地站點還向遠程站點發送源文件的索引節點號、源文件的克隆文件的索引節點號、指示這兩個索引節點號之間關係的指針數據、以及將克隆文件映射到每個數據塊的塊指針數據。在有限的帶寬環境下,這些大量的數據可能會增加存儲系統的負荷。



技術實現要素:

本發明所要解決的問題

關於現有技術,如果本地站點需要發送文件及其克隆文件至遠程站點,則不僅文件中包含的數據塊,而且源文件的索引節點號、源文件的克隆文件的索引節點號、指示這兩個索引節點號之間關係的指針數據、以及將克隆文件映射到每個數據塊的塊指針數據都需要發送至遠程站點。在有限的帶寬環境下,這會增加存儲系統的負荷。

考慮到上面所述的情況,本發明應運而生並旨在提出一種源存儲設備、備份存儲設備、以及能夠複製文件的克隆文件而不必發送指示源文件的索引節點號與克隆文件的索引節點號之間關係的指針數據以及將克隆文件映射到每個數據塊的塊指針數據的遠程複製方法。

解決問題的手段

第一方面,本申請提供了一種發送源文件和所述源文件的克隆文件至備份存儲設備的方法。源存儲設備包括處理器和一個或多個存儲文件的磁碟。所述源文件包括數據塊和指向所述數據塊的第一塊指針,所述源文件的所述克隆文件包括指向所述數據塊的第二塊指針。所述處理器發送所述數據塊至所述備份存儲設備以存儲為目標文件,其中,所述目標文件包括指向所述數據塊的第一塊指針。然後,通過用所述源文件的源文件id查找克隆記錄器,所述處理器確定所述源文件與所述克隆文件相關聯,其中,所述克隆記錄器包括與對應的克隆文件的id相關聯的各個文件的id。基於所述確定,所述處理器發送包括所述源文件id的克隆創建請求至所述備份存儲設備,以指示所述備份存儲設備創建所述目標文件的克隆文件。在所述備份存儲設備接收到所述克隆創建請求後,所述備份存儲設備基於所述源文件id創建所述目標文件的克隆文件。所述目標文件的所述克隆文件包括指向所述數據塊的第二塊指針。

通過確定所述源文件與所述克隆文件相關聯,所述處理器發送克隆創建請求至所述備份存儲設備,以指示所述備份存儲設備創建所述目標文件的克隆文件。由於所述克隆創建請求僅包括所述源文件id,所以所述方法能夠複製所述文件的所述克隆文件而不必發送冗餘的數據至所述備份存儲設備,例如,指示所述源文件的所述索引節點號與所述克隆文件的所述索引節點號之間關係的指針數據,以及將所述克隆文件映射到每個數據塊的塊指針數據。

根據第一方面,在所述方法的第一種實現方式中,所述克隆創建請求還包括所述源文件的所述克隆文件的id。所述源存儲設備的所述處理器還接收一個響應所述克隆創建請求的消息。所述消息包括所述目標文件的所述克隆文件的id,並且,所述目標文件的所述克隆文件的所述id與所述源文件的所述克隆文件的所述id相同。因此,源存儲設備很容易知道哪一個文件是存儲在所述備份存儲設備中的所述目標文件的所述克隆文件。

結合第一種實現方式,根據第一方面,在所述方法的第二種實現方式中,所述處理器在創建所述源文件的所述克隆文件後,確定所述源文件已更新。然後,所述處理器在接收到所述消息後,發送所述源文件的第一更新數據至所述備份存儲設備。在創建所述源存儲設備中的所述源文件的所述克隆文件後,用於更新所述源文件的所述第一更新數據被寫入所述源存儲設備。因此,如果在創建所述源文件的所述克隆文件後,所述源文件已更新,則可以將所述更新數據發送至所述備份存儲設備以更新所述目標文件。相應地,所述目標文件可以與所述源文件保持一致。

結合所述第一種實現方式,根據第一方面,在所述方法的第三種實現方式中,所述處理器在創建所述源文件的所述克隆文件後,確定所述源文件的所述克隆文件已更新。然後,所述處理器在接收到所述消息後,發送第二更新數據至所述備份存儲設備。在創建所述源存儲設備中的所述源文件的所述克隆文件後,用於更新所述源文件的所述克隆文件的所述第二更新數據被寫入所述源存儲設備。因此,如果在創建所述源文件的所述克隆文件後,所述源文件的所述克隆文件已更新,則可以將所述更新數據發送至所述備份存儲設備以更新所述目標文件的所述克隆文件。相應地,所述目標文件的所述克隆文件可以與所述源文件的所述克隆文件保持一致。

第二方面,本申請提供了一種備份存儲設備備份源文件和所述源文件的克隆文件的方法。所述備份存儲設備包括處理器和一個或多個存儲多個文件的磁碟。所述處理器從源存儲設備接收所述源文件的數據塊從源存儲設備接收所述源文件的數據塊,並將所述數據塊存儲為目標文件的一部分,其中,所述目標文件包括指向所述數據塊的第一塊指針。然後,所述處理器從所述源存儲設備接收包括所述源文件的源文件id的克隆創建請求。在這之後,所述處理器基於所述源文件id創建所述目標文件的克隆文件,其中,所述目標文件的所述克隆文件包括指向所述數據塊的第二塊指針。

通過從所述源存儲設備接收包括所述源文件的源文件id的克隆創建請求,所述備份存儲設備的處理器基於所述源文件id創建所述目標文件的克隆文件。由於所述克隆創建請求僅包括所述源文件id,因此所述方法能夠複製所述文件的所述克隆文件而不必發送冗餘的數據至所述備份存儲設備,例如,指示所述源文件的所述索引節點號與所述克隆文件的所述索引節點號之間關係的指針數據,以及將所述克隆文件映射到每個數據塊的塊指針數據。

根據第二方面,在所述方法的第一種實現方式中,所述處理器從所述源存儲設備接收所述源文件id,並為所述目標文件分配目標文件id,其中,所述目標文件id與所述源文件id相同。所述處理器具體確定需要基於所述源文件id創建克隆文件的所述目標文件,並創建所述目標文件的所述克隆文件。因此,源存儲設備很容易知道存儲在所述備份存儲設備中的哪一個文件與存儲在所述源存儲設備中的所述源文件對應。

結合所述第一種實現方式,根據第二方面,在所述方法的第二種實現方式中,所述備份存儲設備還包括日誌區。所述處理器還從所述源存儲設備接收第一更新數據和所述源文件id。基於所述源文件id,所述處理器確定所述第一更新數據用於更新所述目標文件。在創建所述源存儲設備中的所述源文件的所述克隆文件後,所述第一更新數據被寫入所述源存儲設備。所述處理器將所述第一更新數據寫入所述日誌區。當確定所述數據塊已寫入所述目標文件時,所述處理器從所述日誌區獲得所述第一更新數據,並將所述第一更新數據寫入所述目標文件。在這之後,所述處理器更改所述第二塊指針以指向所述第一更新數據。根據所述方法的此種實現方式,在所述源文件更新後,所述目標文件可以與所述源文件保持一致。進一步地,由於所述第一更新數據是首先寫入所述日誌區而非直接寫入所述目標文件,因此所述目標文件的所述克隆文件可以與所述源文件的所述克隆文件保持一致。

結合所述第一種實現方式,根據第二方面,在所述方法的第三種實現方式中,所述克隆創建請求還包括所述源文件的所述克隆文件的id。所述處理器還分配所述目標文件的所述克隆文件的id,其中,所述目標文件的所述克隆文件的所述id與所述源文件的所述克隆文件的所述id相同。因此,基於所述源文件的所述克隆文件的所述id,可以輕易地找到所述目標文件的所述克隆文件。

結合所述第三種實現方式,根據第二方面,在所述方法的第四種實現方式中,所述備份存儲設備還包括日誌區。所述處理器還從所述源存儲設備接收第二更新數據和所述源文件的所述克隆文件的所述id。然後,基於所述源文件的所述克隆文件的所述id,所述處理器確定所述第二更新數據用於更新所述目標文件的所述克隆文件。在創建所述源存儲設備中的所述源文件的所述克隆文件後,所述第二更新數據被寫入所述源存儲設備。所述處理器還將所述第二更新數據寫入所述日誌區。在這之後,所述處理器確定所述數據塊已寫入所述目標文件。基於所述確定,所述處理器從所述日誌區獲得所述第二更新數據,並將所述第二更新數據寫入所述目標文件的所述克隆文件。最後,所述處理器更改所述第二塊指針以指向所述第二更新數據。根據所述方法的此種實現方式,在所述源文件的所述克隆文件更新後,所述目標文件的所述克隆文件可以與所述源文件的所述克隆文件保持一致。進一步地,由於所述第二更新數據是首先寫入所述日誌區而非直接寫入所述目標文件的所述克隆文件,因此所述目標文件可以與所述源文件保持一致。

根據第二方面,在所述方法的第五種實現方式中,所述備份存儲設備從所述源存儲設備接收所述源文件id,並為所述目標文件分配目標文件id,其中,所述目標文件id與所述源文件id不同。所述備份存儲設備再保存所述源文件id和所述目標文件id之間的第一映射關係。所述備份存儲設備可以確定需要基於所述第一映射關係創建克隆文件的所述目標文件,並創建所述目標文件的所述克隆文件。由於所述目標文件id與所述源文件id不同,因此相比於所述目標文件id與所述源文件id相同的實現方式,此種實現方式更靈活。

結合所述第五種實現方式,根據第二方面,在所述方法的第六種實現方式中,所述處理器還包括日誌區。所述處理器從所述源存儲設備接收第一更新數據和所述源文件id。然後,基於所述源文件id和所述第一映射關係,所述處理器確定第一更新數據用於更新所述目標文件。在創建所述源存儲設備中的所述源文件的所述克隆文件後,所述第一更新數據被寫入所述源存儲設備。所述處理器將所述目標文件的所述第一更新數據寫入所述日誌區。在這之後,所述處理器確定所述數據塊已寫入所述目標文件。基於所述確定,所述處理器從所述日誌區獲得所述第一更新數據,並將所述第一更新數據寫入所述目標文件。最後,所述處理器更改所述第二塊指針以指向所述第一更新數據。根據所述方法的此種實現方式,在所述源文件更新後,所述目標文件可以與所述源文件保持一致。進一步地,由於所述第一更新數據是首先寫入所述日誌區而非直接寫入所述目標文件,因此所述目標文件的所述克隆文件可以與所述源文件的所述克隆文件保持一致。

結合所述第五種實現方式,根據第二方面,在所述方法的第七種實現方式中,所述克隆創建請求還包括所述源文件的所述克隆文件的id。所述處理器分配所述目標文件的所述克隆文件的id,其與所述源文件的所述克隆文件的所述id不同。然後,所述處理器保存所述源文件的所述克隆文件的所述id與所述目標文件的所述克隆文件的所述id之間的第二映射關係。由於所述目標文件的所述克隆文件的所述id與所述源文件的所述克隆文件的所述id不同,因此相比於所述目標文件的所述克隆文件的所述id與所述源文件的所述克隆文件的所述id相同的實現方式,此種實現方式更靈活。

結合所述第七種實現方式,根據第二方面,在所述方法的第八種實現方式中,所述備份存儲設備還包括日誌區。所述處理器還從所述源存儲設備接收第二更新數據和所述源文件的所述克隆文件的所述id。然後,基於所述源文件的所述克隆文件的所述id和所述第二映射關係,所述處理器確定所述第二更新數據用於更新所述目標文件的所述克隆文件。在創建所述源存儲設備中的所述源文件的所述克隆文件後,所述第二更新數據被寫入所述源存儲設備。所述處理器還將所述第二更新數據寫入所述日誌區。在這之後,所述處理器確定所述數據塊已寫入所述目標文件。基於所述確定,所述處理器從所述日誌區獲得所述第二更新數據,並將所述第二更新數據寫入所述目標文件的所述克隆文件。最後,所述處理器更改所述第二塊指針以指向所述第二更新數據。根據所述方法的此種實現方式,在所述源文件的所述克隆文件更新後,所述目標文件的所述克隆文件可以與所述源文件的所述克隆文件保持一致。進一步地,由於所述第二更新數據是首先寫入所述日誌區而非直接寫入所述目標文件的所述克隆文件,因此所述目標文件可以與所述源文件保持一致。

第三方面,本申請提供了一種執行第一方面所述方法的源存儲設備。

第四方面,本申請提供了一種執行第二方面所述方法的備份存儲設備。

第五方面,本申請提供了一種執行第一方面所述方法的源裝置。

第六方面,本申請提供了一種執行第二方面所述方法的備份裝置。

第七方面,本發明涉及一種電腦程式,包括用於在計算機上運行時,執行第一方面所述方法的程序代碼。因此,所述方法可以自動重複執行。

第八方面,本發明涉及一種電腦程式,包括用於在計算機上運行時,執行第二方面所述方法的程序代碼。因此,所述方法可以自動重複執行。

附圖說明

圖1是本發明實施例提供的描述存儲系統的硬體配置的框圖。

圖2a是本發明實施例提供的描述主控制器的硬體配置的框圖。

圖2b是本發明實施例提供的描述輔控制器的硬體配置的框圖。

圖3是本發明實施例提供的描述主控制器的軟體配置的框圖。

圖4a是本發明實施例提供的描述如何創建源文件的克隆文件的框圖。

圖4b是本發明實施例提供的描述如何更改源文件的克隆文件的框圖。

圖4c是本發明實施例提供的描述如何更改源文件的框圖。

圖5是本發明實施例提供的描述輔控制器的軟體配置的框圖。

圖6是本發明實施例提供的描述克隆記錄器中包含的表格的框圖。

圖7是本發明實施例提供的描述備份處理的框圖。

圖8是本發明另一實施例提供的描述備份處理的框圖。

圖9是本發明實施例提供的描述源裝置的硬體配置的框圖。

圖10是本發明實施例提供的描述備份裝置的硬體配置的框圖。

具體實施方式

下面結合附圖對本發明實施例進行詳細說明。

存儲系統的硬體配置

首先,對存儲系統的硬體配置進行描述。圖1是描述存儲系統的硬體配置的框圖。如圖1所示,存儲系統包括本地站點10和遠程站點20。本地站點10至少包括主機11和主存儲系統12。主機11執行將數據轉移入及轉移出主存儲系統12的一個或多個應用程式。主存儲系統12確保將所有的或至少一部分數據複製到遠程站點20。為了確保不受災害事件的影響,優選地,遠程站點20在地理位置上遠離本地站點10。災害過後,主機11上的應用程式可以恢復以及重新開始使用本地站點10從遠程站點20處修復的應用程式數據。然而,作為一個示例,本領域的技術人員應該知道也可以在與本地站點10相同的位置或者接近本地站點10的位置部署遠程站點20。

圖1中的主存儲系統12可以為包括主控制器121的磁碟陣列。圖2a描述了主控制器121的硬體配置。主控制器121包括其與主機11通信和交互數據所用的一個或多個接口122,磁碟,以及輔存儲系統22。主控制器121還包括用於存儲執行指令和各種程序的緩存存儲器123。進一步地,主控制器121包括用於執行存儲在存儲器123中的指令的處理器124。下面將會描述處理器124執行圖7或圖8中的一些步驟。

主存儲系統12還包括一個或多個硬碟驅動器(圖2a和圖2b中指示的磁碟)。硬碟驅動器由半導體存儲器組成,例如,固態驅動器(solidstatedrive,ssd),串行連接的scsi(serialattachedscsi,sas)磁碟或光纖通道(fibrechannel,fc)磁碟等昂貴高性能的磁碟設備,以及串行高級技術附件(serialatattachment,sata)磁碟等廉價低性能的磁碟設備。此外,可以將多個硬碟驅動器作為一個raid組進行管理。

如圖2b所示,輔存儲系統22的硬體配置與主存儲系統12相同。例如,輔存儲系統12包括輔控制器221和一個或多個磁碟。輔控制器221包括其與磁碟和主存儲系統12通信及交互數據所用的一個或多個接口222。輔控制器121還包括用於存儲執行指令和程序的緩存存儲器223。進一步地,輔控制器221包括用於執行存儲在存儲器223中的指令和程序的處理器224。下面將會描述處理器124執行圖7或圖8中的一些步驟。輔存儲系統22的磁碟與主存儲系統12的磁碟類似,此處不再贅述。進一步地,輔存儲系統22包括用於記錄文件的一個或多個數據塊的日誌的日誌區。日誌區為緩存存儲器223中的獨立區域或者輔存儲系統22的磁碟。

存儲系統的軟體配置

首先,主存儲系統21包括文件系統125。文件系統125用於控制數據存儲和提取的方式。如果沒有文件系統,置於存儲區域(例如,磁碟)中的信息將會是一個大的數據體,無法區分一個信息在哪兒停止以及下一個信息從哪兒開始。將數據分隔開來並給每一個數據命名,這樣很容易分離以及識別信息。基於紙質信息系統命名的方式進行命名,每組數據稱為「文件」。用於管理各組信息及其名字的結構和邏輯規則稱為「文件系統」。相應地,文件系統125負責整理文件和目錄,並且追蹤文件何時被更改。進一步地,文件系統125中存儲了所有與文件相關聯的元數據,包括文件名稱、文件id(例如,索引節點號)、文件數據塊的大小、存儲在磁碟中的文件位置、創建文件的時間戳、以及將各個數據塊寫入磁碟的多個時間戳。

本發明實施例的文件包括一個或多個數據塊以及一個或多個塊指針。每個塊指針指向一個數據塊。如圖3所示,主控制器121還包括克隆程序127、克隆記錄器126、以及可以存儲在存儲器123中的複製程序128。

克隆程序127為用於生成文件的克隆文件的程序。如圖4a所示,一個文件(稱為源文件)有其克隆文件,其是該文件可更改的副本。通過包含指向源文件的相同物理數據塊的塊指針,要複製的源文件的克隆文件和該源文件共享物理數據塊,例如,圖4a所示的a、b、c和d。進一步地,可以通過索引節點號來標識文件,並且,該索引節點號也可視為文件id。例如,源文件id為2000,而克隆文件id為1024。如果一個文件為源文件的克隆文件,則源文件id應該記錄在克隆文件中,如圖4a所示。

如圖4b所示,當更改克隆文件以用存儲在不同位置的數據塊e代替數據塊d時,更改用於指向d的克隆文件的塊指針以指向數據塊e。同時,源文件的塊指針仍指向a、b、c和d。這樣一來,不會更改源文件。

如圖4c所示,當更改源文件以用數據塊e代替數據塊d時,更改用於指向d的源文件的塊指針以指向數據塊e。同時,克隆文件的塊指針仍指向a、b、c和d。這樣一來,不會更改克隆文件。

克隆記錄器126可以包括但不限於圖5所示的用於記錄哪些文件有克隆文件以及其他關於克隆的信息的表格。具體地,該表格可以包括源文件id、克隆文件id、以及指示何時創建克隆文件的時間戳。

複製程序128為負責將存儲在主存儲系統12中的文件複製到輔存儲系統22的程序。具體地,當觸發備份任務時,複製程序128生成文件複製請求,其包括要複製的源文件的源文件id。如果該源文件沒有其克隆文件,則複製程序128僅需要發送屬於源文件的數據塊至輔存儲系統22。接收到數據塊後,輔存儲系統22將數據塊存儲為目標文件,其與源文件相同。如果源文件有克隆文件,則複製程序128通知輔存儲系統22創建目標文件的克隆文件,以確保輔存儲系統22的數據結構與主存儲系統12相同。

接下來,對輔存儲系統22的軟體配置進行闡述。如圖5所示,輔存儲系統22至少包括文件系統225、克隆程序227、日誌程序226、以及複製程序228。

輔存儲系統22的文件系統225與主存儲系統12的文件系統125類似,此處不再贅述。

輔存儲系統22的克隆程序227與主存儲系統12的克隆程序127類似。創建目標文件的克隆文件的方式與創建源文件的克隆文件的方式類似。圖4a、圖4b、以及圖4c所示的更改源文件或克隆文件的方式適用於更改目標文件及其克隆文件。

日誌程序226用於記錄一個或多個數據塊的一個或多個日誌。有時,不應該將一些數據塊立即寫入磁碟,日誌程序226負責將這些數據塊首先寫入日誌區,該日誌區為緩存存儲器223或輔存儲系統22的磁碟中的一個獨立區域。除了數據塊,一些日誌信息也應該寫入日誌區,例如,擁有數據塊的文件的id以及數據塊的大小。

複製程序228為用於從主存儲系統12接收文件以及將所接收到的文件寫入磁碟的程序。

文件備份過程

可以以異步遠程複製模式或同步遠程複製模式進行文件備份過程。

在異步遠程複製模式中,經過幾個周期將存儲在主存儲系統12中的文件複製到輔存儲系統22。每個周期對應一個複製任務,並且,在每個周期中,主存儲系統12發送一個或多個文件至輔存儲系統22以實現備份。

在同步遠程複製模式中,當主存儲系統12從主機11接收到文件(可以包括一個或多個數據塊)時,主存儲系統12可以在通知主機11該文件已寫入前發送該文件至輔存儲系統22。相應地,存儲在主存儲系統12中的文件通常與存儲在輔存儲系統22中的數據相同。然而,如果主存儲系統12與輔存儲系統22之間的鏈路故障,則會有一些存儲在主存儲系統12中的文件沒有複製到輔存儲系統22。因此,在類似這種情況下,也可以以同步遠程複製模式進行文件備份過程。

具體地,當主存儲系統12發送文件至輔存儲系統22時,它可以發送一個或多個文件複製請求至輔存儲系統22,其中,每個文件複製請求包括該文件的一個或多個數據塊。進一步地,該文件複製請求可以包括該文件的id。

處理器124利用圖3中的程序或處理器224利用圖5中的程序執行下面的步驟。

如圖7所示,在步驟1中:複製程序128確定觸發複製任務,該複製任務可以由定時器觸發或手動觸發,在此不做限制。某些情況下,本地站點10與遠程站點20之間可能有一個中間設備,該中間設備確定何時開始該複製任務及發送一個通知至本地站點10以觸發該複製任務。

在步驟2中:複製程序128發送源文件的數據塊至輔存儲系統22。

具體地,複製程序128可以生成一個文件複製請求,其包括要複製的文件的id。例如,上面所述的源文件為要複製的文件。

進一步地,文件複製請求可以包括源文件id。作為一個示例,複製程序128可以直接獲得源文件的數據塊,並將其發送至輔存儲系統22。作為另一個示例,當觸發複製任務時,可以以快照的方式複製存儲在主存儲系統12中的文件。快照及時表明了文件系統125在特定點上的狀態,其可以指文件系統125的狀態的副本。因此,可以基於快照獲得源文件的數據塊。

事實上,可以生成多個文件複製請求,每個文件複製請求包括要複製的源文件的一個或多個數據塊。僅僅以步驟2中所述的文件複製請求為例來闡述如何將源文件複製到輔存儲系統22。

例如,源文件包括圖4a中所述的a、b、c和d。在輔存儲系統22接收到這些數據塊後,輔存儲系統22的複製程序228執行步驟3:將數據塊存儲為目標文件的一部分。作為一個示例,複製程序228可以分配目標文件id,其與源文件id相同,這樣一來,可以輕易找到目標文件。作為另一個示例,複製程序228可以分配目標文件id,其與源文件id不同。進一步地,複製程序228保存了分配的目標文件id與源文件id之間的第一映射關係。這樣一來,可以根據源文件id和第一映射關係找到目標文件。為了讓主存儲系統12知道存儲在輔存儲系統22中的哪一個文件與源文件相同,輔存儲系統22的複製程序228可以發送第一映射關係至主存儲系統12以進行保存。

在步驟4中:通過查找克隆記錄器126,複製程序128判斷源文件是否與克隆文件相關聯。如上所述,克隆記錄器包括與對應的克隆文件的id相關聯的每個文件的id。相應地,克隆記錄器指示哪一個文件有克隆文件。具體地,它記錄文件id與克隆文件id之間的映射關係。此外,克隆記錄器126記錄指示何時創建特定克隆文件的時間戳。複製程序128利用源文件id查找克隆記錄器。如果發現了記錄,則表示源文件有克隆文件。否則,則表示沒有創建源文件的克隆文件。

如果在步驟3中確定源文件有克隆文件,需要執行步驟5。

在步驟5中:複製程序128發送克隆創建請求至輔存儲系統22,該克隆創建請求可以包括源文件id。如果輔存儲系統22中的目標文件id與主存儲系統12中的源文件id相同,則基於源文件id克隆程序227將知道應該創建哪一個文件的克隆文件。如果輔存儲系統22中的目標文件id與主存儲系統12中的源文件id不同,則基於源文件id和第一映射關係克隆程序227將知道應該創建哪一個文件的克隆文件。

克隆創建請求還可以包括源文件的克隆文件的id。在克隆程序227(步驟6)創建了目標文件的克隆文件後,克隆程序227可以為目標文件的克隆文件分配一個id,其與克隆文件id相同。在另一種方式中,克隆程序227可以為目標文件的克隆文件分配一個id,其與源文件的克隆文件id不同。克隆程序227還可以保存源文件的克隆文件的id與源文件的克隆文件的id之間的第二映射關係。為了讓主存儲系統12知道存儲在輔存儲系統22中的哪一個克隆文件與源文件的克隆文件相同,輔存儲系統22的克隆程序227可以發送第二映射關係至主存儲系統12以進行保存。

更具體地,下面將闡述創建目標文件的克隆文件的過程。如圖4a所示,目標文件包括索引節點號和塊指針。索引節點號為目標文件id。當創建目標文件的克隆文件時,將克隆文件id填入指示該克隆文件的索引節點號的欄位。然後,目標文件的索引節點號也包括在該克隆文件中,以指示該克隆文件為目標文件的克隆文件。該克隆文件的塊指針指向目標文件的塊指針所指向的數據塊。

在步驟7中:在創建目標文件的克隆文件後,克隆程序227發送一個響應克隆創建請求的消息。該消息用於通知主存儲系統12目標文件的克隆文件已創建。例如,該消息可以包括目標文件的克隆文件的id。

現有技術中,本地站點需要向遠程站點發送源文件的索引節點號、源文件的克隆文件的索引節點號、指示這兩個索引節點號之間關係的指針數據、以及將克隆文件映射到每個數據塊的塊指針數據。在有限的帶寬環境下,這些大量的數據可能會增加存儲系統的負荷。

根據本實施例上面所述的文件備份過程,存儲在本地站點中的源文件及其克隆文件都可以複製到遠程站點而不必向遠程站點發送指示源文件的索引節點號與克隆文件的索引節點號之間關係的指針數據以及將克隆文件映射到每個數據塊的塊指針數據。如果源文件有克隆文件,本地站點僅需要發送包括源文件id的克隆創建請求至遠程站點,以指示遠程站點創建目標文件的克隆文件。相應地,可以減輕有限帶寬環境下的存儲系統的負荷。

更改的源文件的備份過程

某些情況下,在創建源文件的克隆文件後,可能更改了源文件。在本實施例中,主存儲系統12還需要發送更新數據(稱為第一更新數據)至輔存儲系統22。輔存儲系統22接收第一更新數據並利用其更新目標文件。因此,下面將闡述更新數據備份處理。

在異步遠程複製模式中,例如,可以通過比較兩個快照來獲得第一更新數據。一個快照是在最後一個複製周期獲取的,另一個快照是在當前複製周期獲取的。而在同步遠程複製模式中,可以從主機11接收第一更新數據以更新源文件。

在步驟8中,在創建源文件的克隆文件後,複製程序128判斷源文件是否已更新。由於克隆記錄器126已經記錄指示何時創建源文件的克隆文件的時間戳,因此複製程序128從文件系統125獲得另一個指示何時將第一更新數據寫入主存儲系統21的時間戳。這樣一來,複製程序128可以比較這兩個時間戳以判斷在創建源文件的克隆文件後,源文件是否已更新。如果不是,則該過程結束(步驟9)。

另一方面,如果在步驟8中確定源文件已更新,則複製程序128獲得第一更新數據(步驟10)並將其發送至輔存儲系統22(步驟11)。第一更新數據可以包括在複製請求中,其還包括源文件內第一更新數據的偏移量以及第一更新數據的大小。

進一步地,在步驟11中,複製程序128可以在第一更新數據中附加指示符以區分源文件和第一更新數據。該指示符指示在創建源文件的克隆文件後,源文件的第一更新數據被寫入主存儲系統12(緩存存儲器123或磁碟)。

在步驟12中:在接收到第一更新數據後,複製程序228確定第一更新數據用於更新目標文件。例如,複製程序128可以發送更新請求至複製程序228。該更新請求包括第一更新數據和源文件id。進一步地,可以在第一更新數據中附加指示符(步驟11中已闡述)。基於該指示符,複製程序228在創建源文件的克隆文件後,確定將第一更新數據寫入主存儲系統12。進一步地,在一種方式中,目標文件id與源文件id相同,複製程序228基於源文件id確定第一更新數據需要更新的目標文件。在另一方式中,目標文件id與源文件id不同,複製程序228基於源文件id和第一映射關係確定第一更新數據需要更新的目標文件。

在步驟13中:複製程序228判斷目標文件的數據塊是否已寫入輔存儲系統22的目標文件。在本實施例中,如果複製程序228從主存儲系統12接收到一個通知,則複製程序228可以確定目標文件的數據塊已寫入輔存儲系統22的目標文件。該通知用於通知輔存儲系統22源文件的所有數據塊已經發出。

本領域的技術人員知道一個文件可以包括一個或多個數據塊。數據塊可以包括在一個或多個文件複製請求中。複製程序128依次發送文件複製請求至複製程序228。在某些場景中,當複製程序228已經接收到第一更新數據時,有些數據塊可能還未寫入輔存儲系統22。因此,複製程序228需要判斷目標文件的數據塊是否已存儲。

例如,在複製程序128發送源文件的第一數據塊至輔存儲系統22後,複製程序228接收到第一數據塊並將其存儲為目標文件的一部分。複製程序228發送第一響應至主存儲系統12。本領域的技術人員應當知道該第一響應是在第一數據塊寫入輔存儲系統22的緩存存儲器223後在回寫模式下發送的,或者該第一響應是在第一數據塊寫入輔存儲系統22的磁碟後在透寫模式下發送的。無論是回寫模式下還是透寫模式下,該第一響應意味著第一數據塊已存儲在輔存儲系統22的目標文件中。然後,複製程序128發送源文件的第二數據塊並從輔存儲系統22接收第二數據塊的第二響應。相應地,當複製程序128發出源文件的所有數據塊時,複製程序128可以從輔存儲系統22接收所有的響應。在這之後,複製程序128發送上面所述的通知至複製程序228。

如果目標文件的數據塊已存儲在輔存儲系統22中,則複製程序228直接將第一更新數據寫入目標文件(步驟14)。否則,複製程序228應該激活日誌程序226並執行步驟15。

在步驟15中:日誌程序226將第一更新數據寫入日誌區。例如,日誌程序226可以根據附加的指示符寫入第一更新數據。

更具體地,日誌程序226記錄第一更新數據的日誌並將該日誌寫入日誌區。該日誌包括第一更新數據本身。進一步地,由於第一更新數據用於更新目標文件,因此該日誌包括目標文件id。該日誌還包括目標文件內的偏移量以及第一更新數據的大小。基於該偏移量及大小,可以確定應該用第一更新數據取代目標文件的哪一個數據塊。需要說明的是,日誌區可以位於磁碟或輔控制器的緩存存儲器223。如果它位於磁碟,則日誌區應該與存儲目標文件的數據塊的區域分離。

直到確定目標文件的數據塊已寫入目標文件,才可以執行步驟16。在步驟16中,日誌程序226從日誌區獲得第一更新數據。

在步驟17中,日誌程序226將第一更新數據寫入目標文件。然後,應該將指向被取代的數據塊的數據指針重定向至第一更新數據。

在圖4c所示的例子中,更新數據e應該取代數據塊d。在a、b、c和d全部寫入磁碟前,日誌程序226記錄更新數據e的日誌。更新數據e的日誌包括e、目標文件內的偏移量(例如,76)、以及更新數據e的大小(例如,25位元組)。在a、b、c和d全部寫入磁碟後,日誌程序226從日誌區獲得e並將其寫入磁碟。然後,日誌程序226還確定應該用更新數據e代替目標文件的哪一個數據塊。日誌程序226從文件系統225獲得目標文件的元數據。該元數據指示目標文件的大小為100位元組。數據塊d位於76-100的地址範圍內。這樣一來,日誌程序226可以確定應該用更新數據e代替數據塊d。因此,日誌程序226將d的塊指針重定向至更新數據e。

至於本實施例中的源文件備份處理的更新數據,可以將更新數據發送至輔存儲設備以更新目標文件而不必改變目標文件的克隆文件。

更改的克隆文件的備份過程

其他情況下,在創建克隆文件後,可能更改了源文件的克隆文件。在本實施例中,主存儲系統12還需要發送更新數據(稱為第二更新數據)至輔存儲系統22。輔存儲系統22接收第二更新數據並利用其更新目標文件的克隆文件。

在異步遠程複製模式中,例如,可以通過比較兩個快照來獲得第二更新數據。一個快照是在最後一個複製周期獲取的,另一個快照是在當前複製周期獲取的。而在同步遠程複製模式中,可以從主機11接收第二更新數據以更新源文件的克隆文件。

如圖8所示,步驟1-7與圖7中的步驟1-7類似。因此,不再對圖7中的步驟1-7進行闡述。

在步驟8中,在創建克隆文件後,複製程序128判斷源文件的克隆文件是否已更新。由於克隆記錄器126已經記錄指示何時創建源文件的克隆文件的時間戳,因此複製程序128從文件系統125獲得另一個指示何時將第二更新數據寫入主存儲系統21的時間戳。這樣一來,複製程序128可以比較這兩個時間戳以判斷在創建源文件的克隆文件後,源文件的克隆文件是否已更新。如果不是,則該過程結束(步驟9)。

另一方面,如果在步驟8中確定源文件的克隆文件已更新,則複製程序128獲得第二更新數據(步驟10)並將其發送至輔存儲系統22(步驟11)。第二更新數據可以包括在複製請求中,其還包括克隆文件內第二更新數據的偏移量以及第二更新數據的大小。

進一步地,在步驟11中,複製程序128可以在第二更新數據中附加指示符以區分源文件和第二更新數據。該指示符指示在創建源文件的克隆文件後,克隆文件的第二更新數據被寫入主存儲系統12(緩存存儲器123或磁碟)。

在步驟12中:在接收到第二更新數據後,複製程序228確定第二更新數據用於更新目標文件的克隆文件。例如,複製程序128可以發送更新請求至複製程序228。該更新請求包括第二更新數據和源文件的克隆文件的id。進一步地,可以在第二更新數據中附加指示符(步驟11中已闡述)。基於該指示符,複製程序228在創建源文件的克隆文件後,確定將第二更新數據寫入主存儲系統12。進一步地,在一種方式中,目標文件的克隆文件的id與源文件的克隆文件的id相同,複製程序228基於源文件的克隆文件的id確定第二更新數據需要更新的目標文件的克隆文件。在另一方式中,目標文件的克隆文件的id與源文件的克隆文件的id不同,複製程序228基於源文件的克隆文件的id和第二映射關係確定第二更新數據需要更新的目標文件的克隆文件。

在步驟13中:複製程序228判斷目標文件的數據塊是否已寫入輔存儲系統22的目標文件。該步驟與圖7中的步驟13類似,此處不再贅述。

如果目標文件的數據塊已寫入輔存儲系統22,則複製程序228可以直接將第二更新數據寫入目標文件的克隆文件(步驟14)。否則,複製程序228應該激活日誌程序226並執行步驟15。

在步驟15中:日誌程序226將第二更新數據寫入日誌區。例如,日誌程序226可以根據附加的指示符寫入第二更新數據。

更具體地,日誌程序226記錄第二更新數據的日誌並將該日誌寫入日誌區。該日誌包括第二更新數據本身。進一步地,由於第二更新數據用於更新克隆文件,因此該日誌包括目標文件的克隆文件的id。該日誌還包括克隆文件內的偏移量以及第二更新數據的大小。基於該偏移量及大小,可以確定應該用第二更新數據取代克隆文件的哪一個數據塊。

直到確定目標文件的數據塊已寫入目標文件,才可以執行步驟15。在步驟16中,日誌程序226從日誌區獲得第二更新數據。

在步驟17中,日誌程序226將第二更新數據寫入目標文件。然後,應該將指向被取代的數據塊的數據指針重定向至第二更新數據。

在圖4b所示的例子中,更新數據e應該取代數據塊d。在a、b、c和d全部寫入磁碟前,日誌程序226記錄更新數據e的日誌。更新數據e的日誌包括e、目標文件的克隆文件內的偏移量(例如,76)、以及更新數據e的大小(例如,25位元組)。在a、b、c和d全部寫入磁碟後,日誌程序226從日誌區獲得e並將其寫入磁碟。然後,日誌程序226還確定應該用更新數據e代替目標文件的克隆文件的哪一個數據塊。日誌程序226從文件系統225獲得目標文件的克隆文件的元數據。該元數據指示目標文件的克隆文件的大小為100位元組。數據塊d位於76-100的地址範圍內。這樣一來,日誌程序226可以確定應該用更新數據e代替數據塊d。因此,日誌程序226將d的塊指針重定向至更新數據e。

至於本實施例中的克隆文件備份處理的更新數據,可以將更新數據發送至輔存儲設備以更新目標文件的克隆文件而不必改變目標文件。

發送源文件和該源文件的克隆文件至備份存儲設備的源裝置

如圖9所示,源裝置300包括克隆記錄模塊326和複製模塊328。克隆記錄模塊326的操作與圖3中的克隆記錄器126類似;複製模塊328的操作與圖3中的複製程序128類似。因此,這些模塊的操作及功能不再贅述。

進一步地,源裝置300還可以包括克隆模塊327,其操作與圖3中的克隆程序127類似,此處不再贅述。

(7)備份源文件和該源文件的克隆文件的備份裝置

如圖10所示,備份裝置400包括克隆模塊427和複製模塊428。克隆模塊427的操作與圖5中的克隆程序227類似;複製模塊428的操作與圖5中的複製程序228類似。因此,這些模塊的操作及功能不再贅述。

進一步地,備份裝置400還可以包括日誌模塊426,其操作與圖5中的日誌程序226類似,此處不再贅述。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀