背景
背景和相关技术
随着计算机化系统的日益流行,存储和备份由相关联的用户和应用程序创建的电子文件和其他通信的需要也日益增加。一般而言,计算机系统和相关的设备出于各种原因创建文件,诸如在工作环境中创建文字处理文档,以及创建用于更复杂数据库的目的的文件的一般情况下。此外,许多这些文档可包括有价值的工作成果,或应该被保护的敏感信息。
因此可以理解,组织会想要定期备份电子文件,并藉此在需要时创建最初创建的文件的可靠还原有各种原因。一般而言,组织实现一个或多个这样的备份解决方案所面对的某些挑战与选择特定的复制机制有关。即,有许多方式(即,复制机制)来将要保护的数据从生产服务器卷复制到备份存储卷,其中数据出于恢复的目的将驻留在备份服务器上。可以理解,每一个复制机制都同时具有某些优点和缺点。
例如,一种常规的复制机制涉及生产服务器将在受保护的卷上已改变的文件的名称记入日志,并且然后将整个更新的文件发送到备份服务器处对应于在生产服务器上受保护的卷的的备份卷。用于文件复制的另一种类似的机制是使生产服务器不仅将已改变的文件的名称记入日志,而且还将在生产服务器处已改变的文件与备份服务器处的文件的相对应的备份副本相比较,然后只将有区别的、改变的字节发送到备份服务器。
更具体地,因为后一机制可以在不使用文件系统过滤器来监视改变的情况下完成,所以该机制能够部分地允许更快速的监视。不幸的是,当该复制机制将文件先前的副本与更新的版本相比较时,它可能涉及更多的资源开销。由此,这两种类型的复制机制往往对于较小的文件,或对于在字节块中经常改变的只有一组相同的字节的大型文件更加高效。相反地,这些复制机制对于诸如数据库文件等非常大的文件,特别是具有相对较少改变的若干字节组或字节块的文件,可能是非常低效的。
另一个常规的复制机制涉及标识对文件的改变,而不是仅仅标识已改变的文件。标识对文件的改变的该机制通常依赖于标识打算复制的文件(例如,名称、类型或位置),并且仅标识该文件中在复制之间在管理员定义的时间间隔之间已改变的字节。因此,备份代理(例如,在生产服务器处与“文件系统过滤器”相结合的“克隆代理”)只将文件中已改变的字节记入日志,并且最终将那些已改变的字节传送到备份存储卷(即,存储介质上的“副本卷”)。不幸的是,该复制机制对于非常大的文件或在复制间隔之间不是频繁改变的文件从资源消耗的观点来看仍然往往是更加合算的,但是对于往往频繁改变或用每个更新整个覆盖的文件就不那么合算了。
可以被认为是以上讨论的两种复制机制的某些方面的混合的再一种类型的复制机制涉及按照“字节块”来标识文件。一般而言,“字节块”包括固定大小的连续字节块,在任何给定的文件中可以有许多字节块。例如,生产服务器(或“文件服务器”)能够将文件标识为多个块的组,其中每个块包含多个字节。如果这些字节中的任一个在给定的块中改变(即,被更新、写入等等),则该复制机制可以标记该已改变的块,并且在合适的时间将整个块发送到副本卷。由此,复制代理可以只花费对于标识已改变的字节块,而不是文件中每个已改变的字节所需要的资源。尽管可能对相同的字节块做出了多次改变,但是这能够允许一给定的服务器避免招致额外的开销。然而,虽然这能够向复制代理提供相对于上述机制的某些资源消耗优势,但是该机制仍然更适合于诸如数据库文件等较大的文件,或其字节块在同一复制周期中改变不止一次的文件。
因此,确定使用特定复制机制来用于其备份服务的组织可能需要掂量若干考虑。使这一情况变复杂的是,尽管组织可以做出关于其当前文件生成/改变需求的确定,然而这一考虑在未来可能是不恰当的。例如,该组织对特定复制机制的确定通常将被应用于所有要保护的文件,而不考虑可使该确定比其他文件更适用于某些文件的标记,诸如文件类型、大小、位置等等。因此,该确定可基于该组织觉得什么是在当前环境下最好的,诸如一组最常见的文件类型、和/或经常使用的应用程序。
当然,如果主导文件类型和/或应用程序类型在稍后改变,则可能需要替换最初选择的复制机制。该可能性可使在一开始尝试计划什么复制机制将会是优选的时候,以及在稍后从资源消耗的观点来看如果或当需要改变的时候,对于该组织来说都将会特别困难。例如,该组织可坚决主张在该组织中使用的大量应用程序使用适于所选择的复制机制的某一文件类型和/或应用程序类型,或另选地致力于周期性地改变其复制机制。当然,这两种场景都可导致对于该组织的大量的成本和资源消耗。
详细描述
本发明涉及被配置成提供对于生产服务器中的文件合适的复制机制的高效确定的系统、方法、和计算机程序产品。更具体地,本发明的实现允许按照文件、按照位置、按照类型、或按照某一其他准则来做出不同的确定,以使得生产服务器上的若干不同的文件可以使用不同的复制机制来进行备份。此外,本发明的实现允许这些确定随着时间自动地变动,以便由此保证生产服务器继续使用对于每个文件最有效的复制机制。
如将从以下说明书和权利要求书中更全面理解的,生产服务器处将受保护的数据可根据多个不同的基础中的任一种来进行复制。在某些情况下,管理员可输入将如何复制一给定文件集,然而在其他情况下,可基于某些文件使用的字符(由DPM服务器,或由生产服务器)来自动地做出确定。例如,备份管理员输入,或某一自动确定的一个结果可能是指示所有数据库文件(例如,具有“.db”文件扩展名的文件)将使用改变的字节的标识来进行复制。确定的另一个结果可能是指示所有其他文件(例如,具有“.doc”扩展名的文件,或在一特定文件夹位置中的文件)通过复制整个文件的更新的副本来进行备份。此外,其他文件集可被设置成基于对其文件大小、在文件系统中的位置、以及更新频率的确定来进行复制。
如果备份服务器做出了确定,则该备份服务器然后能够将此信息发送到生产服务器。当备份服务器请求每个文件的更新时,生产服务器能够发送改变的文件字节的副本、改变的文件本身的整个副本、或在适当时甚至是改变的文件块。由此,从此处的描述中将可以理解,组织能够通过自动化对生产服务器处的各种不同的文件的各种复制机制的选择和实现来获得效率。
图1A示出了备份系统100的基本体系结构的概观,该系统包括被配置成备份一个或多个生产(或“文件”)服务器(例如,105)的备份服务器(即,“数据保护管理器服务器110”,以下统称为“DPM服务器110”)。为了备份生产服务器,图1A示出了DPM服务器110包括复制代理130。一般而言,如将从以下描述中更全面理解的,复制代理130包括被配置成至少部分地通过确定应用哪些复制机制(例如,140、145、150等)来确定对于生产服务器105处的各种文件或文件集合适的复制策略的计算机可执行代码。所示的复制机制140、145、以及150仅仅是为了说明而提供的,并且取决于操作环境,或当创建额外的复制机制时,可包括比所示的复制机制更多或更少的复制机制。
在所示的复制机制的任何情况下,复制机制140与“对文件的改变”相关,在这种情况下,“对文件的改变”是指已改变的文件中的特定字节的标识和复制。复制代理130可对于特别大的文件选择复制机制140,其中通过网络连接只发送文件的已改变的原始字节更高效。另一个复制机制包括与“已改变的文件”相关的机制145。一般而言,复制机制145涉及当生产服务器105确定该文件的任何部分都已改变时可被整体复制和发送的整个文件(通常是诸如文字处理文件等的小得多的文件)。这可通过任何数量的方式来完成,包括将整个、已更新的文件发送到存储介质160,或通过将已更新的文件与该文件的备份副本相比较,并只将改变的字节发送到存储介质160。在这两种情况下,当更新已更新文件的特定字节时,该字节并没有被记入日志文件。
再一个所示的复制机制包括与“对块的改变”相关的机制150。一般而言,每个文件可被认为是一组字节块。当已更新一特定块中的任何字节时,生产服务器可将文件名,以及已改变的字节块(即,通常该字节块具有固定的大小并包括从4096到16384字节的集合)记入日志,并且最后在适当的时候将该字节块发送到DPM服务器110。因此,当对文件的改变在相同的字节块上是相对较少发生的时候,复制机制150可被认为是可能复制比以其他方式可用复制机制140(即,“对文件的改变”)发送的更多的数据。与此同时,复制机制150可被认为是可能复制比以其他方式可用复制机制145(即,“已改变的文件”)发送的更少的数据,除非如先前所描述的只发送改变的字节。因此可以理解,取决于文件的使用或系统的需求,以及实现复制机制的方式,每个所描述的复制机制140、145、150能够提供其自己的、独特的优点。
在任何情况下,复制代理130能够基于任何数量的自动(静态和/或动态)因素用特定复制机制来将生产服务器105处的各种文件相关联。例如,图1A示出了复制代理130能够接收诸如通过呈现给备份管理员的用户界面接收到的输入等的输入165。如图所示,输入165包括诸如对文件(或文件集)115使用复制机制140,以及对文件(或文件集)120使用复制机制145的偏好等的静态偏好。除了这些静态偏好之外,输入165还包括请求关于文件(或文件集)125做出正在进行的、自动的确定的输入。例如,复制代理130可被配置成不断地测量给定文件的大小或当前位置,以及文件类型和文件改变活动,并且然后不断地调整是使用复制机制140、145还是150。确定模块135然后能够采用任何这些接收到的偏好,并且在缺少其他文件(未示出)的时候基于某一默认配置(例如,“对文件的改变”)分配复制机制。确定模块135然后将对于每个文件的偏好和分配传送到生产服务器105。
因此,图1A示出了复制代理130与生产服务器105处的克隆代理127接口。一般而言,克隆代理127包括被配置成实现由DPM服务器110发送的备份策略的计算机可执行指令。为了实现这些策略,克隆代理127通过诸如文件系统过滤器123等的文件系统代理将对于各种文件(例如,115、120、125)的接收到的复制机制分配相关。一般而言,文件系统过滤器123还包括被配置成至少监视如以下更全面描述的文件系统中的文件活动、以及日志写入、和/或标记更新的计算机可执行指令。因此,例如,图1A示出克隆代理127与文件系统过滤器123进行通信,该过滤器124进而与文件(或文件集)115、120、以及125的字节数据进行直接的交互,并且能够监视对文件系统中的所有文件的所有改变。
更具体地,可以理解,文件系统过滤器123可被配置成以任何数量的方式来实现已分配的复制机制。在一个特定实现中,例如,文件系统过滤器123继续将每次写入的数据记录(即,“捕捉”)到诸如被分配给复制机制140的文件等的特殊日志文件中。文件系统过滤器123然后能够标记诸如当更新时为脏(dirty)的、被分配给复制机制145或150的文件等的其他文件的某些部分。文件系统过滤器123能够诸如通过标记特定文件已改变,或该文件的某些块已改变等来完成该动作。此外,文件系统过滤器123能够简单地将改变的文件的文件名,以及字节块地址记入日志,而不是将使用复制机制145或150时实际改变的数据记入日志。当DPM服务器向生产服务器110请求更新时,克隆代理127能够发送日志文件中的字节数据,或发送由日志文件中的名称标识的文件的副本(或已改变的文件块)。
例如,图1B示出了克隆代理127和文件系统过滤器124如何能够实现从复制代理130接收到的各种复制机制指令的一个实现。更具体地,图1B示出了克隆代理127响应于从DPM服务器110接收到的指令将文件(或文件集)115与复制机制140(“对文件的改变”)相关联。克隆代理127然后指示文件系统过滤器123根据所分配的复制机制监视文件115。由此,图1B示出了在标识出文件(或文件集)115的字节173和174已改变时,文件系统过滤器123检索这些数据改变并将其传递给日志文件170。
图1B还示出了克隆代理127响应于从DPM服务器110接收到的指令已将文件(或文件集)115与复制机制145(即,“已改变的文件”)相关联,并且还将文件(或文件集)125与复制机制150相关联。这意味着,在这种情况下,该文件系统过滤器123将没有必要记录对于文件120的实际原始的已改变字节的数据,而是能够简单地将文件120的名称记录在日志文件175中。类似地,在文件125中的(块1、2、和3中的)块3的字节193和195已改变时,文件系统过滤器123能够简单地将文件名和已改变的块的地址传递给日志175。因此,图1B示出了日志175包括文件120已改变的指示(例如,文件名),以及文件125已改变的指示(例如,文件名和块地址),这些指示是根据各自分配的复制机制145和150做出的。
因此,所示的实现示出了文件系统过滤器123将字节数据添加到一个日志文件(即,170),但是只将文件名或块地址添加到不同的日志文件(即,175)中。然而,可以理解,并不必将各种数据改变都记录在单独的文件中,也不必使用不同的数据改变标识机制来构造不同的日志文件。例如,根据本发明的实现,文件系统过滤器123能够将已改变的字节(以及已改变的文件的文件名和块地址)记录在相同的日志文件(例如,170或175)中。类似地,文件系统过滤器123还能够将字节地址和文件名代替实际已改变的字节数据记入日志;然而,与此同时,文件系统过滤器124能够将整个文件或整个块的数据记录在给定日志文件(例如,170和/或175)中。
然而,对于所示的实现,克隆代理127能够在合适的时候简单地将包含字节数据的日志170转发给复制代理130。对于日志175,克隆代理127能够首先在日志175中标识文件或文件块是否已改变。一旦标识出,克隆代理127然后能够从其各自的文件系统位置复制所标识的文件或已改变的文件块,并将这些已改变的文件或文件块转发给复制代理130。复制代理130进而能够将从克隆代理127接收到的数据传递给存储介质160。由此,复制代理130、克隆代理127、以及文件系统过滤器123互相配合地实现对应于文件(或文件集)115、120、以及125中的每一个的不同的复制机制。
如上所述,这种对一个或多个文件或文件集的不同复制机制的分配可以自动完成。例如,文件系统过滤器123可以在某一时刻标识指示文件115正缩小到一个小得多的大小的复制信息并将其传递给克隆代理127和复制代理130。类似地,文件系统过滤器123可以标识指示文件120的大小和文件更新的频率都在显著地增长的复制信息并将其传递给复制代理130。复制代理130进而可被配置成评估任何接收到的复制信息,并且重新评估(未示出)对于一给定文件或文件集的复制机制分配。复制代理130还可被配置成提示备份管理员基于新的信息提供关于先前的复制机制分配的新的输入。
因此,复制代理130可被配置成自动地响应于从克隆代理127接收到的信息或者响应于从备份管理员周期性地接收到的新的输入对于生产服务器105中的每个文件重新分配复制机制。此外,文件和复制机制分配可被容易地按需调整以便由此保证对系统100中的复制资源的最有效的使用。更具体地,本发明的实现能够通过允许备份带着对网络带宽的减少的消耗、减少的所需本地存储的数量、以及减少的本地复制CPU开销发生来至少部分地提高备份系统的效率。
由此,图1A-1B示出了用于实现自动和动态可调整备份系统100的多个组件和示意图。此外,可以理解,尽管图1A-1B(以及此处的许多文本)示出或描述了主要作为驻留在DPM服务器110上的确定模块135,但这仅是实现本发明的各方面的一种方式。更具体地,确定模块135(或类似地配置的模块)可驻留在生产服务器105上,或甚至在另一个服务器上(未示出)。
在这种情况下,DPM服务器110(或类似的服务器)可简单地被配置成将关于如何确定使用什么复制机制(即,默认设置、某些文件行为模式等)的指令(例如,管理员偏好)发送到生产服务器105。生产服务器105然后可被配置成自动地确定和调整对于每个给定文件(或文件集)使用什么复制分配,而不是此处所一般描述的更被动的角色。因此,这些一般的说明和描述只呈现了根据本发明的用于对于一给定文件(或文件集)从多个可能的复制机制中自动地确定一个或多个复制机制的若干可能的实现中的某一些。
除了上述的概略示意图之外,本发明的实现还可按照包括用于实现一特定结果的一系列一个或多个动作的方法来描述。更具体地,图2示出了从生产服务器105和DPM服务器110的观点来看的用于实现对应于备份系统中的多个文件的多个复制机制的各流程图。以下将参考图1A-1B的示意图来描述这些流程图的动作。
作为预备,图2和相应的权利要求文本包括对方法的动作中的“第一”和/或“第二”元素的某些引用。然而,应该理解,这些指定主要是为了区分各元素,并且不必指示创建、分配、或使用的任何特定顺序。由此,可互换的术语“第一”或“第二”是指首次和第二次标识相关的元素。因此,例如,元素145可以是“第一复制机制”或“第二复制机制”,并且元素140也可以是“第一复制机制”或“第二复制机制”或在适当的时候甚至是第三复制机制。
在任何情况下,图2示出了从DPM服务器110的观点来看的自动地确定用于备份多个文件的合适的复制机制的方法包括标识将受保护的多个文件的动作200。动作200包括标识生产服务器上将受保护的的多个文件。例如,复制代理130通过克隆代理127接收文件系统过滤器123中标识文件、文件类型、文件夹、和/或文件位置的信息(未示出)。类似地,DPM服务器110能够从备份管理员接收标识生产服务器105处的常见文件类型和/或应用程序类型以及最适合每一个文件的是什么复制机制的输入。
图2还示出了从DPM服务器110的观点来看的方法包括标识第一和第二复制信息的动作210。动作210包括标识关于多个文件中的一个或多个文件的第一集合的第一复制信息,以及关于多个文件中的一个或多个文件的第二集合的第二复制信息。例如,图1A示出了复制代理130接收指示对于文件(或文件集)115将使用复制机制140,以及对于文件(或文件集)120将使用复制机制145的静态偏好的输入165。类似地,复制代理130接收指示(或基于缺乏期望的指示)以自动地确定用于其余文件的最佳的复制机制。
此外,图2示出了从DPM服务器110的观点来看的方法包括将第一复制机制分配给第一文件集的动作220。动作220包括基于第一复制信息将第一复制机制分配给第一文件集。例如,确定模块135取输入165的任何指令,和/或标识发自生产服务器105的关于文件115的文件信息,以及任何其他文件类型、大小的写入频率数据。确定模块然后准备这些指示复制机制(例如,140)将被分配给文件(或文件集)115的指令。
类似地,图2示出了从DPM服务器110的观点来看的方法还包括将不同的、第二复制机制分配给第二文件集的动作230。动作230包括基于第二复制信息将第二复制机制分配给第二文件集,以使得第一文件集和第二文件集将使用不同的复制机制来复制。例如,确定模块135取输入165的任何指令,和/或标识发自生产服务器105的关于文件120(或125)的文件信息,以及任何其他文件类型、大小的写入频率数据。确定模块135然后准备这些指示该复制机制145将被分配给文件(或文件集)(例如,120、或125)的指令发送到克隆代理127。
因此,图2示出了从DPM服务器110的观点来看的方法包括将复制机制分配传递给生产服务器的动作240。动作240包括将第一复制机制分配和第二复制分配传递给生产服务器。例如,DPM服务器110可将任何确定的复制机制和文件分配传递给生产服务器105;克隆代理127可存储该信息以供任何相关的组件(例如,文件系统过滤器123)参考。一般而言,一旦传递了关于这些分配的数据,生产服务器105就将开始保护这些文件并将对其的改变记入日志,即,文件(或文件集)115、120、以及125现在正收到保护并复制。
因此,图2示出了从产生服务器105来看的、根据本发明的实现的备份文件更新的方法包括标识将受保护的多个文件的动作250。动作250包括标识在文件系统中将受保护的多个文件。例如,文件系统过滤器123标识文件(或文件集)115、120、以及125,和/或其相应的文件夹或文件位置。
图2还示出了从产生服务器105的观点来看的方法包括接收对于第一文件集的复制分配的动作260。动作260包括接收多个文件中的一个或多个文件的第一集合被指定为使用第二复制机制来进行复制的指示。例如,克隆代理127从复制代理130接收通过确定模块135确定的指令,这些指令指示文件115将使用复制机制140(即,“对文件的改变”)来进行复制。
此外,图2示出了从产生服务器105的观点来看的方法包括接收对于第二文件集的不同的第二复制分配的动作270。动作270包括接收多个文件中的一个或多个文件的第二集合被指定为使用第二复制机制来进行复制的指示,以使得一个或多个文件的第一集合和一个或多个文件的第二集合使用不同的复制机制来复制。例如,如上述的动作260一样,克隆代理127从复制代理130接收通过确定模块135确定的指令,该指令指示文件120将使用复制机制145(即,“对文件的改变”)来进行复制,和/或文件125将使用复制机制150来进行复制。当文件(或文件集)125与自动确定的机制相关联时,这示出文件不仅能够被分配给不同的复制机制,而且能够以不同的方式来进行分配,诸如通过输入的形式、或通过DPM服务器110的自动确定来分配。
由此,图2还示出了从生产服务器105的观点来看的方法包括将第一文件集的字节数据记入日志的动作280。动作280包括将对第一文件集中的文件的改变的字节数据记入日志。例如,文件系统过滤器123标识在文件115中字节173和174已改变,并且将改变的那些原始字节传递给日志文件170。
图2还示出了从生产服务器的观点来看的方法包括将第二文件集的文件名记入日志的动作290。动作290包括将第二文件集中已改变的文件的名称记入日志。例如,文件系统过滤器123标识文件120中的任何数量的字节都可能已被更新,和/或文件125的块3中的字节193和195已被更新。更具体地,文件系统过滤器123能够在复制时计算源文件(例如,125)和目的地(备份服务器—目的地以及受保护文件服务器—源)之间的字节差异。一旦标识出字节差异,文件按系统过滤器123将文件120的文件名,和/或文件125的文件名和已改变的块传递给日志175。
因此,此处所示或所述的示意图、组件、以及方法提供了用于保证DPM服务器(例如,110)能够以最有效,并且针对生产服务器处的文件使用适当地调整的方式实现各种复制机制的大量机制。因此,组织能够避免在任何给定时刻致力于一特定复制机制。此外,备份管理员能够避免本来可能在未来当更新或从一种复制机制模式显著地变为另一种复制机制模式时所需的资源的损失。
还可以理解,此处所描述的各复制机制仅是根据本发明的实现可由确定模块135考虑的示例性类型的复制机制。更具体地,组织可能具有期望在生产服务器处使用的多得多的复制机制,和/或复制数据更新的方法。本发明的实现并不限于数量比此处所述的更多或更少的复制机制,也不限于此处所述的复制机制的特定时间。相反,本发明的至少一个优点是从考虑到在文件系统中的文件的当前或计划的特性而可用的复制机制中不断地选择最合适的复制机制的能力。
本发明的范围内的实施例也包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的机器可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,计算机将该连接适当地视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。以上的组合也应包括在计算机可读介质的范围之内。
计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式而公开的。
本发明可具体化为其他具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。该权利要求书的等效技术方案的含义和范围以内的所有更改将被包含在其范围内。