备份图像复制的制作方法
【专利摘要】本发明公开了用于配置复制操作的各种系统和方法。例如,一种方法涉及指定复制窗口、源存储设备和目标存储设备。当执行复制操作时,在所述复制窗口期间将数据从所述源存储设备复制到所述目标存储设备上。所述方法还涉及计算预测的复制速率,其中所述预测的复制速率为可将数据从所述源存储设备复制到所述目标存储设备上的速率的估计值。
【专利说明】备份图像复制
【技术领域】
[0001]本发明涉及数据存储,更具体地讲,涉及创建备份图像的副本。
【背景技术】
[0002]为了防止数据丢失,可以将数据进行备份。创建和存储数据备份的过程消耗计算资源,诸如传输带宽和存储空间。此类计算资源通常是有限的,所以通过执行备份操作而增加的对计算资源的需求可导致寻求访问计算资源的各个实体之间的资源争夺。为了使由于备份操作而导致的资源消耗的不利影响最小化,为安排备份操作而做出努力使得在对计算资源的高峰需求期间不进行备份操作。例如,可将备份操作安排在夜间、周末或资源需求通常较低的其他时间段期间进行。
[0003]备份操作产生备份图像。备份图像包括给定存储实体的内容的备份副本,诸如文件系统或磁盘驱动器。可以出于多种原因而复制备份图像。例如,如果备份图像储存在要被替换的存储设备上,则将备份图像从存储设备复制到替换存储设备上。
[0004]还可以出于冗余的目的而复制备份图像。执行复制操作,以将备份图像从一个存储设备复制到另一个存储设备上。与备份操作一样,复制操作也消耗计算资源。期望的是在非高峰资源消耗期间执行复制操作。使由于执行复制操作而导致的性能影响最小化的一个挑战是难以预测复制操作将花费多长时间以及难以安排复制操作来避免高峰资源使用时段。
【专利附图】
【附图说明】
[0005]通过参照附图,本发明可能更便于理解,并且其众多对象、特征和优点对于本领域的技术人员来说变得显而易见。
[0006]图1为根据本发明的一个实施例的可执行备份图像复制的系统的框图。
[0007]图2为根据本发明的一个实施例的复制备份图像的方法的流程图。
[0008]图3为根据本发明的一个实施例的配置复制操作的方法的流程图。
[0009]图4为根据本发明的一个实施例的估计复制速率的方法的流程图。
[0010]图5为根据本发明的一个实施例的复制备份图像的方法的流程图。
[0011]图6为根据本发明的一个实施例的播种目标存储设备的方法的流程图。
[0012]图7为示出了根据本发明的一个实施例的播种目标存储设备的方法的另外的细节的流程图。
[0013]图8为根据本发明的一个实施例的生成用于复制备份图像的显示的方法的流程图。
[0014]图9为示出了根据本发明的实施例的消息系统的用户界面的例子的框图,其中显示了客户与代理的对话。
[0015]图10为根据本发明的一个实施例的计算设备的框图,其示出了可如何在软件中实施复制模块。
[0016]图11为根据本发明的一个实施例的联网系统的框图,其示出了各种计算设备可如何通过网络进行通信。
[0017]虽然本发明可以具有各种修改形式和替代形式,但仍提供本发明的具体实施例作为附图和【具体实施方式】中的实例。应当理解,附图和【具体实施方式】并非旨在将本发明限于所公开的特定形式。相反,其目的在于涵盖所附权利要求所限定的本发明精神和范围内的所有修改形式、等同形式和替代形式。
【具体实施方式】
[0018]减小由于备份图像复制操作而对计算资源可用性造成的不利影响是与维护和运行备份系统相关联的一个挑战。在资源消耗的非高峰时段期间安排复制操作是应对该挑战的一种技术。然而,难以预先得知复制操作将花费多长时间来完成。
[0019]可影响完成复制操作所花费的时间的因素包括,例如,被复制的数据的量;可用计算资源的量,诸如传输带宽;复制操作中所涉及的存储设备的类型、速度和能力;其他实体或任务对计算资源的使用;等等。当将备份图像存储在复制的数据存储设备中时,可加重预测复制备份图像所花费的时间的难度,因为更难以确定在给定复制操作中实际将复制多少数据。
[0020]在执行复制操作的常规系统中,用户(例如管理员)选择多个备份图像进行复制,开始复制操作,并希望最佳。如果用户选择太多数据(例如太多备份图像),复制操作不会在所需时间段内完成,并且会导致资源争夺。例如,如果用户安排整夜(对计算资源的需求通常较低时)运行复制操作,但复制操作在第二天早上(对计算资源的需求通常增加时)仍在运行,资源争夺便可发生。当对计算资源的需求大于计算资源的可用量时,便发生争夺。这可导致复制操作失败,或意外终止。这还会导致其他任务无法成功完成。在用户选择太少数据和复制操作比预期更快结束时,常规系统的另一个缺点显而易见。在这种情况下,有价值的资源可能得不到使用,并且可能无法满足完成任务的时间表。这些事故可能是常规系统未能提供用于安排和执行复制操作的有效机制而引起的。
[0021]图1为可执行备份图像复制操作的系统的框图。图1的系统被配置成估计复制操作将花费的时间以及安排复制操作在指定时间窗口内完成。如图所示,系统包括多个客户端110(1)-客户端ΙΙΟ(Ν),统称为客户端110。系统还包括备份服务器130以及存储设备160和170。客户端110、备份服务器130以及存储设备160和170通过网络150联接。网络150可以包括WAN(广域网),诸如互联网、一个或多个LAN(局域网)和/或一个或多个SAN(存储区域网)。
[0022]要注意的是,变量标识符“N”用于更简单地标出一系列相关或类似元件(例如备份客户端)的最终元件。此类变量标识符的重复使用并不意味着暗示此类系列元件的尺寸之间的相关性,但此类相关性可能存在。此类变量标识符的使用不需要每个系列的元件具有与由相同变量标识符界定的另一个系列相同数量的元件。相反,在每种使用情况下,所识别的变量可以保持与相同变量标识符的其他情况相同或不同的值。
[0023]每个客户端110为计算设备,诸如个人计算机、膝上型计算机、服务器、个人数字助理、移动电话等。每个客户端I1包括备份客户端115和数据120。备份客户端115被配置成执行备份操作,在所述备份操作中,创建客户端使用的数据副本诸如数据120并将该数据副本存储在存储设备诸如存储设备160中。备份客户端115可执行任何类型的备份操作,包括完全备份或增量备份。完全备份涉及备份客户端115创建数据120的完整副本并将完整的数据副本存储在存储设备160中。增量备份涉及备份客户端115识别由于先前的备份操作而已改变的数据并只将改变的数据复制到存储设备160上。备份客户端115还可以执行物理或逻辑备份。就逻辑备份而言,备份客户端115可在多个级中的一个或多个级下,诸如在文件级和/或卷级下,执行备份操作。
[0024]数据120可以表示数据的任何逻辑或物理单元中的一个或多个,诸如文件系统、文件、数据库、卷、块、磁盘驱动器等。一个或多个应用程序(未示出)可访问数据120。例如,应用程序,诸如文字处理程序、电子邮件程序、图像编辑程序、数据库应用程序、服务器程序等,可从数据120读取或写入至数据120。
[0025]备份服务器130为计算设备,诸如个人计算机、膝上型计算机、服务器、个人数字助理、移动电话等。备份服务器130包括至少一个处理器1014和存储器1016。存储器1016存储处理器1014可执行的程序指令,以实施备份模块132、复制模块134、策略信息136、复制信息138、显示模块140和重复数据删除模块142。
[0026]备份模块132可配置和控制备份操作,诸如由备份客户端115执行的备份操作。备份模块132可接收来自用户(例如管理员)的指定要执行的备份操作的类型的输入。该输入可被存储在策略信息136中。策略信息136可包括多个策略。每个策略包括有关一个或多个客户端115的备份操作的信息。例如,策略可识别一个或多个客户端。对于每个客户端而言,或对于由策略识别的所有客户端而言,策略可包括一组决定如何对客户端进行备份操作的规则,诸如对客户端进行备份的频率、开始备份操作的排定时间、将要使用的备份操作类型(例如完全或增量)、备份存储的位置、与客户端相关联的优先级、应用于客户端数据的保留方案、一个或多个适用于客户端的错误处理机制等。除了识别哪些客户端受策略影响之外,策略还可以识别客户端上的哪些数据受该策略影响。例如,策略可识别用于客户端中的一者或多者的特定文件系统、卷、磁盘驱动器等。策略还可以为客户端指定数据处理规则,诸如加密和压缩规则和/或应用程序特定规则。可将策略信息136存储在文件(诸如数据库)中。
[0027]基于策略信息136,备份模块132可发起对每个客户端110的备份操作。策略信息可以明确地识别备份操作的类型。或者,备份模块132可以响应于用户所指定的一个或多个标准自动选择备份操作的类型。此类选择可以基于包括在策略信息136中的备份规则。例如,如果用户输入指定对第一客户端110分配第一优先级并且对第二客户端110分配第二优先级,则备份模块132可访问备份规则并自动确定对第一客户端110进行哪种类型的备份操作,以及对第二客户端110进行哪种类型的备份操作。备份模块132可选择,例如,备份操作应为完全备份还是增量备份,哪个目标存储设备用于存储客户端的备份图像,多久执行一次备份操作,等等。
[0028]备份模块132还可以采集和存储关于备份操作的信息,诸如上次备份操作是何时执行的、备份了哪些数据、备份了多少数据、完成备份操作花费了多长时间、备份数据存储在哪里等等。备份模块132可将该信息存储在元数据164中。
[0029]备份客户端115执行的每个备份操作均产生备份图像。备份图像可被结构化为包括在备份操作期间备份的数据的一个或多个文件。将备份图像存储在存储设备160中的备份数据165中。存储设备160和170提供持久性数据存储,使得存储在此类存储设备上的数据即使在存储设备断电后也将保持存储。此类存储设备可为例如硬盘、光盘(CD)、数字通用盘(DVD)或其他海量存储设备,或包括此类存储设备的阵列的存储系统(例如,独立磁盘冗余阵列(RAID)系统或光存储自动唱机)。此类存储设备也可以是在此类物理存储设备和/或存储系统上实施的虚拟或逻辑存储设备。例如,此类存储设备可以是在RAID存储系统上实施的逻辑卷。另外,此类存储设备可包括一个或多个存储设备。存储设备也可以包括一种或多种类型的存储介质,包括固态介质(例如闪存驱动器)、光学介质(例如CD和DVD)和磁性介质(例如,硬盘或磁带)。在一些实施例中,此类存储设备可使用云存储器来实施,其中存储设备为逻辑存储设备,物理存储设备在按需和/或按契约的基础上分配到该逻辑存储设备。
[0030]存储设备160和170可以重复数据删除格式存储数据。重复数据删除涉及确保每个相同的数据项(例如,每个文件或每个固定大小的数据集)只在重复数据删除的数据存储设备中存储一次。这可以通过计算每个数据项的唯一的(或几乎唯一的)标记来进行。每当将新数据项添加到重复数据删除的数据存储设备上时,该数据项的标记便被添加到列表中。添加新数据项之前,检查列表,以确保该数据项的副本尚未存储在重复数据删除的数据存储设备中。
[0031]重复数据删除模块142可执行存储在存储设备160中的数据的重复数据删除。重复数据删除模块142可检测到备份客户端115已创建要存储在存储设备160中的新备份图像。重复数据删除模块142可将备份图像分成多个组块。组块为具有固定或可变大小的数据的一部分。针对每个组块,重复数据删除模块142计算标记或指纹,并将该指纹与存储在元数据164中的指纹列表进行比较。列表中的指纹对应于已存储在存储设备160中的数据组块。如果该指纹与列表中的指纹匹配,则该组块已存储,并且不再次存储。相反,重复数据删除模块142更新元数据164,以指示新备份图像对该组块感兴趣。重复数据删除模块142可在备份图像中包括指向实际数据的指针,而不是存储数据本身的另外副本。在实施例中,重复数据删除模块142可在存储设备160中实施。
[0032]可能变得期望的是将数据诸如一个或多个备份图像从存储设备160复制到存储设备170上。这样做的一个原因是提供冗余,使得在与存储设备160的通信出现故障或丢失的情况下存储设备160中的数据仍然可用。或者,由于,例如,存储设备170所代表的硬件和/或软件的发展而使得存储设备160过时,用户可能希望将存储设备160的数据迁离到存储设备170上。此类寿命终止迁移涉及复制存储在存储设备160中的数据以及将数据传输至存储设备170。在实施例中,存储设备170实施改进的重复数据删除技术,并且用户希望转变使用不同重复数据删除技术或根本没有重复数据删除技术的存储设备160。
[0033]复制模块134可以配置和控制复制操作。例如,复制模块134可以复制备份图像162并将复制的备份图像作为备份图像172存储在存储设备170中。复制模块134还可以复制元数据164并将复制的元数据作为元数据174存储在存储设备170中。除了重复数据删除信息之外,元数据164还可以包括识别备份图像164中的重复数据删除数据的一个或多个特征的信息。例如,元数据164可以包括存储在存储设备160中的备份图像的目录,以及其他信息,诸如备份图像何时创建、备份图像的尺寸、所有权信息等等。
[0034]复制模块134可以接收来自用户(例如管理员)的指定有关复制操作的各个参数的输入。此类信息可存储在复制信息138中并且可包括指示何时执行复制操作、源存储设备、目标存储设备、要复制哪些备份图像、要复制哪些客户端、要复制哪些策略等的信息。复制信息138还可以包括指示给定复制操作期间复制了哪些数据、何时完成复制操作、实际传输了多少数据、复制的数据存储在哪里等的信息。复制信息138可以包括用于配置和控制进行中的和未来的复制操作的信息以及涉及先前运行的复制操作的信息。
[0035]复制模块134可以采用复制组的概念。也就是说,复制模块134可将一个或多个客户端的多个备份图像组合成单个组。在实施例中,在单个原子复制操作中对包括在复制组中的备份图像进行复制操作。用户可将各个备份图像添加至复制组,将客户端添加至复制组和/或用户可将策略添加至复制组。响应于用户将客户端添加至复制组,在对复制组执行复制操作时,复制该客户端的一个或多个备份图像连同包括在复制组中的其他客户端的备份图像。如果用户将策略添加至复制组,由该策略所识别的每个客户端的一个或多个备份图像包括在对复制组执行的复制操作中。例如,将策略添加至复制组可导致由该策略所识别的所有客户端的所有备份图像都被包括在单个复制操作中。或者,只有每个客户端的最近的备份图像可被包括在复制操作中。
[0036]在实施例中,复制模块134可以自动地将客户端或策略添加至复制组。复制模块134可响应于评估与客户端或策略相关联的一个或多个标准而将客户端或策略添加至复制组。例如,复制模块134可检测到策略将特定存储设备识别为它的目标存储设备。也就是说,当备份由该策略所识别的客户端时,将备份图像存储在给定目标存储设备上。响应于检测到给定存储设备为该策略的目标存储设备,复制模块134可将该策略添加至复制组,该复制组包括将相同的存储设备识别为它们的目标存储设备的其他策略。在该例子中,复制模块134创建包括均具有相同目标存储设备的客户端和/或策略的复制组。复制模块134可将其他标准用作将客户端或策略添加至复制组的基础。例如,复制模块134可基于如复制客户端或策略的估计持续时间、客户端或策略的源位置、客户端或策略的所有者、客户端或策略的龄期、客户端或策略的优先级等的此类特征将客户端或策略组织成组。此类组织导致具有相同特征的客户端和/或策略被设置在相同的复制组中。
[0037]复制模块134还被配置成估计可将给定备份图像、策略和/或复制组从给定源存储设备复制到给定目标存储设备的速率。基于估计的复制速率和要复制的数据的量,复制模块134可计算将花费多长时间来复制给定备份图像或策略。复制模块134可基于对复制由策略所识别的客户端中的每一者的估计持续时间进行合并来计算复制策略的估计持续时间。
[0038]复制模块134被配置成检测预定的复制窗口持续时间。复制窗口持续时间可被复制模块134作为用户指定值接收并且存储在复制信息138中。或者,复制模块134可基于先前的复制窗口持续时间和/或基于先前的复制操作已花费多长时间完成来自动计算复制窗口持续时间。
[0039]复制模块134可计算第一备份图像或策略的估计值并将该估计值与复制窗口持续时间进行比较。如果该估计值小于复制窗口持续时间,则复制模块134可选择另一个备份图像或策略,生成新备份图像或策略的新估计值,并将该新估计值添加到第一估计值以生成累积估计值。复制模块134然后可将该累积估计值与复制窗口持续时间进行比较。复制模块134可以该方式继续,直到累积估计值达到或超过指定的复制窗口持续时间。响应于检测到估计值达到或超过指定的复制窗口持续时间,复制模块134可终止估计过程。响应于检测到累积估计值已超过指定的复制窗口持续时间,复制模块134还可以减去最后添加的估计值。因此,复制模块134仅针对可在复制窗口内复制的那么多备份图像或策略来估计速率。由于估计过程消耗计算资源,所以这可以节省相当多的计算资源,并且要复制的备份图像或策略的数量可以远远超过可在指定的复制窗口持续时间内复制的备份图像或策略的数量。
[0040]显示模块140被配置成生成可被用户用于促进安排复制操作的显示。显示可包括识别可被复制、当前正在复制或已复制的备份图像、策略和/或复制组的信息。显示模块140可检测各个备份图像和复制操作的状态并且可以更新显示以反映安排和执行复制操作的进展。显示模块140还可以显示复制一个或多个备份图像和/或策略的估计时间。
[0041]图2为复制备份图像的方法的流程图。该方法可由包括备份服务器、复制模块和存储设备的系统执行,所述存储设备诸如图1的备份服务器130、复制模块134、存储设备160和170。一般来讲,该方法涉及选择一个或多个要包括在复制操作中的备份图像、安排复制操作和执行复制操作。
[0042]该方法从210处开始,其中复制模块配置复制操作。在实施例中,配置复制操作可涉及指定控制数据诸如备份图像和/或策略何时和如何复制的一组参数值。配置还可涉及指定从何处,例如一个或多个源存储设备,复制数据,以及将数据复制到何处,例如一个或多个目标存储设备。下文将参照图3讨论该操作的另外细节。
[0043]在220处,复制模块可计算复制速率。该操作涉及计算对复制一个或多个备份图像、策略和/或复制组将花费多长时间的估计。下文将参照图4讨论该操作的另外细节。
[0044]在230处,显示模块,诸如图1的显示模块140,可生成并显示包括在所选择的源存储设备中的策略列表。例如,如果在210处复制模块接收给定源存储设备(诸如图1的存储设备160)的选择,则复制模块可访问与该存储设备相关联的信息,诸如图1的元数据164,以识别将哪些策略备份到所选择的存储设备上。复制模块可将备份在存储设备上的策略列表传输至显示模块。响应于检测到将哪些策略备份到存储设备上,显示模块可更新显示,以呈现策略列表以及策略的特征。例如,显示模块可更新显示,以示出复制策略的估计时间或策略的复制状态(例如已复制的、正在进行的或已安排的)。
[0045]在实施例中,显示模块显示存储在源存储设备上的策略子组。例如,当大量策略可用时,显示模块可选择任意数量的策略,诸如用户可在适当量的时间内审查的多个策略,并且只显示这些策略。在实施例中,用户可改变或定制显示哪些策略。例如,用户可指定显示模块应只显示可在指定持续时间内复制的那些策略,诸如在复制窗口期间、或在可根据复制窗口持续时间来计算的一些其他持续时间期间。在实施例中,用户可命令显示模块基于例如策略类型来过滤策略。也就是说,显示模块可被配置成只显示满足标准的策略,诸如只有与特定应用程序或客户端相关联的策略。用户还可以命令显示模块根据一个或多个标准,诸如应用程序类型、优先级等,来对策略进行排序,并且显示排序的策略列表。
[0046]用户,例如管理员,可以选择策略中的一者或多者以用于复制。在240处,复制模块可检测一个或多个策略是否被选择用于复制。选择策略可使策略被包括在复制操作中。选择策略还可以使显示模块更新显示,以指示该策略已被选择。显示模块还可以更新和显示策略状态的指示,例如该策略为已安排复制、当前正在被复制、还是已经被复制。在实施例中,如果所选择的策略已包括在进行中的复制操作中,则复制模块可防止将该策略包括在另一个复制操作中。例如,显示模块可使已包括在另一个复制操作中的策略在显示中不可选,或者如果选择该策略,则可显示错误消息。
[0047]在250处,复制模块对所选择的策略执行复制操作。该操作涉及将数据,诸如图1的备份图像162,从源存储设备,诸如图1的存储设备160,复制到目标存储设备,诸如图1的存储设备170。下文将参照图5讨论该操作的另外细节。
[0048]图3为示出配置复制操作(如图2的操作210)的方法的另外细节的流程图。该方法可由复制模块,诸如图1的复制模块134,来执行。该方法可涉及接收来自用户诸如管理员的输入。或者,复制模块可以自动地配置复制操作。复制模块可以基于,例如,用于先前复制操作的值,来指定复制操作的一个或多个参数值。该方法从310处开始,其中用户指定复制窗口持续时间。复制窗口持续时间为被分配以允许完成复制操作的时间量。
[0049]用户还可以指定如何处理在指定的复制窗口持续时间期间未完成的复制操作。例如,复制模块可检测到复制操作不会在复制窗口持续时间期间完成。该检测可涉及检测复制窗口持续时间已到期。在实施例中,复制模块将要完成复制操作的剩余的数据量与复制窗口中剩余的时间量进行比较。响应于检测到复制操作不会在复制窗口持续时间期间完成,复制模块可终止复制操作,允许在预先指定的另外的时间周期内完成复制操作,或者无论用户指定的另外的时间如何,都允许复制操作完成。在实施例中,用户可指定,响应于复制操作超过复制窗口持续时间,复制模块修改复制操作的优先级。也就是说,尽管复制操作超过复制窗口持续时间,复制操作仍可以继续,但复制操作将被分配更低的优先级,以使对使用复制操作所用的计算系统资源的其他过程的任何影响最小化。
[0050]在320处,用户可指定源存储设备选择。源存储设备存储可包括在复制操作中的一个或多个备份图像。例如,显示模块,诸如图1的显示模块140,可生成存储备份图像的存储设备的列表并将存储设备列表以例如下拉菜单的形式呈现给用户。用户可选择存储设备中的一者或多者。在实施例中,复制模块可自动地检测应呈现的源存储设备。在实施例中,复制模块可采用次序和/或优先级方案来自动选择应呈现的源存储设备,使得该存储设备上的数据可被复制。例如,复制模块可检测到存在多个要复制的存储设备,并且存储设备中的每一者均具有分配的优先级。复制模块可以只呈现更高优先级的存储设备,直到所有更高优先级的存储设备已被复制。响应于检测到所有更高优先级的存储设备已被复制,复制模块可显示被分配下一级优先级的存储设备,等等。
[0051]复制模块可响应于在330处接收到指示目标存储设备的用户输入而选择目标存储设备。可将包括在复制操作中的备份图像复制到目标存储设备上。在实施例中,复制模块可基于源存储设备或基于有关可用目标存储设备的业务规则自动选择目标存储设备。例如,复制模块可检测目标存储设备是否连接到所选择的源存储设备上或是否与源存储设备兼容,并选择满足这些和/或其他标准的目标存储设备。
[0052]在340处,复制模块计算基准数据传输速率。可通过使用用户指定速率来执行该操作,该用户指定速率诸如制造商或服务提供方指定的速率。例如,给定存储设备可被评为能够以一定速率传输数据,或服务协议的网络连接质量可保证一定的数据传输速率。复制模块可将此类指定速率用作基准数据传输速率。
[0053]或者,复制模块可探测传输介质,以确定数据样本的实际传输速率。例如,复制模块可将数据样本从源存储设备发送至目标存储设备并且测量数据到达目标存储设备所花费的时间。复制模块可基于该测量计算基准数据传输速率。
[0054]—旦复制模块计算基准数据传输速率,复制模块便可估计复制给定备份图像将花费的时间。例如,如果备份图像的大小为10Gb,并且基准数据传输速率为lGb/sec,则复制模块可以估计复制备份图像将花费10秒。计算的持续时间为估计值,而不是准确预测,因为多个因素可影响完成复制操作所花费的时间。例如,虽然可以测量基准数据传输速率,但实际数据传输速率可变化,使得实际数据传输速率与整个复制操作持续时间的基准数据传输速率不相同。可影响执行复制操作所花费的时间的另一个因素是备份图像是否正被复制到重复数据删除存储设备上。例如,虽然备份图像的大小可被列为10Gb,但如果备份图像正被复制到重复数据删除的存储设备上,则复制的数据的实际量可变化,这取决于重复数据删除存储设备的重复数据删除密度。也就是说,如果重复数据删除存储设备进行大量重复数据删除,则列为1Gb的备份图像可以只包括例如5Gb的数据以及与对存储在存储设备中的其他备份图像相同(并包括在其中)的剩余的5Gb数据的引用。
[0055]在350处,复制模块接收指示何时开始复制操作的信息。在实施例中,复制模块接收指示发起复制操作的时间和/或日期的用户输入。或者,用户输入可指定发起复制操作的频率。例如,用户可指定复制操作应每月执行一次。复制模块可跟踪复制操作之间的时间,并且响应于检测到指定时段已过去而自动发起复制。在实施例中,复制模块可被配置成响应于检测到先前的复制操作已完成或响应于检测到在窗口持续时间内存在完成复制操作的足够的带宽而发起复制操作。
[0056]图4为计算复制速率的方法的流程图,如图2的操作220。该方法从410处开始,其中复制模块,诸如图1的复制模块134,检测源存储设备(诸如图1的存储设备160)的重复数据删除方案(如果有的话)和目标存储设备(诸如图1的存储设备170)的重复数据删除方案(如果有的话),并且比所述较重复数据删除方案。这些重复数据删除方案的相同或兼容程度可影响将数据从源存储设备复制到目标存储设备上的速度。复制模块可比较的重复数据删除方案的方面包括特征,诸如将数据分割成组块的方法和计算数据段的标记的方法等。分割方法可以基于例如段大小和在备份图像中的位置或数据的其他单元而变化,第一段和随后的段开始。如果第一重复数据删除方案使用一个段大小,而第二重复数据删除方案使用不同的段大小,或者一者使用大小固定的组块,而另一者使用大小可变的组块,则相同的数据将导致不同的段,所以重复数据删除方案是不兼容的。标记生成或指纹识别包括为给定数据段生成哪种类型的标记。可以用各种算法来生成数据段的标记。例如,可以用散列算法诸如消息摘要算法5 (MD5)、安全散列算法I (SHA-1)和安全散列算法256 (SHA-256)等来生成标记。如果第一重复数据删除方案使用一种算法来生成标记,而第二重复数据删除方案使用不同的算法来生成标记,则相同的数据将导致不同的标记,所以重复数据删除方案是不兼容的。
[0057]在415处,复制模块检测是否允许重复数据删除复制。如果不允许,如在源存储设备与目标存储设备之间的重复数据删除方案不兼容或者源存储设备或目标存储设备未进行重复数据删除的情况下,则在425处,复制模块指示将使用化合复制。该指示可涉及设置标志或将值储存在复制信息中,诸如图1的复制信息138中。化合复制意味着以非重复数据删除形式复制数据。这可以涉及将已进行重复数据删除的数据再化合,或者复制未进行重复数据删除的数据。例如,如果对备份图像进行重复数据删除,虽然备份图像的列出大小可能为10Gb,但为备份图像存储的数据的实际量可能仅为8Gb,因为去除了重复的数据组块。因此,以重复数据删除形式复制备份图像涉及复制8Gb的数据。然而,如果要将数据再化合,则恢复先前未存储的组块,并复制全部1Gb的备份图像。
[0058]如果未使用化合复制,则在420处,复制模块检测源数据的重复数据删除密度。复制模块可检测重复数据删除密度并基于该重复数据删除密度估计复制备份图像将花费多长时间。例如,复制模块可访问备份信息,诸如图1的元数据164,以检测备份图像的列出大小和实际大小。基于这些测量,复制模块可计算备份图像的重复数据删除密度。例如,如果备份图像的列出大小为10Gb,并且实际大小为8Gb,则重复数据删除密度可以计算为20%。也就是说,对备份图像进行重复数据删除使用于存储备份图像的存储量减少了 2Gb或 20%。
[0059]复制模块可以基于备份图像的重复数据删除密度修改对备份图像进行复制的估计速率。重复数据删除密度的增加通常对应于复制速率的增加,或对应于使用更少的时间来复制备份图像。在实施例中,使用为零的重复数据删除密度来计算基准持续时间。也就是说,可以就像数据未进行重复数据删除那样,或者就像1Gb备份图像的全部1Gb都将被复制那样,来计算基准持续时间。重复数据删除密度可以随连续复制操作而增大,因为在复制更多数据时,先前已复制的相同的组块的概率趋于增大。如果复制模块计算出高于先前重复数据删除密度的重复数据删除密度,则复制模块可基于新的重复数据删除密度或新的重复数据删除密度与先前计算的重复数据删除密度之间的差值来计算新的估计复制速率。
[0060]在435处,复制模块可检测关于之前复制操作的启发法是否可用。复制模块可检测先前复制给定备份图像所花费的时间。基于先前的时间长度,复制模块可预测后续的复制操作可能花费的时间。例如,如果先前的复制操作在显著短于估计时间的时间内完成,则复制模块可将该信息纳入到对后续复制操作将花费的时间的估计。在实施例中,复制模块可记录多个先前复制操作的复制时间并且基于先前复制操作的复制速率的变化速度来计算估计的速率。在另一个实施例中,复制模块计算给定图像或策略的先前复制操作的加权平均数。复制模块可将更大的权重分配给更近的复制操作,因为更近的操作有可能更接近地预测复制操作将花费的时间。基于启发式信息,在440处,复制模块可以修改估计速率。
[0061]图5为示出了复制备份图像的方法的另外细节的流程图,如图2的操作250。在510处,复制模块,诸如图1的复制模块134,检测是否安排了复制操作。这可以涉及检测指定时间段的期满,接收用户输入或检测阀值标准的发生,诸如源存储设备变得超负荷、或目标存储设备变得可用。此外,复制模块可响应于故障或其他事故而自动发起复制操作。
[0062]响应于检测到安排了复制操作,在520处,复制模块检测已安排复制的备份图像是否应被再化合。复制模块可以检测复制信息诸如图1的复制信息138中的值是否指示备份图像应被再化合。如果复制模块检测到备份图像要被再化合,则在530处复制模块将数据再化合。将备份图像再化合涉及复制模块将备份图像置于存在未进行重复数据删除的备份图像的状态下。
[0063]在540处,复制模块开始将备份图像从源存储设备复制到目标存储设备。为了执行该操作,复制模块从源存储设备读取组块,将组块传输至目标存储设备,并将组块写入至该存储设备。就重复数据删除的数据而言,复制模块可例如通过将组块的标记与存储在目标存储设备中的组块的列表进行比较来检测备份图像的组块已存在于目标存储设备中。如果给定的组块存在于目标存储设备中,则复制模块可将参考链接或指针复制到现有的组块上,而不是再次实际复制该组块。由于目标存储设备现在旨在存储另外的数据组块,所以重复数据删除密度可以说是增大,但另外的数据组块实际上未被添加到存储在目标存储设备中的数据量上,所以实际上重复数据删除密度并未增大。
[0064]在550处,复制模块检测复制操作是否完成。这可以包括检测所有所选择的数据已被复制或检测分配给复制操作的时间已达到。
[0065]响应于检测到复制操作已完成,无论是由于检测到所有所选择的数据已被复制还是由于复制窗口已期满,在560处,复制模块都更新复制信息,诸如图1的元数据174中。该操作可包括指示复制操作是否成功完成,复制操作何时结束,复制了哪些数据等。在复制备份图像的一部分的情况下,例如当复制操作在正复制备份图像的同时暂停时,复制模块可记录复制操作暂停的点。这允许后续的复制操作在先前的复制操作停止的点处恢复复制。
[0066]图6为播种目标存储设备的方法的流程图。一般来讲,该方法通过针对(由策略所识别的)每个客户端将最新创建的完全备份复制到目标存储设备上来播种目标存储设备。这在以编程方式将策略的目标目的地切换至目标存储设备之前执行。该方法可由复制模块,诸如图1的复制模块134,来执行。
[0067]在610处,当复制模块接收策略选择时该方法开始。这可以涉及用户选择具有存储在存储设备中的备份图像的一个或多个策略。选择策略可用作要将该策略从第一存储设备(称为源存储设备)(诸如图1的存储设备160)迁移至第二存储设备(称为目标存储设备)(诸如图1的存储设备170)的指示。在实施例中,复制模块可基于与策略相关联的一个或多个标准或使用与策略备份和保留相关的业务规则来自动选择策略。例如,业务可指定与指定客户端相关联的所有策略全都要迁移。另一个例子是大于指定龄期的所有策略或与指定数据类型诸如数据库相关的所有策略全都要迁移。
[0068]响应于策略被选择,复制模块可生成由所选择的策略所识别的客户端列表。在实施例中,这涉及访问关于存储在存储设备中的备份图像的元数据,诸如图1的元数据164。在620处,复制模块选择客户端中的包括在策略中的第一客户端。复制模块可将一个或多个标准用作选择客户端的基础。例如,复制模块可基于龄期、优先级、大小、所有者、客户端类型等来选择客户端。在实施例中,复制模块可基于列表中的位置选择客户端并按顺序遍历客户端列表。
[0069]一旦复制模块选择了客户端,复制模块便定位该客户端的最新的完全备份图像。在实施例中,存储设备可包括给定客户端的多个备份图像,包括完全备份图像以及增量备份图像。复制模块例如通过检查与备份图像相关联的元数据来检测备份图像的类型,以及何时为与所选择的客户端相关联的每个备份图像创建了备份图像。一旦复制模块识别出最新的完全备份,则在630处,复制模块便将最新的完全备份图像从源复制到目标。复制模块可以重复数据删除形式复制备份图像或者可将备份图像再化合并将再化合的备份图像从该存储设备复制到目标存储设备上。在实施例中,复制模块修改元数据,以指示所选择的客户端的备份图像已被复制到目标存储设备上并且还指示发生复制的时间。
[0070]在640处,复制模块检测该策略是否包括尚未被复制到目标存储设备上的另外的客户端。在实施例中,复制模块检测尚未被复制的另外的客户端是否列在与该策略相关联的客户端列表上。如果是,则复制模块在660处选择下一个客户端并返回630,其中复制模块识别客户端的最新备份并将该最新备份从源复制到目标。
[0071]一旦复制模块将由策略所识别的每个客户端的最新的完全备份图像复制到目标存储设备上,复制模块便,在650处,验证尚未为由该策略所识别的任何客户端创建新的备份图像。如果复制模块检测到在进行复制操作的同时已为任何客户端创建了新的备份图像,则对特定策略/客户端组合进行重新播种。也就是说,复制新的备份图像。
[0072]在670处,复制模块修改策略,以指示目标存储设备为该策略所指定的客户端的备份操作的目的地。将由该策略所识别的客户端的后续备份操作所创建的备份图像存储在目标存储设备中。
[0073]图7为示出了播种目标存储设备的方法的另外的细节的流程图。在710处,复制模块选择该策略所识别的第一客户端。复制模块可以将一个或多个标准用作确定选择客户端的顺序的基础。例如,复制模块可基于龄期、优先级、大小、所有者、客户端类型等来选择客户端。在实施例中,复制模块可基于列表中的位置选择客户端并按顺序遍历客户端列表。复制模块可检测复制模块先前访问客户端的顺序并且以与先前所用顺序相同的顺序来选择客户端。
[0074]在720处,复制模块检测自从复制模块先前复制了与所选择的客户端相关联的完全备份图像之后是否创建了完全备份。例如,如果策略识别出十个客户端,而复制模块在复制前四个客户端之后正在复制第五个客户端,则可例如通过第一客户端的图1的备份模块132来创建新的完全备份图像。这样做的机会根据完成策略的复制操作所花费的时间而增加。例如,如果复制操作未在复制窗口期间完成,则可在以后的时间重新开始复制操作。假定在第一复制窗口与复制操作重新开始之间过去了大量时间,则备份模块创建客户端之一的新备份图像的可能性增大。
[0075]如果复制模块检测到已创建更新的完全备份图像,则复制模块将该更新的完全备份图像从源存储设备复制到目标存储设备上。复制模块可以重写先前复制的完全备份图像,或者可以删除先前复制的完全备份图像。
[0076]在740处,复制模块检测是否存在由策略所识别的更多的客户端,对于所述客户端而言,复制模块尚未验证在复制模块将完全备份图像复制到目标存储设备上之后未在该存储设备上创建更新的完全备份图像。如果是这样,则复制模块,在750处,选择下一个客户端,并且该方法返回至720。
[0077]图8为生成用于复制备份图像的显示的方法的流程图。该方法涉及例如在计算机监视器上生成并显示用户界面。该方法可由显示模块,诸如图1的显示模块140,来执行。
[0078]该方法从810处开始,其中显示模块计算存储桶长度。可根据复制窗口持续时间来计算存储桶长度。复制窗口持续时间为分配给执行复制操作的时间长度。显示模块可查询复制模块,诸如复制模块134,并且请求复制窗口持续时间。或者,复制模块可自动地将复制窗口持续时间传输至显示模块。用户可指定复制窗口持续时间与存储桶长度之间的关系。例如,用户可指定存储桶长度应比复制窗口持续时间大25%。响应于检测到复制窗口持续时间,显示模块计算存储桶长度。在815处,显示模块显示识别一个或多个策略的信息,诸如策略名称。显示模块可被配置成显示任意数量的策略。用户还可以指定源存储设备。显示模块可识别具有存储在源存储设备中的数据例如备份图像的策略。例如,用户可指定显示模块应显示一百个策略。显示模块可显示具有存储在指定存储设备中的数据的前一百个策略。显示模块显示复制策略的累积估计持续时间与存储桶长度(精确或近似)匹配的足够策略。也就是说,如果复制窗口持续时间为八小时,且存储桶长度为十小时,则显示模块显示复制所有策略的估计时间为十小时的足够策略。显示比适配在复制窗口持续时间中的策略更多的策略使用户能够在决定哪些策略应在其他策略之前复制时安排复制操作选项。
[0079]在820处,显示模块检测是否选择了策略中的一者或多者。例如,用户可选择策略中的一者或多者。选择策略指示该策略要被包括在复制操作中。显示模块,在825处,更新显示,以指示哪些策略已被选择。显示模块还可以更新显示,以指示复制所选择的策略的估计时间,哪些客户端被该策略所识别,该策略的复制状态(例如,已安排或进行中)等。显示模块还可以更新存储桶的视觉表示,以反映复制所选择的策略要消耗多少存储桶以及有多少存储桶仍然可用。
[0080]响应于检测到选择了策略,显示模块可访问复制信息,以确定复制所选择的策略的估计时间。在实施例中,响应于显示模块向复制模块指示已选择用于包括在复制操作中的策略,复制模块生成对复制该策略将花费的时间的估计。
[0081]在830处,显示模块检测复制所选择的策略的估计时间是否超过存储桶长度。如果超过,则在835处,显示模块生成并且显示通知。通知可指示复制所选择策略的时间超过指定持续时间,例如存储桶长度。在实施例中,显示模块可生成并显示复制所选择策略的时间可能将超过复制窗口持续时间的通知。通知可包括指示一个或多个策略将不被包括在复制操作中的错误消息。响应于检测到选择策略可能将导致超过存储桶,显示模块可防止选择该策略。显示模块可将该策略从显示中移除,或者可以用其他方式,例如通过使该策略名称变灰,来指示不能选择该策略。或者,显示模块可允许用户选择该策略。
[0082]如果在选择该策略之后,显示模块检测到未超过存储桶,则显示模块,在840处,检测是否安排了复制操作。在实施例中,可以在定期基础上安排复制操作在后台运行。或者,用户可指定执行复制操作的日期和/或时间。如果显示模块检测到安排了复制操作,则显示模块,在850处,更新显示,以指示安排了复制操作。否则,该方法返回至820,其中显示模块等待选择另外的策略。
[0083]图9为示出了被配置成执行复制操作的用户界面的例子的框图。复制显示900由显示模块诸如图1的显示模块140生成,并可用于配置和安排复制操作。在实施例中,使用电脑显示器,例如监视器,来向用户呈现用户界面。
[0084]复制显示包括源字段905和目标字段910。源字段和目标字段可分别通过包括所有可用的源存储设备和目标存储设备的下拉菜单来实施。响应于用户选择给定源存储设备,复制显示在策略915处生成并显示存储在源存储设备中的策略的列表。
[0085]复制显示会显示复制每个策略的估计时间以及策略的大小。复制显示还显示每个策略的迁移状态,诸如已安排、未安排、进行中、完成等。
[0086]复制显示还显示存储桶的指示。存储桶为复制模块根据复制窗口持续时间来计算的时间测量。存储桶包括分配的时间920和可用的时间925。响应于策略被选择,显示模块修改显示,以反映该选择。将复制所选择策略的估计时间添加到分配的时间上,并且从可用的时间中减去相同的量。分配的时间和可用的时间的这种图形表示可用于安排复制操作,使得复制操作将在用户指定的时间间隔内完成。
[0087]图10为能够安排和执行如上所述的复制操作的计算系统1010的框图。计算系统1010在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统1010的例子包括但不限于各种设备中的任一种或多种,包括工作站、个人计算机、膝上型计算机、客户端侧终端、服务器、分布式计算系统、手持设备(例如个人数字助理和移动电话)、网络装置、存储器控制器(例如阵列控制器、磁带驱动器控制器或硬盘驱动器控制器)等。在其最基本的配置中,计算系统1010可包括至少一个处理器1014和系统存储器1016。通过执行实施复制模块134的软件,计算系统1010变为被配置成以上述方式执行复制操作的专用计算设备。
[0088]处理器1014通常表示能够处理数据或解译和执行指令的任何类型或形式的处理单元。在某些实施例中,处理器1014可接收来自软件应用程序或模块的指令。这些指令可以使处理器1014执行本文描述和/或不出实施例中的一个或多个的功能。例如,处理器1014可执行本文所述的操作和/或为用于执行本文所述操作的装置。处理器1014还可以执行本文描述和/或示出的任何其他操作、方法或过程和/或为用于执行它们的装置。
[0089]系统存储器1016通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器1016的例子包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他合适的存储器设备。尽管不是必需的,但在某些实施例中,计算系统1010可包括易失性存储器单元(诸如系统存储器1016)和非易失性存储设备(诸如,主要存储设备10102,如下详述)。在一个例子中,可将用于实施复制模块134(例如,如图1所示)的可执行指令加载到系统存储器1016中。
[0090]在某些实施例中,除处理器1014和系统存储器1016之外,计算系统1010还可以包括一个或多个组件或元件。例如,如图10所示,计算系统1010可包括存储器控制器1018、输入/输出(I/o)控制器1020和通信接口 1022,它们中的每一者都可通过通信基础结构1012互连。通信基础结构1012通常表示能够在计算设备的一个或多个组件之间促进通信的任何类型或形式的基础结构。通信基础结构1012的例子包括但不限于通信总线(诸如工业标准体系结构(ISA))、外围组件互连(PCI)、PCI Express(PCIe)或类似的总线)和网络。
[0091]存储器控制器1018通常表示能够处理存储器或数据或者控制计算系统1010的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施例中,存储器控制器1018可通过通信基础结构1012来控制处理器1014、系统存储器1016和I/O控制器1020之间的通信。在某些实施例中,存储器控制器1018可以执行和/或作为装置单独或与其他元件共同执行本文描述和/或示出的一种或多种操作或特征。
[0092]I/O控制器1020通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施例中,I/o控制器1020可控制或促进计算系统1010的一个或多个元件之间的数据传输,所述元件诸如处理器1014、系统存储器1016、通信接口 1022、显示适配器1026、输入接口 10100和存储接口 10104。
[0093]通信接口 1022在广义上表示能够促进计算系统1010与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施例中,通信接口 1022可促进计算系统1010与包括附加计算系统的专用或公共网络之间的通信。通信接口 1022的例子包括但不限于有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施例中,通信接口 1022可通过与网络(诸如互联网)的直接链接来提供与远程服务器的直接连接。通信接口 1022还可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。
[0094]在某些实施例中,通信接口 1022还可表示主机适配器,该主机适配器可被配置成通过外部总线或通信信道来促进计算系统1010与一个或多个附加网络或存储设备之间的通信。主机适配器的例子包括但不限于小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE) 11094主机适配器、串行高级技术附件(SATA)和外部SATA (eSATA)主机适配器、高级技术附件(ATA)和并行ATA (PATA)主机适配器、光纤通道接口适配器、以太网适配器等。
[0095]通信接口 1022还可允许计算系统1010参与分布式或远程计算。例如,通信接口1022可接收来自远程设备的指令或将指令发送到远程设备以供执行。
[0096]如图10所示,计算系统1010还可包括至少一个显示设备1024,该显示设备1024通过显示适配器1026联接到通信基础结构1012。显示设备1024通常表示能够以可视方式显示显示适配器1026转发的信息的任何类型或形式的设备。类似地,显示适配器1026通常表示被配置成转发来自通信基础结构1012(或来自帧缓冲器)的图形、文本和其他数据以用于在显示设备1024上显示的任何类型或形式的设备。
[0097]如图10所示,计算系统1010还可以包括通过输入接口 10100联接到通信基础结构1012的至少一个输入设备1028。输入设备1028通常表示能够向计算系统1010提供输入(由计算机或人生成)的任何类型或形式的输入设备。输入设备1028的例子包括但不限于键盘、指示设备、语音识别设备或任何其他输入设备。
[0098]如图10所示,计算系统1010还可包括主要存储设备1032和经由存储接口 1034联接到通信基础结构1012上的备份存储设备1033。存储设备1032和1033通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备1032和1033可为磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口 1034通常表示用于在计算系统1010的存储设备1032和1033与其他组件之间传输数据的任何类型或形式的接口或设备。如主要存储设备1032的存储设备可以存储信息,诸如重复数据删除标记、备份图像和/或备份目录。
[0099]在某些实施例中,存储设备1032和1033可被配置成对被配置成存储计算机软件、数据或其他计算机可读信息的可移除存储单元进行读取和/或写入。合适的可移除存储单元的例子包括但不限于软盘、磁带、光盘、闪存设备等。存储设备1032和1033还可包括允许将计算机软件、数据或其他计算机可读指令加载到计算系统1010中的其他类似结构或设备。例如,存储设备1032和1033可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备1032和1033还可为计算系统1010的一部分,或者可为通过其他接口系统进行访问的独立设备。
[0100]可将许多其他设备或子系统连接到计算系统1010。相反地,无需图10中示出的所有组件和设备都存在,亦可实践本文描述和/或示出的实施例。上文提及的设备和子系统也可以不同于图10所示的方式互连。
[0101]计算系统1010也可采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的一个或多个实施例可被编码为计算机可读存储介质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。计算机可读存储介质的实例包括磁性存储介质(例如硬盘驱动器和软盘)、光学存储介质(例如CD或DVD-ROM)、电子存储介质(例如固态驱动器和闪存介质)等。此类计算机程序也可以通过网络(诸如互联网)或载体介质传输到计算系统1010以存储在存储器中。
[0102]可以将包含计算机程序的计算机可读介质加载到计算系统1010中。然后可以将计算机可读介质上存储的全部或部分计算机程序存储在系统存储器1016和/或存储设备1032和1033的各个部分中。当由处理器1014执行时,加载到计算系统1010中的计算机程序可使处理器1014执行和/或作为装置来执行本文所述和/或示出的实施例中的一个或多个的功能。除此之外或作为另外一种选择,可以在固件和/或硬件中实施本文描述和/或示出的实施例中的一个或多个。例如,计算系统1010可以被配置为适于实施本文所公开的实施例中的一个或多个的专用集成电路(ASIC)。
[0103]图11是网络体系结构1100的框图,其中客户端系统1110、1120和1130以及服务器1140和1145可以联接到网络1150。客户端系统1110、1120和1130通常表示任何类型或形式的计算设备或系统,诸如图10中的计算系统1010。
[0104]类似地,服务器1140和1145通常表示被配置成提供各种数据库服务和/或运行某些软件应用程序的计算设备或系统,诸如应用程序服务器或数据库服务器。网络1150通常表示任何电信或计算机网络,包括例如内联网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)或互联网。在一个例子中,客户端系统1110、1120和/或1130中的一者或多者可以包括如图1中所示的复制模块134。
[0105]如图11所示,一个或多个存储设备1140(1)-(N)可直接附接到服务器1140。类似地,一个或多个存储设备1170(1)-(N)可直接附接到服务器1145。存储设备1140 (I) - (N)和存储设备1170 (I)-(N)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施例中,存储设备1140 (I) - (N)和存储设备1170 (I) - (N)可以表示被配置成使用各种协议(诸如网络文件系统(NFS)、服务器消息块(SMB)或通用互联网文件系统(CIFS))与服务器1140和服务器1145进行通信的网络附接存储(NAS)设备。此类存储设备可存储重复数据删除标记、备份图像和/或备份目录,如上所述。
[0106]服务器1140和1145也可连接到存储区域网络(SAN)架构1180。SAN架构1180通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或体系结构。SAN架构1180可促进服务器1140和1145与多个存储设备1190 (I)-(N)和/或智能存储阵列1195之间的通信。SAN架构1180还可通过网络1150以及服务器1140和1145以这样的方式促进客户端系统1110、1120和1130与存储设备1190 (I)-(N)和/或智能存储阵列1195之间的通信:设备1190 (I)-(N)和阵列1195呈现为客户端系统1110,1120和1130的本地附接设备。与存储设备1140 (I)-(N)和存储设备1170⑴-(N)相同,存储设备1190⑴-(N)和智能存储阵列1195通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。
[0107]在某些实施例中,并参照图10的计算系统1010,通信接口,诸如图10中的通信接口 1022,可用于在每个客户端系统1110、1120和1130与网络1150之间提供连接。客户端系统1110、1120和1130能够使用例如网页浏览器或其他客户端软件来访问服务器1140或1145上的信息。此类软件可允许客户端系统1110、1120和1130访问由服务器1140、服务器1145、存储设备1140 (I)-(N)、存储设备1170⑴-(N)、存储设备1190 (I)-(N)或智能存储阵列1195托管的数据。尽管图11示出了使用网络(诸如互联网)来交换数据,但本文所述和/或示出的实施例并不限于互联网或任何特定的基于网络的环境。
[0108]在至少一个实施例中,本文所公开的实施例中的一个或多个的全部或一部分可被编码为计算机程序并加载到服务器1140、服务器1145、存储设备1140 (I)-(N)、存储设备1170(1)-(N)、存储设备1190(1)-(N)或智能存储阵列1195或它们的任意组合上并且由它们执行。本文所公开的实施例中的一个或多个的全部或一部分也可被编码为计算机程序,存储在服务器1140中,由服务器1145运行,以及通过网络1150分配到客户端系统1110、1120 和 1130。
[0109]在一些例子中,图1、图10和图11中的系统之一的全部或一部分可以表示云计算或基于网络的环境的一部分。云计算环境可以通过互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可以通过网页浏览器或其他远程接口进行访问。本文所述的各种功能可以通过远程桌面环境或任何其他基于云的计算环境提供。
[0110]此外,本文所述的组件中的一个或多个可以将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,复制模块可以转换备份系统的行为,使得可以安排备份图像复制操作在用户指定的窗口内完成。
[0111]尽管已结合若干实施例描述了本发明,但本发明并非旨在限制为本文中列出的具体形式。相反,本发明旨在涵盖可以合理地包含在所附权利要求所限定的本发明范围内的替代形式、修改形式和等同形式。
【权利要求】
1.一种方法,所述方法包括: 配置复制操作,其中所述配置包括: 存储识别复制窗口的信息, 存储识别源存储设备的信息,以及 存储识别目标存储设备的信息; 计算预测的复制速率,其中 所述预测的复制速率包括可将数据从所述源存储设备复制到所述目标存储设备上的估计速率,以及 在所述复制窗口期间复制所述数据;以及 在所述复制窗口期间执行所述复制操作,其中 所述执行包括将所述数据的至少一部分从所述源存储设备复制到所述目标存储设备上。
2.根据权利要求1所述的方法,还包括: 选择要包括在所述复制操作中的备份图像,其中 所述选择基于所述备份图像的大小、所述预测的复制速率和所述复制窗口。
3.根据权利要求1所述的方法,还包括: 测量实际复制速率,其中 所述实际复制速率包括将所述数据从所述源存储设备复制到所述目标存储设备上的速率。
4.根据权利要求3所述的方法,其中 所述计算基于所述实际复制速率。
5.根据权利要求3所述的方法,还包括: 基于所述实际复制速率修改所述预测的复制速率。
6.根据权利要求1所述的方法,其中 所述预测的复制速率基于先前的复制速率,并且 所述先前的复制速率包括在所述计算之前的某个时间将第二数据从所述源存储设备复制到所述目标存储设备上的速率。
7.根据权利要求1所述的方法,其中 所述数据包括重复数据删除的备份图像。
8.根据权利要求1所述的方法,还包括: 检测所述数据是否可以重复数据删除形式复制,其中 所述检测包括将所述源存储设备的重复数据删除方案与所述目标存储设备的重复数据删除方案进行比较;以及 响应于检测到所述数据不能以重复数据删除形式复制而将所述数据再化合。
9.根据权利要求1所述的方法,其中 所述预测的复制速率基于所述数据的重复数据删除密度。
10.一种存储程序指令的非临时性计算机可读存储介质,可执行所述指令以: 配置复制操作,其中配置所述复制操作包括 存储识别复制窗口的信息, 存储识别源存储设备的信息,以及 存储识别目标存储设备的信息; 计算预测的复制速率,其中 所述预测的复制速率包括可将数据从所述源存储设备复制到所述目标存储设备上的估计速率,以及 在所述复制窗口期间复制所述数据;以及 在所述复制窗口中执行所述复制操作,其中 执行所述复制操作包括将所述数据的至少一部分从所述源存储设备复制到所述目标存储设备上。
11.根据权利要求10所述的非临时性计算机可读存储介质,其中可进一步执行所述指令以: 选择要包括在所述复制操作中的备份图像,其中 选择所述备份图像基于所述备份图像的大小、所述预测的复制速率和所述复制窗口。
12.根据权利要求10所述的非临时性计算机可读存储介质,其中可进一步执行所述指令以: 测量实际复制速率,其中 所述实际复制速率包括将所述数据从所述源存储设备复制到所述目标存储设备上的速率,以及 基于所述实际复制速率计算所述预测的复制速率;以及: 基于所述实际复制速率修改所述预测的复制速率。
13.根据权利要求10所述的非临时性计算机可读存储介质,其中 所述预测的复制速率基于先前的复制速率,并且 所述先前的复制速率包括在所述计算之前的某个时间将第二数据从所述源存储设备复制到所述目标存储设备上的速率。
14.根据权利要求10所述的非临时性计算机可读存储介质,其中可进一步执行所述指令以: 检测所述数据是否可以重复数据删除形式复制,其中 检测所述数据是否可以重复数据删除形式复制包括将所述源存储设备的重复数据删除方案与所述目标存储设备的重复数据删除方案进行比较;以及 响应于检测到所述数据不能以重复数据删除形式复制而将所述数据再化合。
15.根据权利要求10所述的非临时性计算机可读存储介质,其中 所述预测的复制速率基于所述数据的重复数据删除密度。
16.—种系统,所述系统包括: 一个或多个处理器;以及 联接到所述一个或多个处理器上的存储器,其中所述存储器存储可由所述一个或多个处理器执行的程序指令,以: 配置复制操作,其中配置所述复制操作包括 存储识别复制窗口的信息, 存储识别源存储设备的信息,以及 存储识别目标存储设备的信息; 计算预测的复制速率,其中 所述预测的复制速率包括可将数据从所述源存储设备复制到所述目标存储设备上的估计速率,以及 在所述复制窗口期间复制所述数据;以及 在所述复制窗口中执行所述复制操作,其中 执行所述复制操作包括将所述数据的至少一部分从所述源存储设备复制到所述目标存储设备上。
17.根据权利要求16所述的系统,其中可进一步执行所述指令以: 选择要包括在所述复制操作中的备份图像,其中 选择所述备份图像基于所述备份图像的大小、所述预测的复制速率和所述复制窗口。
18.根据权利要求16所述的系统,其中可进一步执行所述指令以: 测量实际复制速率,其中 所述实际复制速率包括将所述数据从所述源存储设备复制到所述目标存储设备上的速率,以及 基于所述实际复制速率计算所述预测的复制速率;以及: 基于所述实际复制速率修改所述预测的复制速率。
19.根据权利要求16所述的系统,其中 所述预测的复制速率基于先前的复制速率,并且 所述先前的复制速率包括在所述计算之前的某个时间将第二数据从所述源存储设备复制到所述目标存储设备上的速率。
20.根据权利要求16所述的系统,其中可进一步执行所述指令以: 检测所述数据是否可以重复数据删除形式复制,其中 检测所述数据是否可以重复数据删除形式复制包括将所述源存储设备的重复数据删除方案与所述目标存储设备的重复数据删除方案进行比较;以及 响应于检测到所述数据不能以重复数据删除形式复制而将所述数据再化合。
21.一种方法,所述方法包括: 访问策略,其中 所述策略包括识别多个客户端的信息; 选择所述多个客户端中每个客户端的最新备份图像; 将所述最新的备份图像从源存储设备复制到目标存储设备上; 更新所述策略,其中 所述更新所述策略包括将所述策略中的目的地值从所述源存储设备改变到所述目标存储设备。
22.根据权利要求21所述的方法,还包括: 检测在所述复制过程中是否创建了另外的备份图像,其中 所述另外的备份图像对应于所述多个客户端中的第一客户端, 所述另外的备份图像存储在所述源存储设备中; 响应于检测到创建了所述另外的备份图像,用所述另外的备份图像替换所述目标存储设备中的复制的备份图像,其中 所述复制的备份图像与所述第一客户端相关联。
23.根据权利要求21所述的方法,其中 所述多个备份图像中的每个备份图像包括重复数据删除的备份图像。
24.根据权利要求21所述的方法,其中 根据第一重复数据删除方案对所述源存储设备进行重复数据删除,并且 根据第二重复数据删除方案对所述目标存储设备进行重复数据删除。
25.根据权利要求21所述的方法,还包括: 生成所述多个客户端中的第一客户端的完全备份图像; 检测所述目的地值识别出所述目标存储设备;以及 响应于所述检测将所述完全备份图像存储在所述目标存储设备中。
26.根据权利要求21所述的方法,还包括: 检测复制窗口已结束;以及 响应于所述检测而暂停所述复制。
27.根据权利要求26所述的方法,还包括: 在发生所述暂停的同一点处重新开始所述复制。
28.一种存储程序指令的非临时性计算机可读存储介质,可执行所述指令以: 访问策略,其中 所述策略包括识别多个客户端的信息; 选择所述多个客户端中每个客户端的最新备份图像; 将所述最新的备份图像从源存储设备复制到目标存储设备上; 更新所述策略,其中 更新所述策略包括将所述策略中的目的地值从所述源存储设备改变到所述目标存储设备。
29.根据权利要求28所述的非临时性计算机可读存储介质,其中可以进一步执行所述指令以: 检测在所述复制过程中是否创建了另外的备份图像,其中 所述另外的备份图像对应于所述多个客户端中的第一客户端, 所述另外的备份图像存储在所述源存储设备中; 响应于检测到创建了所述另外的备份图像,用所述另外的备份图像替换所述目标存储设备中复制的备份图像,其中 所述复制的备份图像与所述第一客户端相关联。
30.根据权利要求28所述的非临时性计算机可读存储介质,其中 所述多个备份图像中的每个备份图像包括重复数据删除的备份图像。
31.根据权利要求28所述的非临时性计算机可读存储介质,其中 根据第一重复数据删除方案对所述源存储设备进行重复数据删除,并且 根据第二重复数据删除方案对所述目标存储设备进行重复数据删除。
32.根据权利要求28所述的非临时性计算机可读存储介质,其中可以进一步执行所述指令以: 生成所述多个客户端中的第一客户端的完全备份图像; 检测所述目的地值识别出所述目标存储设备;以及 响应于所述检测将所述完全备份图像存储在所述目标存储设备中。
33.根据权利要求28所述的非临时性计算机可读存储介质,其中可以进一步执行所述指令以: 检测复制窗口已结束;以及 响应于检测到所述复制窗口已结束而暂停所述复制。
34.根据权利要求33所述的非临时性计算机可读存储介质,其中可进一步执行所述指令以: 在所述复制暂停的同一点处重新开始所述复制。
35.一种系统,所述系统包括: 一个或多个处理器;以及 联接到所述一个或多个处理器上的存储器,其中所述存储器存储可由所述一个或多个处理器执行的程序指令,以: 访问策略,其中 所述策略包括识别多个客户端的信息; 选择所述多个客户端中每个客户端的最新备份图像; 将所述最新的备份图像从源存储设备复制到目标存储设备上; 更新所述策略,其中 更新所述策略包括将所述策略中的目的地值从所述源存储设备改变到所述目标存储设备。
36.根据权利要求35所述的系统,其中可进一步执行所述指令以: 检测在所述复制过程中是否创建了另外的备份图像,其中 所述另外的备份图像对应于所述多个客户端中的第一客户端, 所述另外的备份图像存储在所述源存储设备中; 响应于检测到创建了所述另外的备份图像,用所述另外的备份图像替换所述目标存储设备中复制的备份图像,其中 所述复制的备份图像与所述第一客户端相关联。
37.根据权利要求35所述的系统,其中 所述多个备份图像中的每个备份图像包括重复数据删除的备份图像。
38.根据权利要求35所述的系统,其中 根据第一重复数据删除方案对所述源存储设备进行重复数据删除,并且 根据第二重复数据删除方案对所述目标存储设备进行重复数据删除。
39.根据权利要求35所述的系统,其中可进一步执行所述指令以: 生成所述多个客户端中的第一客户端的完全备份图像; 检测所述目的地值识别出所述目标存储设备;以及 响应于所述检测将所述完全备份图像存储在所述目标存储设备中。
40.根据权利要求35所述的系统,其中可进一步执行所述指令以: 检测复制窗口已结束; 响应于检测到所述复制窗口已结束而暂停所述复制;以及 在所述复制暂停的同一点处重新开始所述复制。
41.一种方法,所述方法包括: 根据复制窗口持续时间来计算存储桶长度; 生成包含信息的显示,所述信息识别 所述存储桶长度, 多个策略, 分配的时间,以及 可用的时间; 接收所述多个策略中的至少一个策略的选择;以及 响应于所述接收所述选择而更新所述显示,其中 所述更新包括更新所述分配的时间和所述可用的时间。
42.根据权利要求41所述的方法,还包括: 估计复制所述至少一个策略的时间量。
43.根据权利要求42所述的方法,其中 所述显示包括所述时间量。
44.根据权利要求42所述的方法,其中 所述估计包括合计与至少一个备份图像相关联的估计时间,所述至少一个备份图像与所述至少一个策略相关联。
45.根据权利要求41所述的方法,其中 所述复制窗口持续时间包括执行复制操作的时间量,并且 所述复制操作包括将与所述至少一个策略相关联的至少一个备份图像从源存储设备复制到目标存储设备上。
46.根据权利要求41所述的方法,其中 所述显示包括所述策略的复制状态的指示。
47.根据权利要求41所述的方法,其中 所述存储桶长度大于所述复制窗口持续时间。
48.根据权利要求41所述的方法,还包括: 检测复制所述至少一个策略的估计时间超过所述复制窗口持续时间;以及 响应于所述检测,防止选择所述多个策略中的另外的策略。
49.根据权利要求41所述的方法,还包括: 检测复制所述至少一个策略的估计时间超过所述复制窗口持续时间;以及 响应于所述检测生成通知,其中 所述通知包括指示复制所述至少一个策略的所述估计时间超过所述复制窗口持续时间的信息。
50.一种存储程序指令的非临时性计算机可读存储介质,可执行所述指令以: 根据复制窗口持续时间来计算存储桶长度; 生成包含信息的显示,所述信息识别 所述存储桶长度, 多个策略, 分配的时间,以及 可用的时间; 接收所述多个策略中的至少一个策略的选择;以及 响应于接收所述选择而更新所述显示,其中 更新所述显示包括更新所述分配的时间和所述可用的时间。
51.根据权利要求50所述的非临时性计算机可读存储介质,其中可进一步执行所述指令以: 估计复制所述至少一个策略的时间量。
52.根据权利要求51所述的非临时性计算机可读存储介质,其中 估计所述时间量包括合计与至少一个备份图像相关联的估计时间,所述至少一个备份图像与所述至少一个策略相关联。
53.根据权利要求50所述的非临时性计算机可读存储介质,其中 所述复制窗口持续时间包括执行复制操作的时间量,并且 所述复制操作包括将与所述至少一个策略相关联的至少一个备份图像从源存储设备复制到目标存储设备上。
54.根据权利要求50所述的非临时性计算机可读存储介质,其中 所述存储桶长度大于所述复制窗口持续时间。
55.根据权利要求50所述的非临时性计算机可读存储介质,其中可进一步执行所述指令以: 检测复制所述至少一个策略的估计时间超过所述复制窗口持续时间; 响应于所述检测生成通知,其中 所述通知包括指示复制所述至少一个策略的所述估计时间超过所述复制窗口持续时间的信息;以及 响应于所述检测,防止选择所述多个策略中的另外的策略。
56.—种系统,所述系统包括: 一个或多个处理器;以及 联接到所述一个或多个处理器上的存储器,其中所述存储器存储可由所述一个或多个处理器执行的程序指令,以: 根据复制窗口持续时间来计算存储桶长度; 生成包含信息的显示,所述信息识别 所述存储桶长度, 多个策略, 分配的时间,以及 可用的时间; 接收所述多个策略中的至少一个策略的选择;以及 响应于接收所述选择而更新所述显示,其中 更新所述显示包括更新所述分配的时间和所述可用的时间。
57.根据权利要求56所述的系统,其中可进一步执行所述指令以: 估计复制所述至少一个策略的时间量。
58.根据权利要求56所述的系统,其中 所述复制窗口持续时间包括执行复制操作的时间量,并且 所述复制操作包括将与所述至少一个策略相关联的至少一个备份图像从源存储设备复制到目标存储设备上。
59.根据权利要求56所述的系统,其中 所述存储桶长度大于所述复制窗口持续时间。
60.根据权利要求56所述的系统,其中可进一步执行所述指令以: 检测复制所述至少一个策略的估计时间超过所述复制窗口持续时间; 响应于所述检测生成通知,其中 所述通知包括指示复制所述至少一个策略的所述估计时间超过所述复制窗口持续时间的信息;以及 响应于所述检测,防止选择所述多个策略中的另外的策略。
【文档编号】G06F11/14GK104380263SQ201380025571
【公开日】2015年2月25日 申请日期:2013年5月24日 优先权日:2012年5月25日
【发明者】T·G·克利福德, S·A·施默克尔 申请人:赛门铁克公司