專利名稱:用于在備份操作中執(zhí)行去重復(fù)的源分類的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及對數(shù)字?jǐn)?shù)據(jù)進(jìn)行備份。
背景技術(shù):
在一種包括若干客戶端計算機的環(huán)境中,諸如企業(yè)局域網(wǎng)(LAN),常采用一種集中式備份系統(tǒng)。該集中式備份系統(tǒng)由系統(tǒng)管理員來配置以便自動地在這些客戶端計算機的存儲裝置上對數(shù)據(jù)進(jìn)行備份。該集中式備份系統(tǒng)可以包括一個備份服務(wù)器,該備份服務(wù)器通過將數(shù)據(jù)段(例如多個文件或文件的多個部分)從這些客戶端計算機的存儲裝置拷貝到中央資料庫來周期性地對每個客戶端計算機進(jìn)行備份。這個中央資料庫具有足夠大的存儲容量并且通常被定位于遠(yuǎn)離該備份服務(wù)器(以及客戶端計算機)。其結(jié)果是,常需要在一段顯著的距離上通過一個可以受限的帶寬鏈路來傳輸有待備份的數(shù)據(jù)段。一種減少傳輸?shù)讲⒋鎯υ谥醒胭Y料庫中的數(shù)據(jù)量的技術(shù)被稱為“去重復(fù)”。采用去重復(fù)的備份系統(tǒng)利用了以下事實備份期間在一個客戶端計算機中找到的一個數(shù)據(jù)段可以已經(jīng)被存儲在中央資料庫中。因為在前一次備份期間它已從客戶端計算機中備份并且從那時起在該客戶端計算機上的數(shù)據(jù)段尚未被修改,所以它可以已經(jīng)在中央資料庫中。因為先前已從具有相同數(shù)據(jù)段的另一個客戶端計算機中備份過該數(shù)據(jù)段,所以它也可以已經(jīng)在中央資料庫中。當(dāng)使用去重復(fù)從一個客戶端計算機中備份一個數(shù)據(jù)段時,備份服務(wù)器生成了對該數(shù)據(jù)段進(jìn)行識別的信息。備份服務(wù)器將這個識別信息傳輸?shù)街醒胭Y料庫并且中央資料庫發(fā)送一個響應(yīng)來表明它是否已經(jīng)包含所識別的數(shù)據(jù)段。只有該響應(yīng)表明該數(shù)據(jù)段尚未包含在資料庫中,備份服務(wù)器然后才將實際的數(shù)據(jù)段傳輸?shù)街醒胭Y料庫。其結(jié)果是,減少了傳輸?shù)街醒胭Y料庫的數(shù)據(jù)段的數(shù)目。然而,因為備份服務(wù)器要為每個數(shù)據(jù)段將識別信息傳輸?shù)街醒胭Y料庫,所以在備份中仍有涉及大量使用計算和網(wǎng)絡(luò)資源。同樣,對于每個數(shù)據(jù)段中央資料庫都要使用計算資源來生成一個響應(yīng)并且中央資料庫將該響應(yīng)傳輸?shù)絺浞莘?wù)器。因此,在本領(lǐng)域中對于使用去重復(fù)來減少備份所需要的計算和網(wǎng)絡(luò)資源的方法存在一種需要。
發(fā)明內(nèi)容
上述需要可以由一種用于使用去重復(fù)將數(shù)據(jù)從備份源備份到中央資料庫的計算機實施的系統(tǒng)、方法以及計算機程序產(chǎn)品來滿足,其中該數(shù)據(jù)包括多個源數(shù)據(jù)段。在一個實施方案中,接收一個指紋緩存,該指紋緩存包括存儲在該中央資料庫中的多個數(shù)據(jù)段的多個指紋,其中這些數(shù)據(jù)段是先前從該備份源備份的。生成多個源數(shù)據(jù)指紋,這些源數(shù)據(jù)指紋包括這些源數(shù)據(jù)段的多個指紋(例如多個散列值)。將這些源數(shù)據(jù)指紋與該指紋緩存中的這些指紋進(jìn)行比較。與未在該指紋緩存中的多個指紋相對應(yīng)的這些源數(shù)據(jù)段當(dāng)前可以未存儲在該中央資料庫中。在進(jìn)一步查詢了該中央資料庫后,響應(yīng)于該比較而將這些源數(shù)據(jù)段中的一個或多個發(fā)送到該中央資料庫用于存儲。
圖1是一個高級圖,展示了在一個實施方案中的包括用于使用去重復(fù)來有效地對多個客戶端進(jìn)行備份的備份服務(wù)器和中央資料庫的一種網(wǎng)絡(luò)環(huán)境。圖2是一個框圖,展示了在一個實施方案中的能夠作為客戶端、備份服務(wù)器或中央資料庫的實施方案的一種計算機。圖3展示了在一個實施方案中的用于對多個客戶端存儲裝置進(jìn)行備份的的備份服務(wù)器的一個邏輯視圖。圖4展示了在一個實施方案中的用于對從多個客戶端存儲裝置備份的數(shù)據(jù)段進(jìn)行存儲的中央資料庫的一個邏輯視圖。圖5是一個流程圖,展示了在一個實施方案中的用于使用去重復(fù)將數(shù)據(jù)從一個客戶端存儲裝置備份到中央資料庫的一種方法。圖6是一個流程圖,展示了在一個實施方案中的用于使用去重復(fù)在中央資料庫對數(shù)據(jù)進(jìn)行備份的一種方法。這些圖示僅為展示的目的而描繪了一種實施方案。本領(lǐng)域的普通技術(shù)人員將容易地從以下說明中認(rèn)識到,可以使用在此所展示的這些結(jié)構(gòu)以及方法的替代實施方案而不背離在此說明的原理。
具體實施例方式圖1是一個高級圖,展示了在一個實施方案中的包括用于使用去重復(fù)來有效地對多個客戶端102進(jìn)行備份的備份服務(wù)器108和中央資料庫114的網(wǎng)絡(luò)環(huán)境100。備份服務(wù)器108與客戶端102由局域網(wǎng)106來連接。雖然圖中僅示出了兩個客戶端102,但在網(wǎng)絡(luò) 106中可以有若干個。備份服務(wù)器108還可以通過的廣域網(wǎng)110(諸如互聯(lián)網(wǎng))而連接到中央資料庫114上。相比廣域網(wǎng)110而言,局域網(wǎng)106允許更高的帶寬以及更便宜的通信。 在一個實施方案中,備份服務(wù)器108與多個客戶端102的定位在物理上非常接近,而中央資料庫114定位在其他地方。在一個實施方案中,多個備份服務(wù)器108與中央資料庫114進(jìn)行通信。這些客戶端102是不同的計算裝置,諸如局域網(wǎng)106上的用戶工作站、服務(wù)器(例如網(wǎng)絡(luò)或應(yīng)用服務(wù)器)或路由器。這些客戶端102具有多個客戶端存儲裝置104,諸如硬盤驅(qū)動器。在一個實施方案中(未示出),一些客戶端存儲裝置104被直接連接到網(wǎng)絡(luò)106 上。這些客戶端存儲裝置104包含可以在一個文件系統(tǒng)中被存儲為多個文件的數(shù)據(jù)。令人希望的是周期性地對來自客戶端存儲裝置104的數(shù)據(jù)進(jìn)行備份以防數(shù)據(jù)丟失。某些類型的文件(諸如操作系統(tǒng)文件)極少隨著時間的推移而變化并且它們在環(huán)境100中的多個客戶端存儲裝置104上作為完全相同的副本而存在。一個客戶端102或客戶端存儲裝置104也被稱為一個備份源。備份服務(wù)器108周期性地(例如每天)在客戶端存儲裝置104上進(jìn)行不同類型的數(shù)據(jù)備份。有待從一個特定的客戶端存儲裝置104備份的數(shù)據(jù)可以作為一個流(也被稱為一個備份流)而由備份服務(wù)器108在局域網(wǎng)106上訪問。這個備份流可以由備份服務(wù)器108 劃分為多個數(shù)據(jù)段,其中一個數(shù)據(jù)段(例如)對應(yīng)于一個文件、一個文件的一部分或者一個磁盤扇區(qū)。如果數(shù)據(jù)段尚未存儲在中央資料庫中,那么備份服務(wù)器108采用多種去重復(fù)技術(shù)將這些數(shù)據(jù)段發(fā)送到該中央資料庫114中用于存儲。備份服務(wù)器108通過對當(dāng)前存儲在該中央資料庫中的可以在該當(dāng)前備份流中遇到的多個數(shù)據(jù)段進(jìn)行識別而從中央資料庫114 中檢索一個指紋緩存以完成此動作。備份服務(wù)器108使用這個指紋緩存來確定在該當(dāng)前備份流中的哪些數(shù)據(jù)段應(yīng)被發(fā)送到中央資料庫114中,而無須針對每個數(shù)據(jù)段來查詢該中央資料庫。中央資料庫114在備份操作期間對從備份服務(wù)器108中接收的多個數(shù)據(jù)段的副本進(jìn)行存儲。中央資料庫114可以對最初來自數(shù)千個客戶端存儲裝置104的數(shù)百萬個數(shù)據(jù)段進(jìn)行存儲。在必須將所備份的數(shù)據(jù)恢復(fù)到客戶端存儲裝置104中的情況下可以訪問存儲在中央資料庫114中的這些數(shù)據(jù)段。因為該備份操作采用了去重復(fù),所以在中央資料庫114 中的一個單一的數(shù)據(jù)段當(dāng)前可以存在于多個客戶端存儲裝置104上。為了支持使用去重復(fù)的備份操作,中央資料庫114將關(guān)于哪些數(shù)據(jù)段當(dāng)前被存儲在該資料庫中的信息提供給備份服務(wù)器108。圖2是根據(jù)一個實施方案的用作客戶端102、備份服務(wù)器108、和/或中央資料庫 114的計算機200的高級框圖。所展示的是至少一個處理器202連接到芯片組204上。同樣連接到芯片組204上的是存儲器206、存儲裝置208、鍵盤210、圖形適配器212、定點裝置 214以及網(wǎng)絡(luò)適配器216。顯示器218連接到圖形適配器212上。在一個實施方案中,由存儲器控制器集線器220與I/O控制器集線器222來提供芯片組204的功能。在另一個實施方案中,存儲器206直接連接到處理器202上而不是芯片組204上。存儲裝置208是任何計算機可讀存儲媒質(zhì),諸如硬盤驅(qū)動器、光盤只讀存儲器 (⑶-ROM)、DVD或者固態(tài)存儲器裝置。在一個實施方案中,客戶端102的存儲裝置208是客戶端存儲裝置104。存儲器206保存由處理器202使用的指令與數(shù)據(jù)。定點裝置214可以是鼠標(biāo)、軌跡球、或其他類型的定點裝置,并且與鍵盤210 —起使用以便將數(shù)據(jù)輸入計算機系統(tǒng)200中。圖形適配器212在顯示器218上顯示圖像和其他信息。網(wǎng)絡(luò)適配器216將計算機系統(tǒng)200連接到一個局域或廣域網(wǎng)上。如在本領(lǐng)域中所知的,計算機200可具有不同于圖2所示的部件和/或其他部件。 另外,計算機200可以缺少所展示的某些部件。在一個實施方案中,用作備份服務(wù)器108的計算機200缺少鍵盤210、定點裝置214、圖形適配器212、和/或顯示器218。此外,存儲裝置208可以在定位于計算機200中和/或使其與之遠(yuǎn)離(諸如實施在一個存儲區(qū)域網(wǎng)絡(luò) (SAN)內(nèi))。如本領(lǐng)域中所知的,計算機200被適配為執(zhí)行多個計算機程序模塊用于提供在此所述的功能。如在此所使用的,術(shù)語“模塊”是指用來提供特定功能的計算機程序邏輯。這樣,模塊可以在硬件、固件和/或軟件中實施。在一個實施方案中,多個程序模塊存儲在存儲裝置208上,加載到存儲器206中,并且由處理器202來執(zhí)行。在此所述的這些實體的實施方案可以包括其他的和/或與在此所述不同的模塊。 另外,歸因于這些模塊的功能可以在其他的實施方案中由其他的或不同的模塊來執(zhí)行。而且,為了明晰與方便的目的,這種描述偶爾省略了術(shù)語“模塊”。圖3展示了在一個實施方案中的用于對多個客戶端存儲裝置104進(jìn)行備份的備份服務(wù)器108的一個邏輯視圖。備份服務(wù)器108基于多種備份規(guī)范310來進(jìn)行備份。備份規(guī)范310包括該備份源的標(biāo)識,諸如網(wǎng)絡(luò)協(xié)議(IP)地址或客戶端102的主機名稱。備份規(guī)范 310還可以包括表明該備份是否是全備份或增量備份的備份類型。備份規(guī)范310還可以包括進(jìn)一步限定關(guān)于該備份的細(xì)節(jié)的備份策略。該備份策略可以表明有待備份的文件類型 (例如,文本文件或不可執(zhí)行文件)。它可以表明應(yīng)該對該文件系統(tǒng)中某些位置處(例如, 在某些目錄中)的文件進(jìn)行備份。該備份策略可以指定該備份是原始格式備份(例如,其中數(shù)據(jù)段對應(yīng)于磁盤扇區(qū)而不是文件)。備份規(guī)范310可以由系統(tǒng)管理員輸入到備份服務(wù)器108中并且可以被存儲在該備份服務(wù)器上。備份服務(wù)器108可以被配置為根據(jù)多種備份規(guī)范310來進(jìn)行多個備份,以便對多個客戶端102進(jìn)行備份和/或在一個特定的客戶端上進(jìn)行不同類型的備份。備份服務(wù)器108還可以被配置為以一個指定的頻率(例如,每天)根據(jù)每種備份規(guī)范310來進(jìn)行備份。備份規(guī)范310也被稱為源分類,因為它對所備份的數(shù)據(jù)的源進(jìn)行分類。備份模塊304在一個實施方案中被配置為基于備份規(guī)范310使用去重復(fù)來進(jìn)行一次備份。備份模塊304從客戶端存儲裝置104創(chuàng)建一個備份流,其中該客戶端存儲裝置(或相關(guān)聯(lián)的客戶端10 是在備份規(guī)范310中識別的備份源。備份模塊304將該備份流分割為多個數(shù)據(jù)段。該備份流的內(nèi)容以及該備份流的分割是基于在備份規(guī)范310中的備份類型和備份策略。該備份流可以是不受限制的并且包括任何數(shù)據(jù)量并且具有任何數(shù)目的段。指紋模塊302創(chuàng)建一個當(dāng)前指紋集312,該指紋集包含該備份流的數(shù)據(jù)段的多個指紋。一個數(shù)據(jù)段的一個指紋是一片數(shù)據(jù),該片數(shù)據(jù)唯一地標(biāo)識該數(shù)據(jù)段但是它顯著地小于該數(shù)據(jù)段本身。在一個實施方案中,一個數(shù)據(jù)段的一個指紋是基于該數(shù)據(jù)段的內(nèi)容的一個散列的值??梢酝ㄟ^將一個散列函數(shù)(諸如消息摘要算法5 (MD5))應(yīng)用到該數(shù)據(jù)段上而從一個數(shù)據(jù)段中生成一個指紋。資料庫通信模塊308從中央資料庫114 =請求一個指紋緩存。該請求包括當(dāng)前備份規(guī)范310,該規(guī)范可以包括備份源、類型和策略。中央資料庫114可以通過提供由資料庫通信模塊308接收的一個指紋緩存306來響應(yīng)。在指紋緩存306中的全部指紋對應(yīng)于當(dāng)前存儲在中央資料庫114中的多個數(shù)據(jù)段。指紋緩存306是存儲在中央資料庫114上的指紋(可能是數(shù)百萬計的)的一個子集。如以下在中央資料庫的描述中所進(jìn)一步討論的,指紋緩存306是由中央資料庫114基于當(dāng)前的備份規(guī)范310選擇的。簡言之,使用與在當(dāng)前備份中相同或相似的備份規(guī)范310 來選擇指紋緩存306以包含與在先前的備份中遇到的多個數(shù)據(jù)段相對應(yīng)的多個指紋。其結(jié)果是,所接收的指紋緩存306可以對應(yīng)于在該當(dāng)前備份中的這些數(shù)據(jù)段。如果備份規(guī)范310 對于中央資料庫114而言是未知的,那么它可以用一個空指紋緩存306來響應(yīng)。段處理模塊314對在當(dāng)前指紋集312中的和在指紋緩存306中的指紋進(jìn)行比較。 如果來自當(dāng)前指紋集312的一個指紋也出現(xiàn)在指紋緩存306中,那么對應(yīng)于該指紋的數(shù)據(jù)段已經(jīng)存儲在中央資料庫114中并且不需要被發(fā)送到那里。該數(shù)據(jù)段從使用相同備份規(guī)范的前一個備份起可以一直是未改變的(例如,在客戶端存儲裝置104上的從該客戶端存儲裝置的上次備份起就未改變的一個文件)。如果來自當(dāng)前指紋集312的一個指紋未出現(xiàn)在指紋緩存306中,那么仍有坑的是對應(yīng)于該指紋的數(shù)據(jù)段已存儲在中央資料庫114中。雖然先前未使用當(dāng)前備份規(guī)范310對該數(shù)據(jù)段進(jìn)行備份,但是可以先前已經(jīng)使用不同的備份規(guī)范對其進(jìn)行了備份(例如,從一個不同的客戶端存儲裝置中被備份)。 段處理模塊314致使資料庫通信模塊308將多個請求發(fā)送到中央資料庫114,這些請求包含來自當(dāng)前指紋集312的、未出現(xiàn)在指紋緩存306中的多個指紋。在一個實施方案中,包含全部這些指紋的一個單一請求被發(fā)送到中央資料庫114以降低網(wǎng)絡(luò)帶寬。不管相關(guān)的備份規(guī)范,中央資料庫114進(jìn)行一次搜索來確定它是否包含與這些指紋相對應(yīng)的數(shù)據(jù)段。中央資料庫114發(fā)送一個響應(yīng)(或多個響應(yīng))來表明哪些指紋對應(yīng)于當(dāng)前存儲在該中央資料庫中的數(shù)據(jù)段。如果該響應(yīng)表明一個指紋已存儲在該中央資料庫中,那么無需由備份服務(wù)器108對該指紋做進(jìn)一步處理。然而,如果該響應(yīng)表明一個指紋未存儲在該中央資料庫114中,那么資料庫通信模塊308將與該指紋相對應(yīng)的數(shù)據(jù)段發(fā)送到該中央資料庫用于存儲。由于使用了指紋緩存306用于去重復(fù),通常關(guān)于多個單獨指紋的僅有較小數(shù)目的請求從備份服務(wù)器108中被發(fā)送到中央資料庫114。指紋緩存306常常包含當(dāng)前指紋集 312中的大部分指紋。這是因為對于一個給定的備份規(guī)范310(例如,一個給定的客戶端與備份類型),包括一個備份的數(shù)據(jù)段從一個備份到下一個典型地不會變化太大,尤其是如果是時常進(jìn)行備份的話。如上所述的備份服務(wù)器108利用了這一備份歷史來減少指紋請求的數(shù)目。跨廣域網(wǎng)110的網(wǎng)絡(luò)帶寬也可以被減少。使用指紋緩存306可以減少到中央資料庫 114的關(guān)于多個單獨指紋的請求的發(fā)送以及來自該中央資料庫的多個響應(yīng)的接收。另外地, 在備份服務(wù)器108和中央資料庫114上用于生成請求、響應(yīng)請求以及處理響應(yīng)的處理資源可以被減少。如果在從中央資料庫Il4接收的指紋緩存306中的一個指紋不在當(dāng)前指紋集312 中,那么該指紋可以對應(yīng)于不再與當(dāng)前備份規(guī)范310相關(guān)的一個數(shù)據(jù)段。例如,從客戶端存儲裝置104的上次備份起一個文件可以已經(jīng)從該客戶端存儲裝置中被刪除。在一個實施方案中,段處理模塊314使資料庫通信模塊308發(fā)送一個通知報文到中央資料庫114,該通知報文識別在指紋緩存306中的但不在當(dāng)前指紋集312的多個指紋。該報文可以由中央資料庫114使用來更新其多個數(shù)據(jù)庫并且刪除不再需要的已存儲的多個數(shù)據(jù)段。在這些指紋與指紋緩存306中的指紋進(jìn)行比較之前,指紋模塊302并不一定要創(chuàng)建一個包含在該備份流中的全部數(shù)據(jù)段的指紋的當(dāng)前指紋集312。如上面所提及的,該備份流是不受限制的并且可以具有很多數(shù)據(jù)段。一個基于流的處理途徑可以被使用,其中當(dāng)這些數(shù)據(jù)段從客戶端102被接收時由指紋模塊302創(chuàng)建這些數(shù)據(jù)段的指紋。這些指紋可被傳輸?shù)蕉翁幚砟K314中是因為它們被創(chuàng)建用于與指紋緩存306的比較。當(dāng)有需要時關(guān)于多個特定指紋的請求可被發(fā)送到中央資料庫114中。在一個實施方案中,在多個數(shù)據(jù)段的基于流的處理開始之前從中央資料庫114中接收指紋緩存306。在一個實施方案中,對應(yīng)于一種備份規(guī)范310的一系列指紋緩存306響應(yīng)于對于一個指紋緩存的請求由資料庫通信模塊308從中央資料庫114中來發(fā)送。這可以被完成來限制被發(fā)送到備份服務(wù)器108的每個指紋緩存306的大小,該備份服務(wù)器可以具有有限的存儲器和處理資源。在此實施方案中,一個第一指紋緩存306可以覆蓋該備份流的初始部分(例如,最初的10,000個數(shù)據(jù)段)。一旦段處理模塊314已處理了該備份流的初始部分, 則一個請求可被發(fā)送到中央資料庫114中用于在該系列中的下一個指紋緩存,并且該備份流的下一部分可被處理,以此類推。在一個實施方案中,如圖3中所展示的某些模塊可以被定位于一個客戶端102而不是備份服務(wù)器108上。例如,指紋模塊302可被定位在每個客戶端102上。其中,指紋集 312被創(chuàng)建在客戶端102上并且被發(fā)送到備份服務(wù)器108中用于進(jìn)一步地處理。在此實施方案中,由于所傳輸?shù)氖侵讣y而不是實際的數(shù)據(jù)段,因此較少數(shù)據(jù)可以在局域網(wǎng)106上被傳輸。然而,局域網(wǎng)106典型地是一個高帶寬網(wǎng)絡(luò),在其中進(jìn)行通信是不昂貴的,因此在該網(wǎng)絡(luò)上傳輸數(shù)據(jù)段是可以接受的。在一個實施方案中,備份服務(wù)器108的全部部件都在一個客戶端102上。在此實施方案中,客戶端102直接與中央資料庫114進(jìn)行通信,并且一個單獨的備份服務(wù)器108并不用于該備份操作。圖4展示了在一個實施方案中的用于存儲來自客戶端存儲裝置104的被備份的數(shù)據(jù)段的中央資料庫114的一個邏輯視圖。段存儲器402包含被備份的數(shù)據(jù)段并且可以包括數(shù)百萬個數(shù)據(jù)段。指紋存儲器410包含與在段存儲器402中每個段相對應(yīng)的指紋。在一個實施方案中,數(shù)據(jù)庫404包括對在段存儲器402中的數(shù)據(jù)段以及對在指紋存儲器410中對應(yīng)指紋的多個索引,這些索引基于多種備份規(guī)范參數(shù)使能多個查詢。例如, 一個查詢可以包括帶有一個特定備份類型(例如,全備份)和策略(例如,非可執(zhí)行文件) 的一個特定備份源(例如,客戶端主機名稱)。數(shù)據(jù)庫404返回與備份規(guī)范310相關(guān)的指紋和/或數(shù)據(jù)段。數(shù)據(jù)庫404還能夠有效地確定一個被查詢的特定指紋是否被包含在指紋存儲器410中。數(shù)據(jù)庫404還可以保有對每個數(shù)據(jù)段以及相應(yīng)指紋的參引計數(shù)來表明當(dāng)前具有每個數(shù)據(jù)段的客戶端存儲裝置104的數(shù)目。如果一個參引計數(shù)達(dá)到零,那么該數(shù)據(jù)段以及指紋可分別從段存儲器402與指紋存儲器410中被去除。備份服務(wù)器通信模塊408處理與備份服務(wù)器108的通信。一種類型的通信是基于一種備份規(guī)范310的對于一個指紋從備份服務(wù)器108中接收的請求。備份服務(wù)器通信模塊 408將此請求傳輸?shù)街讣y緩存發(fā)生器406中。指紋緩存發(fā)生器406用備份規(guī)范310的這些參數(shù)來查詢數(shù)據(jù)庫404以生成一組指紋。指紋緩存發(fā)生器406將該組指紋作為指紋緩存306發(fā)送到備份服務(wù)器通信模塊408 中,該備份服務(wù)器通信模塊將其發(fā)送給備份服務(wù)器108。在一個實施方案中,指紋緩存發(fā)生器406創(chuàng)建一系列如上述被發(fā)送給該備份服務(wù)器的大小有限的指紋高速度緩存306。如果用一個新的備份規(guī)范的一次備份已被執(zhí)行,那么用備份規(guī)范310的參數(shù)的數(shù)據(jù)庫404的查詢可以導(dǎo)致無匹配。其中,指紋緩存發(fā)生器406可生成一個空的指紋緩存306。 在一個實施方案中,取代返回一個空的指紋緩存306,指紋緩存發(fā)生器406初始化一個包含多個指紋的新的指紋緩存,這些指紋可以會包含在該備份中。數(shù)據(jù)庫404的一個查詢可使用少于備份規(guī)范310的全部參數(shù)來執(zhí)行或可使用不同但相似的參數(shù)來執(zhí)行。備份服務(wù)器通信模塊408還處理來自備份服務(wù)器108的多個請求,用于確定特定的指紋是否出現(xiàn)在中央資料庫114中。備份服務(wù)器通信模塊408可查詢帶有多個特定指紋的數(shù)據(jù)庫404并且將這些結(jié)果發(fā)送給備份服務(wù)器108。并且,備份服務(wù)器通信模塊408可將這些指紋傳輸?shù)礁履K412中用于對數(shù)據(jù)庫404進(jìn)行更新。如果備份服務(wù)器108確定數(shù)據(jù)段需要被加入到中央資料庫114中,那么備份服務(wù)器通信模塊408還可從備份服務(wù)器 108中接收實際的數(shù)據(jù)段。備份服務(wù)器通信模塊408將這些數(shù)據(jù)段傳輸?shù)礁履K412中。 并且,備份服務(wù)器通信模塊408可從備份服務(wù)器108中接收出現(xiàn)在指紋緩存306中但不在當(dāng)前指紋集312中的一個指紋列表。備份服務(wù)器通信模塊408將這些指紋傳輸?shù)礁履K 412 中。更新模塊412基于從備份服務(wù)器108接收的通信對數(shù)據(jù)庫404、段存儲器402和指紋存儲器410進(jìn)行更新。如上述所提及的,這些通信從備份服務(wù)器通信模塊408中被傳輸?shù)礁履K412中。來自備份服務(wù)器108的關(guān)于特定指紋的存在的一個請求表明由于這些特定的指紋不在所提供的指紋緩存306中所以它們當(dāng)前與當(dāng)前備份規(guī)范310無關(guān)。這些特定的指紋中的一些可以已經(jīng)在指紋存儲器410中(相對應(yīng)的數(shù)據(jù)段在段存儲器402中)。對于這些指紋,更新模塊412對數(shù)據(jù)庫404進(jìn)行更新,這樣使得這些指紋與當(dāng)前備份規(guī)范310 的參數(shù)相關(guān),同時保留與已經(jīng)相關(guān)的備份規(guī)范的參數(shù)的關(guān)聯(lián)。當(dāng)備份服務(wù)器108將一個數(shù)據(jù)段發(fā)送到中央資料庫114用于存儲時,更新模塊412 將該段加入到段存儲器402中并且將一個相對應(yīng)的指紋加入到指紋存儲器410中。這個指紋可以已經(jīng)隨同該數(shù)據(jù)段被發(fā)送或者可以由中央資料庫114中的一個指紋模塊302 (未示出)來生成。更新模塊412還對數(shù)據(jù)庫404進(jìn)行更新,這樣使得這些當(dāng)前備份規(guī)范參數(shù)參引了新加入的數(shù)據(jù)段和指紋。來自備份服務(wù)器108的包含一個指紋列表(該指紋列表包含在指紋緩存306中但在該備份流的數(shù)據(jù)段中找不到)的一個報文表明這些指紋與當(dāng)前備份規(guī)范310不再有關(guān)聯(lián)。更新模塊412可以去除這些當(dāng)前備份規(guī)范參數(shù)與在數(shù)據(jù)庫404中所識別的指紋之間的關(guān)聯(lián)。由該更新模塊執(zhí)行的這一維護(hù)操作可以有益地防止了多個舊指紋被包括在指紋緩存中。備份服務(wù)器108和中央資料庫114還可以包含用于在客戶端102上執(zhí)行備份存儲操作的多個模塊。這些模塊在此就不做描述了但是它們可使用本領(lǐng)域中皆知的技術(shù)來實現(xiàn)。圖5是展示了在一個實施方案中的用于使用去重復(fù)將數(shù)據(jù)從客戶端存儲裝置104 備份到中央資料庫114的方法的一個流程圖。在502中,一種備份規(guī)范310由備份服務(wù)器 108來接收。這個備份規(guī)范310可以已由系統(tǒng)管理員創(chuàng)建并且可以識別備份源、備份類型以及備份策略。資料庫通信模塊308基于備份規(guī)范310請求來自中央資料庫114的一個指紋緩存。中央資料庫114響應(yīng),并且在504中一個指紋緩存306被接收。備份模塊304基于備份規(guī)范310啟動來自一個客戶端存儲裝置104的一個備份流,并且在506中,指紋模塊 302生成在該備份流中的數(shù)據(jù)段的多個指紋。這些數(shù)據(jù)段的指紋與指紋緩存306中的指紋進(jìn)行比較,并且在508中確定在該緩存中未找到的這些數(shù)據(jù)段指紋。在510中,資料庫通信模塊308通過將一個請求發(fā)送給中央資料庫114來關(guān)于這些數(shù)據(jù)段指紋對該中央資料庫進(jìn)行查詢。中央資料庫114響應(yīng)該請求來表明哪些數(shù)據(jù)段指紋對應(yīng)于已存儲在該中央資料庫中的數(shù)據(jù)段。在512中,該備份服務(wù)器將其他的數(shù)據(jù)段(即,尚未存儲在該中央資料庫中的這些數(shù)據(jù)段)發(fā)送到中央資料庫 114中用于存儲。圖6是展示了在一個實施方案中的用于使用去重復(fù)在一個中央資料庫114備份數(shù)據(jù)的方法的一個流程圖。在602中,中央資料庫114接收來自備份服務(wù)器108的一種備份規(guī)范。在604中,指紋緩存發(fā)生器406通過用來自備份規(guī)范310的參數(shù)查詢數(shù)據(jù)庫404來生成一個指紋緩存306。在606中,備份服務(wù)器通信模塊408將該指紋緩存發(fā)送給備份服
11務(wù)器108。備份服務(wù)器108處理指紋緩存306,并且在608中,發(fā)送關(guān)于多個單獨指紋的由中央資料庫114接收的多個查詢。在610中,備份服務(wù)器通信模塊408在這些單獨指紋的數(shù)據(jù)庫404中進(jìn)行一次查找并且將一個響應(yīng)發(fā)送給備份服務(wù)器108。備份服務(wù)器108處理該響應(yīng),并且在612中將被接收并存儲的多個數(shù)據(jù)段發(fā)送給中央資料庫114。更新模塊412 基于關(guān)于單獨指紋的這些查詢以及所接收的數(shù)據(jù)段對數(shù)據(jù)庫404進(jìn)行更新。
以上說明被包括用以展示優(yōu)選實施方案的操作并且它無意限制本發(fā)明的范圍。本發(fā)明的范圍僅由以下權(quán)利要求限定。從以上討論中,很多變體對于相關(guān)領(lǐng)域的技術(shù)人員將是清楚的,這些變體仍應(yīng)被本發(fā)明的精神和范圍所涵蓋。
權(quán)利要求
1.一種用于使用去重復(fù)將數(shù)據(jù)從備份源備份到中央資料庫的計算機實施的方法,該數(shù)據(jù)包括多個源數(shù)據(jù)段,該方法包括接收一個指紋緩存,該指紋緩存包括存儲在該中央資料庫中的多個數(shù)據(jù)段的多個指紋,這些數(shù)據(jù)段是先前從該備份源中備份的;生成多個源數(shù)據(jù)指紋,這些源數(shù)據(jù)指紋包括這些源數(shù)據(jù)段的多個指紋;將這些源數(shù)據(jù)指紋與該指紋緩存中的這些指紋進(jìn)行比較;并且響應(yīng)于該比較,將這些源數(shù)據(jù)段中的一個或多個發(fā)送到該中央資料庫用于存儲。
2.如權(quán)利要求1所述的計算機實施的方法,其中將這些源數(shù)據(jù)指紋與該指紋緩存中的這些指紋進(jìn)行比較包括對未包含在該指紋緩存中的一個源數(shù)據(jù)指紋進(jìn)行識別。
3.如權(quán)利要求2所述的計算機實施的方法,其中響應(yīng)于該比較而將這些源數(shù)據(jù)段中的一個或多個發(fā)送到該中央資料庫用于存儲進(jìn)一步包括查詢帶有所識別的源數(shù)據(jù)指紋的中央資料庫,以確定與所識別的源數(shù)據(jù)指紋相對應(yīng)的一個數(shù)據(jù)段是否被存儲在該中央資料庫中;并且響應(yīng)于與所識別的源數(shù)據(jù)指紋相對應(yīng)的一個數(shù)據(jù)段未存儲在該中央資料庫中,將與該源數(shù)據(jù)指紋相對應(yīng)的一個數(shù)據(jù)段發(fā)送到該中央資料庫用于存儲。
4.如權(quán)利要求1所述的計算機實施的方法,其中一個數(shù)據(jù)段的一個指紋包括該數(shù)據(jù)段的一個散列值。
5.如權(quán)利要求1所述的計算機實施的方法,其中接收了一系列指紋緩存,該系列指紋緩存中的每一個均包括先前從該備份源備份的多個數(shù)據(jù)段的指紋的一部分,并且其中對這些源數(shù)據(jù)指紋的不同部分與該系列指紋緩存中的每一個進(jìn)行比較。
6.如權(quán)利要求1所述的計算機實施的方法,進(jìn)一步包括將該指紋緩存中的、未在這些源數(shù)據(jù)指紋中找到的指紋發(fā)送到該中央資料庫用于對該中央資料庫的一個數(shù)據(jù)庫進(jìn)行更新。
7.如權(quán)利要求1所述的計算機實施的方法,其中該指紋緩存包括先前使用一種指定的備份策略而備份的多個數(shù)據(jù)段的多個指紋。
8.一種用于使用去重復(fù)將數(shù)據(jù)從備份源備份到中央資料庫的計算機系統(tǒng),該數(shù)據(jù)包括多個源數(shù)據(jù)段,該系統(tǒng)包括一種存儲多個可執(zhí)行的計算機程序模塊的計算機可讀存儲媒質(zhì),用于 接收一個指紋緩存,該指紋緩存包括存儲在該中央資料庫中的多個數(shù)據(jù)段的多個指紋,這些數(shù)據(jù)段是先前從該備份源備份的;生成多個源數(shù)據(jù)指紋,這些源數(shù)據(jù)指紋包括這些源數(shù)據(jù)段的多個指紋;將這些源數(shù)據(jù)指紋與該指紋緩存中的這些指紋進(jìn)行比較;并且響應(yīng)于該比較而將這些源數(shù)據(jù)段中的一個或多個發(fā)送到該中央資料庫用于存儲。
9.如權(quán)利要求8所述的計算機系統(tǒng),其中將這些源數(shù)據(jù)指紋與該指紋緩存中的這些指紋進(jìn)行比較包括對未包含在該指紋緩存中的一個源數(shù)據(jù)指紋進(jìn)行識別。
10.如權(quán)利要求9所述的計算機系統(tǒng),其中響應(yīng)于該比較而將這些源數(shù)據(jù)段中的一個或多個發(fā)送到該中央資料庫用于存儲進(jìn)一步包括查詢帶有所識別的源數(shù)據(jù)指紋的中央資料庫,以確定與所識別的源數(shù)據(jù)指紋相對應(yīng)的一個數(shù)據(jù)段是否被存儲在該中央資料庫中;并且響應(yīng)于與所識別的源數(shù)據(jù)指紋相對應(yīng)的一個數(shù)據(jù)段未存儲在該中央資料庫中,將與該源數(shù)據(jù)指紋相對應(yīng)的一個數(shù)據(jù)段發(fā)送到該中央資料庫用于存儲。
11.如權(quán)利要求8所述的計算機系統(tǒng),其中一個數(shù)據(jù)段的一個指紋包括該數(shù)據(jù)段的一個散列值。
12.如權(quán)利要求8所述的計算機系統(tǒng),其中接收了一系列指紋緩存,該系列指紋緩存中的每一個均包括先前從該備份源備份的多個數(shù)據(jù)段的指紋的一部分,并且其中對這些源數(shù)據(jù)指紋的不同部分與該系列指紋緩存中的每一個進(jìn)行比較。
13.如權(quán)利要求8所述的計算機系統(tǒng),其中這些計算機程序模塊進(jìn)一步被配置用于 將該指紋緩存中的、未在這些源數(shù)據(jù)指紋中找到的指紋發(fā)送到該中央資料庫用于對該中央資料庫的一個數(shù)據(jù)庫進(jìn)行更新。
14.如權(quán)利要求8所述的計算機系統(tǒng),其中該指紋緩存包括先前使用一種指定的備份策略而備份的多個數(shù)據(jù)段的多個指紋。
15.—種用于使用去重復(fù)將數(shù)據(jù)從備份源備份到中央資料庫的具有一種計算機可讀存儲媒質(zhì)的計算機程序產(chǎn)品,該計算機可讀存儲媒質(zhì)具有多個可執(zhí)行的計算機程序指令,該數(shù)據(jù)包括多個源數(shù)據(jù)段,這些計算機程序指令進(jìn)一步被配置用于接收一個指紋緩存,該指紋緩存包括存儲在該中央資料庫中的多個數(shù)據(jù)段的多個指紋,這些數(shù)據(jù)段是先前從該備份源備份的;生成多個源數(shù)據(jù)指紋,這些源數(shù)據(jù)指紋包括這些源數(shù)據(jù)段的多個指紋;將這些源數(shù)據(jù)指紋與該指紋緩存中的這些指紋進(jìn)行比較;并且響應(yīng)于該比較而將這些源數(shù)據(jù)段中的一個或多個發(fā)送到該中央資料庫用于存儲。
16.如權(quán)利要求15所述的計算機程序產(chǎn)品,其中將這些源數(shù)據(jù)指紋與該指紋緩存中的這些指紋進(jìn)行比較包括對未包含在該指紋緩存中的一個源數(shù)據(jù)指紋進(jìn)行識別。
17.如權(quán)利要求16所述的計算機程序產(chǎn)品,其中響應(yīng)于該比較而將這些源數(shù)據(jù)段中的一個或多個發(fā)送到該中央資料庫用于存儲進(jìn)一步包括查詢帶有所識別的源數(shù)據(jù)指紋的中央資料庫,以確定與所識別的源數(shù)據(jù)指紋相對應(yīng)的一個數(shù)據(jù)段是否被存儲在該中央資料庫中;并且響應(yīng)于與所識別的源數(shù)據(jù)指紋相對應(yīng)的一個數(shù)據(jù)段未存儲在該中央資料庫中,將與該源數(shù)據(jù)指紋相對應(yīng)的一個數(shù)據(jù)段發(fā)送到該中央資料庫用于存儲。
18.如權(quán)利要求15所述的計算機程序產(chǎn)品,其中接收了一系列指紋緩存,該系列指紋緩存中的每一個均包括先前從該備份源備份的多個數(shù)據(jù)段的指紋的一部分,并且其中對這些源數(shù)據(jù)指紋的不同部分與該系列指紋緩存中的每一個進(jìn)行比較。
19.如權(quán)利要求15所述的計算機程序產(chǎn)品,其中這些計算機程序指令進(jìn)一步被配置用于將該指紋緩存中的、未在這些源數(shù)據(jù)指紋中找到的指紋發(fā)送到該中央資料庫用于對該中央資料庫的一個數(shù)據(jù)庫進(jìn)行更新。
20.如權(quán)利要求15所述的計算機程序產(chǎn)品,其中該指紋緩存包括先前使用一種指定的備份策略而備份的多個數(shù)據(jù)段的多個指紋。
全文摘要
在此披露了一種用于使用去重復(fù)將數(shù)據(jù)從備份源備份到中央資料庫的計算機實施的系統(tǒng)、方法以及計算機程序產(chǎn)品,其中該數(shù)據(jù)包括多個源數(shù)據(jù)段。接收一個指紋緩存,該指紋緩存包括存儲在該中央資料庫中的多個數(shù)據(jù)段的多個指紋,其中這些數(shù)據(jù)段是先前從該備份源備份的。生成多個源數(shù)據(jù)指紋,這些源數(shù)據(jù)指紋包括這些源數(shù)據(jù)段的多個指紋(例如多個散列值)。將這些源數(shù)據(jù)指紋與該指紋緩存中的這些指紋進(jìn)行比較。與未在該指紋緩存中的多個指紋相對應(yīng)的這些源數(shù)據(jù)段當(dāng)前可以未存儲在該中央資料庫中。在進(jìn)一步查詢了該中央資料庫后,響應(yīng)于該比較而將這些源數(shù)據(jù)段中的一個或多個發(fā)送到該中央資料庫用于存儲。
文檔編號G06F11/14GK102460398SQ201080024491
公開日2012年5月16日 申請日期2010年5月26日 優(yōu)先權(quán)日2009年6月8日
發(fā)明者M·蔡司, W·吳 申請人:賽門鐵克公司