具有分布式清單的去復制的數據存儲系統的制作方法
【專利說明】
【背景技術】
[0001]典型的計算機網絡可以具有備份和恢復系統以用于如果數據變成被毀壞、蓋寫、遭受病毒攻擊等則將網絡上的數據(例如被包含在一個或多個文件中的數據)還原到在先狀態的目的。備份和恢復系統典型地包括大容量存儲設備,諸如磁帶驅動器和/或硬驅動器;并且系統可以包括物理和/或虛擬的可移除存儲設備。
[0002]例如,備份和恢復系統可以在磁帶上存儲備份數據,并且在將備份數據轉移到給定磁帶之后,磁帶可以從其磁帶驅動器被移除并且存儲在安全的位置中,諸如在防火保險箱中。備份和恢復系統可以可替換地為模仿和取代物理磁帶驅動系統的基于虛擬磁帶庫的系統。以此方式,在基于虛擬磁帶庫的系統的情況下,虛擬磁帶盒,而不是磁帶,存儲備份數據。
【附圖說明】
[0003]圖1是根據示例實現的計算機網絡的示意圖。
[0004]圖2是根據示例實現的數據存儲系統的圖示。
[0005]圖3和4是根據示例實現的由圖2的數據存儲系統用于選擇群隊(team)成員以接收去復制(deduplicated)的數據的爭控過程的圖示。
[0006]圖5是根據示例實現的跨多個群隊成員的群隊化對象的存儲分布的圖示。
[0007]圖6是描繪了根據示例實現的在群隊成員的集群上存儲群隊化對象的技術的流程圖。
[0008]圖7,8A和8B是描繪了根據示例實現的選擇群隊成員以用于存儲去復制的數據的技術的流程圖。
[0009]圖9是描繪了根據示例實現的檢索和報告部分群隊化的對象數據的技術的流程圖。
[0010]圖10是圖示了根據示例實現的從群隊成員檢索群隊化對象數據的表。
[0011]圖11是描繪了根據示例實現的在群隊成員之間分布主對象清單的技術的流程圖。
[0012]圖12是根據示例實現的主對象清單的分布的圖示。
[0013]圖13是根據示例實現的經復制的數據的群隊成員控制的重現(replicat1n)的圖示。
[0014]圖14是根據示例實現的非水化重現過程的圖示。
【具體實施方式】
[0015]參照圖1,示例計算機網絡100可以包括備份和恢復系統,其包括在相應服務器110 (服務器110-1,110-2…110Q,其作為示例在圖1中被描繪)上執行的備份應用132和關聯的客戶端應用134。以此方式,有時,備份應用132標識要在網絡100的備份存儲設備上備份的關聯客戶端應用134的數據。該數據進而根據在本文中稱為“對象”的數據容器進行劃分。從一個備份會話到下一個,創建、刪除和修改被存儲在備份存儲裝置上的給定對象。如本文所公開的,在本文所討論的其許多功能之中,客戶端應用134被構造成標識對象數據中的改變;選擇經更新的數據存儲于其上的存儲裝置;以及向所選存儲裝置傳送經更新的數據。
[0016]作為示例,“存儲裝置”可以是獨立計算機系統或相同計算機系統上的獨立存儲子系統。對于圖1的具體示例,存儲裝置形成在相應節點150(P個節點150-1,150-2...150P,其作為示例在圖1中被描繪)上,所述節點經由網絡連接140 (局域網(LAN)連接、基于因特網的連接、廣域網(WAN)連接、這樣的連接的組合等等,這取決于特定實現)親合到服務器110。
[0017]如本文所公開的,給定對象在存儲裝置的集群、或群組上存儲為“群隊化對象”。由于群隊化的性質,“存儲裝置”在本文中還稱為“群隊成員170”。以此方式,依照示例實現,針對給定“群隊化對象”的每一個群隊成員170存儲針對對象的“去復制的數據”,其中去復制的數據是由初始數據集連同表示初始存儲的數據中的改變的數據一起形成的數據。因而,可以從針對給定的群隊化對象的群隊成員170檢索去復制的數據以“再水化”或重構對象。
[0018]—般而言,服務器110是由實際硬件120和實際機器可執行指令或“軟件” 130構成的物理機。在這方面,給定服務器110可以包括這樣的硬件120,如一個或多個中央處理單元(CPU)122、存儲器124、網絡接口 126等等。一般而言,存儲器124是非暫時性存儲器,諸如磁性存儲裝置、光學存儲裝置、由半導體器件形成的存儲裝置等等。存儲器124可以為服務器110本地存儲數據,以及存儲指令,所述指令當由(多個)CPU 122執行時使(多個)CHJ提供機器可執行指令130的一個或多個組件。
[0019]如圖1中所圖示的,機器可執行指令130包括備份應用132和客戶端應用134,以及創建、修改和刪除對象的其它可能的其它應用。
[0020]給定的群隊成員170可以形成在同樣為由實際硬件158和實際機器可執行指令159構成的實際物理機的處理節點150上。硬件158可以包括(作為示例)一個或多個中央處理單元(CPU) 160、網絡接口和存儲器162。存儲器162是非暫時性存儲器并且可以取決于特定實現而是基于磁性存儲的存儲器、基于光學存儲的存儲器、基于半導體存儲的存儲器等等。節點150可以包括機器可執行指令159,所述機器可執行指令159包括例如群隊成員客戶端應用168。
[0021]因此,依照示例實現,存在于潛在地多個節點150上的群隊成員170的集群或群組可以形成用于給定的群隊化對象的存儲。而且,盡管在本文中描述為存在于分離節點150上,但是依照另外的實現,給定的群隊化對象可以存儲在獨立的群隊成員上,其中兩個或更多群隊成員位于相同的節點150上。因此,設想了許多實現,其在隨附權利要求的范圍內。
[0022]結合圖1參照圖2,依照示例實現,群隊化對象208可以呈現為對給定客戶端應用134的單個邏輯對象,盡管針對對象208的數據分布在群隊成員170的群組或集群之上。群隊化對象的這種邏輯呈現為應用提供了單個存儲池,其橫跨集群內否則獨立的存儲池。
[0023]依照一些實現,客戶端應用134不在本地存儲關于給定群隊化對象的內容的任何信息。這允許多個客戶端應用134和因此的多個備份應用132同時訪問相同的群隊化對象并且還避免產生在具體客戶端應用134與所存儲的數據之間的依賴性。
[0024]如本文進一步公開的,為了簡化與現有備份應用的集成,每一個群隊成員170可以知曉針對給定群隊化對象的其它群隊成員170并且可以向客戶端應用134指示其位置。這允許備份應用132連接到任何一個群隊成員170并且還允許客戶端應用134靜默地打開與所有群隊成員170的連接。這可以幫助避免暴露復雜的配置并且允許可以例如利用單個端點拓撲所設計的備份應用132內的群隊化對象的管理。
[0025]由于給定的群隊化對象涉及多個獨立操作的群隊成員170,因此依照一些實現,客戶端應用134將來自多個群隊成員170的信息合并成被傳送至關聯的備份應用132的有意義的信息。以此方式,依照一些實現,給定的群隊成員170可以存儲各個列表、數據作業記錄、拷貝作業記錄等等,給定客戶端應用134可以將所述各個列表、數據作業記錄、拷貝作業記錄等等合并成對于備份應用132有意義的信息。對于在列表中返回的許多字段,客戶端應用134提供來自跨群隊成員存儲裝置的所有返回的值的合計,例如所存儲的用戶數據的量。對于其它字段,客戶端應用134可以將各個狀態“包裹”成總體狀態,諸如例如(多個)最嚴重的狀態。
[0026]當客戶端應用134執行跨每一個群隊成員170的列表操作時,不保證列表中的條目的絕對次序。例如,兩個群隊化對象可以實際上同時創建,并且對于給定群隊成員170,對象一可以首先存儲,而在另一給定的其它群隊成員170上,對象二可以已經被首先創建。出于向備份應用132提供單個、穩定列表的目的,使用通用標識并且列表操作用于在合理時間窗口內、跨存儲裝置搜索,尋找相關聯的記錄。通過具有在其之上運行搜索的基于時間的窗口,可以避免其中在每一次成員170尋找條目時搜索整個數據庫的情形,所述條目在某些情況下可能甚至不存在。作為示例,時間窗口可以是大約五分鐘范圍中的時間窗口,但是該窗口可以取決于特定配置和/或實現而變化。
[0027]如圖2中所描繪的,盡管給定的分布式群隊化對象208可以分布在多個群隊成員170之間,但是給定的客戶端應用134具有單個對應對象的邏輯視圖,其允許每一個