使用元数据虚拟硬盘驱动器和差分虚拟硬盘驱动器进行备份的制作方法

文档序号:6350976阅读:123来源:国知局
专利名称:使用元数据虚拟硬盘驱动器和差分虚拟硬盘驱动器进行备份的制作方法
使用元数据虚拟硬盘驱动器和差分虚拟硬盘驱动器进行备
份背景随着商业变得更加面向计算机,针对意外数据丢失的保护的重要性增加。许多企业级数据备份系统包括某种形式的现场(on-site)数据存储。例如,企业可周期性地将备份数据存储到专用于托管(host)备份数据的数据存储设备(例如,专用备份存储服务器)。 在用户级,用户工作站处的硬盘可被分区(例如,对半划分),并且存储在主分区中的数据可被周期性地复制到次分区。当还原主分区时,来自次分区的数据可被复制到主分区。这种备份系统可增加企业处的数据存储成本(例如,因为购买并维护备份磁盘或其他数据存储)并且降低企业处的数据存储利用率(例如,因为数据存储容量的一部分专用于备份,而数据存储容量的减少的部分可用于存储“活动(active) ”数据)。概述公开了使用元数据虚拟硬盘(VHD)和差分VHD进行备份的系统和方法。在初始备份操作期间,创建用于计算机系统处的数据卷的备份VHD和与该备份VHD相对应的元数据 VHD。将该备份VHD传送到远程存储位置(例如,在线云存储位置),而该元数据VHD (其在大小上可显著小于该备份VHD)被保持在该计算机系统处。当对该数据卷处的文件做出改变时,创建差分VHD,该差分VHD指示所述改变,并且更新该元数据VHD以反映所述改变。该差分VHD也可显著小于该备份VHD,因为该差分VHD可只包括文件的自从前一备份操作起已改变的部分。在后续备份操作期间,该数据卷可被备份而不创建新的备份VHD。相反,更新后的元数据VHD的副本和该差分VHD可被传送到该远程存储位置。通过使用元数据VHD和差分VHD,可备份计算机系统的数据卷而不需要在该计算机系统处存储备份VHD。此外,该元数据VHD和差分VHD可被用来在其他计算机系统处还原特定文件,而不将整个备份VHD下载到所述其他计算机系统。因此,元数据VHD和差分VHD 的使用可允许单实例的与机器无关的备份。例如,多个计算机系统可从单个远程存储的备份VHD恢复文件。提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。 本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。附图简述

图1是示出使用元数据VHD和差分VHD进行备份的系统的一特定实施例的框图;图2是示出使用元数据VHD和差分VHD进行备份的系统的另一特定实施例的框图;图3是示出图1或图2的元数据VHD的一特定实施例的图示;图4是示出将前向差分VHD转换为后向差分VHD的方法的一特定实施例的图示;图5是示出使用元数据VHD和差分VHD进行备份的方法的一特定实施例的流程图;图6是示出使用元数据VHD和差分VHD进行备份的方法的另一特定实施例的流程图;图7是示出使用差分VHD支持备份的方法的一特定实施例的流程图;图8是示出使用差分VHD支持备份(包括将前向差分VHD转换为后向差分VHD) 的方法的另一特定实施例的流程图;以及图9是计算环境的框图,该计算环境包括可用于支持如图1-8所示的计算机实现的方法、计算机程序产品和系统组件的实施例的计算设备。详细描述在一特定实施例中,公开了一种方法,该方法包括在计算机系统处的初始备份操作期间,在该计算机系统的存储设备处创建数据卷的备份VHD,创建与该备份VHD相对应的元数据VHD,并且将该备份VHD传送到远程存储位置。该方法还包括检测在该初始备份操作完成后对该数据卷的文件的改变。该方法还包括基于该元数据VHD创建差分VHD,其中该差分VHD指示对该文件的改变。该方法包括更新该元数据VHD以反映对该文件的所述改变。该方法还包括,在该计算机系统处的后续备份操作期间,将经更新的元数据VHD的副本和该差分VHD传送到该远程存储位置。在另一特定实施例中,公开了一种计算机系统。该计算机系统包括存储器设备和备份代理,该存储器设备包括按照文件系统来存储的文件,该备份代理被配置成检测对所述文件的改变。该计算机系统还包括变换模块,该变换模块被配置成将所检测的改变变换为VHD格式化的改变。该计算机系统还包括VHD模块,该VHD模块被配置成将该VHD格式化的改变写到该存储器设备处存储的元数据VHD并且基于该元数据VHD生成差分VHD。该计算机系统包括网络接口,该网络接口被配置成将该元数据VHD和该差分VHD传送到远程存储设备。在另一特定实施例中,公开了一种计算机可读介质,该计算机可读介质包括指令, 所述指令在由计算机执行时致使该计算机在第一时间点(PIT)接收备份VHD并且在第二 PIT接收第一前向差分VHD。该第二 PIT在该第一 PIT之后,并且该第一前向差分VHD指示自从该第一 PIT起对该备份VHD的改变。该计算机可读介质还包括在由该计算机执行时致使该计算机响应于远程客户端请求将特定文件回退到该第一 PIT的指示而将该特定文件从该备份VHD传送到该远程客户端的指令。该计算机可读介质还包括在由该计算机执行时致使该计算机响应于接收到该远程客户端请求将该特定文件回退到该第二 PIT的指示而将来自该第一前向差分VHD的该特定文件的已改变部分以及来自该备份VHD的该特定文件的未改变部分传送到该远程客户端的指令。应当注意,尽管本文针对虚拟硬盘驱动器(VHD)格式描述了使用元数据硬件驱动器和差分硬件驱动器的备份,然而所描述的备份方法可与能够定义文件或块系统的任何格式一起使用。此外,尽管已使用基于Windows的文件系统(例如,NT文件系统(NTFS)和文件分配表(FAT))示出了该备份方法,然而该备份方法可与任何文件系统(包括用户定义的文件系统(UDFS)) —起使用。图1是示出使用元数据虚拟硬盘驱动器(VHD)和差分VHD进行备份的系统100的一特定实施例的框图。系统100包括计算机系统110,计算机系统110经由网络130通信地耦合至远程存储位置150。一般而言,系统100可被用来将计算机系统110的数据卷备份到远程存储位置150。例如,远程存储位置150可以是在线云存储位置或网络共享(例如,位于另一计算机处、可经由局域网(LAN)访问、可经由广域网(WAN)访问、或其任何其他组
合)ο计算机系统110包括存储器112。例如,存储器112可以是计算机系统112处的随机存取存储器(RAM)或只读存储器(ROM)。在一特定实施例中,存储器112是计算机系统 112处的数据存储设备,诸如硬盘或可移动存储设备。存储器112可由计算机系统110利用以存储一个或多个文件116。存储器112还可存储如本文所述生成和更新的元数据VHD 114。计算机系统110包括备份代理118、变换模块120、以及VHD模块122。备份代理 118可检测对存储器112处存储的文件116的改变。例如,备份代理118可检测计算机系统 110处的用户已修改文件116中的一个。变换模块120可将由备份代理118检测的对文件116的改变转换为VHD格式化的改变。例如,当文件116按照NT文件系统(NTFS)被存储在存储器112处时,变换模块120 可基于与文件116相关联的NTFS目录结构信息和NTFS文件扩展(extent)信息将备份代理118所检测的改变转换为VHD格式化的改变。应当注意,仅为说明性目的,本文公开的特征是在NTFS的上下文中解释的。如本文所述的使用元数据VHD和差分VHD的备份可与其他文件系统一起使用。VHD模块122可将由变换模块120产生的VHD格式化的改变写到存储器112处的元数据VHD 114,以便元数据VHD 114反映由备份代理118检测的对文件116的改变。元数据VHD 114可在大小上显著小于文件116,因为元数据VHD 114可包括与文件116相关联的元数据但是不包括文件116的内容。例如,元数据VHD 114可包括NTFS扩展信息、NTFS重解析点、以及目录结构信息。在一特定实施例中,不是存储文件116的内容,而是元数据VHD 114包括指向存储在远程存储位置150处的备份VHD 140内的文件116的相应副本的文件指针。在备份操作期间,VHD模块122还可基于元数据VHD 114来生成差分VHD (例如,差分 VHD 144)。在一特定实施例中,在特定备份操作期间生成的差分VHD是前向差分VHD,该前向差分VHD指示自从前一备份操作起对文件116的改变。在一特定实施例中,差分VHD包括自从前一备份操作起文件116的已改变部分,但是不包括自从前一备份操作起文件116的未改变部分。VHD模块122可生成差分VHD而不访问远程存储位置150处的备份VHD 140。计算机系统110还包括网络接口 124。网络接口 IM可经由网络130将数据传送到远程存储位置150。例如,网络接口 IM可以是有线或无线网络接口(诸如以太网接口或 IEEE 802. 11无线联网接口),而网络130可以是局域网(LAN)、广域网(WAN)、或因特网。在计算机系统110处的初始备份操作期间,网络接口可将备份VHD 140传送到远程存储位置 150。在一特定实施例中,备份VHD 140包括所有文件116的副本。备份VHD 140可被存储在远程存储位置150处。在后续备份操作期间,网络接口 IM可将元数据VHD 114的副本 142和差分VHD 144传送到远程存储位置150,其中元数据VHD 114和差分VHD 144两者均在大小上显著小于备份VHD 140。在一特定实施例中,远程存储位置150是存储元数据VHD 114的副本142和差分VHD 144的在线云存储位置。在操作中,系统100可被用来将数据从计算机系统110高效地备份到远程存储位置150。例如,在初始备份操作期间,VHD模块122可生成备份VHD 140,而网络接口 IM可经由网络130将备份VHD 140传送到远程存储位置150。在一特定实施例中,在计算机系统110空闲或未在使用中时,备份VHD 140被自动生成并传送到远程存储位置150。元数据 VHD 114还可在初始备份操作期间生成。计算机系统110处的备份代理118可检测并跟踪对计算机系统110处的文件116 的改变。例如,备份代理118可维护自从计算机系统110处上次成功完成的备份操作起对文件116的改变的日志。变换模块120可将由备份代理118检测的对文件116的改变变换为VHD格式。在后续备份操作(例如,自动调度的备份操作或用户发起的备份操作)期间, 可创建指示对文件116的改变的差分VHD 144,并且可更新元数据VHD 114以反映对文件 116的改变。可将差分VHD 144以及元数据VHD 114的副本142传送到远程存储位置150。在第二后续备份操作期间,可基于更新后的元数据VHD 114来创建第二差分VHD, 并且可重新更新更新后的元数据VHD 144,并且可将两次更新后的元数据VHD 114的副本和第二差分VHD (图1未示出)传送到远程存储位置150。可以理解,图1的系统100可通过将备份数据传送到远程存储位置150,由此增加存储器112处的可用存储空间量,来改善计算机系统110的性能还可以理解,图1的系统 100可通过在初始备份操作期间将较大的备份VHD传送到远程存储位置150,并且通过在后续备份操作期间将较小的元数据VHD和差分VHD传送到远程存储位置150,来改善性能。进一步可理解,备份VHD 140、元数据VHD 114的副本142、以及差分VHD 144可被用来在计算机系统110处还原文件116。例如,计算机系统110可通过从远程存储位置150处的备份 VHD 140下载文件116中的特定文件,来将该特定文件还原到与初始备份操作相对应的时间点(PIT)。可通过从备份VHD 140下载该特定文件的未改变部分并通过从差分VHD 144 下载该特定文件的已改变部分到计算机系统110,来将该特定文件还原到与第一后续备份操作相对应的PIT (例如,处于“已改变”状态的该特定文件)。可通过从该备份VHD下载该特定文件的未改变部分并通过从差分VHD 144和第二差分VHD下载该特定文件的已改变部分,来将该特定文件还原到与第二备份操作相对应的PIT (例如,处于“已两次改变”状态的该特定文件)。应当注意,尽管图1中示出的特定实施例示出将数据从计算机系统110备份到远程存储位置150,然而可以类似方式执行将数据从远程存储位置150到另一远程存储位置的备份。因此可以理解,图1中示出的备份方法可允许使用多个远程存储位置(例如在线云存储)的数据重复和数据冗余情形。例如,通过将数据从计算机系统备份到位于企业处的网络共享(例如,服务器),可针对该企业处的该计算机系统实现第一层数据冗余。通过将数据从该网络共享(例如,来自企业处的所有这样的计算机系统的备份数据)备份到在线云存储,可以实现第二层数据冗余。图2是示出使用元数据VHD和差分VHD进行备份的系统200的另一特定实施例的框图。系统200包括经由网络230通信地耦合到在线云存储位置250的第一计算机系统 210和第二计算机系统270。在一说明性实施例中,第一计算机系统210是图1的计算机系统110,在线云存储位置250是图1的远程存储位置150,而网络230是图1的网络130。第一计算机系统210包括存储器212,存储器212按照NT文件系统(NTFS)来存储文件216。应当注意,仅为说明性目的,本文公开的特征是在NTFS的上下文中解释的。如本文所述的使用元数据VHD和差分VHD的备份可与其他文件系统一起使用。存储器212还可包括如本文参考图1的元数据VHD 114所描述的在备份操作期间生成和更新的元数据VHD214。第一计算机系统210可将备份VHD M0、元数据VHD 214的副本M2、以及前向差分 VHD 244传送到在线云存储位置250,如本文参考图1的备份VHD 140、元数据VHD 114的副本142、以及前向差分VHD 144所描述的。第二计算机系统270包括存储器272。例如,存储器272可按照NTFS文件系统或文件分配表(FAT)文件系统(诸如FAT16、FAT32、或扩展FAT(exFAT))来存储文件。图2的系统200可被用来在第一计算机系统210处还原文件,如本文参考图1的计算机系统110 所描述的。图2的系统200还可被用来在第二计算机系统270处还原文件。在第一计算机系统210处的初始备份操作期间,备份VHD 240可被传送到在线云存储位置250。在计算机系统210处的后续备份操作期间,元数据VHD214的副本242和前向差分VHD 244可被传送到在线云存储位置250。文件M0、242和M4可被用来将文件216 还原到除计算机系统210以外的计算机系统。例如,第二计算机系统270可生成经还原的文件276 (例如,文件216的副本)。为了将文件216还原到与第一计算机系统210处的初始备份操作相对应的时间点(PIT),第二计算机系统270可从在线云存储位置250处的备份VHD 240下载文件216并将它们作为经还原的文件276来存储。为了将文件216还原到与第一计算机系统210处的后续备份操作相对应的PIT,第二计算机系统270可从备份VHD 240下载文件216的未改变部分沈2,并可从在线云存储位置250处的前向差分VHD 244中的一个或多个下载文件216的已改变部分沈2。然后第二计算机系统270可通过将已改变部分262和未改变部分264相组合来生成经还原的文件276。第二计算机系统270还可从在线存储位置250下载与和经还原的文件276相关联的PIT相对应的元数据VHD 214的副本,以便对经还原的文件276的未来改变可被备份到在线云存储位置250,如本文参考第一计算机系统210所描述的。在一特定实施例中,元数据VHD 214的已下载副本可在第二计算机系统270处使用以浏览、搜索并启动在备份VHD 250处存储的特定文件的粒度恢复。在一特定实施例中,这种浏览、搜索和恢复是在第二计算机系统270处经由应用(例如,操作系统实用程序)执行的。可以理解,图2的系统200可允许备份数据(例如,文件M0J42、和M4)跨多个计算机系统(例如,计算机系统210和270)的共享。因此可以理解,图2的系统200可允许在多个计算机系统处的高效备份和还原操作。图3是示出元数据VHD 300的一特定实施例的图示。在一说明性实施例中,元数据VHD 300代表图1的元数据VHD 114或图2的元数据VHD 214。应当注意,仅为说明性目的,本文公开的特征是在NTFS的上下文中解释的。如本文所述的使用元数据VHD和差分 VHD的备份可与其他文件系统一起使用。在一特定实施例中,元数据VHD 300在基于NTFS扩展的备份方案中使用。在这种实施例中,元数据VHD 300可包括NTFS扩展信息310。在备份操作期间,可根据NTFS扩展信息中存储的数据运行指针来将已改变数据写到远程存储位置。在计算机系统处的还原操作期间,元数据VHD 300可被下载到该计算机系统,从而允许浏览和选择要还原的单个文件, 并且可通过遍历NTFS扩展信息中存储的数据运行指针来从该远程存储位置下载被选择来还原的文件。在另一特定实施例中,元数据VHD 300结合基于元数据粉碎的备份方案使用。在这种实施例中,元数据VHD 300可包括目录结构信息330和文件指针340。在备份操作期间,目录结构信息330可被更新以反映与元数据VHD 300相关联的数据卷处的数据改变,并且可根据文件指针340来在远程存储位置处存储已改变数据。在还原操作期间,可通过遍历文件指针340来获取被选择来还原的文件。在另一特定实施例中,元数据VHD 300在基于NTFS重解析点的备份方案中使用。 在这种实施例中,元数据VHD 300可包括NTFS重解析点320和目录结构信息330。在备份操作期间,目录结构信息330可被更新以反映与元数据VHD 300相关联的数据卷处的文件改变。在元数据VHD 300处存储的文件名可以是到在远程存储位置处存储的对应文件的 NTFS重解析点320 (例如,符号链接)。在还原操作期间,可通过解决NTFS重解析点320来下载被选择来还原的文件。可以理解,不管所使用的特定备份方案如何(例如,NTFS扩展、元数据粉碎、或 NTFS重解析点),元数据VHD 300可允许在计算机系统处的无数据(dateless)的或减少的本地数据备份。文件数据可改为存储在远程存储位置处。还可以理解,元数据VHD 300可允许单个文件的选择性浏览和恢复。图4是示出将前向差分VHD转化为后向差分VHD的方法400的一特定实施例的图示。如本文参考图1的差分VHD 144和图2的前向差分VHD 244所描述的,差分VHD的使用可通过包括计算机系统处的文件的已改变部分,而不包括未改变部分,来改善计算机系统处的备份操作的性能。然而,随着前向差分VHD的数量的增加(例如,由于连续备份操作), 将文件还原到“当前”状态要花的时间可能增加。例如,如果在备份VHD被创建后发生四个连续的备份操作,则还原经常更新的文件可包括从在这四个连续的备份操作期间生成的四个前向差分VHD的每一个中下载该文件的已改变部分。基于来自多个前向差分VHD的信息来重构经更新的文件可能降低还原或备份操作的总性能。因此,在一特定实施例中,前向差分VHD(例如,在远程存储位置存储的)可被转换为如图4所示的后向差分VHD,以通过减少还原操作期间要参考的差分VHD的数量来改善性能。为了示出前向差分VHD到后向差分VHD的转换,考虑进行到远程存储位置的月度备份的计算机系统。在一月的初始备份期间(即,一月PIT),自包含的备份VHD 402被生成并传送到该远程存储位置。因为文件能被回退到一月PIT而无需参考其他VHD (例如,差分 VHD),所以一月的自包含备份VHD 402被称为“自包含”的。在二月的第一后续备份操作期间,前向差分VHD 404被生成并传送到该远程存储位置,其中前向差分VHD 404指示在一月 PIT和二月PIT之间所做的文件改变。类似地,在三月的第二后续备份操作期间,前向差分 VHD 406被生成并传送到该远程存储位置,其中前向差分VHD 406指示在二月PIT和三月 PIT之间所做的文件改变。为了将特定文件还原到一月PIT,计算机系统可从自包含备份VHD 402下载该特定文件。为了将该特定文件还原到二月PIT,该计算机系统可从自包含备份VHD 402下载该特定文件的未改变部分,并从前向差分VHD 404下载该特定文件的已改变部分。为了将该特定文件还原到三月PIT,该计算机系统可从自包含备份VHD 402下载该特定文件的未改变部分,并从前向差分VHD 404和406两者下载该特定文件的已改变部分。基于对备份和还原模式的观察,可以确定,很大百分比的还原操作涉及将文件将文件还原到最新近的PIT。例如,在图4中示出的实施例中,很大百分比的还原操作可包括将文件还原到三月PIT。要注意,每个这样的还原操作可涉及从多个前向差分VHD(例如,前向差分VHD 404和406)下载数据。为了改善这种通常发生的还原操作的性能,可将前向差分VHD 404和406还原为后向差分VHD。例如,可基于与二月PIT相对应的前向差分VHD 404来更新与一月PIT相对应的自包含备份VHD 402。所得到的自包含备份VHD 414可允许将文件还原到二月PIT而不参考其他VHD。在更新操作期间,还创建与一月PIT相对应的后向差分VHD 412。后向差分 VHD 412可有效地描述如何“撤消”在更新操作期间所做的改变,以使可通过从自包含备份 VHD 414下载该文件的已改变部分并从后向差分VHD 412下载该文件的未改变部分来将文件还原到一月PIT。与三月PIT相对应的前向差分VHD 416可以是未改变的(例如,与前向差分VHD 406相同)。然后可重复该更新操作,从而生成与三月PIT相对应的自包含备份VHD^6和与二月PIT相对应的后向差分VHD 424。与一月PIT相对应的后向差分VHD 422可以保持未改变(例如,与后向差分VHD 412相同)。因此,针对三月PIT的通常发生的还原操作可不再涉及参考多个差分VHD (例如,用于一月和二月中的每一个的前向差分VHD)。可以理解,如图4所示的将前向差分VHD转换为后向差分VHD可通过减少通常发生的还原操作期间所参考的差分VHD的数量来改善备份和还原的性能。例如,一个或多个差分VHD(例如,最近没有用于还原的旧的差分VHD)可被合并为如图所示的自包含备份 VHD,而这些差分VHD可被删除。因此可以理解,图4的方法400可被用来改善图1的系统 100或图2的系统200处的备份和恢复性能。此外,前向差分VHD到后向差分VHD的转换可在远程存储位置处(例如,图1的远程存储位置150)处发生而不使用其他计算机系统(例如,图1的计算机系统110)处的计算资源。图5是用于示出使用元数据VHD和差分VHD进行备份的方法500的一特定实施例的流程图。在一说明性实施例中,方法500可以由图1的系统100或图2的系统200来执行。方法500包括,在502,在计算机系统处执行初始备份操作。例如,在图1中,初始备份操作可在计算机系统110处执行。在初始备份操作期间,方法500包括,在504,在该计算机系统的存储设备处创建数据卷的备份VHD。例如,在图1中,可创建备份VHD 140,其中该备份VHD与存储器112处的数据卷相关联,该存储器112包括文件116。方法500还包括,在初始备份操作期间,在 506,创建与该备份VHD相对应的元数据VHD。例如,在图1中,可创建元数据VHD 114。方法500还包括,在初始备份操作期间,在508,将该备份VHD传送到远程存储位置。例如,在图1中,可将备份VHD 140传送到远程存储位置150。方法500还包括,在510,在完成该初始备份操作后检测对该数据卷的文件的改变。例如,在图1中,备份代理118可检测对所述文件116中的特定文件的改变。方法500还包括,在512,基于该元数据VHD创建差分VHD,其中该差分VHD指示对该文件的改变。例如,在图1中,VHD模块122可创建差分VHD 144,其中差分VHD 144指示对所述文件116中的该特定文件的改变。方法500还包括,在514,更新该元数据VHD以反映对该文件的所述改变。例如, 在图1中,可更新元数据VHD 114。方法500包括,在516,在该计算机系统处的后续备份操作期间,将经更新的元数据VHD的副本和该差分VHD传送到该远程存储位置。例如,在图1中,可将元数据VHD 114的副本142和差分VHD 144传送到远程存储位置150。可以理解,图5的方法500可允许计算机系统处的无数据或减少的本地数据备份。 还可以理解,图5的方法500可通过将备份数据传送到远程存储位置来增加该计算机系统处的可用存储空间。图6是示出使用元数据VHD和差分VHD进行备份的方法600的另一特定实施例的流程图。在一说明性实施例中,方法600可以由图1的系统100或图2的系统200来执行。方法600包括,在602,在计算机系统处执行初始备份操作。例如,在图1中,初始备份操作可在计算机系统110处执行。在初始备份操作期间,方法600包括,在604,在该计算机系统的存储设备处创建数据卷的单实例存储(SIS)备份VHD。例如,在图1中,可创建备份VHD 140,其中备份VHD 140与存储器112处的数据卷相关联,该存储器112包括文件116。方法600还包括,在初始备份操作期间,在606,创建与该备份VHD相对应的元数据VHD。例如,在图1中,可创建元数据VHD 114。方法600还包括,在初始备份操作期间,在608,将该备份VHD传送到远程存储位置。例如,在图1中,可将备份VHD 140传送到远程存储位置150。方法600还包括,在610,在完成该初始备份操作后检测对该数据卷的文件的改变。例如,在图1中,备份代理118可检测对所述文件116中的特定文件的改变。方法600还包括,在612,创建指示对该文件的所述改变的差分VHD。例如,在图1 中,VHD模块122可创建差分VHD 144,其中差分VHD 144指示对所述文件116中的该特定文件的改变。方法600还包括,在614,更新该元数据VHD以反映对该文件的所述改变。例如, 在图1中,可更新元数据VHD 114。方法600包括,在616,在该计算机系统处的后续备份操作期间,将经更新的元数据VHD的副本和该差分VHD传送到该远程存储位置。例如,在图1 中,可将元数据VHD 114的副本142和差分VHD 144传送到远程存储位置150。一旦已将备份数据传送到远程存储位置之后,该备份数据可被用来还原文件。例如,计算机系统处的用户可启动该计算机系统处的还原操作。方法600还包括,在618,在该计算机系统处还原已改变文件。在该计算机系统处还原已改变文件包括,在620,从该远程存储位置处的差分VHD下载已改变文件的一个或多个已改变部分。例如,在图1中,可从远程存储位置150处的差分VHD144下载所述文件116中的该特定文件的一个或多个已改变部分。在一特定实施例中,所述文件116中的该特定文件的已改变部分被如本文参考图 2的已改变部分262所描述的那样下载。在该计算机系统处还原已改变文件还包括,在622,从该远程存储位置处的该备份 VHD下载该文件的一个或多个未改变部分。例如,在图1中,可从远程存储位置150处的备份VHD 140下载所述文件116的一个或多个未改变部分。在一特定实施例中,所述文件116 中的未改变部分被如本文参考图2的未改变部分264所描述的那样下载。在该计算机系统处还原已改变文件还包括,在624,基于该一个或多个已改变部分和该一个或多个未改变部分来在该计算机系统处生成该已改变文件。例如,在图1中,可基于该一个或多个已改变部分和该一个或多个未改变部分来还原文件116。例如,该一个或多个已改变部分和该一个或多个未改变部分可在该计算机系统处被组合以形成经还原的文件。
图7是示出使用差分VHD支持备份的方法700的一特定实施例的流程图。在一说明性实施例中,方法700可在图1的远程存储位置150或图2的在线云存储位置250处执行。方法700包括,在702,在第一 PIT接收备份VHD。例如,参考图2,可在在线云存储位置250处接收备份VHD 240 0方法700还包括,在704,在该第一 PIT之后的第二 PIT接收前向差分VHD,其中该前向差分VHD指示自从该第一 PIT起对该备份VHD的改变。例如,参考图2,在接收备份VHD 240之后,可在在线云存储位置250处接收前向差分VHD 244中的一个。方法700还包括支持远程客户端处的还原操作。当在706接收到远程客户端请求将特定文件回退到该第一 PIT的指示时,方法700包括,在708,将该特定文件从该备份VHD 传送到该远程客户端。例如,参考图2,在线云存储位置250可响应于接收到第二计算机系统270请求将特定文件回退到该第一 PIT的指示而将该特定文件传送到第二计算机系统 270。当在710接收到远程客户端请求将特定文件回退到该第二PIT的指示时,方法700 包括,在712,将该特定文件的已改变部分从该前向差分VHD传送并将该特定文件的未改变部分从该备份VHD传送到该远程客户端。例如,参考图2,在线云存储位置250可将已改变部分262和未改变部分264传送到第二计算机系统270。如先前参考图4所描述的,将前向差分VHD转换为后向差分VHD可改善备份和还原操作的性能。图8是示出支持备份差分VHD (包括将前向差分VHD转换为后向差分VHD) 的方法800的另一特定实施例的流程图。在一说明性实施例中,方法800可在图1的远程存储位置150或图2的在线云存储位置250处执行。方法800包括,在802,在第一 PIT接收备份VHD。例如,参考图2,可在在线云存储位置250处接收备份VHD 240 0方法800还包括,在804,在该第一 PIT之后的第二 PIT接收前向差分VHD,其中该前向差分VHD指示自从该第一 PIT起对该备份VHD的改变。例如,参考图2,在接收备份VHD 240之后,可在在线云存储位置250处接收前向差分VHD 244中的一个。方法800还包括,在806,基于该前向差分VHD来更新该备份VHD并将该前向差分 VHD转换为后向差分VHD。例如,参考图2,可基于前向差分VHD244中的一个来更新备份VHD 240,而该前向差分VHD可被转换为后向差分VHD。在一特定实施例中,该更新和转换操作是如本文参考图4的402-4 所描述的那样执行的。方法800包括支持远程客户端处的还原操作。当在808接收到远程客户端请求将特定文件回退到该第一PIT的指示时,方法800包括,在810,将该特定文件的未改变部分从该后向差分VHD传送并将该特定文件的已改变部分从经更新的备份VHD传送到该远程客户端。例如,参考图2,在线云存储位置250可将已改变部分262和未改变部分264传送到第二计算机系统270。当在812接收到远程客户端请求将特定文件回退到该第二PIT的指示时,方法800 包括,在814,将该特定文件从该经更新的备份VHD传送到该远程客户端。例如,参考图2,在线云存储位置250可响应于接收到第二计算机系统270请求将特定文件回退到该第二 PIT 的指示而将该特定文件传送到第二计算机系统270。
图9描绘了计算环境900的框图,该计算环境包括可用于支持根据本发明的计算机实现的方法、计算机程序产品和系统组件的实施例的计算设备910。在一说明性实施例中,计算设备910可包括图1的网络接口 124、图1的存储器112、图1的代理/模块118、 120、122、图1的远程存储位置150、图2的存储器212、272、或图2的在线云存储位置250。 图1的网络接口 124、图1的存储器112、图1的代理/模块118、120、122、图1的远程存储位置150、图2的存储器212、272、或图2的在线云存储位置250中的每一个可包括计算设备910或其一部分或使用计算设备910或其一部分来实现。计算设备910包括至少一个处理器920和系统存储器930。取决于计算设备的配置和类型,系统存储器930可以是易失性的(诸如随机存取存储器,即“RAM”)、非易失性的 (诸如只读存储器(即“ROM”)、闪存以及即使在未提供电源时也保持已存储数据的类似存储器设备)或两者的某种组合。系统存储器930通常包括操作系统932、一个或多个应用平台、一个或多个应用(例如,备份代理934、变换模块936、以及VHD模块938),并且可包括与该一个或多个应用相关联的程序数据。在一说明性实施例中,备份代理934是图1的备份代理118,变换模块936是图1的变换模块120,而VHD模块938是图1的VHD模块122。计算设备910还可具有附加特征或功能。例如,计算设备910还可包括可移动和 /或不可移动附加数据存储设备,诸如磁盘、光盘、磁带和标准大小的或微型闪存卡。在图9 中通过可移动存储940和不可移动存储950示出这样的附加存储。在一说明性实施例中, 这种附加存储包括图1的存储器112、图2的存储器212、或图2的存储器272。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序组件或其他数据的信息的任何方法和/或技术实现的易失性和/或非易失性存储器、可移动和/或不可移动介质。系统存储器930、可移动存储940和不可移动存储950都是计算机存储介质的示例。计算机存储介质包括,但不限于,RAM、R0M、电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、紧致盘(CD)、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或可用于存储信息且可以由计算设备910访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备910的一部分。计算设备910也可包括输入设备960,如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。也可包括输出设备970,如显示器、扬声器、打印机等等。计算设备910还包含允许该计算设备910通过有线或无线网络与其它计算设备 990进行通信的一个或多个通信连接980。在一示例性实施例中,网络连接980包括图1的网络接口 120。一个或多个通信连接980还可允许计算设备910与远程存储位置992通信。 在一说明性实施例中,远程存储位置992是图1的远程存储位置150或图2的在线云存储位置250。可以理解,并非所有图9所示或以其他方式在先前的附图中描述的组件或设备都必须支持此处所描述的实施例。例如,输入设备960和输出设备970可以是任选的。这里所描述的实施例的说明旨在提供对各实施例的结构的一般理解。说明不旨在作为利用这里所描述的结构或方法的装置和系统的所有元素和特征的完整描述。许多其他实施例对本领域的技术人员在审阅本发明后是显而易见的。也可以利用其他实施例,并从本发明派生出其他实施例,以便可以在不偏离本发明的范围的情况下作出结构和逻辑上的替换和改变。相应地,本发明和附图应被视为说明性的,而不是限制性的。
13
本领域技术人员将进一步理解,结合这里所公开的实施例所描述的各种说明性逻辑块、配置、模块、以及进程或指令步骤,可以作为电子硬件、计算机软件或两者的组合来实现。各种说明性组件、框、配置、模块或步骤已经大致按照其功能来描述。此类功能性是被实现为硬件还是软件取决于具体应用和加诸于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能集,但此类实现决策不应被解释为致使脱离本公开的范围。结合此处所公开的各实施例所描述的方法的各个步骤可直接用硬件、由处理器执行的软件模块、或两者的组合来实现。软件模块可驻留在诸如随机存取存储器(RAM)、闪存、 只读存储器(ROM)、寄存器、硬盘、可移动盘、⑶-ROM、或本领域内已知的任何其他形式的存储介质等计算机可读介质中。示例性的存储介质耦合到处理器,使得处理器可从存储介质上读取信息,并向存储介质写入信息。在替换方案中,存储介质可集成到处理器或处理器并且存储介质可作为分立组件驻留在计算设备或计算机系统中。虽然这里显示和描述了具体的实施例,但是,应该了解,被设计为实现相同或类似的目的的任何随后的安排都可以代替所示出的具体实施例。本说明书计划涵盖各种实施例的任何随后的修改或变化。提交本发明的摘要的同时要明白,将不用它来解释或限制权利要求的范围或含义。此外,在前面的具体实施例中,出于将本公开连成一个整体的目的,各种特征可以组合到一起,或在一个实施例中进行描述。本发明不应被解释为反映带权利要求的实施例需要比每一个权利要求中明确地记载的特征更多的特点的意图。相反,如下面的权利要求所反映的,本发明的主题可以涉及少于所公开的实施例中的任一个的所有特征。提供前面对各实施例的描述是为了使本领域技术人员能制作或使用各实施例。对这些实施例的各种修改对于本领域技术人员将是显而易见的,并且本文中定义的普适原理可被应用于其他实施例而不会脱离本公开的范围。因此,本发明并不旨在限于此处所示出的各实施例,而是按照与所附权利要求书所定义的原理和新颖特征相一致的尽可能最宽的范围。
权利要求
1.一种方法,包括在计算机系统处的初始备份操作期间在所述计算机系统的存储设备处创建数据卷的备份虚拟硬盘驱动器(VHD); 创建与所述备份VHD相对应的元数据VHD ;以及将所述备份VHD传送到远程存储位置;在完成所述初始备份操作之后,检测对所述数据卷的文件的改变; 基于所述元数据VHD创建差分VHD,其中所述差分VHD指示对所述文件的所述改变; 更新所述元数据VHD以反映对所述文件的所述改变;以及在所述计算机系统处的后续备份操作期间,将经更新的元数据VHD的副本和所述差分 VHD传送到所述远程存储位置。
2.如权利要求1所述的方法,其特征在于,所述元数据VHD可被用来浏览存储在所述备份VHD处的文件、搜索存储在所述备份VHD处的文件,或其任何组合,并且其中所述差分 VHD被创建而不访问所述远程存储位置处的所述备份VHD。
3.如权利要求1所述的方法,其特征在于,还包括将所述经更新的元数据VHD的所述副本和所述差分VHD存储在所述远程存储位置处。
4.如权利要求3所述的方法,其特征在于,还包括通过如下动作在第二计算机系统处还原已改变文件将所述文件的一个或多个已改变部分从所述远程存储位置处的所述差分VHD下载到所述第二计算机系统;将所述文件的一个或多个未改变部分从所述远程存储位置处的所述备份VHD下载到所述第二计算机系统;以及基于所述一个或多个已改变部分和所述一个或多个未改变部分,在所述第二计算机系统处生成所述已改变文件。
5.如权利要求3所述的方法,其特征在于,还包括通过如下动作在所述计算机系统处还原所述已改变文件将所述文件的一个或多个已改变部分从所述远程存储位置处的所述差分VHD下载到所述计算机系统;将所述文件的一个或多个未改变部分从所述远程存储位置处的所述备份VHD下载到所述计算机系统;以及基于所述一个或多个已改变部分和所述一个或多个未改变部分,在所述第二计算机系统处生成所述已改变文件。
6.如权利要求3所述的方法,其特征在于,还包括检测对所述文件的第二改变,其中所述第二改变是在所述第一改变之后检测到的; 基于所述经更新的元数据VHD创建第二差分VHD,其中所述第二差分VHD指示对所述文件的所述第二改变;更新所述经更新的元数据VHD以反映所述第二改变;以及将经两次更新的元数据VHD的副本和所述第二差分VHD传送到所述远程存储位置。
7.如权利要求6所述的方法,其特征在于,还包括通过如下动作在所述计算机系统处还原已两次改变的文件从所述差分VHD下载所述文件的一个或多个第一已改变部分以及从所述远程存储位置处的所述第二差分VHD下载所述文件的一个或多个第二已改变部分到所述计算机系统; 将所述文件的一个或多个未改变部分从所述远程存储位置处的所述备份VHD下载到所述计算机系统;以及基于所述一个或多个第一已改变部分、所述一个或多个第二已改变部分、以及所述一个或多个未改变部分来在所述第二计算机系统处生成所述已两次改变的文件。
8.如权利要求6所述的方法,其特征在于,所述差分VHD和所述第二差分VHD是前向差分VHD,所述方法还包括将所述前向差分VHD转换为后向差分VHD。
9.如权利要求1所述的方法,其特征在于,所述备份VHD是单实例存储(SIS)VHD。
10.如权利要求1所述的方法,其特征在于,所述远程存储位置是在线云存储位置。
11.如权利要求1所述的方法,其特征在于,所述元数据VHD包括所述数据卷的文件的 NT文件系统(NTFS)扩展信息、至少一个NTFS重解析点、或其任何组合。
12.如权利要求1所述的方法,其特征在于,所述元数据VHD包括与所述数据卷相对应的目录结构和所述文件的文件指针,其中所述文件指针指向所述文件在所述备份VHD处的副本。
13.如权利要求1所述的方法,其特征在于,所述计算机系统位于第二远程存储位置处,所述第二远程存储位置不同于所述远程存储位置。
14.一种计算机系统,包括存储器设备,所述存储器设备包括按照文件系统来存储的文件; 备份代理,所述备份代理被配置成检测对所述文件的改变;变换模块,所述变换模块被配置成将所检测到的改变变换为虚拟硬盘驱动器(VHD)格式化的改变;VHD模块,所述VHD模块被配置成将所述VHD格式化的改变写到存储在所述存储器设备处的元数据VHD并且基于所述元数据VHD生成差分VHD ;以及网络接口,所述网络接口被配置成将所述元数据VHD和所述差分VHD传送到远程存储设备。
15.如权利要求14所述的计算机系统,其特征在于,所述文件系统是NT文件系统 (NTFS)或文件分配表(FAT)文件系统。
全文摘要
公开了使用元数据虚拟硬盘(VHD)和差分VHD进行备份的方法和系统。一种特定系统包括存储器设备和备份代理,该存储器设备存储文件,该备份代理被配置成检测对所述文件的改变。该系统包括变换模块和VHD模块,该变换模块被配置成将所检测到的改变变换成VHD格式化的改变,该VHD模块被配置成将VHD格式化的改变写到存储在该存储器设备处的元数据VHD。该VHD模块还被配置成基于该元数据VHD生成差分VHD。该系统处的网络接口被配置成将所述元数据VHD和所述差分VHD传送到远程存储设备。
文档编号G06F15/16GK102597983SQ201080049261
公开日2012年7月18日 申请日期2010年10月12日 优先权日2009年10月30日
发明者A·辛格拉, A·阿里, C·斯里尼瓦桑, D·M·拉纳德, K·S·阿南德, M·K·瓦利亚帕拉姆比尔, P·V·坎佐德, R·V·普迪派蒂, S·巴拉萨布莱曼尼亚姆, V·普拉巴 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1