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