系統復位和系統恢復的製作方法
2023-04-24 19:46:31
專利名稱:系統復位和系統恢復的製作方法
技術領域:
該申請涉及計算機軟體,具體而言,涉及用於恢復或復位計算機的計算機軟體。
背景技術:
一些傳統的作業系統為用戶提供將作業系統和/或計算機執行的應用程式「回滾 (roll back)」或「恢復」到先前時間點上這些組件所處的狀態的能力。例如,「系統恢復」 能力可以允許用戶回滾系統文件、註冊表項、安裝的應用、和/或其他組件到在系統故障或失靈之前這些組件所處的狀態。類似地,某些作業系統提供執行「系統復位」的能力,據此作業系統和/或應用被復位到其原始的「工廠」設置。通常情況下,系統復位涉及執行系統恢復以將該系統帶回到在作業系統和/或應用程式作出任何更改之前其最初所處的狀態。
(在此,為了方便,使用術語「系統恢復」和「系統復位」來引用這些能力,但是這些術語之一的術語與用於描述任一傳統作業系統所提供的能力的術語之間的相似性不應看成是將該術語限制為由那些作業系統所提供的功能)。
發明內容
申請人:已經意識到在執行系統復位的傳統方法中存在許多不足。例如,使用傳統方法進行系統復位存在不必要的耗時。在這方面,使用傳統方法進行系統復位可能需要二十分鐘到幾個小時。此外,傳統的方法難於保證用戶的數據在系統復位時不受影響,因為傳統的系統沒有實施系統數據(例如,包括作業系統和/或應用程式)和用戶數據之間的明確「分界線」。此外,傳統的方法不提供在執行系統復位之後而能夠「撤銷(undo)」該系統復位的能力。申請人:也意識到,傳統系統存儲、管理數據和應用程式的方式導致至少一些這些不足。在這方面,執行系統復位的傳統方法通常試圖讓用戶數據不變。然而,由於缺乏系統數據和用戶數據之間的一個明確分界線,執行系統復位往往導致用戶數據被意外刪除。由於傳統系統不提供「撤消」系統復位的能力,用戶通常沒有任何依靠並且無法去恢復任何由於執行系統復位而丟失的數據。關於應用,雖然有些系統在其被新的版本代替時會存儲應用程式舊版本的副本(例如,將舊版本移動到指定的存檔位置),其他的不這樣做,使得將該系統復位到先於更新應用之前的點,可能導致該應用被丟失。本發明一些實施例通過修改數據和應用的存儲和管理的方式來彌補與執行系統復位的傳統方法相關的這些和其他的缺陷。例如,本發明的一些實施例存儲隨著時間的推移而捕獲到的一個或多個其他文件中數據文件所執行的任何變化的記錄。例如,本發明一些實施例可以採用差分虛擬磁碟(differencing virtual disk)以分隔和存儲虛擬硬碟上的數據變化。(此處使用的術語「虛擬硬碟」涉及用於表示一個硬碟或其部分的任意軟體構造,無論是現在已知的或以後開發的。)例如,差分虛擬磁碟表示一種「快照」,其捕獲自從最後的差分虛擬磁碟被存儲以來「父」虛擬硬碟上數據的所有變化。在預定的周期(例如,每周,和/或一些其他的時間間隔)和/或一旦發生一個或多個預定事件,可以開始一個新的差分虛擬磁碟,使得隨著時間的推移創建用於捕捉對父虛擬硬碟所做的變化的鏈。當用戶訪問文件時,系統提供原始文件以及隨著時間的推移而捕捉到的差異虛擬磁碟中存儲的任何變化的複合。為將文件恢復到它在任何特定的時間點所處的狀態,該系統可回滾到一個特定的差分虛擬磁碟。為執行系統復位,系統可回滾到父虛擬硬碟。本發明的一些實施例將硬碟驅動器上存儲的信息分隔成多個實體,並且為每一實體而保存差分虛擬磁碟的分開的集合。例如,一些實施例將硬碟上存儲的信息分隔成作業系統、應用和用戶數據實體。由於隨著時間的推移,在每個實體中存儲的信息發生了變化, 可以在為實體而保存的差分虛擬磁碟的鏈中捕捉這些變化。結果,通過還原到在特定的時間點或該時間點之前存儲的差分虛擬磁碟,而可以將任意單個實體恢復到該特定的時間點。可替換的是,通過還原到實體的父虛擬硬碟而可以對實體進行復位。保存分開的實體, 可以實施系統上用戶數據與非用戶數據之間的一個明確分界線,從而減少了在執行系統復位時用戶數據被無意中丟失的風險。此外,保存獨立的實體允許用戶有選擇地復位或恢復一個或多個實體,而保留一個或多個其他實體在它們當前狀態不被改變。例如,用戶可以將作業系統復位到其出廠狀態,同時保持應用和用戶數據在其當前狀態不被改變。以上是對本發明非限制性的概述,在所附權利要求中對本發明進行限定。
附圖不是按比例繪製。在附圖中,在各個圖形中示例的每個相同或幾乎相同的組成部分通過相似的數字表示。為了清楚起見,不是每一個組件都標記在每一個繪圖中,在所述附圖中
圖1是框圖,其描述根據本發明一些實施例,用於將與作業系統、應用和用戶數據的每一個相關的信息分隔成分開的實體的實例技術;
圖2是框圖,其描述根據本發明一些實施例,用於隨著時間推移將變化存儲至實例實體的實例技術;
圖3是框圖,其描述根據本發明一些實施例,用於將實體恢復到其在特定時間點所處的狀態的實例技術;
圖4是框圖,其描述根據本發明一些實施例,用於「撤銷」恢復操作的實例技術; 圖5是框圖,其描述根據本發明一些實施例,用於執行系統復位的實例技術; 圖6是框圖,其描述用於實現本發明一些實施例的實例計算機;以及圖7是框圖,其描述其上記錄了體現本發明多個方面的指令的實例存儲器。
具體實施例方式本發明某些實施例提供用於執行系統復位或系統恢復操作的技術。這些技術例如藉助於修改傳統的系統存儲、管理數據和應用的方式來實現。例如,一些實施例通過使用隨著時間的推移而被捕捉的差分虛擬磁碟來存儲對於虛擬硬碟上存儲的數據文件所產生的任意變化的記錄。例如,差分虛擬磁碟表示,自從最後的差分虛擬磁碟被存儲以來對父虛擬硬碟上的數據所作的變化的快照。一個新的差分虛擬磁碟可在以下時刻被開始,例如,在預定的周期上、當發生一個或多個預定事件時,和/或使用任意多個其他方法。當用戶訪問文件時,系統提供父虛擬硬碟上存儲的原始文件以及在隨著時間推移所捕獲的差分虛擬磁碟鏈中表示的任何變化的複合。為將文件恢復到其在任何特定的時間點上所處的狀態,本發明實施例通過擱置在該時間點之後捕捉到的差分虛擬磁碟鏈的塊,而允許回滾系統到該時間點或該時間點之前所捕捉到的差分虛擬磁碟。類似地,為執行系統復位,本發明實施例通過擱置差分虛擬磁碟鏈所有的塊,而允許回滾系統到父虛擬硬碟。此外,本發明一些實施例保存先前擱置的差分虛擬磁碟鏈的塊,使得通過再次附著(reattach)某些或全部的塊, 而能夠全部或部分地撤銷系統還原或系統復位。此外,發明的一些實施例將所存儲的信息分隔成多個實體。為每一實體而保存差分虛擬磁碟的分開的集合。例如,在一些實施例中,為作業系統、應用和用戶數據中的每一個而創建實體,並且,隨著時間的推移而捕捉差分虛擬磁碟。通過保存分開的實體,發明實施例減少了在執行系統復位時意外刪除用戶數據的風險。另外,保存分開的實體允許用戶有有選擇地復位或恢復一個或多個實體,同時保留一個或多個其他的實體在它們的當前形式。圖1描述了將所存儲的信息分隔成多個實體的實例方式。具體而言,在所示的實例中,創建了作業系統、應用和用戶數據。應當理解的是在該方面上,圖1僅是實例性的, 因為通過使用任意合適的分隔標準,可以將信息分隔成任意合適數量的實體。例如,可有選擇地將所存儲的信息分隔成兩個實體,一個實體存儲系統數據(例如,作業系統和應用),而另一個實體存儲用戶數據。在另一實例中,不同的實體可以為不同用戶存儲數據。本發明的實施例並不限於使用任意特定技術或分隔標準來分隔信息。在圖1的實例中,所示的三個實體是通過將文件系統的頂層文件夾劃分為分開的虛擬硬碟來創建的。使用一種Microsoft Windows作業系統家族所採用的比喻(metaphor) 來示例(雖然應當理解,本發明的實施例並不限於使用任何特定的作業系統),存儲有涉及作業系統的信息的虛擬硬碟105可以存儲在C \ WINDOWS頂層文件夾下存放的所有的文件夾及文件。存儲涉及應用的信息的虛擬硬碟110存儲在C Program Files文件夾下存放的所有的文件夾和文件。存儲用戶數據的115虛擬硬碟可以存儲在任何其他頂層文件夾下存放的所有文件夾和文件。當然,可以通過使用任意合適的標準來完成將數據分隔成獨立的實體,其可以或不用關於作業系統提供的文件系統或任意其他能力的方面來定義。發明的實施例並不局限於任何特定的實現方式。在所示的實例中,抽象(abstract) 170將存儲在分開的虛擬硬碟105、110和115 中的信息呈現為單個實體(例如文件系統)。結果,通過使用熟悉的比喻(例如,藉助於C Windows文件夾),用戶可以訪問與作業系統有關的信息,儘管信息存儲在一個分開的虛擬硬碟(即,虛擬硬碟105),而不是存儲在存儲有與應用或用戶數據有關信息的虛擬硬碟。此外,其數據存儲在所有虛擬硬碟上的單個文件系統由抽象170進行呈現。當然,發明的實施例並不限於使用抽象來表示圖1所示方式中存儲的數據,實際上可以使用任何抽象。在一些實施例中,每一虛擬硬碟105、110和115使用差分虛擬磁碟鏈來捕捉隨著時間推移而對存儲文件所作的變化。圖2描述針對實例實體捕捉差分虛擬磁碟的實例技術。在圖2所示的實例中,父磁碟205表示任意虛擬硬碟105、110或115。父磁碟205是, 例如,不可修改的。隨著時間的推移,捕捉差分虛擬磁碟210、215、220和225的鏈。具體地,在所示實例中,自從創建差分虛擬磁碟之後預定的時間周期的經過導致關閉該差分虛擬磁碟並創建另一個差分虛擬磁碟。結果,圖2示例了差分虛擬磁碟210在時間點230被創建,而在時間點235處被關閉,使得差分虛擬磁碟210存儲在時間間隔A上的父磁碟205 的變化。然後差分虛擬磁碟215被創建,並且捕捉在時間點235和240之間(也就是時間間隔B)父磁碟205的所有變化,直到在時間點240被關閉為止。然後,差分虛擬磁碟220被創建,並且捕捉時間點240到245之間(也就是時間間隔C)父磁碟205的所有變化,直到在時間點245被關閉為止。然後,差分虛擬磁碟225被創建,並且開始在時間點245捕捉父磁碟205的變化。在所示實例中,差分虛擬磁碟225應當在尚未到達的時間點250處被關閉。圖3描述了一種是用差分虛擬磁碟以將系統恢復到特定時間點的實例技術。具體地,圖3基於圖2所示實例構建以說明將系統恢復到時間點MO的實例方式。這可以因為任意許多原因而被執行。例如,用戶開始遇到他/她的計算機問題,並且推測(1)問題與應用相關而不是與作業系統相關;(2)問題在時間點240之後開始出現。然後,用戶尋求將存儲與應用相關的信息的差分虛擬硬碟(也就是,圖1所示實例中的虛擬硬碟110)恢復到該信息在時間點240所處的狀態。在所示的實例中,通過選擇在時間點235創建並且在時間點 240關閉的差分虛擬磁碟215,將與應用相關的信息恢復到時間點M0。差分虛擬磁碟220 和225被擱置(例如,保存,刪除,或任何其他合適方式的行動),創建差分虛擬磁碟255來替換差分虛擬磁碟220以反映時間點240之後對應用信息所做的任何變化。例如,在擱置差分虛擬磁碟220和225之後可以創建差分虛擬磁碟255。作為這種變化的結果,應用信息的 「當前狀態」不再通過圖2所示的父磁碟205和差分虛擬磁碟210、215、220和225的總和來反映,而是通過父磁碟205和差分虛擬磁碟210、215和255來反映。如以上所述那樣,可以保存差分虛擬磁碟220和225,以至於通過將被保存的差分虛擬磁碟再次附著到鏈來提供用於撤銷圖3所示恢復的靈活性。圖4示出了一個實例。在圖4中,差分虛擬磁碟255 (其在圖3的實例中替換了該鏈中的差分虛擬磁碟220)存儲時間點240和245之間(也就是,時間間隔C)對父磁碟205所做的變化,並在時間點245被關閉,屆時創建差分虛擬磁碟260。在所示的實例中,差分虛擬磁碟260應當在尚未到達的時間點250關閉。通過擱置差分虛擬磁碟255 (以及,隱含地,差分虛擬磁碟沈0),支持被保存的差分虛擬磁碟220,以撤銷圖3所示的系統恢復。這可以通過任意許多方式來實現,諸如通過從存儲中重新獲得差分虛擬磁碟220。作為該操作的結果,系統的「當前」狀態還原到通過父磁碟205和差分虛擬磁碟210、215、220和225的總和來反映,不再通過如圖3所示的父磁碟205和差分虛擬磁碟210、215、255和沈0的總和來反映。應當理解的是,在一些實施例中,差分虛擬磁碟255和260可以被保存而非刪除,從而提供「撤銷所述撤銷」的能力,如所希望那樣的話。也應當理解的是儘管在執行系統恢復的環境下給出了先前的實例,但是所公開的技術也可以適用於執行系統復位。這樣的實例在圖5中示出。具體地,圖5描述了一種如下所述的實例其將實體復位到其「原始」狀態(例如在安裝之後進行任何修改之前),這是通過擱置存儲有在實體處於「原始」狀態之後所做的變化的所有差分虛擬磁碟來實現的。在圖5的實例中,將存儲有自時間點230之後對父磁碟205所做的所有變化的差分虛擬磁碟210、215、220和225擱置,轉而支持差分虛擬磁碟沈5。例如,在將差分虛擬磁碟210、215、220和225擱置之後,創建虛擬磁碟沈5。結果,差分虛擬磁碟210、215、220、225 中存儲的任何變化被消除,以至於現在通過父磁碟205和差分虛擬磁碟260來反映系統的「當前」狀態。應當理解的是因為本發明實施例為每一實體而保存分開的差分虛擬磁碟鏈,每一實體可獨立地進行恢復或復位。例如,可以將作業系統復位到其工廠設置,可以將應用恢復到他們在第一時間點所處的狀態,以及將用戶數據恢復到用戶數據在第二時間點所處的狀態。使用圖2-5所示的實例時間線來說明父磁碟205存儲的作業系統信息可被復位到時間點230、應用信息可被恢復到該信息在時間點235所處的狀態、以及用戶數據可被恢復到該數據在時間點245所處的狀態。此外,在不影響對一個或多個其他實體執行的恢復或復位的情況下,可以撤銷這些恢復或復位操作中的任意一個操作。也應當理解的是儘管以上給出的實例涉及分開的作業系統、應用和用戶數據實體,但是發明實施例並非限於以該方式分隔信息。實際上,本發明的一些實施例根本不用分隔信息,而是保存單個實體,該實體將作業系統、應用和用戶數據存儲在單個父磁碟和差分虛擬磁碟鏈中。該單個實體能夠反映系統的整體狀態,而不是僅僅反映作業系統、應用或用戶數據的狀態,或這些信息集合的子集的狀態。發明實施例並不限於任何特定的實現方式。可以進一步理解的是並非所有的本發明實施例都使用虛擬硬碟和差分虛擬磁碟來執行在此公開的功能。可以採用任何合適的方式存儲其在最初所處的「父」狀態中的信息以及一個或者多個「子」數據結構的集合來反映相比於父狀態的變化,因為發明實施例並不在該方面上受到限制。用於實踐本發明特徵的系統和方法的各個方面可以在一個或多個計算機系統上實現,諸如圖6所示的示例性計算機系統600。計算機系統600包括輸入設備602、輸出設備601、處理器603、存儲器系統604以及存儲606,它們藉助於互聯機制直接或間接耦合, 所述互聯機制可以包括一個或多個總線、交換機、網絡和/或任意其他合適的互聯。輸入設備602接收來自用戶或機器(例如,操作者)的輸入,輸出設備601顯示或傳輸信息給用戶或機器(例如,液晶顯示器)。在其他的情況下也能夠使用輸入和輸出設備以提供一個用戶接口(界面)。能夠被使用以提供用戶接口的輸出設備的實例包括用於輸出的視覺呈現的印表機或顯示器屏幕以及用於輸出的音頻呈現的揚聲器或其他產生聲音的設備。能夠用於用戶接口的輸入設備的實例包括鍵盤、和指點設備諸如滑鼠、觸摸墊和數字輸入板。作為另一實例,計算機經由語音識別或其他音頻格式來接收輸入信息。處理器603通常執行被稱為作業系統(例如微軟Windows家族作業系統,或者其他合適的作業系統)的電腦程式,其控制其他電腦程式的執行,以及提供調度、輸入/輸出和其他設備控制、解釋(accounting)、編譯、存儲分配、數據管理、存儲器管理、通信和數據流控制。總的來說,處理器和作業系統定義了為其編寫應用和其他電腦程式語言的計算機平臺。處理器603也可以執行一個或多個電腦程式以實現各種功能。這些電腦程式可以以任意類型的電腦程式語言進行編寫,包括過程程式語言(procedural programming language)、面向對象的程式語言、宏語言、或它們的組合。這些電腦程式被存儲在存儲系統606。存儲系統606將信息保存在易失性或非易失性介質上,並且可以是固定的或可移動的。圖7更為詳細地示出了存儲系統606。存儲系統606包括有形的計算機可讀和可寫非易失性記錄介質701,其上存儲的信號定義了電腦程式或要由該程序使用的信息。例如,該記錄介質是磁碟存儲器、快閃記憶體儲器、和/或任意其他的可用於記錄和存儲信息的製品。通常,在操作中,處理器603使得數據被從非易失性記錄介質701讀入到易失性存儲器702(例如,隨機訪問存儲器,或RAM),與從記錄介質701讀取數據相比,這允許處理器703更快的訪問該信息。如圖6所示,存儲器 702可以位於存儲系統606或存儲器系統604中。處理器603通常操作存儲器604、702內的數據,然後在處理完成之後將數據複製到介質701。用於管理介質701和存儲器604、702 之間數據移動的各種機制是已知的,並且本發明不限於現在已知的或是以後開發的任意機制。本發明也不限於特定的存儲器604或存儲系統606。已經描述了該發明至少一個實施例的多個方面,應該理解的是對於本領域技術人員而言,各種替換、修改和改進是沒有困難的。所述替換、修改和改進作為該公開內容的一部分,其屬於發明的精神和範圍之內。因此,先前的描述和附圖僅作為實例。以上描述的本發明的實施例能夠以任意許多方法來實現。例如,可以使用硬體、軟體或它們的組合來實現。當以軟體形式實現時,軟體代碼能夠在任意合適的處理器或處理器集合上執行,而不管該軟體代碼提供在單個計算機還是分布在多個計算機和/或系統之中。儘管處理器可以使用任意合適形式的電路來實現,這樣的處理器可以實現為集成電路, 其在集成電路組件中具有一個或更多的處理器。應當理解的是執行在此所述功能的任意部件或部件集合通常能夠被設想成用於控制以上討論功能的一個或多個控制器。能夠以許多方式實現所述一個或多個控制器,諸如利用專用硬體,或者通過使用一個或多個使用微編碼或軟體編程的處理器來執行上述功能。其中控制器存儲或者提供用於系統操作的數據,所述數據可以存儲在中心存儲庫、多個存儲庫或它們的組合。應當理解的是計算機可以具體化為任意多種形式,諸如機櫃安裝計算機、臺式計算機、膝上型計算機、或平板計算機。另外,可以將計算機嵌入如下設備,其通常不被視為計算機,但是具有適當的處理能力,包括個人數字助理(PDA)、智慧型手機或任意其他合適的便攜或固定式電子設備。並且,計算機可以具有一個或多個輸入和輸出設備。這些設備可被用於特別是提供用戶接口。能夠被使用以提供用戶接口的輸出設備的實例包括用於輸出的視覺呈現的印表機或顯示器屏幕以及用於輸出的音頻呈現的揚聲器或其他產生聲音的設備。能夠用於用戶接口的輸入設備的實例包括鍵盤,和指點設備諸如滑鼠、觸摸墊和數字輸入板。作為另一實例,計算機經由語音識別或其他音頻格式來接收輸入信息。這樣的計算機可以通過任意合適形式的一個或多個網絡進行互聯,包括區域網或廣域網,諸如企業網絡或網際網路。所述網絡基於任意合適的技術並且根據任意合適的協議而運作且可以包括無線網絡、有線網絡或光纖網絡。並且,可以將在此概述的各種方法或處理編碼為在使用多種作業系統或平臺任意之一的一個或多個處理器上執行的軟體。另外,所述軟體可以使用任意多種合適的程式語言和/或編程或腳本工具進行編寫,並且也被編譯為可執行的機器語言代碼或在架構或虛擬環境中執行的中間代碼。在該方面中,發明可以具體化為一種計算機可讀介質(或多個計算機可讀介質) (例如,計算機存儲器、一個或多個軟盤、壓縮盤(CD)、光碟、數字視頻盤(DVD)、磁帶、閃速存儲器、現場可編程門陣列內的電路配置或其他半導體設備、或其他非瞬時有形的計算機可讀存儲介質),用一個或多個程序對其編碼,當在一個或多個計算機或其他處理器上執行所述程序時,執行實現以上討論的本發明各種實施例的方法。計算機可讀介質或媒體能夠是可移植的,使得其上存儲的程序或多個程序能夠載入到一個或多個不同計算機或其他處理器以實現以上討論的本發明的各個方面。如在此使用的那樣,術語「非瞬時計算機可讀存儲介質」僅包括能夠被認為是一種產品(也就是製造的製品)或機器的計算機可讀介質。在此使用的術語「程序」或「軟體」一般意義上涉及任意類型的計算機代碼或計算機可執行指令集,其能夠被使用以編程計算機或其他處理器來執行如上所述本發明各個方面。另外,應當理解的是,根據該實施例的一個方面,當被執行時實現本發明的方法的一個或多個電腦程式不需要駐留在單個計算機或處理器,但是可以以模塊化方式分布在許多不同計算機或處理器之中以實現本發明的各個方面。計算機可執行指令可以是許多形式,諸如一個或多個計算機或其他設備執行的程序模塊。通常,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、數據結構等等。通常,在各種實施例中,程序模塊的功能可以根據需要被組合或分布。並且,可以以任意合適的形式將數據結構存儲在計算機可讀介質中。為簡單說明起見,數據結構被示為具有與數據結構中的位置相關的欄位。所述關係同樣可以通過以下方式來實現,即利用計算機可讀介質中的位置分配欄位存儲,其傳送欄位之間的關係。然而可以使用任意合適的機制以建立數據結構欄位中信息之間的關係,包括通過使用指針、標籤或建立數據元素之間關係的其他機制。可以單獨、組合或以先前描述實施例中沒有具體討論過的各種布置來使用本發明的各個方面,因此並未將其應用限制到先前描述所闡述的細節或附圖所示的部件布置。例如,可以以其他實施例所述方面的任意形式來組合一個實施例中所述的方面。並且,本發明可以體現為一種方法,已經提供了該方法的實例。可以以任何合適的方式排序作為方法的部分所執行的動作。因此,可以構建實施例,其中的動作以不同於所示順序的順序來執行,其可以包括同時執行一些動作,儘管在此所述的說明性實例中被示為順序動作。權利要求中使用諸如「第一」、「第二」、「第三」等等的次序術語來修飾權利要求元素並不是暗示其本身任何優先權、先後次序或一個權利要求元素在另一權利要求元素之上的次序或執行方法動作的時間次序,而是僅用作為一種用於區分具有某一名稱的一權利要求元素與具有相同名稱的另一元素以便區分各權利要求元素的標籤。並且,在此使用的措辭和術語是用於描述目的的,不應當視為限制。在此使用的 「包括」、「包含」或「具有」、「含有」、「涉及」以及其變形意思是包括此後所列的內容和其等價物以及另外的內容。
10
權利要求
1.一種在系統中使用的方法,所述系統能夠接收輸入以將系統恢復到該系統在先前時間點所處的狀態,該方法包括(A)將系統存儲的信息劃分到多個實體中(155、160、170);以及(B)接收輸入以將多個實體中的一個實體恢復到所述一個實體在第一時間點(240)所處的狀態,而不將多個實體中的另一實體恢復到所述另一實體在第一時間點所處的狀態。
2.權利要求1的方法,其中(A)包括將多個實體的每一實體存儲在分開的虛擬硬碟上, 並且對於多個實體的每一實體,將實體的變化存儲在至少一個差分虛擬磁碟,每一差分虛擬磁碟存儲時間點上實體的變化。
3.權利要求2的方法,其中(B)包括接收輸入,以通過選擇用於反映在第一時間點或先於第一時間點對所述一個實體的變化的差分虛擬磁碟,並且擱置在第一時間點之後為所述一個實體而創建的任意虛擬差分磁碟,來恢復多個實體的一個實體。
4.一種其上具有編碼指令的計算機可讀存儲介質(701),當其在能夠接收輸入以將系統恢復到系統在先前時間點上所處的狀態的系統上執行時,執行一種方法,包括(A)將系統所存儲的信息劃分到多個實體中(155、160、170),多個實體包括存儲涉及作業系統的信息的第一實體(1 ),存儲涉及應用的信息的第二實體(160),以及存儲涉及用戶數據的信息的第三實體(170);(B)將多個實體的每一實體存儲在分開的虛擬硬碟(105、110、115)上,每一虛擬硬碟反映相應實體的原始狀態;(C)對於多個實體的每一實體,將隨著時間的推移對實體所做的變化存儲在多個差分虛擬磁碟上(210、215);以及(D)接收輸入以通過為在第一時間點(240)時或先於第一時間點存儲信息的一個實體而選擇多個差分虛擬磁碟(215)中的一個差分虛擬磁碟,將多個實體中的至少一個實體恢復到至少一個實體在第一時間點上所處的狀態。
5.權利要求4的計算機可讀存儲介質,其中系統提供接收輸入以將多個實體的至少一個實體復位到原始狀態的能力,其中(D)包括接收輸入,以通過擱置為至少一個實體而創建的任意差分虛擬磁碟,而將至少一個實體復位到原始狀態。
6.權利要求4的計算機可讀存儲介質,其中(D)包括接收輸入以將多個實體的至少一個復位到原始狀態並且不將多個實體的另一實體復位到原始狀態。
7.權利要求4的計算機可讀存儲介質,其中(D)進一步包括(Dl)接收輸入以通過擱置在第一時間點之後為至少一個實體創建的任意差分虛擬磁碟來復位至少一個實體;(D2)保存在(Dl)中擱置的差分虛擬磁碟的至少一部分;以及(D3)接收輸入以再次附著(D2)中保存的差分虛擬磁碟的至少一部分來撤銷恢復。
8.一種系統,包括至少一個存儲元件(606),其存儲有定義多個實體(155、160、170)的信息,多個實體包括存儲有涉及作業系統的信息的第一實體(巧5),存儲有涉及應用的信息的第二實體 (160),以及存儲有涉及用戶數據的信息的第三實體(170),多個實體的每一實體存儲在至少一個存儲元件上的分開的虛擬硬碟(105、110、115)上,每一虛擬硬碟反映相應實體的原始狀態,至少一個存儲元件為多個實體的每一實體將隨時間推移而對實體所做的變化存儲到多個差分虛擬磁碟(210、215);以及至少一個處理器(603),被編程來接收輸入,以通過為在第一時間點(240)時或先於第一時間點存儲信息的一個實體而選擇多個差分虛擬磁碟(215)中的一個虛擬磁碟,將多個實體的至少一個實體恢復到所述至少一個實體在第一時間點所處的狀態。
9.權利要求8的系統,其中編程至少一個處理器以接收輸入,以便將所述至少一個實體復位到原始狀態,而不將多個實體的另一實體復位到原始狀態。
10.權利要求9的系統,其中編程至少一個處理器以接收信息,以便將另一實體恢復到該另一實體在第二時間點所處的狀態。
全文摘要
用於執行系統復位和/或系統恢復操作的技術。所述技術允許使用隨著時間推移而捕捉的差分虛擬磁碟,對虛擬硬碟上存儲的數據文件發生的任何變化的記錄進行存儲。為將文件恢復到其在任意特定時間點所處的狀態,系統被回滾到在該時間點上或在該時間點之前捕捉的差分虛擬磁碟並且擱置在該時間點之後捕捉到差分虛擬磁碟鏈的塊。為執行系統復位,通過擱置差分虛擬磁碟鏈的所有塊,可以將系統回滾到父虛擬硬碟。系統上的信息可被分隔成多個實體。為每一實體而保存分開的差分虛擬磁碟集合,所述實體例如為作業系統、應用和用戶數據。
文檔編號G06F11/14GK102567142SQ20111041998
公開日2012年7月11日 申請日期2011年12月15日 優先權日2010年12月15日
發明者D.T.李, G.W.尼科爾斯, K.K.道盧魯, K.P.蘇布拉曼亞, S.S.K.P.庫馬卡斯圖裡, S.多爾, V.奧蓋爾, 苑鈺楠, 鄭洪流 申請人:微軟公司