专利名称:基于部分块的备份的利记博彩app
技术领域:
本发明涉及系统备份,尤其涉及增量式系统备份。
背景技术:
备份操作经常是费时的。对大型甚至大小适中的系统的备份操作可能花费数小时来完成。很多备份系统将备份操作作为原子操作来执行,其中备份操作直至整个备份操作已完成才被提交给存储。如果诸如网络故障、计算机重新启动或其它事件之类的中断导致备份操作失败,则备份操作将重新从头开始,这经常导致许多小时的工作被放弃。
发明内容
基于块的备份系统可执行若干部分备份以将备份信息增量式地转移到备份系统。 每个部分备份可在先前备份上构建,并且部分备份可被标记为不能用于还原。在一些情况下,部分备份可以是文件系统快照的各部分,而在其它情况下,部分备份可包括自上次部分备份以来所发生的任何变更。取决于网络连接、工作负荷以及其它因素,部分备份的大小可动态地改变。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
在附图中, 图1是示出备份系统可在其中操作的网络环境的实施例的图示。
图2是示出用于利用一个或多个部分备份操作来执行备份操作的方法的实施例的流程图示。
图3是示出用于标识要备份的数据块的方法的实施例的流程图示。
图4是示出用于执行部分备份的方法的实施例的流程图示。
具体实施例方式基于块的备份系统可通过若干部分备份操作来执行文件系统备份操作。每个部分备份操作可标识要备份的数据块的子集。该子集可以是可被备份以创建原始文件系统的副本的整个数据块集的一部分。在部分备份操作完成后,可将它们组合成可用于还原文件系统的单个备份。
备份操作可通过标识存储设备内要备份的数据块来开始。数据块可从主文件表或其它文件列表收集。可通过标识要备份的整个块集的子集,然后备份该子集,来执行部分备份操作。当该子集已完成备份时,部分备份可被存储在备份存储系统上。
部分备份可被认为是完成的备份,但是因为部分备份不包含用于重建文件系统的全部块,所以部分备份可被认为是不能用于还原操作。部分备份可用于在执行后续部分备份时指示哪些块已被备份。部分备份可连续地执行,直至整个文件系统已被备份。当最终的部分备份已成功完成时,备份可被认为是可用于还原文件系统。
备份系统可在文件系统的快照上操作。快照可以是文件系统在该文件系统处于特定时间点时的一个版本。一些操作系统可具有允许获取操作系统的快照的功能,使得备份操作例如可在给定的时间状态处理文件系统。当备份操作处理快照时,操作系统可允许其它进程更新和改变文件系统。
备份系统可对文件系统执行迭代部分备份。在这一实施例中,备份系统可对文件系统执行部分备份,并且第二部分备份可包括自先前备份操作以来已被改变的数据块。在这一实施例中,最终备份可包括文件系统的比备份系统对文件系统的快照进行备份情况下更近的版本。
一些实施例可基于网络性能、先前部分备份性能、网络连接或其它因素来改变部分备份的大小。在这种实施例中,各个部分备份在它们之间大小可以不同。
本说明书通篇中,在所有附图的描述中,相同的附图标记表示相同的元素。
在将元素称为被“连接”或“耦合”时,这些元素可以直接连接或耦合在一起,或者也可以存在一个或多个中间元素。相反,在将元素称为被“直接连接”或“直接耦合”时,不存在中间元素。
本发明可被具体化为设备、系统、方法、和/或计算机程序产品。因此,本主题的部分或全部可以用硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此外,本主题可以采用其上嵌入有供指令执行系统使用或结合其使用的计算机可使用或计算机可读程序代码的计算机可使用或计算机可读存储介质上的计算机程序产品的形式。在本文的上下文中,计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、 或传输程序以供指令执行系统、装置或设备使用或结合其使用的任何介质。
计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、 或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由指令执行系统访问的任何其他介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或其他合适的介质,因为程序可以经由例如对纸张或其他介质的光学扫描而电子地捕获,随后被编译、解释、或以其他合适的方式处理,并随后存储在计算机存储器中。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任一信息传送介质。术语“已调制数据信号” 可以被定义为其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及诸如声学、射频(RF)、 红外线及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
当本发明在计算机可执行指令的一般上下文中具体化时,该实施例可以包括由一个或多个系统、计算机、或其他设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。
图1是示出用于备份文件系统的系统的实施例100的图示。实施例100是使用客户机和服务器体系结构的备份系统的示例。客户机可以是具有要备份的文件系统的设备, 并且服务器可存储所备份的数据。
图1的示图示出系统的各个功能组件。在某些情况下,组件可以是硬件组件、软件组件、或硬件和软件的组合。某些组件可以是应用层软件,而其他组件可以是操作系统层组件。在某些情况下,一个组件到另一个组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可以通过跨长距离的网络连接来形成。各实施例可以使用不同的硬件、软件、以及互连体系结构来实现所描述的功能。
实施例100是通过其可使用部分备份方法来备份文件系统的体系结构的一个示例。部分备份方法可备份由文件系统表示的数据块的部分或子集。每一部分备份可被存储在备份存储设备上且在所有部分备份操作已完成时用于构建最终的备份。
备份系统可对来自包含文件系统的存储设备的数据块进行备份。数据块可以是存储空间的预定义片段。在许多实施例中,数据块可以是由存储设备所使用的最小存储单元。 例如,操作系统可将数据以4KB的块存储在硬盘或其它存储设备上中。文件系统中的每个文件可具有与该文件相关联的一个或多个4KB块。在一些实施例中,数据块可以是比操作系统可寻址的最小大小的片段大的存储单元。其它实施例可具有更大或更小的数据块。
备份系统可以是基于块的备份系统。由此,备份系统可通过基于块在原始存储设备上的放置或位置分别复制和还原物理存储上的单独数据块来备份和还原文件系统。文件系统可通过替换存储系统上相同物理位置中的各个数据块来重建。该方法不同于使用基于文件的备份的其它备份技术,在这些其它备份技术中在逐个文件的基础上而不是在逐个块的基础上备份和还原单独文件。
基于块的备份系统对于数据块的内容可以是不可知的。当所有的数据块均存在于并放置在它们的原始位置中时可重建可用的文件系统,但是备份系统可能并不根据该文件系统来对数据块进行组织。
基于块的备份系统可使用备份表来标识如何重建文件系统的每个已备份版本。备份表可包含原始存储设备内的每个位置以及在该位置中存储的每个数据块的标识符的列表。通过维护多个备份表并使用已备份数据块的公用数据库,可在相对较小的数据库中维护已备份文件系统的许多版本或实例。这是因为文件系统的许多版本可包含大量的重复数据。
文件系统可用于标识要备份的数据块。一旦标识了数据块,则可备份这些块而不考虑与这些块相关联的文件。
备份系统可按若干不同方式来执行备份。在一种使用中,备份系统可对文件系统的完整内容进行备份。例如,在文件系统的现有备份副本不存在的情况下,备份系统可对该文件系统进行备份。在这一示例中,文件系统内的所有数据可被复制到备份存储系统并被组织成使得原始文件系统可被还原。
许多实施例可允许用户或管理员选择文件以包括在备份操作中或排除在备份操作外。例如,一些备份系统可允许用户将临时文件排除在外或仅选择文件目录的某些文件类型或部分来备份。
备份系统可按增量方式来执行备份操作。增量备份可比较先前备份以确定自上次备份以来哪些文件已改变。可分析已改变的文件以标识可能已被改变的数据块。在一些情况下,块可能尚未被改变。例如,大文件可由许多数据块组成。文件系统可指示文件已改变但该改变可限于少数数据块。基于块的备份系统可将所有块标记为“有改变的嫌疑”,然后分析哪些块还未被备份。还未被备份的那些块可被复制到备份存储系统。
备份系统可将部分备份作为实现完全备份的过程来执行。备份系统可选择块的子集来备份,并且使用该子集来执行部分备份操作。如果部分备份出于某种原因而失败,则可重试该部分备份。
备份操作经常作为原子事务来执行,其中一旦所有数据被正确地转移且备份操作完成则可提交该事务。在备份操作期间,可发生大量的处理和数据转移,并且较大的备份经常会花费若干小时来处理。如果外界因素会导致该过程过早地失败,则整个备份操作可重新从头开始。
部分备份在网络连接可被断开或其它因素可导致备份操作失败的情形下是有用的。部分备份操作允许将完全备份操作分成较小的片段,使得在失败的情况下可以只损失少量时间。
这一情形的示例可以是当用户旅行时可与网络连接和断开连接的移动设备。例如,用户可连接到归属网络,但是可断开连接并移动到咖啡店且重新建立连接。当设备连接到网络时可运行备份操作。备份的一部分可在设备连接到归属网络时执行,而其它部分可在咖啡店连接时执行。每个部分备份可添加已备份的数据,使得当最终的部分备份完成时, 系统可具有完整备份。
部分备份可通过阈值来确定。阈值可用块的数量、块中的数据量、或对部分备份的大小的某种其它度量来定义。阈值可用于限制在部分备份操作期间执行的数据的量。
阈值可基于各种因素而改变。一些实施例可基于先前部分备份操作的成功或失败来改变阈值。例如,失败的部分备份操作可导致阈值被改成较低的值,使得下一部分备份可包含较少数量的数据块并且可具有较高的成功机会。相反,如果部分备份操作被快速可靠地执行,则可增大阈值使得下一部分备份可包括较多数量的数据块。
较小的阈值可创建较小的部分备份操作,这通常会导致较长的备份操作,因为每个部分备份操作具有一些相关联的开销。较大的阈值可创建较大的部分备份操作,但是较大备份操作期间的失败可导致较多数量的数据在后续备份操作中被重发。
在一些实施例中,阈值可由其它因素确定,诸如网络位置、网络性能、设备性能以及其他因素。在设备连接到归属网络或咖啡店网络的上述示例中,当连接到归属网络时可使用大阈值,因为该连接可被认为是可靠且快速的。在咖啡店中可使用较小的阈值,因为该连接可能较慢并且用户更有可能关闭该连接。
阈值可由网络的性能参数确定。网络等待时间、猝发吞吐量、持续吞吐量或其它因素可用于表征网络连接并选择或计算阈值。
设备性能可指示适当的阈值。在主存文件系统的客户机设备没有正被用于其它进程的情形下,阈值可以较大并且设备的处理能力可致力于完成备份操作。当处理器、存储器、存储或网络连接正在被其它进程消耗时,可将阈值设为较低的值。
可将阈值设置为使得每个部分备份可消耗大约相同的时间量。在客户机设备忙碌的情况下,阈值可比在客户机设备无人值守(unattended)和其它未使用状态时小。这样的阈值可由监视设备状态以计算或估计适当大小的部分备份的进程来确定。在一些实例中, 可调整部分备份的大小使得每一个部分备份可花费5分钟、10分钟、15分钟、30分钟、或者可能1小时或更长。
备份客户机设备102在实施例100中示出。备份客户机设备102可以是包含文件系统的设备,该文件系统可被备份到备份存储设备上。在实施例100的体系结构中,备份存储设备被示为位于服务器设备上,该服务器设备或者作为附连到局域网130的备份服务器 132,或者作为通过广域网160可用的备份服务器162,其中广域网160可以是因特网。
其它实施例可包括附连到客户机设备102的备份存储设备。例如,可拆卸存储设备,诸如硬盘、固态或可使用通用串行总线(USB)附连的其它存储设备,可用作备份存储设备。在一些情况下,备份存储设备可以是磁带驱动器、光盘或其它存储机制,这些其它存储机制可永久地或临时地附连到客户机设备102或者存储介质可永久地或可移动地附连于其上。
备份客户机设备102被示为具有硬件组件104和软件组件106。该图示可表示常规计算机系统,但是备份客户机设备102可以是具有文件系统的任何设备,而不论该文件系统是否向用户展示。
备份客户机设备102可以是台式计算机、膝上型计算机、上网本计算机、服务器计算机或其它类似设备。在一些情况下,备份客户机设备102可以是便携式蜂窝电话、个人数字助理、游戏控制台、网络设备、或任何其它计算设备。
硬件组件104可包括连接到随机存取存储器110和非易失性存储设备112的处理器108。硬件组件104还可以包括网络接口 114和用户接口 116。
软件组件106可包括可维护文件系统120的操作系统118。在许多实施例中,文件系统120可以是可包含不同类型文件的分层文件系统。分层文件系统可将文件安排成文件夹或目录,并且在每个文件夹或目录中可以有许多不同的文件。
在许多文件系统中,主文件表122可用于跟踪和维护文件系统内的文件。主文件表122可包含对应于在文件系统中存储的每个文件的条目。条目可包括关于文件的各种元数据,诸如文件名、创建日期、访问许可、以块计的文件大小以及其它项目。主文件表122可包括文件的起始块的地址以及文件所用的块的总数。不同的操作系统可具有用于将数据存储在主文件表122中的不同机制,并且可使用用于完成类似功能的其它术语或体系结构。
备份客户机IM可以是执行部分或全部备份操作的软件功能或应用程序。在一些情况下,备份客户机1 可结合备份服务器应用程序来操作以执行备份。
备份客户机IM可通过标识在存储设备112上存储的数据块并将数据块的子集发送到备份存储设备作为部分备份来执行对文件系统120的备份。执行部分备份的过程可以重复直至所有数据块被发送到备份存储设备且被保存为完整备份。完整备份可在稍后的时间用于重建文件系统。
在一些实施例中,备份客户机1 可使用快照功能1 来对文件系统120执行备份操作。快照功能126可在指定的时间点获取文件系统120的映像,然后允许备份客户机 1 利用文件系统120的该快照版本来执行备份操作。这一实施例可允许使用已知时间点的文件系统版本来完成备份操作,同时允许其它应用程序在该备份操作期间修改文件系统。
一些实施例可使用散列计算器1 来确定数据块是否存储在备份存储设备上。散列计算器1 可计算数据块的散列值,并且备份客户机IM可将该块的散列值与备份存储设备上存储的块的散列值相比较。如果没找到该散列值,则可将该块转移到备份存储设备。 如果找到了该散列值,则可不转移该块。在这两种情况下,可将该块添加到该特定备份实例的备份表。
对数据块是否已存储在备份存储系统上的确定可由客户机或服务器设备来做出。 当散列值表从服务器设备发送到客户机时,客户机设备102可做出该确定。在其它实施例中,散列值可被发送到服务器设备并且服务器设备可对散列值表执行类似的查找操作。在一些实施例中,这种发送可作为查询来执行。
—些实施例可以不执行散列计算,且可发送用于备份操作的所有数据块而不查看数据块是否已经存在。此类实施例可将所有的有改变嫌疑的块发送到备份服务器,而不考虑数据块是否已被存储在备份存储设备中。
备份客户机设备102可具有可用于确定阈值的监视器125,其中该阈值用于确定部分备份的适当大小。监视器125可按主动或被动的模式来操作。在主动模式中,监视器 125可执行网络连接、处理能力或其它因素的测试以确定适当的阈值。在一些情况下,监视器125可检测网络连接、网际协议(IP)地址或其它指示符以确定设备102的物理位置,该物理位置可用于基于例如预定策略来确定适当的阈值。在被动模式中,监视器125可测量设备102的正在进行的操作或者可捕捉操作历史以确定适当的阈值。
实施例100的体系结构具有附连到局域网130的客户机设备102,该局域网130可包括备份服务器132。备份服务器132可包含硬件组件134和软件组件136,并且可结合客户机设备102来操作以执行备份操作。
在一些实施例中,备份操作可涉及客户机设备102与服务器132之间相当多的握手和交互。其它实施例可涉及较少的交互。一些实施例可涉及用于计算散列值以及用于对散列表执行查找的大量处理,而其它实施例可不涉及这些。
备份服务器132可按与客户机设备102类似的方式具有硬件组件134。硬件组件 134可包括处理器138,处理器138可连接到随机存取存储器140和非易失性存储142。硬件组件134还可以包括网络接口 144和用户接口 146。
非易失性存储142可以是存储备份数据库152、备份表154、以及可用于存储和重建文件系统的其它软件组件136的系统。在一些实施例中,非易失性存储142可以是具有诸如多个硬盘驱动器或其它存储介质之类的多个存储设备的系统。在一些情况下,多个硬盘驱动器可按RAID阵列来配置。
软件组件136可包括备份服务150可在其上执行的操作系统148。备份服务150 可接收数据块并将其存储在备份数据库152中,并且可创建备份表154,还原服务155通过备份表IM可重建文件系统。
散列计算器156计算在备份数据库152中存储的数据块的散列值并且可生成和维护散列值表,其中该散列值表可用于确定数据块是否已被存储在备份数据库152中。
在一些实施例中,备份服务器132的各功能可由远程备份服务器162跨广域网 160、通过网关158、以及跨局域网130来访问。远程备份服务器162可具有备份数据库164。 在某些这样的实施例中,远程备份服务器162可以是执行与对本地备份服务器132描述的相同的操作的远程服务器或服务。某些这样的实施例可以是云服务。
图2是示出用于利用部分备份操作来执行完全备份操作的方法的实施例200的流程示。实施例200是可由诸如在备份客户机设备102上操作的备份客户机IM之类的在备份客户机设备上操作的备份客户机应用程序所执行的一些操作的示例。
其他实施方式可以使用不同顺序的、附加的或更少的步骤以及不同的名称或术语来完成类似的功能。在一些实施方式中,各种操作或操作组可以按同步或异步的方式与其他操作并行执行。在此选择的这些步骤被挑选来以简化的形式示出操作的一些原理。
实施例200是一示例方法,通过该示例方法可分阶段地或使用部分备份操作来执行完全备份。实施例200可示出使用快照从特定时间段对文件系统执行备份的方法。实施例200还可示出另一版本,其中可对文件系统连续地执行部分备份操作而无需快照。在这一版本中,部分备份操作可包括可在先前部分备份操作完成后已被更新的新更新文件。
在框202,可标识要备份的文件系统。在许多情况下,文件系统可以是在特定存储设备或系统上存储的整个文件系统。在一些情况下,在框202标识的文件系统可由存储设备的特定卷或逻辑子集来定义,或者可以是可跨多个存储设备的逻辑存储系统。
在框204,可标识所包括的文件和所排除的文件。一些实施例可允许用户或管理员通过选择特定文件、特定文件类型、文件系统的各部分、或标识哪些文件是要备份的以及哪些文件是要忽略的其它机制来选择备份什么。
在框206,可获取文件系统的快照。在使用快照的实施例中,后续的部分备份操作可用于连续地备份快照映像。
在框208,可检查主文件表以确定哪些数据块要被备份。由框208所执行的过程的示例稍后在本说明书中被示为实施例300,但是其它实施例可使用不同的方法。框208的结果可以是被标记用于备份的块的列表。具体而言,在框208中标识的块可以是有改变嫌疑的块。
在一些实施例中,框208的操作可以是将文件系统中的所有块分类成空的、已被备份的或有改变嫌疑的。空块可以是没有文件关联且可由备份系统跳过的块。被标记为已备份的块可指示已知被存储在备份存储设备中的数据块。被标记为有改变嫌疑的块可以是可能被改变的块。在一些情况下,被标记为有改变嫌疑的块实际上可以是已备份的,如具有多个块的先前备份的大文件以仅影响一个或两个块的小方式修改的情况。
在框210,可对块进行排序。在许多情况下,文件可按在物理上彼此分离且不连续的块来存储。这种分段的文件可具有散布在硬盘驱动器或其它存储系统上的数据块。
框210中的排序可将用于备份的所有嫌疑块按它们在文件系统的存储设备上的物理位置的顺序来进行放置。这一顺序可通过减少转移操作期间的查找时间来加速块转移。
在框212,可确定阈值。在一些实施例中,阈值可由默认设置来确定。一些实施例可采用主动测试来确定网络连通性、吞吐量、处理带宽或其它因素,以确定适当的阈值设置。在一些实施例中,阈值设置可以是有时被存储和更新的先前使用的设置。
在框214,可开始块的新子集。子集可包含将被尝试在部分备份操作中进行备份的那些块。
在框216,可将块添加到子集。在块被排序的实施例中,所添加的块可以是所排序的块的序列中的下一个块。
如果在框218来自框216的块的添加没有超出阈值并且在框220存在更多的块, 则该过程可返回到框216以收集另一个块。该过程可继续添加块直至在框218满足阈值或者在框220不存在更多的块。
当在框218满足阈值时,在框222可执行部分备份。备份操作的示例可在本说明书稍后提出的实施例400中示出。
如果在框2 部分备份不成功,则在框2 可丢弃不完整的部分备份且在框2 可调整阈值。框2 的阈值调整可将阈值向下调整使得对下一部分备份执行较小的部分备份。
如果实施例200的过程正对文件系统的快照表示执行,则该过程可返回到框214 以利用更新的阈值设置来创建新的部分备份。
如果实施例200的过程正在没有快照的情况下执行,则该过程可返回到框208。通过返回到框208,该过程可重新分析主文件表以确定要备份的更新的块集。更新的集合可包括在先前的部分备份操作可能已被执行时对文件系统所作的任何改变。
如果在框2M部分备份操作是成功的,则在框230可将部分备份存储在备份存储设备上。
在框232可将部分备份标记为不能用于还原。因为备份系统是基于块的备份系统,所以框230的不完整备份可能不能用于还原文件系统,这是由于备份系统可能无法标识与每个文件相关联的每个块。基于块的备份系统可能能够通过将文件系统的所有块按它们的正确顺序和位置进行放置来重建文件系统,并且这一操作可在整个块集已被成功地备份时完成。
在框234,可将在框230成功备份的块标记为已备份。一旦已完成成功的部分备份,则取决于是否使用快照,该过程可返回到框208或框214。
当在框220没有更多的块可用时,正在执行的部分备份可以是最后的备份。在框 236,可执行最终的部分备份。在框238可将最终的部分备份与其它部分备份合并以创建单个的、完整的备份,该备份在框240可被标记为能用于还原。
图3是示出用于标识要备份的数据块的方法的实施例300的流程图示。实施例 300是可针对实施例200的框208执行的操作的示例。
其他实施方式可以使用不同顺序的、附加的或更少的步骤以及不同的名称或术语来实现类似的功能。在一些实施方式中,各种操作或一组操作可以按同步或异步的方式与其他操作并行执行。在此选择的这些步骤被挑选来以简化的形式示出操作的一些原理。
在框302,可处理主文件表的每个文件。
如果在框304文件没有被标识为用于备份,则将跳过该文件且该过程可返回到框 302。
如果在框304文件被标记为用于备份但在框306自上次备份操作以来没有改变, 则将跳过该文件且该过程可返回到框306。这一实施例可将备份操作作为增量备份来执行。 为了确定文件是否已被备份,客户机设备可具有来自先前备份的日期戳,并且可将该文件的创建或修改日期戳与来自先前备份的日期戳相比较。
如果在框306文件已改变,则在框308可标识与该文件相关联的所有块,并且在框 310将这些块标记为有改变嫌疑。该过程可返回到框302以处理另一文件。
在已处理完所有文件后,可结束实施例300的过程。
图4是示出用于执行部分备份的方法的实施例400的流程图示。实施例400是可针对实施例200的框222或框236执行的过程的示例。
其他实施方式可以使用不同顺序的、附加的或更少的步骤以及不同的名称或术语来实现类似的功能。在一些实施方式中,各种操作或一组操作可以按同步或异步的方式与其他操作并行执行。在此选择的这些步骤被挑选来以简化的形式示出操作的一些原理。
实施例400示出用于通过利用散列值确定块是否已被存储在备份存储设备上来执行部分备份的方法。
在框402选择数据块,并且在框404根据该块计算散列值。
如果在框406该过程使用本地散列表,则在框408可将所计算的散列值与散列表的本地副本相比较。本地散列表可包含在备份存储设备中存储的所有数据块的散列值。
如果在框406该过程不使用本地散列表,则在框410该过程可通过网络向备份服务器执行查询以确定散列值是否在驻留在备份服务器上的散列表中找到。
如果在框412块不在备份存储设备中,则在框414可将该块转移到备份存储设备。
一旦在框414通过转移或者在框416通过已被存储在备份存储设备中使得数据块在存储设备中,在框416可将该块添加到备份表。备份表可包含数据块以及它们在文件系统的储存设备内的物理位置的列表。备份表可由还原系统用于在同一或另一存储设备上重建文件系统。
如果在框418有更多的块用于处理,则该过程可返回到框402。当在框418所有的数据块已被处理时,在框420可结束该过程。
以上对本主题的描述是出于说明和描述的目的而提出的。它不旨在穷举本主题或将本主题限于所公开的精确形式,且鉴于以上教导其他修改和变型都是可能的。选择并描述实施方式来最好地解释本发明的原理及其实践应用,从而使本领域的其他技术人员能够在各种实施方式和各种适于所构想的特定用途的修改中最好地利用本发明的技术。所附权利要求书旨在包括除受现有技术所限的范围之外的其他替换实施方式。
权利要求
1.一种将文件系统备份到备份存储系统的方法,所述文件系统在存储系统上被存储为多个数据块,所述方法包括分析所述文件系统O04)以标识要备份的所述数据块的集合; 通过选择要执行部分备份的所述数据块的子集、对所述数据块的每个所述子集进行备份以在所述备份存储系统上创建部分备份来执行一个或多个部分备份022),所述部分备份不能用于还原操作;通过选择尚未由所述一个或多个部分备份所备份的剩余数据块、对所述剩余数据块进行备份、以及创建包括所述一个或多个部分备份的最终备份来执行最终部分备份(236),所述最终备份能用于还原操作。
2.如权利要求1所述的方法,其特征在于,还包括 将所述数据块排序成已排序列表;以及按所述已排序列表的顺序选择所述子集以创建所述子集。
3.如权利要求2所述的方法,其特征在于,所述排序是按所述存储系统上的块放置的顺序进行的。
4.如权利要求1所述的方法,其特征在于,所述分析所述文件系统包括 标识尚未备份的文件;标识与所述文件相关联的一个或多个数据块;以及将所述一个或多个数据块添加到所述数据块的所述集合。
5.如权利要求1所述的方法,其特征在于,所述备份包括确定第一块当前已由所述备份存储系统存储且不将所述第一块转移到所述存储系统;以及确定第二块未由所述备份存储系统存储且将所述第二块转移到所述存储系统。
6.如权利要求5所述的方法,其特征在于,所述确定通过以下步骤执行计算每个所述第一块和所述第二块的散列值并查询所述备份存储系统以确定所述第一块存在于所述备份存储系统中且所述第二块不存在于所述备份存储系统中。
7.如权利要求1所述的方法,其特征在于,还包括尝试执行第一部分备份并检测所述第一部分备份的失败;以及重试所述第一部分备份直至所述第一部分备份成功,并继续进行下一个部分备份。
8.如权利要求1所述的方法,其特征在于,所述子集是通过利用阈值确定对所述子集的限制来选择的。
9.如权利要求8所述的方法,其特征在于,所述阈值被定义为要转移的数据的最大大
10.如权利要求8所述的方法,其特征在于,还包括 尝试执行第一部分备份并检测所述第一部分备份的失败; 基于所述失败改变所述阈值以创建经修改的阈值;以及使用所述经修改的阈值来重试所述第一部分备份。
11.如权利要求10所述的方法,其特征在于,还包括 对到所述备份存储系统的网络连接进行分类以确定所述阈值。
12.如权利要求11所述的方法,其特征在于,所述分类包括确定所述网络连接的带宽。
13.如权利要求11所述的方法,其特征在于,所述分类包括确定所述网络连接的可靠性。
14.如权利要求1所述的方法,其特征在于,所述分析所述文件系统包括将每个所述数据块标记成由下列各项组成的组中的一个空的、已备份的、以及有嫌疑的。
15.一种系统,包括到备份存储系统的连接(114);文件存储系统(120),所述文件存储系统包括文件系统,所述文件系统包括多个文件, 每个所述文件按至少一个数据块被存储在所述文件存储系统上; 处理器(108),所述处理器执行一种方法,所述方法包括 分析所述文件系统以标识要备份的所述数据块的集合; 确定部分备份的阈值;通过选择要执行部分备份的所述数据块的子集、对所述数据块的每个所述子集进行备份以在所述备份存储系统上创建部分备份来执行一个或多个部分备份,所述子集是利用所述阈值来确定的,所述部分备份不能用于还原操作;通过选择尚未由所述一个或多个部分备份所备份的剩余数据块、对所述剩余数据块进行备份、以及创建包括所述一个或多个部分备份的最终备份来执行最终部分备份,所述最终备份能用于还原操作。
全文摘要
本发明公开了基于部分块的备份系统和方法。基于块的备份系统可执行若干部分备份以将备份信息增量式地转移到备份系统。每个部分备份可在先前备份上构建,并且部分备份可被标记为不能用于还原。在一些情况下,部分备份可以是文件系统快照的各部分,而在其它情况下,部分备份可包括自上次部分备份以来所发生的任何变更。取决于网络连接、工作负荷以及其它因素,部分备份的大小可动态地改变。
文档编号G06F11/14GK102193844SQ20111006329
公开日2011年9月21日 申请日期2011年3月7日 优先权日2010年3月8日
发明者M·史利格尔, A·宾达尔, G·苏里亚那拉亚纳, B·德布, J·M·里昂 申请人:微软公司