專利名稱:高效數(shù)據(jù)恢復(fù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理,尤其涉及高效數(shù)據(jù)恢復(fù)。
背景技術(shù):
計(jì)算機(jī)已變得高度集成于工作、家庭、移動設(shè)備以及許多其他地方中。計(jì)算機(jī)可快速且有效地處理大量信息。被設(shè)計(jì)成在計(jì)算機(jī)系統(tǒng)上運(yùn)行的軟件應(yīng)用允許用戶執(zhí)行包括商業(yè)應(yīng)用、學(xué)校作業(yè)、娛樂等等在內(nèi)的各種各樣的功能。軟件應(yīng)用通常被設(shè)計(jì)成執(zhí)行專門的任務(wù),諸如用于草擬文檔的文字處理器應(yīng)用或者用于發(fā)送、接收和組織電子郵件的電子郵件程序。因此,軟件應(yīng)用及其對應(yīng)的用戶生成的數(shù)據(jù)對于用戶和公司往往非常有價值。在許多情況下,這種應(yīng)用數(shù)據(jù)被備份在其它(遠(yuǎn)程)計(jì)算系統(tǒng)上。數(shù)據(jù)備份通常儲存每個數(shù)據(jù)文件的副本。當(dāng)隨著時間對這些文件作出改變,備份蓋寫先前儲存的備份數(shù)據(jù)以確保備份·數(shù)據(jù)是最新的。隨著時間推移且越來越多的用戶創(chuàng)建并編輯數(shù)據(jù),這些數(shù)據(jù)備份可能變得愈加大。處理并傳輸這些大量數(shù)據(jù)可能變得繁重。
發(fā)明內(nèi)容
此處描述的實(shí)施例涉及使用自定義模式定位并還原已備份的項(xiàng),并高效傳輸恢復(fù)數(shù)據(jù)。在一實(shí)施例中,計(jì)算機(jī)系統(tǒng)定義一模式,該模式提供備份數(shù)據(jù)集中的數(shù)據(jù)搜索和檢索。該模式為每個數(shù)據(jù)庫項(xiàng)儲存可搜索屬性,并利用一文件系統(tǒng)來為備份集的數(shù)據(jù)項(xiàng)儲存文件系統(tǒng)元數(shù)據(jù)。該計(jì)算機(jī)系統(tǒng)接收尋找備份數(shù)據(jù)集中的數(shù)據(jù)項(xiàng)的請求,并訪問該模式,來從已儲存的可搜索的屬性中確定,備份數(shù)據(jù)集中的哪些恢復(fù)點(diǎn)包括被請求的數(shù)據(jù)項(xiàng)。該計(jì)算機(jī)系統(tǒng)還從備份數(shù)據(jù)集中的已確定的恢復(fù)點(diǎn)還原被請求的數(shù)據(jù)項(xiàng)。在另一實(shí)施例中,計(jì)算機(jī)系統(tǒng)從用戶接收要從一組數(shù)據(jù)備份中的指定恢復(fù)點(diǎn)恢復(fù)的各備份數(shù)據(jù)項(xiàng)的指示。該計(jì)算機(jī)系統(tǒng)計(jì)算對應(yīng)于每個用戶指定備份數(shù)據(jù)項(xiàng)的校驗(yàn)和數(shù)據(jù),并將計(jì)算出的用戶指定備份數(shù)據(jù)文件的校驗(yàn)和數(shù)據(jù)與相關(guān)于已經(jīng)在用戶的計(jì)算機(jī)系統(tǒng)上的數(shù)據(jù)項(xiàng)的校驗(yàn)和數(shù)據(jù)進(jìn)行比較,以確定要把備份數(shù)據(jù)項(xiàng)的哪些片段還原給用戶。該計(jì)算機(jī)系統(tǒng)還從數(shù)據(jù)備份接收那些已備份的數(shù)據(jù)項(xiàng),對于它們校驗(yàn)和還未存在于用戶的計(jì)算機(jī)系統(tǒng)上,并將所接收的備份數(shù)據(jù)項(xiàng)與用戶的現(xiàn)存數(shù)據(jù)項(xiàng)結(jié)合以完整地恢復(fù)用戶數(shù)據(jù)。提供本發(fā)明內(nèi)容以便以簡化形式介紹將在以下具體實(shí)施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并非旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。另外的特征和優(yōu)點(diǎn)將在以下的描述中闡述,并且部分可從該描述中顯而易見,或者可以從此處的教示實(shí)踐中習(xí)得。本發(fā)明的特征和優(yōu)點(diǎn)可以通過在所附權(quán)利要求中特別指出的手段和組合來實(shí)現(xiàn)并獲取。本發(fā)明的特征將從以下描述和所附權(quán)利要求書中變得完全顯而易見,或者可通過如下所述對本發(fā)明的實(shí)踐而獲知。
為了進(jìn)一步闡明本發(fā)明的各實(shí)施例的以上和其他優(yōu)點(diǎn)和特征,將參考附圖來呈現(xiàn)本發(fā)明的各實(shí)施例的更具體的描述。可以理解,這些附圖只描繪本發(fā)明的典型實(shí)施例,因此將不被認(rèn)為是對其范圍的限制。本發(fā)明將通過使用附圖用附加特征和細(xì)節(jié)來描述和解釋,附圖中圖I示出了計(jì)算機(jī)體系結(jié)構(gòu),本發(fā)明的實(shí)施例可運(yùn)行在其中,包括使用自定義模式定位并還原已備份項(xiàng)。圖2示出了使用自定義模式定位并還原已備份項(xiàng)的示例性方法的流程圖。圖3示出了用于高效傳輸恢復(fù)數(shù)據(jù)的示例性方法的流程圖。圖4示出了替代的計(jì)算機(jī)體系結(jié)構(gòu)實(shí)施例,其中恢復(fù)數(shù)據(jù)從備份位置被高效地傳·送到恢復(fù)目標(biāo)。
具體實(shí)施例方式此處描述的實(shí)施例涉及使用自定義模式定位并還原已備份的項(xiàng),并高效傳輸恢復(fù)數(shù)據(jù)。在一實(shí)施例中,計(jì)算系統(tǒng)定義一模式,該模式提供備份數(shù)據(jù)集中的數(shù)據(jù)搜索和檢索。該模式為每個數(shù)據(jù)庫項(xiàng)儲存可搜索屬性,并利用一文件系統(tǒng)來為備份集的數(shù)據(jù)項(xiàng)儲存文件系統(tǒng)元數(shù)據(jù)。該計(jì)算機(jī)系統(tǒng)接收尋找備份數(shù)據(jù)集中的數(shù)據(jù)項(xiàng)的請求,并訪問該模式,來從已儲存的可搜索的屬性中確定,備份數(shù)據(jù)集中的哪些恢復(fù)點(diǎn)包括被請求的數(shù)據(jù)項(xiàng)。該計(jì)算機(jī)系統(tǒng)還從備份數(shù)據(jù)集中的已確定的恢復(fù)點(diǎn)還原被請求的數(shù)據(jù)項(xiàng)。在另一實(shí)施例中,一計(jì)算機(jī)系統(tǒng)從用戶接收要從一組數(shù)據(jù)備份中的指定的恢復(fù)點(diǎn)恢復(fù)的各備份數(shù)據(jù)項(xiàng)的指示。該計(jì)算機(jī)系統(tǒng)計(jì)算對應(yīng)于每個用戶指定備份數(shù)據(jù)項(xiàng)的校驗(yàn)和數(shù)據(jù),并將計(jì)算出的用戶指定備份數(shù)據(jù)文件的校驗(yàn)和數(shù)據(jù)與相關(guān)于已經(jīng)在用戶的計(jì)算機(jī)系統(tǒng)上的數(shù)據(jù)項(xiàng)的校驗(yàn)和數(shù)據(jù)進(jìn)行比較,以確定要把備份數(shù)據(jù)項(xiàng)的哪些片段還原給用戶。該計(jì)算機(jī)系統(tǒng)還從數(shù)據(jù)備份接收那些已備份的數(shù)據(jù)項(xiàng),對于它們校驗(yàn)和還未存在于用戶的計(jì)算機(jī)系統(tǒng)上,并將所接收的備份數(shù)據(jù)項(xiàng)與用戶的現(xiàn)存數(shù)據(jù)項(xiàng)結(jié)合以完整地恢復(fù)用戶數(shù)據(jù)。以下討論現(xiàn)涉及可以執(zhí)行的多種方法以及方法動作。應(yīng)當(dāng)注意,雖然這些方法動作可能是按一定次序討論的,或者是在流程圖中被描繪為是按照特定順序進(jìn)行的,然而并非必然需要特定的次序,除非特別聲明,或者是在一個動作被執(zhí)行之前因?yàn)樵搫幼饕蕾囉诹硪粍幼鞯耐瓿啥枰那闆r。本發(fā)明的各實(shí)施例可包括或利用專用或通用計(jì)算機(jī),該專用或通用計(jì)算機(jī)包括諸如例如一個或多個處理器和系統(tǒng)存儲器等計(jì)算機(jī)硬件,如以下更詳細(xì)討論的。本發(fā)明范圍內(nèi)的各實(shí)施例還包括用于承載或儲存計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可由通用或?qū)S糜?jì)算機(jī)系統(tǒng)訪問的任何可用介質(zhì)。以數(shù)據(jù)形式儲存有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是計(jì)算機(jī)存儲介質(zhì)。承載計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實(shí)施例可包括至少兩種顯著不同的計(jì)算機(jī)可讀介質(zhì)計(jì)算機(jī)存儲介質(zhì)和傳輸介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括RAM、ROM、EEPROM、CD-ROM、基于RAM、閃存、相變存儲器(PCM)、或其它類型的存儲器的固態(tài)驅(qū)動器(SSD)、或者其他光盤存儲、磁盤存儲或其他磁存儲設(shè)備、或可用于以計(jì)算機(jī)可執(zhí)行指令、數(shù)據(jù)或數(shù)據(jù)結(jié)構(gòu)形式存儲所期望的程序代碼裝置且可被通用或?qū)S糜?jì)算機(jī)訪問的任何其他介質(zhì)。“網(wǎng)絡(luò)”被定義成允許在計(jì)算機(jī)系統(tǒng)和/或模塊和/或其他電子設(shè)備之間傳輸電子數(shù)據(jù)的一個或多個數(shù)據(jù)鏈路和/或數(shù)據(jù)交換機(jī)。當(dāng)信息通過網(wǎng)絡(luò)(硬連線、無線、或者硬連線或無線的組合)被傳輸或提供給計(jì)算機(jī)時,該計(jì)算機(jī)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可以包括如下的網(wǎng)絡(luò)所述網(wǎng)絡(luò)可以用于運(yùn)送計(jì)算機(jī)可執(zhí)行指令形式或數(shù)據(jù)結(jié)構(gòu)形式的數(shù)據(jù)或所期望的程序代碼裝置,并且可以被通用或?qū)S糜?jì)算機(jī)訪問。上述的組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。此外,在到達(dá)各種計(jì)算機(jī)系統(tǒng)組件之后,計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可從傳輸介質(zhì)自動傳輸?shù)接?jì)算機(jī)存儲介質(zhì)(或反之亦然)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈路接收到的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩沖在網(wǎng)絡(luò)接口模塊(例如,網(wǎng)絡(luò)接口卡或“NIC”)內(nèi)的RAM中,然后最終被傳輸給計(jì)算機(jī)系統(tǒng)RAM和/或計(jì)算機(jī)系統(tǒng)處的較不易 失性的計(jì)算機(jī)存儲介質(zhì)。因而,應(yīng)當(dāng)理解,計(jì)算機(jī)存儲介質(zhì)可被包括在還利用(或甚至主要利用)傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)組件中。計(jì)算機(jī)可執(zhí)行(或計(jì)算機(jī)可解釋)指令例如包括致使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行某個功能或某組功能的指令。計(jì)算機(jī)可執(zhí)行指令可以是例如二進(jìn)制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述特征或動作。相反,上述特征和動作是作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開的。本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)踐,這些計(jì)算機(jī)系統(tǒng)配置包括個人計(jì)算機(jī)、臺式計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、移動電話、PDA、尋呼機(jī)、路由器、交換機(jī)等等。本發(fā)明還可在分布式系統(tǒng)環(huán)境中實(shí)踐,在該環(huán)境中本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)通過網(wǎng)絡(luò)(經(jīng)由硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路、或者經(jīng)由硬連線和無線數(shù)據(jù)鏈路的組合)鏈接起來,每個計(jì)算機(jī)系統(tǒng)都執(zhí)行任務(wù)(例如,云計(jì)算、云服務(wù)等)。在分布式系統(tǒng)環(huán)境中,程序模塊可位于本地和遠(yuǎn)程存儲器存儲設(shè)備中。圖I示出了可在其中采用本發(fā)明的原理的計(jì)算機(jī)體系結(jié)構(gòu)100。計(jì)算機(jī)體系結(jié)構(gòu)100包括客戶機(jī)計(jì)算機(jī)系統(tǒng)101以及數(shù)據(jù)存儲130。這些計(jì)算機(jī)系統(tǒng)可以是本地的或分布式計(jì)算機(jī)系統(tǒng),并且可以包括或使用云計(jì)算系統(tǒng)。計(jì)算機(jī)系統(tǒng)可被配置為與其它計(jì)算機(jī)系統(tǒng)和/或其它設(shè)備通信。計(jì)算機(jī)系統(tǒng)可包括用于執(zhí)行專門任務(wù)的各種模塊。這些模塊將在下面結(jié)合各種方法和系統(tǒng)來討論。如上所指示的,計(jì)算機(jī)系統(tǒng)用戶可為他們的數(shù)據(jù)創(chuàng)建備份。這些備份通常包括操作系統(tǒng)、一個或多個應(yīng)用以及各種用戶生成的文件和設(shè)置。這里描述的一些實(shí)施例包括高度優(yōu)化的目錄模式,以允許跨備份集的對項(xiàng)的高效搜索以及數(shù)據(jù)項(xiàng)的元數(shù)據(jù)從專用備份集中的提取。各實(shí)施例還描述了高效算法,其使用在恢復(fù)目標(biāo)上或接近恢復(fù)目標(biāo)的現(xiàn)存數(shù)據(jù)(恢復(fù)目標(biāo)是數(shù)據(jù)要被還原到的計(jì)算機(jī)系統(tǒng))來最小化來自備份存儲(例如,數(shù)據(jù)存儲130中的備份數(shù)據(jù)集131)的數(shù)據(jù)傳輸。該項(xiàng)級別目錄可被分成2個部分一個儲存項(xiàng)在一組數(shù)據(jù)庫表中的可搜索屬性(例如,名稱、最后修改時間、大小、作者等),另一個為作為備份集的部分的物理文件儲存文件系統(tǒng)元數(shù)據(jù)。第一部分提供針對恢復(fù)項(xiàng)的高效瀏覽和搜索特性。第二部分在備份期間幫助高效存儲,并在恢復(fù)時幫助物理文件的元數(shù)據(jù)的提取。這兩部分都將在下文中更詳細(xì)描述。在一些情況中,儲存在項(xiàng)屬性目錄中的項(xiàng)本質(zhì)上是分層的。也就是說,項(xiàng)具有父子關(guān)系。代表父的項(xiàng)(例如,目錄、子目錄等)可儲存在ParentItem (父項(xiàng))表中,而子可儲存在ChildItem (子項(xiàng))表中。由于每個父項(xiàng)可具有多個子,關(guān)于父的信息不重復(fù)且只儲存一次。在一些實(shí)施例中,特定項(xiàng)可以以多個版本出現(xiàn)。例如,c:\files目錄下的文件"document, txt”可作為注明日期的備份(例如備份BI、B2等)的部分來被備份。文件可繼續(xù)停留直到備份B100。那么,當(dāng)用戶試圖瀏覽c: \files下的文件尋找備份B50來恢復(fù)時,文件document, txt出現(xiàn)在列表中。為了實(shí)現(xiàn)這一行為,ParentItem和ChildItem表中的每個項(xiàng)具有StartTime (開始時間)和EndTime (結(jié)束時間)。StartTime指示項(xiàng)出現(xiàn)的第一時間,而EndTime指示項(xiàng)變得無效(例如被刪除)的時間。這確保了每個項(xiàng)的條目不在每個版本中重復(fù),并且因此,表內(nèi)用于存儲信息的空間最小。該模式還幫助保持該表盡可能瘦,它進(jìn)而有助于更好的查詢表現(xiàn)。該模式可以高效地展示瀏覽器視圖,在那里可看見一時間范圍內(nèi)的全部項(xiàng)的累積列表,因此避免用戶需要去到每個備份集并分開瀏覽。
在一些情況中,關(guān)于子項(xiàng)的擴(kuò)展信息可被儲存在附加表中。附加表使用專用于已儲存并被查詢的屬性的類型的模式。如此,擴(kuò)展信息允許實(shí)現(xiàn)該擴(kuò)展信息的搜索和恢復(fù)功能。例如,軟件協(xié)作程序可在專門的恢復(fù)搜索UI中列舉文檔級特性和其它列表級詳情。附加地或可替換地,對于數(shù)據(jù)文件,擴(kuò)展信息可包括修改的時間、改變的時間、文件大小和任何其它文件系統(tǒng)屬性。這些也可被呈現(xiàn)在搜索和恢復(fù)用戶界面中。此外,基于子項(xiàng)數(shù)據(jù)源的上下文,子項(xiàng)信息可被擴(kuò)展以添加專用子項(xiàng)特性。儲存在ParentItem表中的路徑信息可以是32K字符大的,或在一些實(shí)施例中更長。該信息被分成兩個部分,第一部分包含第一路徑的前(例如400個)字符,其余為第二部分。在大多數(shù)情況中,項(xiàng)路徑的長度小于400個字符。這個機(jī)制有助于將第一部分包括為索引的部分,其有助于更快的查詢響應(yīng)。對于路徑大于400字符長度的其余情況,同樣通過將前400個字符作為索引的部分,查詢被縮減為僅針對那些前400字符匹配查詢的很少的行。文件元數(shù)據(jù)目錄可被維持為無數(shù)據(jù)(dataless)虛擬硬盤(VHD)。無數(shù)據(jù)虛擬硬盤VHD是在那里創(chuàng)建帶有全部元數(shù)據(jù)和屬性的文件,但不為任何文件寫數(shù)據(jù)流的虛擬硬盤。使用無數(shù)據(jù)VHD允許文件系統(tǒng)它本身被用作文件元數(shù)據(jù)的目錄格式。在恢復(fù)期間,該無數(shù)據(jù)VHD可被掛載,且使用文件系統(tǒng)的還原API來為要恢復(fù)的文件提取元數(shù)據(jù)。這相比于將文件系統(tǒng)元數(shù)據(jù)轉(zhuǎn)換到另一(自定義)格式的文件元數(shù)據(jù)的其它格式來說更高效。這些自定義格式在每次新特性被引入文件系統(tǒng)時需要被改變。使用無數(shù)據(jù)VHD允許系統(tǒng)在無數(shù)據(jù)VHD上將相同文件系統(tǒng)版本用作源,并避免處理任何有關(guān)自定義格式的兼容問題。為了優(yōu)化恢復(fù)期間的數(shù)據(jù)傳輸,提供了一種算法,它被設(shè)計(jì)來起到源數(shù)據(jù)是全部還是部分可用的作用。該算法可被應(yīng)用在各種不同情形,包括以下1)用戶需要獲得元數(shù)據(jù)的更老的版本,2)用戶需要回復(fù)到數(shù)據(jù)破壞之前的狀態(tài),3)在故障或刪除之后,用戶需要重新開始恢復(fù);以及4)用戶需要通過窄的帶寬和/或高等待時間的連接來將已備份數(shù)據(jù)恢復(fù)到恢復(fù)目標(biāo)。通過僅恢復(fù)元數(shù)據(jù)中與備份數(shù)據(jù)不匹配的那些部分來優(yōu)化數(shù)據(jù)傳輸,而不是完全下載全部用戶文件。為備份集中的數(shù)據(jù)并為恢復(fù)目標(biāo)中已經(jīng)可用的數(shù)據(jù)計(jì)算校驗(yàn)和值。通過僅下載不具有與恢復(fù)目標(biāo)中已經(jīng)可用的相同校驗(yàn)和的數(shù)據(jù)塊的數(shù)據(jù)來優(yōu)化恢復(fù)。這個算法同樣也被用來將數(shù)據(jù)恢復(fù)到替換位置。(如果校驗(yàn)和匹配)恢復(fù)程序可將匹配數(shù)據(jù)塊從原始位置智能復(fù)制,并將備份數(shù)據(jù)僅用于不具有與原始位置中的校驗(yàn)和匹配的任何塊的塊。下面,分別參考圖2和圖3的方法200和300,更詳細(xì)地解釋這些概念??紤]到以上描述的系統(tǒng)和體系結(jié)構(gòu),參考圖2和圖3的流程圖將更好地理解根據(jù)所公開的主題實(shí)現(xiàn)的方法。為了解釋簡明起見,這些方法被示出和描述為一系列框。然而,應(yīng)該理解和了解,所要求保護(hù)的主題不受框的次序的限制,因?yàn)橐恍┛蚩砂床煌拇涡蜻M(jìn)行和/或與此處所描繪和描述的其他框同時進(jìn)行。此外,并非全部所示的框都是實(shí)現(xiàn)下面所述的方法所必需的。圖2示出了使用自定義模式定位并還原已備份項(xiàng)的方法200的流程圖。現(xiàn)在將頻繁參照圖I的環(huán)境100的組件和數(shù)據(jù)來描述方法200。方法200包括定義模式的動作,該模式被配置來提供備份數(shù)據(jù)集中的數(shù)據(jù)搜索和檢索,其中該模式為每個數(shù)據(jù)庫項(xiàng)儲存可搜索屬性,并利用文件系統(tǒng)為備份集的數(shù)據(jù)項(xiàng)儲存文件系統(tǒng)元數(shù)據(jù)(動作210)。例如,自定義模式110可被用戶105或一組用戶定義。模式可被設(shè)計(jì)來提供備份數(shù)據(jù)集131的數(shù)據(jù)搜索和檢索。該模式本身包括每個數(shù)據(jù)庫項(xiàng)(例如文件或文件集)的各種可搜索屬性111。該模式可使用計(jì)算機(jī)系統(tǒng)101上的本地文件系統(tǒng)來為不同備份集的數(shù)據(jù)項(xiàng)儲存文件系統(tǒng)元數(shù)據(jù)112??伤阉鲗傩钥砂〝?shù)據(jù)部分第一次被儲存在備份集中的時間(即,第一恢復(fù)點(diǎn))的指示??伤阉鲗傩赃€可包括數(shù)據(jù)部分被最后一次訪問(或數(shù)據(jù)項(xiàng)被刪除)的時間(即,最后的恢復(fù)點(diǎn))??墒褂迷L問模式以顯示備份集的一個范圍的用戶界面,任何給定的數(shù)據(jù)項(xiàng)是備份集的部分。因此,用戶能夠在用戶界面中指定數(shù)據(jù)項(xiàng),并且用戶界面可顯示備份數(shù)據(jù)集的一個列表或范圍,該項(xiàng)是備份數(shù)據(jù)集的部分。文件系統(tǒng)元數(shù)據(jù)112可包括父信息和文件名信息。父信息可包括驅(qū)動和路徑信息,包括目錄和子目錄。在一些實(shí)施例中,對于大于400字符的數(shù)據(jù)路徑,父信息可被分成不同文件。這樣被分成兩個部分的路徑,兩個部分的第一部分在長度上被限制到預(yù)定義數(shù)據(jù)長度。這一長度可以是400字符,或?qū)嵸|(zhì)上任何其它字符數(shù)。父信息僅為儲存在父以下的全部文件儲存一次。避免數(shù)據(jù)路徑冗余提高了效率。父信息和文件名信息可儲存在分開的表中。在一些情況中,文件系統(tǒng)元數(shù)據(jù)112被儲存在無數(shù)據(jù)虛擬硬盤驅(qū)動器中。如上面所解釋的,無數(shù)據(jù)虛擬硬盤驅(qū)動器被配置成儲存與它們對應(yīng)的元數(shù)據(jù)和屬性一起創(chuàng)建的數(shù)據(jù)文件,但不儲存實(shí)際數(shù)據(jù)文件數(shù)據(jù)。在數(shù)據(jù)恢復(fù)期間,無數(shù)據(jù)虛擬硬盤驅(qū)動器被掛載,且文件系統(tǒng)應(yīng)用程序編程接口(API)可被實(shí)現(xiàn),以提取要(從備份數(shù)據(jù)集131中)恢復(fù)的數(shù)據(jù)項(xiàng)的元數(shù)據(jù)。返回到圖2,方法200包括接收要在至少一個備份數(shù)據(jù)集中尋找一個或多個數(shù)據(jù)項(xiàng)的請求的動作(動作220)。例如,請求接收模塊115可從用戶105接收數(shù)據(jù)請求106,請求要在備份數(shù)據(jù)集131中找到某些指定數(shù)據(jù)項(xiàng)。模式110可被恢復(fù)點(diǎn)確定模塊訪問,因此它可以從已儲存的可搜索屬性111中確定,備份數(shù)據(jù)集中的哪些恢復(fù)點(diǎn)132包括被請求的數(shù)據(jù)項(xiàng)(動作230)。例如,如果文件被包括在備份B25 - B50中,備份B50包括文件的最新版本,恢復(fù)點(diǎn)確定模塊將向數(shù)據(jù)還原模塊125發(fā)送恢復(fù)點(diǎn)B25 - B50,數(shù)據(jù)還原模塊125隨后從備份數(shù)據(jù)集內(nèi)的被確定的恢復(fù)點(diǎn)還原被請求的數(shù)據(jù)項(xiàng)126(動作240)。如此,模式110允許儲存最小量的數(shù)據(jù),并允許專用的備份項(xiàng)來以高效方式被搜索和恢復(fù)。圖3示出了用于高效傳輸恢復(fù)數(shù)據(jù)的方法300的流程圖?,F(xiàn)在將頻繁參照圖4的環(huán)境400的組件和數(shù)據(jù)來描述方法300。方法300包括從用戶接收要從一組數(shù)據(jù)備份中的指定恢復(fù)點(diǎn)恢復(fù)的一個或多個備份數(shù)據(jù)項(xiàng)的指示的動作(動作310)。例如,客戶機(jī)計(jì)算機(jī)系統(tǒng)401可從用戶405接收數(shù)據(jù)恢復(fù)請求406。數(shù)據(jù)恢復(fù)請求可指定要從已備份數(shù) 據(jù)項(xiàng)431內(nèi)的已指定的恢復(fù)點(diǎn)恢復(fù)的各種備份數(shù)據(jù)項(xiàng)407。該已備份數(shù)據(jù)項(xiàng)可被儲存在數(shù)據(jù)存儲430中,可被客戶機(jī)計(jì)算機(jī)系統(tǒng)訪問(或直接附加到其上)。方法300還包括計(jì)算對應(yīng)于用戶指定的備份數(shù)據(jù)項(xiàng)的每一個的校驗(yàn)和數(shù)據(jù)的動作(動作320)。例如,校驗(yàn)和計(jì)算模塊410可計(jì)算對應(yīng)于每一個用戶指定的備份數(shù)據(jù)項(xiàng)407的校驗(yàn)和411。被計(jì)算的校驗(yàn)和可被加版本,這樣不同的校驗(yàn)和對應(yīng)數(shù)據(jù)項(xiàng)的不同版本。備份數(shù)據(jù)也可被加版本,這樣多個不同版本的數(shù)據(jù)項(xiàng)可被備份。這些不同的已備份數(shù)據(jù)項(xiàng)的每一個可具有其自己唯一的(加版本的)校驗(yàn)和。當(dāng)使用這些加版本的校驗(yàn)和時,備份數(shù)據(jù)可從指定備份數(shù)據(jù)版本中還原。以此方式,相關(guān)于給定版本的全部文件可以被一起還原。方法300包括將用戶指定的備份數(shù)據(jù)文件的計(jì)算出的校驗(yàn)和數(shù)據(jù)與相關(guān)聯(lián)于已經(jīng)在用戶計(jì)算機(jī)系統(tǒng)上的數(shù)據(jù)項(xiàng)的校驗(yàn)和數(shù)據(jù)進(jìn)行比較,以確定備份數(shù)據(jù)項(xiàng)的哪些片段要被還原給用戶的動作(動作330)。例如,校驗(yàn)和比較模塊415可將計(jì)算出的校驗(yàn)和411與一個或多個現(xiàn)存校驗(yàn)和412進(jìn)行比較?,F(xiàn)存校驗(yàn)和可對應(yīng)于已經(jīng)在用戶計(jì)算機(jī)上的數(shù)據(jù)文件。比較可被用來確定哪些數(shù)據(jù)項(xiàng)已經(jīng)在用戶計(jì)算機(jī)上。接著,一旦確定哪些數(shù)據(jù)文件還不在用戶計(jì)算機(jī)上,可從已備份數(shù)據(jù)項(xiàng)431中還原其校驗(yàn)和還未存在于用戶計(jì)算機(jī)系統(tǒng)上的那些已備份數(shù)據(jù)項(xiàng)(例如,所選數(shù)據(jù)項(xiàng)432)(動作340)。這樣,僅將不具有帶有相同校驗(yàn)和的數(shù)據(jù)塊的數(shù)據(jù)下載到用戶計(jì)算機(jī)系統(tǒng)。方法300還包括將所接收到的備份數(shù)據(jù)項(xiàng)與用戶的現(xiàn)存數(shù)據(jù)項(xiàng)結(jié)合以使得用戶的數(shù)據(jù)完全恢復(fù)的動作(動作350)。一旦所選擇的數(shù)據(jù)項(xiàng)432已經(jīng)被接收,數(shù)據(jù)結(jié)合模塊420可將現(xiàn)存數(shù)據(jù)與所接收到的數(shù)據(jù)結(jié)合以創(chuàng)建用戶的完全還原的數(shù)據(jù)421。在一些情況中,已還原的數(shù)據(jù)項(xiàng)包括整個數(shù)據(jù)卷的數(shù)據(jù)文件。在數(shù)據(jù)恢復(fù)期間,如果恢復(fù)被刪除或因系統(tǒng)故障而以其他方式停止,可以從故障或刪除點(diǎn)重新開始。此外,備份數(shù)據(jù)可被還原到其它位置,而非用戶計(jì)算機(jī)系統(tǒng)上的原始位置。例如,備份數(shù)據(jù)可被還原到不同于數(shù)據(jù)從其原始地被備份的計(jì)算機(jī)系統(tǒng)的其它(也許遠(yuǎn)程)計(jì)算機(jī)系統(tǒng)。因此,提供了使用自定義生成模式來定位并還原已備份項(xiàng)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。此外,提供了通過僅傳輸還未在用戶計(jì)算機(jī)系統(tǒng)上的數(shù)據(jù)來高效傳輸恢復(fù)數(shù)據(jù)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所描述的實(shí)施例在所有方面都應(yīng)被認(rèn)為僅是說明性而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方案的含義和范圍內(nèi)的所有改變被權(quán)利要求書的范圍所涵蓋?!?br>
權(quán)利要求
1.一種在包括多個計(jì)算系統(tǒng)的計(jì)算機(jī)聯(lián)網(wǎng)環(huán)境中在包括至少一個處理器和存儲器的計(jì)算機(jī)系統(tǒng)處,用于使用自定義模式來定位并還原已備份項(xiàng)的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括 定義模式的動作,所述模式被配置來提供備份數(shù)據(jù)集中的數(shù)據(jù)搜索和檢索,其中所述模式為每個數(shù)據(jù)庫項(xiàng)儲存可搜索屬性,并利用文件系統(tǒng)為所述備份集的數(shù)據(jù)項(xiàng)儲存文件系統(tǒng)元數(shù)據(jù); 接收在所述備份數(shù)據(jù)集的至少一個中尋找一個或多個數(shù)據(jù)項(xiàng)的請求的動作; 訪問所述模式以從所儲存的可搜索屬性中確定所述備份數(shù)據(jù)集中的哪些恢復(fù)點(diǎn)包括所請求的數(shù)據(jù)項(xiàng)的動作;以及 從所述備份數(shù)據(jù)集內(nèi)的已確定的恢復(fù)點(diǎn)還原所請求的數(shù)據(jù)項(xiàng)的動作。
2.如權(quán)利要求I所述的方法,其特征在于,所述可搜索屬性包括以下至少一個時間的指示數(shù)據(jù)部分第一次儲存在所述備份集中的時間,和數(shù)據(jù)部分最后一次被訪問的時間。
3.如權(quán)利要求2所述的方法,其特征在于,使用所述模式的用戶界面顯示所述備份集的一個范圍,其中所述數(shù)據(jù)部分是所述備份集的部分。
4.如權(quán)利要求2所述的方法,其特征在于,所述用戶界面為每個數(shù)據(jù)項(xiàng)示出了第一恢復(fù)點(diǎn)和最后一個恢復(fù)點(diǎn)。
5.如權(quán)利要求I所述的方法,其特征在于,文件系統(tǒng)元數(shù)據(jù)包括父信息和文件名信息。
6.如權(quán)利要求5所述的方法,其特征在于,所述父信息和文件名信息儲存在分開的表中。
7.如權(quán)利要求5所述的方法,其特征在于,所述父信息包括被分成兩個部分的路徑,所述兩個部分的第一部分在長度上被限制為預(yù)定義數(shù)據(jù)長度。
8.如權(quán)利要求5所述的方法,其特征在于,關(guān)于子項(xiàng)的已擴(kuò)展信息的一個或多個部分被儲存在附加表中,所述附加表使用專用于所儲存和所查詢的屬性類型的模式,所述已擴(kuò)展信息允許實(shí)現(xiàn)所述已擴(kuò)展信息的搜索和恢復(fù)功能。
9.如權(quán)利要求5所述的方法,其特征在于,子項(xiàng)信息基于所述子項(xiàng)的數(shù)據(jù)源的上下文被擴(kuò)展,以添加一個或多個專用子項(xiàng)特性。
10.如權(quán)利要求I所述的方法,其特征在于,所述文件系統(tǒng)元數(shù)據(jù)被儲存在無數(shù)據(jù)虛擬硬盤驅(qū)動器中,所述無數(shù)據(jù)虛擬硬盤驅(qū)動器被配置來儲存與數(shù)據(jù)文件對應(yīng)的元數(shù)據(jù)和屬性一起創(chuàng)建的數(shù)據(jù)文件,但不儲存實(shí)際數(shù)據(jù)文件的數(shù)據(jù)。
11.如權(quán)利要求10所述的方法,其特征在于,在數(shù)據(jù)恢復(fù)期間,所述無數(shù)據(jù)虛擬硬盤驅(qū)動器被掛載,且實(shí)現(xiàn)文件系統(tǒng)應(yīng)用程序編程接口來提取要恢復(fù)的所述數(shù)據(jù)項(xiàng)的元數(shù)據(jù)。
12.一種用于實(shí)現(xiàn)用于高效傳輸恢復(fù)數(shù)據(jù)的方法的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括其上儲存有計(jì)算機(jī)可執(zhí)行指令的一個或多個計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在被計(jì)算系統(tǒng)的一個或多個處理器執(zhí)行時使得所述計(jì)算系統(tǒng)執(zhí)行所述方法,所述方法包括 從用戶接收要從一組數(shù)據(jù)備份中的指定恢復(fù)點(diǎn)恢復(fù)一個或多個備份數(shù)據(jù)項(xiàng)的指示的動作; 計(jì)算對應(yīng)于每個用戶指定備份數(shù)據(jù)項(xiàng)的校驗(yàn)和數(shù)據(jù)的動作; 將用戶指定的備份數(shù)據(jù)文件的計(jì)算出的所述校驗(yàn)和數(shù)據(jù)與相關(guān)聯(lián)于已經(jīng)在用戶計(jì)算機(jī)系統(tǒng)上的數(shù)據(jù)項(xiàng)的校驗(yàn)和數(shù)據(jù)進(jìn)行比較,以確定備份數(shù)據(jù)項(xiàng)的哪些片段要被還原給用戶的動作; 從至少一個數(shù)據(jù)備份接收校驗(yàn)和還未存在于所述用戶計(jì)算機(jī)系統(tǒng)上的那些已備份數(shù)據(jù)項(xiàng)的動作;以及 將所接收到的備份數(shù)據(jù)項(xiàng)與用戶的現(xiàn)存數(shù)據(jù)項(xiàng)結(jié)合,以使得用戶的數(shù)據(jù)完全恢復(fù)的動作。
13.如權(quán)利要求12所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述備份數(shù)據(jù)和校驗(yàn)和被加版本。
14.如權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述備份數(shù)據(jù)從指定的備份數(shù)據(jù)版本中被還原。
15.一種計(jì)算機(jī)系統(tǒng),包括 一個或多個處理器; 系統(tǒng)存儲器; 其上儲存有計(jì)算機(jī)可執(zhí)行指令的一個或多個計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由所述一個或多個處理器執(zhí)行時使得所述計(jì)算系統(tǒng)執(zhí)行一種用于使用自定義模式定位和還原已備份項(xiàng)的方法,所述方法包括以下 定義模式的動作,所述模式被配置來提供備份數(shù)據(jù)集中的數(shù)據(jù)搜索和檢索,其中該模式為每個數(shù)據(jù)庫項(xiàng)儲存可搜索屬性,并利用文件系統(tǒng)為備份集的數(shù)據(jù)項(xiàng)儲存文件系統(tǒng)元數(shù)據(jù),并且其中所述文件系統(tǒng)元數(shù)據(jù)被儲存在無數(shù)據(jù)虛擬硬盤驅(qū)動器中,所述無數(shù)據(jù)虛擬硬盤驅(qū)動器被配置來儲存與數(shù)據(jù)文件對應(yīng)的元數(shù)據(jù)和屬性一起創(chuàng)建的數(shù)據(jù)文件,但不儲存實(shí)際數(shù)據(jù)文件的數(shù)據(jù); 接收在所述備份數(shù)據(jù)集的至少一個中尋找一個或多個數(shù)據(jù)項(xiàng)的請求的動作; 訪問所述模式以從所儲存的可搜索屬性中確定所述備份數(shù)據(jù)集中的哪些恢復(fù)點(diǎn)包括所請求的數(shù)據(jù)項(xiàng)的動作;以及 從所述備份數(shù)據(jù)集內(nèi)的已確定的恢復(fù)點(diǎn)還原所請求的數(shù)據(jù)項(xiàng)的動作,其中在數(shù)據(jù)恢復(fù)期間,所述無數(shù)據(jù)虛擬硬盤驅(qū)動器被掛載,且文件系統(tǒng)應(yīng)用程序編程接口可被實(shí)現(xiàn),以提取要恢復(fù)的數(shù)據(jù)項(xiàng)的元數(shù)據(jù)。
全文摘要
本發(fā)明涉及高效數(shù)據(jù)恢復(fù)。各實(shí)施例涉及使用自定義模式定位并還原已備份的項(xiàng),并高效傳輸恢復(fù)數(shù)據(jù)。在一實(shí)施例中,計(jì)算機(jī)系統(tǒng)定義一模式,該模式提供備份數(shù)據(jù)集中的數(shù)據(jù)搜索和檢索。該模式為每個數(shù)據(jù)庫項(xiàng)儲存可搜索屬性,并利用一文件系統(tǒng)來為備份集的數(shù)據(jù)項(xiàng)儲存文件系統(tǒng)元數(shù)據(jù)。該計(jì)算機(jī)系統(tǒng)接收尋找備份數(shù)據(jù)集中的數(shù)據(jù)項(xiàng)的請求,并訪問該模式,來從已儲存的可搜索的屬性中確定,備份數(shù)據(jù)集中的哪些恢復(fù)點(diǎn)包括被請求的數(shù)據(jù)項(xiàng)。該計(jì)算機(jī)系統(tǒng)還從備份數(shù)據(jù)集中的已確定的恢復(fù)點(diǎn)還原被請求的數(shù)據(jù)項(xiàng)。
文檔編號G06F17/30GK102902601SQ20121033537
公開日2013年1月30日 申請日期2012年9月11日 優(yōu)先權(quán)日2011年9月12日
發(fā)明者A·辛格拉, A·S·杰亞普拉卡什, B·K·阿加瓦拉, D·薩卡, P·V·坎佐德, A·斯里瓦斯塔瓦, V·普拉巴 申請人:微軟公司