將差別信息存儲在備份系統中的制作方法
【專利說明】
【背景技術】
[0001]計算設備可產生大量數據,這些數據可由計算設備在本地存儲。例如,因計算設備的故障而引起的這種數據的丟失可能對使用計算設備的企業、個人或其他實體是不利的。為了保護數據免遭丟失,備份系統可以存儲計算設備的至少一部分數據。在這樣的示例中,如果計算設備的故障妨礙了一些部分的數據的獲取,則有可能從備份系統恢復數據。
【附圖說明】
[0002]以下詳細描述參考附圖,其中:
[0003]圖1是用于將差別信息存儲在備份系統中的示例計算設備的框圖;
[0004]圖2是用于根據在版本控制系統中存儲的數據并且根據在備份系統中存儲的差別信息來恢復數據的示例計算設備的框圖;
[0005]圖3是用于將差別信息存儲在備份系統中的示例方法的流程圖;以及
[0006]圖4是用于確定與位置信息相關聯的數據是否被選擇用于由備份系統進行的版本認識備份的示例方法的流程圖。
【具體實施方式】
[0007]如本文所使用的,“備份系統”(或“數據備份系統”)可以是數據存儲系統,該數據存儲系統將計算設備所存儲的數據復制到該數據存儲系統的與計算設備分離的存儲器,并且將所復制的數據恢復到計算設備或其他存儲器。例如,備份系統可將計算設備的數據復制到備份系統的存儲器,并且如果存儲在該計算設備上的數據后來丟失,則備份系統可將所復制的數據恢復到計算設備或其他存儲器。備份系統可以能夠備份大量的數據。然而,減少備份系統的用戶所備份的數據量可提升備份系統的性能,并且降低向用戶提供備份系統的成本。如此,可能期望的是實現減少用戶備份的數據量的特征。
[0008]在一些示例中,在計算設備處本地存儲的一些數據可以在版本控制系統的控制下。在版本控制系統的控制下的這種數據(例如,文件、目錄等)在本文中可稱為“版本所控制”數據。如本文所使用的,“版本控制系統”(其可以稱為“版本控制”或“資源控制”系統)可以是對數據(例如,文件、目錄等)的多個版本(或“修訂本”)進行存儲的系統,每個版本包括數據的當該數據在各個時間存在時的一個副本。如本文所使用的,數據的“版本”是數據的當該數據在給定時間存在時的一個副本。在一些示例中,由版本控制系統存儲的數據的每個版本可以與對數據的版本進行識別的各個版本信息(例如,各個版本號或其他版本標識符)相關聯。在一些示例中,可以在任何時間從版本控制系統獲得由版本控制系統存儲的數據的這種給定版本。如此,在備份系統中備份版本所控制數據會是無效率的,因為數據的版本可能已被存儲在版本控制系統中。由于可能通常在任何時間從版本控制系統恢復這個版本,所以完全備份版本所控制數據會是多余的,因為版本所控制數據的部分可能最終被存儲在版本控制系統和備份系統兩者中。
[0009]為了解決這些問題,在本文描述的示例中,備份系統可以從版本控制系統獲取與由計算設備本地存儲的數據相關聯的版本訪問信息,其中版本訪問信息可用于訪問在版本控制系統中存儲的該數據的版本。在這樣的示例中,備份系統可將版本訪問信息和差別信息存儲在備份系統的遠程備份存儲器中,該差別信息表示本地存儲的數據與在版本控制存儲器中存儲的數據的版本之間的差別。備份系統還可至少根據在版本控制存儲器中存儲的數據的版本和在遠程備份存儲器中存儲的差別信息將數據恢復到計算設備。
[0010]在這樣的示例中,備份系統可完全省略備份版本所控制數據,而改為將對這種數據的備份限制于該數據與在版本控制系統中存儲的該數據的完整版本之間的差別、以及可用于從版本控制系統獲得該數據的完整版本的數據。以這種方式,備份系統可以實現在該數據包括版本所控制數據時為了備份計算設備的該數據而占用的存儲器的數量的明顯減少。另外,通過這種示例實現的減少會是很大的,因為版本控制通常用于管理諸如用于軟件開發項目的源代碼之類的數據。
[0011]現在參考圖,圖1是用于將差別信息存儲在備份系統170中的示例計算設備100的框圖。如本文中所使用的,“計算設備”可以是臺式計算機、筆記本電腦、工作站、平板電腦、移動電話、智能設備、服務器、刀鋒服務器外殼或任何其他處理設備或裝備。在圖1的示例中,計算設備100包括處理資源110和編碼有指令121-123的機器可讀存儲介質120。在某些示例中,存儲介質120可包括附加的指令。在一些示例中,指令121-123和在本文中描述的與存儲介質120相關的任何其他指令可存儲在對計算設備110和處理資源110是遠程的但可訪問的機器可讀存儲介質上。
[0012]在本文所描述的示例中,處理資源可以包括例如一個處理器、或者在單個計算設備中包括的或跨多個計算設備分布的多個處理器。如本文所使用的,“處理器”可以是中央處理單元(CPU)、基于半導體的微處理器、圖形處理單元(GPU)、被配置成獲得并執行指令的現場可編程門陣列(FPGA)、適于獲得并且執行被存儲在機器可讀存儲介質上的指令的其他電子電路、或它們的組合中的至少一個。處理資源110可以取得、解碼并且執行被存儲在存儲介質120上的指令,以執行下面所描述的功能。在其他示例中,存儲介質120的任意指令的功能可以實現為電子電路的形式、編碼在機器可讀存儲介質上的可執行指令的形式、或其全士么云口口 ο
[0013]在圖1的示例中,計算設備100可以與版本控制系統160的版本控制存儲器162通信。計算設備100還可以與備份系統170的備份存儲器172通信。版本控制存儲器162和備份存儲器172可以均由至少一個機器可讀存儲介質來實現。如本文所描述的,“機器可讀存儲介質”可以是用于包含或存儲諸如可執行指令、數據等的信息的任何電子的、磁性的、光學的或其他物理的存儲裝置。例如,本文所描述的任何機器可讀存儲介質可以是隨機存取存儲器(RAM)、易失性存儲器、非易失性存儲器、閃存、存儲驅動(例如,硬盤)、固態驅動、任意類型的存儲盤(例如,壓縮磁盤、DVD等)等、或它們的組合中的任意一種。此外,本文所描述的任何機器可讀存儲介質可以是非暫時性的。
[0014]在一些示例中,計算設備100可以經由計算機網絡與版本控制存儲器162和備份存儲器172通信。如本文所使用的,計算機網絡可以包括例如局域網(LAN)、無線局域網(WLAN)、虛擬專用網(VPN)、因特網等,或它們的組合。在一些示例中,計算機網絡可以包括電話網絡(例如,蜂窩電話網絡)。在一些示例中,備份存儲器172可以對于計算設備100是遠程的,并且在本文中可以稱為“遠程”備份存儲器172。如本文所使用的,相對于計算設備是“遠程的”的存儲器(或任意其他計算資源)是可由計算設備經由計算機網絡專門訪問的存儲器(或另一計算資源)。例如,相對于計算設備100是“遠程的”的存儲器可經由計算機網絡的至少一個部件(例如,路由器或其他計算機網絡設備等)、計算設備100的至少一個計算機網絡接口(例如,網絡接口卡(NIC))等、或者它們的組合來訪問。
[0015]在一些示例中,存儲介質120的指令121-123可以實現備份系統170的至少一部分。例如,指令121-123可以實現備份系統170的備份代理的至少一部分。在這樣的示例中,備份代理可以安裝在計算設備100上。在圖1的示例中,指令121可以檢測備份系統170的備份操作已針對計算設備100被觸發。如本文所使用的,備份系統的“備份操作”是備份系統的用于將存儲在與備份存儲器分離的存儲器中的數據(整體或部分)復制到備份系統的存儲器的處理。在一些示例中,備份操作可包括檢測待復制到備份存儲器的數據。在一些示例中,備份操作可由計算設備100和備份系統170中至少一個的用戶手動觸發,或者可由備份系統170至少部分基于備份系統270的預定義進度表來觸發。
[0016]響應于備份系統170針對計算設備100被觸發的備份操作,指令121可檢測在計算設備100本地存儲的數據140。如本文中所使用的,在計算設備處“本地”存儲的數據是存儲在計算設備的至少一個機器可讀存儲介質(例如計算設備的存儲驅動(例如,硬盤驅動))、或計算設備的任意其他合適存儲器中的數據。在一些示例中,在計算設備處本地存儲的數據可以是獨立于任何計算機網絡的計算設備可訪問的數據。例如,本地存儲的數據可以經由計算設備的至少一條內部總線或其他內部通信機制對于計算設備可訪問。在圖1的示例中,本地存儲的數據140可以存儲在計算設備100的硬盤或其他機器可讀存儲介質上。
[0017]響應于檢測由計算設備100本地存儲的數據140,指令121可獲取與數據140相關聯的版本訪問信息182。版本訪問信息182可以是由計算設備100用于訪問數據140的版本150的信息,其中版本150相對于計算設備100遠程存儲在版本控制系統160的版本控制存儲器162 中。
[0018]在一些示例中,版本訪問信息182可以包括版本信息和位置信息。版本信息可識別被存儲在版本控制系統160的版本控制存儲器162中的數據140的版本150。例如,版本控制系統160可存儲數據140的多個版本(包括版本15