用于进行基于网格的数据存储的设备、系统和方法

文档序号:6502771阅读:248来源:国知局
专利名称:用于进行基于网格的数据存储的设备、系统和方法
技术领域
本发明涉及网格计算,具体来说,涉及在网格计算系统上跨多个客户端进行数据备份操作。
背景技术
网格计算在计算行业是相对较新的技术。许多当前的网格计算系统可使多台互相连接的计算机对在单独的一台机器上不可能完成的比较大的网格应用(如计算问题)进行协作。为了可行地管理这样大量的计算过程,计算问题可以分为多个较小的,比较容易管理的作业。这种网格应用的共享处理在某种程度上是可能的,因为在许多个人和商用计算机上有强制的或偶然空闲处理器时间。
网格计算未充分实现的一个方面在于数据备份应用领域。常规数据备份功能是使用大型的独立数据备份设备来实现的。事实上,整个业界都致力于创建专用于存储信息、备份信息以及使该信息可用的数据中心。为提高此存储的信息的可用性,数据中心常常使用冗余和错误检测和校正代码或功能。这样的数据中心传统上是使用大量的专用于存储数据的数据存储设备来设计和操作的。令人遗憾的是,这些及其他常规数据存储技术和设备通常非常昂贵,价格高得惊人,因此,限制了这样的技术的广泛应用。
与网格计算有关的另一个问题是大容量存储设备在单个计算机和网络计算机上的普遍应用。许多企业和家庭,至少在美国,当前具有一台或多台,即使不是常年也是在一天中频繁连接到因特网的计算机。这些个人和商用计算机中的许多计算机不能充分利用它们的存储量,可能只能利用它们的总容量的2%和20%之间的量。对于这些计算机上可用的存储设备的大小,这意味着例如,在40和100GB之间的存储设备上,有32和98GB之间的存储空间没有被使用或未被充分利用。甚至在较低容量的设备上,可能会有几个GB的存储量被闲置。总地来说,每天都有价值数百万(可能达数十亿)美元的存储量被闲置。
涉及本发明的背景的另一个问题是需要相当大的存储容量用于进行数据备份操作。虽然诸如光盘和软盘之类的低成本可移动介质的存储容量随着时间的推移而显著地增加,许多时候用于进行完整的或部分的备份所需要的存储空间还是超过了单个可移动介质设备上可用的存储空间。同样,在多个可移动介质设备上存储备份数据所涉及的时间、劳动强度以及财务成本通常令人望而却步。这种需要大容量存储器来进行数据备份的状况,与网格计算的能力和现有的未使用的和未充分利用的大量的存储空间结合起来,说明了需要实现基于网格的数据备份。
因此,需要有能够方便网格计算系统上的有利的备份和恢复功能的设备、系统和方法。优选情况下,这样的设备、系统和方法将克服当前的对专用数据中心的依赖以及利用可用的、未使用的存储容量和网格计算技术。

发明内容
本发明是针对当前的技术状况而开发出来的,具体来说,响应当前可用的网格计算系统还没有完全解决的、现有技术中的问题和需求而产生的。相应地,本发明提供了用于在网格计算系统上跨多个客户端进行数据备份的设备、系统和方法,克服了现有技术中上文所讨论的许多缺点或全部缺点。
在本发明的优选实施例中,用于在网格计算系统上跨多个客户端进行备份数据的设备配备有逻辑单元,该逻辑单元包含多个模块,这些模块被配置为在功能上执行在网格计算系统上跨多个客户端进行备份数据的必需的步骤。所描述的实施例中的这些模块包括客户端请求模块、序列模块、全局配置文件管理模块、数据包存储模块、数据包检索模块、数据汇编模块、压缩模块、加密模块以及冗余模块。
根据本发明,现在提供了用于跨多个客户端进行数据备份的序列管理设备,该设备包括被配置为从源客户端接收待备份的数据的客户端请求模块;被配置为生成多个目标客户端的不透明序列的序列模块;以及被配置为根据不透明序列在多个目标客户端上存储数据的数据包存储模块。
从另一个方面来看本发明,现在提供了用于跨多个客户端进行数据备份的方法,该方法包括从源客户端接收待备份的数据;生成多个目标客户端的不透明序列;以及根据不透明序列在多个目标客户端上存储数据。
从再一个方面来看本发明,现在提供了包括计算机可读取的代码的计算机可读取的存储介质,该代码被配置为执行用于跨多个客户端进行数据备份的方法,该方法包括从源客户端接收待备份的数据;生成多个目标客户端的不透明序列;根据不透明序列在多个目标客户端上存储数据。
本发明还提供了用于在网格计算系统上跨多个客户端进行数据备份的系统。系统可以在局域网、广域网、局域网和广域网的组合、一个或多个无线网络、基于因特网的网格计算网络,或任何数量的网格计算环境中实现。具体来说,在一个实施例中,系统包括全局序列管理器、源客户端、一个或多个目标客户端以及可以在这些组件之间进行通信的通信基础结构。
系统可以进一步包括预订管理器,该管理器被配置为管理连接到网格计算系统的每一个客户端的费用预订,并使用这里所描述的网格系统的备份和恢复功能。
还提供了用于在网格计算系统上跨多个客户端进行数据备份的客户端。在一个实施例中,客户端配备有逻辑单元,该逻辑单元包含多个模块,这些模块被配置为在功能上执行在网格计算系统上跨多个客户端进行数据备份的必需的步骤。所描述的实施例中的这些模块包括数据备份模块、数据恢复模块、本地配置文件管理模块以及唯一数据标识符生成模块。
本发明还提供了用于在网格计算系统上跨多个客户端进行数据备份的进程。所公开的实施例中的进程基本上包括执行上文关于所描述的设备和系统的操作提供的功能所需的步骤。在一个实施例中,进程包括从源客户端接收待备份的数据,生成多个目标客户端的不透明序列,以及根据不透明序列在多个目标客户端上存储数据。
进程还可以包括管理说明备份数据的元数据信息,将数据细分为备份数据数据包,使用唯一数据标识符(UDI)来创建和识别备份数据,管理客户端的对网格计算备份系统的预订,跟踪客户端性能资源的分配,以及其他必需的、附带的以及如这里所描述的有益的步骤。
优选情况下,本发明的一个实施例允许大量备份数据分散并存储在网格计算系统中的多个目标客户端中。优选情况下,本发明的另一个实施例还允许在无需大型数据中心的情况下来对数据进行备份。优选情况下,本发明的进一步的实施例通过将数据细分为数据包并根据不透明序列键将备份数据数据包存储在目标客户端,为备份数据提供附加的安全性。
在整个说明书中对特征、优点的引用或类似的语言并不意味着,可以用本发明实现的所有特征和优点应该是或在本发明的任何单个实施例中。相反,引用特征和优点的语言应被理解为表示,结合一个实施例描述的特征、优点或特点至少包括在本发明的一个实施例中。因此,在整个说明书中,对特征和优点的讨论以及类似的语言,可以但不一定指的是同一个实施例。
从另一个方面来看本发明,现在提供了与序列管理设备相关的用于跨多个客户端进行数据备份的客户端,该客户端包括被配置为与序列管理设备进行通信的网络接口;被配置为定义已分配的存储器的存储器;以及被配置为使用唯一数据标识符和不透明序列来管理备份操作的客户端备份管理器设备。
客户端可以是被配置为启动备份操作并生成数据的唯一数据标识符的源客户端。同样,客户端可以是被配置为响应来自序列管理设备的数据存储请求,将数据的至少一部分存储在已分配的存储器中的目标客户端。
从再一个方面来看本发明,现在提供了用于跨多个客户端进行数据备份的系统,该系统包括网络通信信道;连接到网络通信信道并被配置为启动数据备份操作的源客户端;连接到网络通信信道并被配置为存储至少一部分数据的多个目标客户端;连接到网络通信信道并被配置为根据不透明序列将数据存储在多个目标客户端上的全局序列管理器。
全局序列管理器可以进一步被配置为存储对应于唯一数据标识符的数据的单一副本,并将数据的单一副本映射到在其上面存储了数据的源客户端,并映射到在其上面存储了数据的相同副本的第二源客户端。系统可以进一步包括预订管理器,该管理器被配置为管理每一个源客户端和多个目标客户端的合同预订。全局序列管理器和预订管理器可以进一步被配置为跟踪源客户端的源存储分配参数。同样,全局序列管理器和预订管理器可以进一步被配置为跟踪多个目标客户端中的每一个目标客户端的目标存储分配参数。类似地,全局序列管理器和预订管理器可以被配置为跟踪资源分配参数。
可以从包括网络分配参数、客户端处理器参数以及客户端带宽参数的组中选择资源分配参数。
从再一个方面来看本发明,现在提供了用于在网格计算系统内管理预订的客户端的合同预订的预订管理器,该预订管理器包括被配置为与预订的客户端进行通信的网络接口;被配置为接收来自预订的客户端的网格应用启动请求并允许预订的客户端启动网格计算系统上的网格应用的预订模块;以及被配置为计算客户端预订费并根据合同预订请求支付客户端预订费的费用模块。
网格应用可以是网格备份应用。费用模块被进一步配置为至少部分地基于指定的时间段内的客户端使用历史来计算客户端预订费。同样,费用模块可以进一步被配置为至少部分地基于定义分配给网格计算系统的客户端资源的客户端资源分配参数来计算客户端预订费。
从再一个方面来看本发明,现在提供了用于跨多个客户端进行数据备份的方法,该方法包括从源客户端请求待备份的数据;从源客户端接收待备份的数据;将数据分为多个数据数据包;生成多个目标客户端的不透明序列;根据不透明序列在多个目标客户端上存储数据数据包;使用对应于数据的唯一数据标识符来将数据映射到源客户端;管理说明在多个目标客户端上备份的数据的元数据文件;跟踪资源分配参数,其中,资源分配参数是源存储分配参数、目标存储分配参数、网络分配参数、客户端处理器参数以及客户端带宽参数中的某一个;以及管理源客户端和多个目标客户端的合同预订。
从另一个方面来看本发明,现在提供了用于跨多个客户端进行数据备份的设备,该设备包括用于从源客户端接收待备份的数据的装置;用于生成多个目标客户端的不透明序列的装置;以及用于根据不透明序列在多个目标客户端上存储数据的装置。
此外,本发明的所描述的特征、优点和特点可以在一个或多个实施例中以任何适当的方式合并。那些本领域普通技术人员将知道,本发明可以在没有特定实施例的一个或多个特征或优点的情况下实施。在其他情况下,其他特征和优点可以在某些实施例中出现,不一定在本发明的所有实施例中出现。
通过下面的描述和所附的权利要求,本发明的这些特征和优点将变得显而易见,或者,也可以通过实践本发明来了解。


为了能够轻松地理解本发明的优点,上文简要描述的本发明的比较特定的说明将通过参考特定的实施例来说明,所述特定实施例将结合附图加以说明。理解这些附图只描述了本发明的典型实施例,不应该被认为是限制本发明的范围,将通过使用

本发明的其他特征和细节,其中图1是说明根据本发明的网格系统的一个实施例的示意方框图;图2是显示了根据本发明的客户端存储器的一个实施例的示意方框图;
图3是显示了根据本发明的网格系统的另一个实施例的示意方框图;图4是显示了根据本发明的全局序列管理器的一个实施例的示意方框图;图5是显示了根据本发明的客户端的一个实施例的示意方框图;图6是显示了根据本发明的全局客户端配置文件的一个实施例的示意方框图;图7是显示了根据本发明的源客户端配置文件的一个实施例的示意方框图;图8是显示了根据本发明的源数据记录的一个实施例的示意方框图;图9是显示了根据本发明的目标数据记录的一个实施例的示意方框图;图10是显示了根据本发明的数据汇编记录的一个实施例的示意方框图;图11-12是显示了根据本发明的备份方法的一个实施例的示意流程图;以及图13-16是显示了根据本发明的恢复方法的一个实施例的示意流程图。
具体实施例方式
本说明书中描述的许多功能单元被标记为模块,以便特别强调它们的实现方式的独立性。例如,模块可以作为包括自定义VLSI电路或门阵列、诸如逻辑芯片之类的现成半导体、晶体管或其他分离的元件的硬件电路来实现。模块还可以以诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件之类的可编程硬件设备来实现。
模块还可以由供各种处理器来执行的软件来实现。可执行代码的识别的模块例如,可以包括计算机指令的一个或多个物理或逻辑块,而计算机指令可以作为对象、过程或函数来组织。尽管如此,识别的模块的可执行程序不必在物理上位于一起,但可以包括存储在不同位置的不同的指令,当这些指令在逻辑上联合在一起时,包括模块,并实现该模块的指定目的。
实际上,可执行代码的模块可以是单个指令、或许多指令,甚至可以在多个不同代码段、在不同的程序中以及跨多个存储设备地分布。同样,这里可以在模块内标识和显示操作数据,并可以以任何合适的形式来实现并在任何合适的数据结构类型内组织。操作数据可以作为单个数据集收集,也可以分布在不同的位置,包括分布在不同的存储设备,全异的存储器设备中,也可以至少部分地只作为系统或网络上的电子信号存在。
此外,模块也可以作为软件和一个或多个硬件设备的组合来实现。例如,模块也可以以存储在存储器设备中的软件可执行代码的组合来实现。在另一个示例中,模块可以是对操作数据的集合进行操作的处理器的组合。此外,模块也可以以通过传输电路传输的电子信号的组合来实现。
在整个说明书中,对“一个实施例”、“实施例”的引用或类似的语言表示,结合实施例描述的特征、优点或特点至少包括在本发明的一个实施例中。因此,在整个说明书中,“在一个实施例中”、“在实施例中”等句子的出现可以,但不一定都指的是同一个实施例。
此外,本发明的所描述的特点、结构和特征可以在一个或多个实施例中以任何适当的方式合并。在下面的描述中,提供了许多细节,如编程、软件模块、用户选择、网络事务、数据库查询、数据库结构、数据库、硬件模块、硬件电路、硬件芯片等等的示例,以提供对本发明的实施例的全面的了解。然而,那些本领域普通技术人员将认识到,本发明可以在不使用一个或多个细节的情况下实施,或者可以用其他方法、组件、材料等等来实施。在其他情况下,没有显示或详细描述公知的结构、材料或操作,以避免使本发明某些方面变得模糊。
图1描述了网格系统100,该网格系统包括通过通信信道112连接到多个客户端104-110或节点的网格服务器102。所显示的网格系统100类似于局域网(LAN),在一个实施例中,通信信道112可以是以太网通信信道、无线通信信道或其他相当的通信信道。同样,通信信道112可以包括各种类型的通信信道的组合。虽然所描述的网格系统100包括一个网格服务器102和四个客户端104-110,但是,网格系统100可以包括各种网络配置的组合,可以具有更少或更多的客户端104-110,一个以上的服务器102,或其他服务器配置。在另一个实施例中,网格系统100还可以包括预订管理器(未显示),如参考图3所描述的。在一个实施例中,网格服务器102还可以同时充当网格系统100的预订管理器。
在一个实施例中,网格系统100被配置执行网格应用。网格应用是在一起获得指定目标的工程项目的集合。例如,网格应用可以确定非常复杂的数学计算,包括天气预报、股票市场发展等等。网格应用还可以处理大规模的多媒体操作。在另一个实施例中,网格应用可以对大型而不同的数据量执行数据备份操作。虽然本发明可以适用于无数其他网格应用和功能,但是,下列描述将致力于网格计算环境内的数据备份操作。
网格应用可以分为作业,或单个的工作单元。网格应用的多个作业可以在各个节点104-110中的一个或多个节点上同时执行、串行地执行或独立地执行。节点104-110中的每一个节点都可以给网格系统100分配某些性能资源,以便执行网格应用。客户端104-110所提供的这些性能资源可以包括处理器能力、处理器容量、存储容量、存储器容量,及其他类似的资源。在一个实施例中,客户端104-110可以给网格系统100贡献出总的处理器能力、存储容量或存储器容量中的一定量,以便执行网格应用。
每一个客户端104-110都可以充当源客户端或目标客户端,具体取决于客户端104-110在特定网格应用中的角色。例如,在客户端104-110启动网格应用的情况下,客户端104-110充当源客户端。或者,在客户端104-110使本地性能目标可用于执行远程启动的网格应用的情况下,客户端104-110充当目标客户端。例如,在网格备份操作的情况下,源客户端在一个或多个目标客户端上可以具有备份数据文件,而目标客户端分配一些可用的存储空间给网格系统100,以便执行这样的备份网格应用。
图2描述了图1的网格系统100内的客户端存储器200的一个实施例。在所显示的实施例中,特定客户端104-110上的存储器200可以包括已使用的存储器202和空闲存储器204。已使用的存储器202是存储数据的电子存储空间,包括操作系统文件206、应用程序文件208、数据文件210等等。空闲存储器204是没有专门用于客户端104-110的操作或存储操作的电子存储空间。
在一个实施例中,空闲存储器204可以包括溢出存储器212、可用的存储器214以及已分配的存储器216。溢出存储器212可以是为应用程序的执行而预留的存储空间,类似于WindowsTM操作系统中的页文件。已分配的存储器216是可以专用于网格系统100以便执行网格应用和存储网格数据的存储空间。下面将在随后的说明中详细地讨论已分配的存储器216。可用的存储器214可以是当前没有被用作溢出存储器212或已分配的存储器216并被预留供客户端104-110未来使用的存储空间。
虽然图2描述了已使用的存储器202和空闲存储器204的特定类型,但是,网格系统100上的特定客户端104-110的存储器200可以在大小、容量、用途、可用性,特别是专用于网格系统100的已分配的存储器216的总量方面有所不同。特定客户端104-110的存储器200也可以在已使用的存储器202和空闲存储器204的数量和分配方面以及其细分方面随着时间的推移而变化。在一个实施例中,已分配的存储器可以是相对于客户端104-110上的总存储量200的最小值。或者,已分配的存储器216也可以包括除溢出存储器212之外的空闲存储器204的全部,在这种情况下,客户端104-110就不会有如上文所定义的可用的存储器214。
图3描述了网格系统300的另一个实施例,它在某些方面类似于图1的网格系统100。所显示的网格系统300在因特网302上运行,因特网302在网格系统300的各个其他组件之间提供通信信道。所显示的网格系统300还包括网络系统304、306,它们类似于图1所示的网格系统100,并构成了图3的网格系统300内的子系统。此外,网格系统300还可以包括直接连接到因特网的其他客户端308、310,因为它们不是局域网的一部分。
网格系统300还可以包括在此说明书中稍后比较详细地描述的预订管理器312。预订管理器312也可以连接到网格系统300内的其他网络系统304、306。在另一个实施例中,网格系统300可以具有多个预订管理器312,每一个预订管理器都独立地管理所定义的预订组。
如上所述,可以使用其他类似的网格系统配置代替或补充图1和3中所描述的网格系统100、300。在下面的描述中,对网格系统100、300中的任何一个的引用都可以可互换地表示网格系统100、300中的任何一个或两者,除非明确地指出专指网格系统100、300中的某一个。
图4描述了全局序列管理器400的一个实施例。在一个实施例中,所显示的全局序列管理器400被配置为对网格系统100上的数据备份操作进行管理。在一个实施例中,全局序列管理器400包括中央处理单元(CPU)402、本地存储设备404、用户界面406、网络接口408、存储器410以及全局序列管理设备412。CPU 402一般地被配置为在全局序列管理器400内执行操作。在一个实施例中,用户界面406被配置为允许用户与全局序列管理器400进行交互,包括允许用户输入数据和命令并将输出数据传递给用户。在一个实施例中,网络接口408被配置为方便全局序列管理器400通过格型网络100的通信信道112的网络通信。
在一个实施例中,本地存储器410被配置为存储几个可以结合网格备份操作使用的几个数据和元数据文件。在另一个实施例中,这些数据和元数据文件中的某些或全部可以在本地存储设备404中进行复制。在另一个实施例中,这些数据和元数据文件中的一个或全部可以排他地存储在本地存储设备404而不是存储在存储器410中。在另一个实施例中,这些数据和元数据文件中的一个或全部可以存储在网格系统100上的分布式存储器上。虽然本说明书引用了“文件”,但是,可以理解本发明以与使用其他电子存储器和存储结构基本上相同的方式进行操作。这里对数据文件或元数据文件的引用被理解为等效地引用其他这样的电子存储器和存储结构。
具体来说,存储器410可以存储全局客户端配置文件414、源客户端配置文件416、源数据记录418、目标数据记录420、数据汇编记录422以及全局备份日志424。在一个实施例中,全局客户端配置文件414被配置为存储网络配置文件,也可以存储默认客户端配置文件。下面将参考图6比较详细地讨论全局客户端配置文件414。在一个实施例中,源客户端配置文件416被配置为存储唯一客户端配置文件,而在另一个实施例中,可以存储数据单元配置文件。下面将参考图7比较详细地讨论源客户端配置文件216。
在一个实施例中,源数据记录418被配置为存储关于一个或多个目标客户端上存储的备份数据文件或其某些部分的元数据。类似地,在一个实施例中,目标数据记录420被配置为存储关于一个或多个目标客户端上存储的备份数据文件或其某些部分的元数据。单个文件的源数据记录418和目标数据记录420,或其一部分,可以包含有关备份文件的类似的或部分地复制的元数据。下面将分别参考图8和9比较详细地讨论源数据记录418和目标数据记录420。
在一个实施例中,数据汇编记录422被配置为存储有关汇编多个数据包应该遵循的顺序的信息,所述多个数据包属于单个备份文件的信息,以便恢复的备份文件准确地反映存储在最初备份的文件中的信息。下面将参考图10比较详细地讨论数据汇编记录422。在一个实施例中,全局备份日志424可以被配置为存储在某一时间段内记录一个或多个全局备份网格应用操作的备份历史。因此,全局备份日志424可以有助于查看备份历史,并可能恢复在执行给定的备份网格应用之前存在的网格或客户端状态。
在一个实施例中,全局序列管理设备412被配置为方便跨网格系统100的数据备份操作。全局序列管理设备412可以对由特定源客户端所启动的备份和恢复操作的执行进行管理。所显示的全局序列管理设备412包括客户端请求模块426、序列模块428、全局配置文件管理模块430、数据包存储模块432、数据包检索模块434、数据汇编模块436、压缩模块438、加密模块440以及冗余模块442。
在一个实施例中,客户端请求模块426被配置为处理来自源客户端的对一个或多个文件进行备份的请求。客户端请求模块426可以进一步被配置为从源客户端接收待备份的数据。在一个实施例中,序列模块428可以被配置为生成不透明序列键,该键识别在其上面可以存储备份数据的一个或多个目标客户端。不透明序列键可以专门存储在全局序列管理器上,并可通过全局序列管理器进行访问,以便为备份数据提供一个安全级别。序列键的不透明字符表示其唯一性、其生成的排他性、可访问性和重复性。
例如,全局序列管理器可以通过在多个目标客户端中的每一个目标客户端上存储数据包或数据的某些部分,在多个目标客户端上备份来自源客户端的数据。由于来自源客户端的部分数据可以存储在远程目标客户端的本地存储设备中,可以通过以只有全局序列管理器400知道的顺序将备份数据数据包存储在多个不同的目标客户端上,提供数据安全性的一个级别。因此,即使可以在特定目标客户端上访问一部分数据(虽然也可以对备份数据进行加密,并添加第二层安全),基本上或完全重新组合最初存储在发出请求的源客户端上的数据是非常困难的,甚至无法实现。由此可见,随着存储在不同的目标客户端上的这些数据的大小变小,数据安全性级别可以提高。
在一个实施例中,全局配置文件管理模块430可以方便默认和唯一客户端配置文件的管理,包括网格系统100内连接的单个网络的配置文件。在一个实施例中,全局配置文件管理模块430可以允许用户定义分别参考图6和7比较详细地在上文描述和讨论的全局客户端配置文件414和源客户端配置文件416。
在一个实施例中,数据包存储模块432被配置为在网格系统100中的一个或多个目标客户端上存储来自源客户端的备份数据。在一个实施例中,数据包存储模块432可以在将备份数据存储在目标客户端上之前将备份数据细分为相等或不均匀的大小的数据包。在再一个实施例中,数据包存储模块432可以根据由序列模块428所生成的不透明序列键在一个或多个目标客户端上存储备份数据数据包。在再一个实施例中,数据包存储模块432可以在允许备份数据被压缩模块438压缩,通过加密模块440加密,或通过冗余模块442复制之后,在目标客户端上存储备份数据。对于复制的数据,数据包存储模块432也可以根据不透明的序列键来存储复制的备份数据。在一个实施例中,数据包存储模块432也可以被配置为创建或存储一个或多个源数据记录418、目标数据记录420以及数据汇编记录422。
在一个实施例中,数据包检索模块434可以被配置为从在其上面可以存储数据包的目标客户端中检索备份数据数据包或其副本。在一个实施例中,数据包检索模块434可以使用与数据包存储模块432所使用的相同或类似的不透明序列键,以预先将备份数据数据包存储在目标客户端上。
在一个实施例中,数据汇编模块436可以被配置为在细分之前将多个备份数据数据包汇编为类似于(即使不是相同)原始数据文件的格式的可理解的格式。在一个实施例中,数据汇编模块436可以根据大致在原始数据被细分为数据包并存储在目标客户端上的时候创建的数据汇编记录422,汇编恢复的数据。
如上文所提及的,压缩模块438、加密模块440以及冗余模块442中每一个模块都可以在数据被存储在一个或多个目标客户端之前修改备份数据。同样,压缩模块438、加密模块440以及冗余模块442可以独立地使用或一起使用,以通过解压、解密等等将数据恢复为其原始格式。
图5描述了可以作为网格系统100内的源客户端或者目标客户端操作的客户端500的一个实施例。与图4的全局序列管理器400一样,客户端500包括CPU 502、本地存储设备504、用户界面506、网络接口508和存储器510。所显示的客户端500还包括本地序列管理设备512。客户端500的CPU 502、用户界面506和网络接口508基本上类似于全局序列管理器400的CPU 402、用户界面406和网络接口508。本地存储设备504类似于图2的存储器200,在一个实施例中,可以被分开,如参考图2所描述的。例如,在一个实施例中,存储器504可以包括已使用的存储器202(包括操作系统文件206、应用程序文件208以及数据文件210)和空闲存储器204(包括溢出存储器212、可用的存储器214以及已分配的存储器216)。
在一个实施例中,存储器510被配置为存储多个数据和元数据文件,这些文件可以与网格备份操作一起使用。在另一个实施例中,这些数据和元数据文件中的某些或全部可以在本地存储设备504中进行复制。在另一个实施例中,这些数据和元数据文件中的一个或全部可以排他地存储在本地存储设备504而不是存储在存储器510中。在另一个实施例中,这些数据和元数据文件中的一个或全部可以存储在网格系统100上的分布式存储器上。
在一个实施例中,存储器510可以存储全局客户端配置文件514、源客户端配置文件516、目标数据记录518、本地源日志520以及本地目标日志522。全局客户端配置文件514基本上类似于全局序列管理器400的全局客户端配置文件414,在一个实施例中,一个可以是另一个的副本。同样,源客户端配置文件516基本上类似于全局序列管理器400的源客户端配置文件416,在一个实施例中,一个可以是另一个的副本。类似地,目标数据记录518基本上类似于全局序列管理器400的目标数据记录420,在一个实施例中,一个可以是另一个的副本。本地源日志520和本地目标日志522两者都类似于全局备份日志424,但作为源客户端或目标客户端,在其容量方面是客户端500所特有的。在一个实施例中,客户端500和全局序列管理器400可以在单个客户端104-110中实现。
在一个实施例中,本地序列管理设备512被配置为启动和方便通过网格系统100的数据备份和恢复操作。在一个特定实施例中,客户端500可以充当源客户端,并启动备份网格应用,以备份最初存储在客户端500的本地存储设备504上的数据文件。在全局序列管理器400的管理下,本地序列管理设备512可以将本地文件备份到网格系统100内的一个或多个远程目标客户端104-110上。同样,客户端500可以充当源客户端,并启动恢复网格应用,以从相应的目标客户端104-110中恢复备份数据数据包。在另一个实施例中,客户端500可以充当目标客户端,并存储最初存储在远端源客户端104-110上的文件或其部分的备份副本。在这样的情况下,客户端500可以使用本地存储设备504内的已分配的存储器216来存储备份数据。
所显示的本地序列管理设备512包括数据备份模块524、数据恢复模块526、本地配置文件管理模块528以及唯一数据标识符生成模块530。在一个实施例中,数据备份模块524被配置为向全局序列管理器400发送数据备份请求。在一个实施例中,数据备份模块524可以请求各种类型的备份,如完全或部分备份,包括增量式备份、差异备份等等。可以响应用户请求通过客户端500或响应管理员请求通过局域网或网格系统100来调用备份请求。或者,可以响应预定事件,例如每周增量备份过程,或响应异步事件,如存储器使用定点,来调用备份请求。或者,可以响应诸如在客户端500上或在网格系统100内发生的特定活动或事件之类的触发事件,来调用备份请求。
在一个实施例中,数据恢复模块526被配置为向全局序列管理器400发送数据恢复请求。类似于数据备份请求,可以响应一个或多个手动或自动输入,包括用户请求、存储器故障或来自本地应用程序的请求,来调用数据恢复请求。本地配置文件管理模块528类似于全局序列管理设备412的全局配置文件管理模块430。在一个实施例中,本地配置文件管理模块528创建或存储本地配置文件管理模块528所在的客户端500所特有的唯一源客户端配置文件516。在再一个实施例中,本地配置文件管理模块523可以创建或存储特定数据单元所特有的唯一源客户端配置文件516。
在一个实施例中,唯一数据标识符生成模块530被配置为生成可以驻留在客户端500上的每一个原始(非备份)唯一数据单元的唯一数据标识符(UDI)。例如,UDI生成模块530可以创建唯一数据标识符(UDI)并指定给客户端500上的每一个数据文件或其一部分。在再一个实施例中,UDI生成模块530可以驻留在全局序列管理设备412上,并为每一个数据数据包(可以是一部分数据文件)指定唯一数据标识符(UDI)。唯一数据标识符(UDI)可以用来判断特定数据单元、文件、数据包或其一部分的备份副本是否已经备份到特定目标客户端或一组目标客户端中。如果是,全局序列管理设备412可以通过引用现有的备份副本而不是创建同一个数据单元的重复备份副本,来节省网格系统100可用的存储空间,即使数据单元的原始副本发自于不同的源客户端。
在一个实施例中,本地序列管理设备512和全局序列管理设备412可以驻留在单个设备上。例如,不是较大的局域网的一部分的直接连接客户端308、310可以根据需要作为客户端500和全局序列管理器400来工作。在再一个实施例中,客户端500可以被配置有必需的模块,以在将数据数据包发送到全局存储管理器400之前将其分组、压缩、加密、复制等等。在另一个实施例中,客户端500或全局存储管理器400中的模块可以分布到网格系统100中的多个设备。
图6描述了基本上类似于图4和5的全局客户端配置文件414、514的全局客户端配置文件600的一个实施例。在一个实施例中,全局客户端配置文件600可以存储在全局序列管理器400和客户端500中的某一个中或两者中。所显示的全局客户端配置文件600包括网络标识符字段602、网络分配字段604、客户端标识符字段606、客户端数据包压缩字段608、客户端数据包冗余字段610、客户端数据包加密字段612、客户端备份邻近字段614、客户端数据包邻近字段616、客户端存储器字段618、客户端处理器字段620、客户端带宽字段622、客户端同步字段624以及客户端自动存档字段626。
在一个实施例中,网络标识符字段602可以被配置为存储网格系统300内的特定网络系统(例如,图3的网络系统304)的网络标识符。在一个实施例中,网络分配字段604可以存储表示专用于网格系统300的网络性能资源的网络分配参数。例如,网络分配字段604可以存储表示专用于网格系统300的并可用于备份网格应用的网络带宽的百分比的网络带宽分配参数。
在一个实施例中,客户端标识符字段606可以被配置为存储诸如客户端名称或编号之类的客户端标识参数。在一个实施例中,连接到网格系统100的每一个客户端500都可以通过唯一客户端名称来标识。在再一个实施例中,存储在客户端标识符字段606中的客户端标识参数可以集成存储在网络标识符字段602中的网络标识参数。
在一个实施例中,客户端备份邻近参数可以表示诸如源客户端和在其上面存储了备份数据的目标客户端之间的最小或最大距离之类的地理限制。在另一个实施例中,客户端数据包邻近参数可以表示在其上面存储了备份数据的多个目标客户端之间的最小或最大距离。因此,客户端备份和数据包邻近参数确保了一个数据包的可访问性可以基本上独立于不同的数据数据包的可访问性。例如,源客户端可以通过相应地调整客户端备份邻近参数来请求备份数据存储在不与源客户端位于同一个大都会地区、州、甚至国家的目标客户端中。
在一个实施例中,客户端备份和数据包邻近参数可以表示诸如英里或公里之类的物理距离。可以使用全球定位系统(GPS)坐标来计算或估计节点104-110之间的距离。在另一个实施例中,客户端备份和数据包邻近参数可以表示逻辑距离。例如,客户端备份和数据包邻近参数可以引用源客户端的因特网协议(IP)地址,并指定备份数据包存储在不同的网络或子网内的目标客户端上。在再一个实施例中,客户端备份和数据包邻近参数可以包含地或专门地指定在其上面存储或不存储备份数据数据包的某些节点104-110。
客户端数据包压缩字段608、客户端数据包冗余字段610以及客户端数据包加密字段612可以分别被配置为存储默认压缩、冗余和加密参数。这些参数可以表示,例如可以被用作默认参数的压缩的类型、加密的级别、或冗余的级别。类似地,客户端备份邻近字段614和客户端数据包邻近字段616可以被配置为存储默认邻近参数。
在一个实施例中,客户端存储器字段618可以被配置为存储定义专用于网格系统100的客户端存储器的默认数量的默认客户端存储分配参数。同样,在一个实施例中,客户端处理器字段620和客户端带宽字段612可以分别表示专用于网格系统100的处理器能力和带宽的量。在一个实施例中,这些参数中的每一个参数可以通过数量编号来表示。在另一个实施例中,这些参数中的每一个参数都可以表示为可用的总容量的百分比。
在一个实施例中,客户端同步字段624可以被配置为存储客户端同步参数,该参数表示全局序列管理器400上的全局客户端配置文件600应该与客户端500上的全局客户端配置文件514或源客户端配置文件516进行同步的频度。在一个实施例中,此同步可以是单一步骤过程,或者可以包括将客户端500上的全局客户端配置文件514和全局序列管理器400上的源客户端配置文件416进行同步的附加步骤。优选情况下,如果在客户端500和全局序列管理器400两者上都存在全局客户端配置文件600的多个副本,则每当需要向客户端500和全局序列管理器400两者提供准确的信息时,都可以将这些副本同步。
在一个实施例中,客户端自动存档字段626被配置为存储客户端自动存档参数,该参数表示应该备份客户端数据文件的频度。在再一个实施例中,客户端自动存档参数可以表示响应给定刺激执行的备份的类型,完全或增量式备份,或另一种备份。
图7描述了基本上类似于图4和5的源客户端配置文件416、516的源客户端配置文件700的一个实施例。在一个实施例中,源客户端配置文件700可以存储在全局序列管理器400和客户端500中的某一个中或两者中。所显示的源客户端配置文件700包括源客户端标识符字段702、唯一数据标识符(UDI)字段704、数据源位置字段706、数据数据包压缩字段708、数据数据包冗余字段710、数据数据包加密字段712、数据备份邻近字段714、数据数据包邻近字段716、数据同步字段718以及数据序列键字段720。
在一个实施例中,源客户端标识符字段702基本上类似于全局客户端配置文件600的客户端标识符字段606。在一个实施例中,唯一数据标识符(UDI)字段704可以被配置为存储对应于特定数据单元的唯一数据标识符(UDI)。在一个实施例中,数据源位置字段706,可以被配置为识别由存储在源客户端上的UDI字段704中的唯一数据标识符(UDI)所标识的原始数据单元的文件位置。
数据数据包压缩字段708、数据数据包冗余字段710以及数据数据包加密字段712类似于全局客户端配置文件600的客户端数据包压缩字段608、客户端数据包冗余字段610以及客户端数据包加密字段612。然而,在一个实施例中,源客户端配置文件700中的这些字段708、710、712可以存储由唯一数据标识符(UDI)标识的每一个数据单元的实际参数,而不是特定源客户端上的所有数据单元的默认参数。或者,这些字段708、710、712可以存储所有数据单元的相同参数,并可以存储与全局客户端配置文件600中的相应的字段608、610、612相同的参数。类似地,数据备份邻近字段714和数据数据包邻近字段716类似于全局客户端配置文件600的邻近字段614、616。然而,源客户端配置文件700中的这些字段714、716可以存储每一个数据单元所特定的用户定义的参数,类似于上文所描述的字段708、710、712。
优选情况下,如果在客户端500和全局序列管理器400两者上都存在源客户端配置文件700的多个副本,则每当需要向客户端500和全局序列管理器400两者提供准确的信息时,都可以将这些副本同步。在一个实施例中,数据同步字段718可以被配置为存储客户端同步参数,该参数表示全局序列管理器400上的源客户端配置文件416应该与客户端500上的源客户端配置文件516进行同步的频度。数据同步字段718和参数可以类似于全局客户端配置文件600的客户端同步字段624和参数。在适用的情况下,源客户端配置文件700也可以与全局客户端配置文件600的至少一部分进行同步。
在一个实施例中,数据序列键字段720被配置为存储特定数据单元的不透明序列键。如上所述,序列键可以由全局序列管理设备412的序列模块428来生成。在另一个实施例中,数据序列键字段720可以存储生成刺激键,而不是实际序列键。因此,实际序列键可以只存储在全局序列管理器400中,而不是存储在客户端500上。在再一个实施例中,不透明序列键可以不必存储在网格系统100中的任何地方,而是可以在每次需要它时,通过至少使用生成刺激键由序列模块428来生成。序列模块428也可以和生成刺激键一起使用唯一数据标识符(UDI)、数据源位置参数、源客户端标识符参数或一个或多个其他参数,以便根据需要生成序列键。
图8描述了基本上类似于图4的源数据记录418的源数据记录800的一个实施例。在一个实施例中,源数据记录800仅仅存储在全局序列管理器400中。所显示的源数据记录800包括唯一数据标识符(UDI)字段802、数据包标识符字段804和一个或多个目标标识符字段806-810。在一个实施例中,源数据记录800标识在其上面存储了每一个备份数据数据包的各种目标客户端。
在一个实施例中,UDI字段802被配置为存储备份数据文件的唯一数据标识符(UDI)。在一个实施例中,数据包标识符字段804被配置为存储属于备份数据文件的特定数据数据包的数据包标识符。在一个实施例中,目标标识符字段806-810被配置为,每一个都存储对应于在其上面已经存储了备份数据数据包的副本的目标客户端的目标标识符。取决于有多少目标客户端可以存储相同数据数据包的副本,可以将多个目标标识符806-810附加到源数据记录800中。在替代实施例中,唯一数据标识符(UDI)可以标识特定数据数据包而不是整个备份数据文件。在此情况下,源数据记录800可以使用等效的装置来表示原始文件、数据数据包以及数据数据包的每一个备份副本的位置。
图9描述了基本上类似于图4和5的目标数据记录420、518的目标数据记录900的一个实施例。在一个实施例中,目标数据记录900可以存储在全局序列管理器400和客户端500中的某一个中或两者中。所显示的目标数据记录900包括唯一数据标识符(UDI)字段902、数据包标识符字段904、数据包大小字段906以及目标位置字段908。
在一个实施例中,UDI字段902被配置为存储备份数据文件的唯一数据标识符(UDI)。在一个实施例中,数据包标识符字段904被配置为存储属于备份数据文件的特定数据数据包的数据包标识符。在一个实施例中,数据包大小字段906被配置为存储数据包大小参数来表示数据包的大小。在一个实施例中,目标位置字段908被配置为表示目标客户端上存储了备份数据数据包的存储位置。因此,目标数据记录900可以在恢复操作过程中方便源客户端的被请求的备份数据数据包的恢复。在另一个实施例中,唯一数据标识符(UDI)可以标识特定数据数据包而不是整个备份数据文件。在此情况下,目标数据记录900可以使用等效的装置来表示原始文件、数据数据包,数据包的大小以及备份副本在目标客户端上的位置。
图10描述了基本上类似于图4的数据汇编记录422的数据汇编记录1000的一个实施例。在一个实施例中,数据汇编记录1000仅仅存储在全局序列管理器400中。数据汇编记录1000包括唯一数据标识符(UDI)字段1002和一个或更多数据包字段1004a-m到1010a-m的表。
在一个实施例中,UDI字段1002被配置为存储备份数据文件的唯一数据标识符(UDI)。在一个实施例中,数据包标识符字段1004a-m被配置为存储属于备份数据文件的第一数据数据包的重复副本的数据包标识符。同样,在一个实施例中,数据包标识符字段1006a-m被配置为存储属于备份数据文件的第二数据数据包的副本的数据包标识符。类似地,在一个实施例中,数据包标识符字段1008a-m被配置为存储属于备份数据文件的第三数据数据包的副本的数据包标识符。此模式持续进行,直到数据包标识符字段1010a-m,这些字段存储属于备份数据文件的最后一个数据数据包的副本的数据包标识符。在替代实施例中,唯一数据标识符(UDI)可以标识特定数据数据包而不是整个备份数据文件。在此情况下,数据汇编记录1000可以使用等效的装置来表示原始文件和数据数据包的汇编次序。
下面的示意流程图将一般性地阐述为逻辑流程图。因此,所描述的顺序和标记的步骤表示所提供的过程的一个实施例。其他步骤和过程可以被认为是在功能、逻辑或效果上类似。此外,所提供的格式和符号用于说明过程的逻辑步骤,而不对过程的范围作出限制。同样,虽然在流程图中可以使用各个箭头类型和线条类型,但是,它们不对对应的过程的范围作出限制。实际上,可以使用某些箭头或其他连接符来只表示过程的逻辑流程。例如,箭头可以表示所描述的过程的枚举的步骤之间的未指定的持续时间的等待或监视时间段。
图11-12描述了可以用来在网格系统100上备份数据的备份方法1100的一个实施例。所显示的备份方法1100被分成三个部分。每一个部分都表示可能在网格系统100的特定组件上发生的子进程。然而,虽然备份过程1100被分成三个子进程并被标记为在特定组件上发生,但是此说明不意味着将子进程限制到特定组件。事实上,备份过程1100中的许多所描述的步骤可以在网格系统100内的各种组件上发生或由这些组件来执行。此外,并非单个子进程的所有步骤都必须由单个组件来执行。同样,单个组件也可以执行来自不同的子进程的各种步骤。
所显示的备份方法1100开始1102时生成1104待备份的数据单元的唯一数据标识符(UDI)。随后,源客户端向全局序列管理器发送1106备份请求。然后,全局序列管理器400接收1110来自源客户端的备份请求。在一个实施例中,备份请求包括待备份的数据单元的唯一数据标识符(UDI)。或者,可以单独地传输唯一数据标识符(UDI)。
使用唯一数据标识符(UDI),全局序列管理器400判断1112在网格系统100内是否已经有了数据单元的备份副本。如果还没有对应于唯一数据标识符(UDI)的数据的备份副本,则全局序列管理器400向源客户端发送1202一个请求待备份的数据单元的副本的数据请求。源客户端接收1204数据请求,随后向全局序列管理器400发送1206数据单元的副本。在所描述的实施例中,之后,全局序列管理器400从源客户端接收1208数据单元,将数据单元细分1210为必需的数据数据包数量,并生成1210a数据单元的唯一不透明序列键。
然后,全局序列管理器400根据不透明序列键将备份数据数据包存储1212在目标客户端上。对于每一个数据单元,或其一部分,全局序列管理器400可以创建或修改1214相应的配置文件600、700和与客户端500和数据单元关联的记录800、900、1000。然后,全局序列管理器400向源客户端发送1216数据备份确认,表示已经成功地完成备份操作。源客户端在从全局序列管理器400接收到1220数据备份确认时,判断1222是否有更多的数据单元需要进行备份。如果有,则所显示的备份方法1100返回,以生成1104下一个数据单元的新的唯一数据标识符(UDI)。否则,所描述的备份方法1100结束。
或者,如果全局序列管理器400确定1112在网格系统100上已经有了数据单元的备份副本,则全局序列管理器400将现有的备份通知1114给源客户端。然后,所描述的备份方法1100按上文所描述的方式继续。在再一个实施例中,全局序列管理器400可以在将现有备份通知1114给源客户端之前创建或修改1214相应的配置文件600、700或记录800、900、1000。
图13-16描述了可以用来在网格系统100上恢复数据的恢复方法1300的一个实施例。所显示的恢复方法1300被分成三个部分。每一个部分都表示可能在网格系统100的特定组件上发生的子进程。然而,虽然恢复过程1300被分成三个子进程并被标记为在特定组件上发生,但是此说明不意味着将子进程限制到特定组件。事实上,恢复过程1300中的许多所描述的步骤可以在网格系统100内的各种组件上发生或由这些组件来执行。此外,并非单个子进程的所有步骤都必须由单个组件来执行。同样,单个组件也可以执行来自不同的子进程的各种步骤。
当源客户端向全局序列管理器400发送1304数据恢复请求时,所显示的恢复方法1300开始1302。在一个实施例中,恢复请求包括待恢复的备份数据单元的唯一恢复数据标识符(UDI)。或者,可以单独地传输唯一数据标识符(UDI)。全局序列管理器400在接收到1308数据恢复请求时,可以访问1310对应的源数据记录800,以判断哪些目标客户端存储了被请求的数据单元的备份数据数据包。在另一个实施例中,全局序列管理器400可以访问1310对应的源客户端配置文件700,并重新生成序列键,以判断哪些目标客户端存储了被请求的数据单元的备份数据数据包。
然后,全局序列管理器400向相应的目标客户端发送1312数据包请求。如上文所讨论的,每一个数据数据包的重复的副本可以存储在一个或多个目标客户端上。在所描述的实施例中,每一个目标客户端都接收1318来自全局序列管理器400的数据包请求。假定网格系统100可以包括多个独立地管理的网络和客户端,某些目标客户端可以是脱机的,否则在请求时不可用。如果目标客户端在请求时可用,则目标客户端判断1402被请求的数据包是否可用。某些可用的目标客户端可以回收以前被用作网格资源的存储空间,从而销毁或制作否则会对网格系统100不可用的备份数据数据包的副本。
如果可用的目标客户端判断1402被请求的数据包不可用,则目标客户端将丢失的数据包通知1404给全局序列管理器400。响应丢失的数据包,全局序列管理器400可以判断1408是否有另一个具有被请求的数据数据包的副本的目标客户端可用。如果有另一个目标客户端可用,则全局序列管理器400可以向可用的目标客户端发送1312数据包请求,所描述的恢复方法1300按上文所描述的方式继续。如果可用的目标客户端判断1402被请求的数据包可用,则目标客户端向全局序列管理器400发送1410被请求的数据包。然后,全局序列管理器400接收1414来自可用的目标客户端的被请求的数据包。
无论特定数据数据包是否可用,全局序列管理器400判断1502是否需要更多数据包并可用于被请求的数据单元。如果需要更多数据包,则全局序列管理器400向对应的目标客户端发送1312必需的数据包请求。然后,所显示的恢复方法1300按上文所描述的方式继续。
一旦从目标客户端中请求并接收了所有数据数据包(如果可用的话),则全局序列管理器可以判断1504是否有被请求的数据包丢失、损坏或以别的方式不可用。在一个实施例中,全局序列管理器400可以引用存储在配置文件600、700中的客户端数据包冗余参数和数据数据包冗余参数,以访问丢失的数据包的冗余副本。
然后,全局序列管理器400判断1506是否已经检索到足够数量的数据包以汇编所有或部分原始数据。如果有足够的数据包可用,则在一个实施例中,全局序列管理器400使用数据汇编记录1000来汇编1508数据,并向源客户端发送1510数据。然后,源客户端从全局序列管理器400中接收1514部分地或完全汇编的数据。
如果在备份和恢复操作过程中某些数据丢失或以别的方式不可用,则源客户端判断1602是否完全地或充分地重建了数据。如果已经充分地重建了数据,则源客户端判断1612是否有更多数据单元需要恢复,如果有,则返回,以向全局序列管理器400发送1304后续数据恢复请求。然后,所描述的恢复方法1300按上文所描述的方式继续。
如果源客户端判断1602没有充分地重建被请求的数据,则源客户端反复地从全局序列管理器400请求1604剩余的数据数据包。全局序列管理器400判断1608是否已经穷尽了所有恢复尝试,如果没有,则在向目标客户端发送1312a随后的数据包请求之前等待1610预先确定的延迟期。或者,全局序列管理器可以等待1610随机延迟期,而不是预先确定的延迟期。例如,在一个实施例中,全局序列管理器400可以等待24小时。在另一个实施例中,全局序列管理器400可以在发送1312随后的数据包请求之前等到下一个工作日的开始。以前不可用的目标客户端可以在此延迟时间内对网格系统100可用。
然后,所显示的恢复方法1300按上文所描述的方式继续,直到被请求的数据单元完成或直到穷尽了所有恢复尝试。如果所有数据恢复尝试都已经穷尽,而数据没有完成,则全局序列管理器400可以将丢失的数据和穷尽的尝试通知1614给源客户端。源客户端从全局序列管理器400接收1618有关丢失的数据的通知和所描述的恢复方法1300,然后结束1620。
和上文所讨论的备份方法1100和恢复方法1300一起,网格系统100可以包括对客户端预订程序进行管理所需的组件,客户端预订程序允许客户端104-110为对网格系统100的备份和恢复功能进行的访问进行支付。在一个实施例中,图3的预订管理器312可以被配置为对这种客户端预订系统进行管理。客户端预订系统可以允许很多源和目标客户端。每一个客户端的预订费可以取决于要存储的数据量,源客户端所需的备份的可靠性和可访问性,专用于网格系统的本地客户端性能资源的量以及分配的资源随着时间经过的一致性。影响网格系统100的性能的其他因数也可以用来判断特定客户端104-110的费用。
进一步讨论预订管理器312,在一个实施例中,预订管理器312是这样的一种设备用于管理在确定用户费用的过程中收集、使用或产生的信息,控制服务级别,控制服务的使用,控制性能资源等等提供给网格应用,或从客户、企业等等或向客户、企业提供性能资源等等的情况。
在一个实施例中,预订管理器312至少可以有两个用途。首先,它可以基于用户使用网格资源的情况和/或用户向网格提供性能资源的情况,确定向用户征收的使用费。其次,预订管理器312可以控制对网格系统100和网格资源的访问、使用、使用级别等等。预订管理器312还可以基于这里所描述的自治策略控制客户端性能资源向网格系统100的分配、提供的级别等等。
为了管理各种客户端400向网格系统100的预订,预订管理器312可以创建和存储客户端配置文件、全局配置文件和客户配置文件。在一个实施例中,预订管理器312的全局配置文件可以包含有关性能资源分配和使用情况的信息,才能确定特定客户的使用费。在一个实施例中,预订管理器312的全局配置文件可以对所有性能资源和使用网格系统100的客户端400通用。
在一个实施例中,客户配置文件包含将全局配置文件与特定客户关联的信息。客户配置文件可以收集有关特定客户的信息,包括有关客户端性能资源分配和本地调用的网格应用的信息。客户配置文件可以用来确定向客户收取的总费用。同样,在一个实施例中,预订管理器312中的客户端配置文件可以包含对应于特定客户端400的类似的信息。
在一个实施例中,预订管理器312基于客户端400为网格应用使用网格系统100的瞬时、平均、最大、最小、计划、预留、峰值等等使用情况中的一个或多个确定使用费。在另一个实施例中,预订管理器312可以跟踪客户端400向网格系统100分配客户端性能资源的情况。预订管理器312可以跟踪提供的级别的瞬时值、平均值、最大值、最小值、计划值、预留值、峰值等等中的一个或多个。在另一个实施例中,预订管理器312跟踪上面所列的因素中的一个或多个的组合。
在另一个实施例中,预订管理器312可以监视和控制全局自治管理器300或客户端400执行自治策略的情况。例如,一家企业可以为备份检索网格应用预订网格系统100。为降低成本,该企业可以决定从所连接的客户端400中的每一个客户端向网格系统100提供性能资源。如果用户决定回收特定客户端所分配的性能资源,并将提供的资源降为零,预订管理器312可以改变客户端配置文件和客户配置文件以确定相应的费用。根据预订管理器312的全局配置文件,网格系统100的全局自治管理器300可以为性能资源分配维持上下阈值,从而防止所有分配的资源都被回收。
在另一个实施例中,预订管理器312可以控制客户端400或全局自治管理器300请求的策略更改。预订管理器312的客户配置文件可以防止对资源分配或对客户端400的网格应用使用情况的某些更改。例如,客户端配置文件可以对在预先确定的记帐时间段内客户可能花费的总成本作出限制。如果超过了这些限制,预订管理器312可以阻止客户端400使用某些资源。
在不偏离本发明的精神或基本特征的情况下,本发明可以以其他特定形式来实现。所描述的实施例在各个方面都只作为说明性的,而不是限制性的。因此,本发明的范围不是由前述的说明书来指出,而是由所附的权利要求来指出。权利要求的等效内容的含义和范围内的所有变化都将包括在它们的范围内。
权利要求
1.一种用于跨多个客户端进行数据备份的序列管理设备,该设备包括被配置为从源客户端接收待备份的数据的客户端请求模块;被配置为生成多个目标客户端的不透明序列的序列模块;以及被配置为根据不透明序列在多个目标客户端上存储数据的数据包存储模块。
2.根据权利要求1所述的设备,进一步包括被配置为对元数据文件进行管理的全局配置文件管理模块,所述元数据文件说明在多个目标客户端上备份的数据。
3.根据权利要求2所述的设备,其中数据文件是从包括全局客户端配置文件、源客户端配置文件、源数据记录、目标数据记录、数据汇编记录以及全局备份日志的组中选择的。
4.根据权利要求2所述的设备,其中全局配置文件管理模块被进一步配置为使用对应于数据的唯一数据标识符将数据映射到源客户端,所述唯一数据标识符表示数据的与其他数据相比的唯一性。
5.根据权利要求4所述的设备,其中全局配置文件管理模块被进一步配置为将唯一数据标识符映射到在其上面存储了数据的相同副本的第二源客户端。
6.根据权利要求1所述的设备,进一步包括被配置为响应来自源客户端的恢复请求而检索在多个目标客户端中的一个目标客户端上备份的至少一部分数据的数据包检索模块。
7.根据权利要求6所述的设备,其中数据包检索模块被进一步配置为根据由序列模块所生成的不透明序列来检索在多个目标客户端中的一个目标客户端上备份的至少一部分数据。
8.根据权利要求1所述的设备,进一步包括被配置为响应来自源客户端的恢复请求,在检索在多个目标客户端中的一个目标客户端上备份的至少一部分数据之后,以可理解的格式汇编数据的数据汇编模块。
9.根据权利要求1所述的设备,其中数据包存储模块被进一步配置为将数据分为多个数据数据包,并将数据数据包存储在多个目标客户端上。
10.根据权利要求9所述的设备,进一步包括被配置为在将数据包存储在多个目标客户端上之前压缩数据数据包内的数据的压缩模块。
11.根据权利要求9所述的设备,进一步包括被配置为在将数据包存储在多个目标客户端上之前加密数据数据包内的数据的加密模块。
12.根据权利要求9所述的设备,进一步包括被配置为在将数据包存储在多个目标客户端上之前创建至少一个数据数据包的冗余数据数据包的冗余模块。
13.根据权利要求12所述的设备,其中数据包存储模块被进一步配置为根据不透明序列将冗余数据数据包存储在多个目标客户端中的一个目标客户端上。
14.根据权利要求9所述的设备,其中数据包存储模块根据数据包邻近参数将数据包存储在多个目标客户端上,所述数据包邻近参数定义第一目标客户端和第二目标客户端之间的最小和最大距离中的至少一个。
15.根据权利要求1所述的设备,其中数据包存储模块根据备份邻近参数将数据存储在多个目标客户端上,备份邻近参数定义源客户端和多个目标客户端中的每一个目标客户端之间的最小和最大距离中的至少一个。
16.一种用于跨多个客户端进行数据备份的方法,该方法包括从源客户端接收待备份的数据;生成多个目标客户端的不透明序列;以及根据不透明序列在多个目标客户端上存储数据。
17.根据权利要求16所述的方法,进一步包括对说明在多个目标客户端上备份的数据的元数据文件进行管理,所述数据文件包括全局客户端配置文件、源客户端配置文件、源数据记录、目标数据记录、数据汇编记录以及全局备份日志中的一个。
18.根据权利要求16所述的方法,进一步包括将数据分为多个数据数据包,并将数据数据包存储在多个目标客户端上。
19.根据权利要求16所述的方法,进一步包括使用对应于数据的唯一数据标识符将数据映射到源客户端,所述唯一数据标识符表示数据的与其他数据相比的唯一性。
20.根据权利要求16所述的方法,进一步包括对源客户端和多个目标客户端的合同预订进行管理。
21.根据权利要求16所述的方法,进一步包括跟踪资源分配参数,其中资源分配参数是源存储分配参数、目标存储分配参数、网络分配参数、客户端处理器参数以及客户端带宽参数中的一个。
22.一种计算机可读取的存储介质,包括被配置为执行用于跨多个客户端进行数据备份的方法的计算机可读代码,该方法包括从源客户端接收待备份的数据;生成多个目标客户端的不透明序列;以及根据不透明序列在多个目标客户端上存储数据。
23.根据权利要求22所述的计算机可读取的存储介质,其中,该方法进一步包括对说明在多个目标客户端上备份的数据的元数据文件进行管理,所述数据文件包括全局客户端配置文件、源客户端配置文件、源数据记录、目标数据记录、数据汇编记录以及全局备份日志中的一个。
24.根据权利要求22所述的计算机可读取的存储介质,其中所述方法进一步包括使用对应于数据的唯一数据标识符将数据映射到源客户端,所述唯一数据标识符表示数据的与其他数据相比的唯一性。
25.根据权利要求22所述的计算机可读取的存储介质,其中所述方法进一步包括响应来自源客户端的恢复请求,根据不透明序列,检索在多个目标客户端中的一个目标客户端上备份的至少一部分数据。
26.根据权利要求22所述的计算机可读取的存储介质,其中所述方法进一步包括,响应接收来自源客户端的恢复请求,并在检索在多个目标客户端中的一个目标客户端上备份的至少一部分数据之后,以可理解的格式汇编数据。
27.根据权利要求22所述的计算机可读取的存储介质,其中所述方法进一步包括将数据分为多个数据数据包,并将数据数据包存储在多个目标客户端上。
28.根据权利要求22所述的计算机可读取的存储介质,其中所述方法进一步包括根据数据包邻近参数将数据数据包存储在多个目标客户端上,所述数据包邻近参数定义第一目标客户端和第二目标客户端之间的最小和最大距离中的至少一个。
29.根据权利要求22所述的计算机可读取的存储介质,其中所述方法进一步包括,在将数据存储在多个目标客户端上之前对数据进行修改,其中所述修改数据的过程包括对至少一部分数据执行压缩、加密以及复制中的一项。
30.根据权利要求22所述的计算机可读取的存储介质,其中所述方法进一步包括根据备份邻近参数将数据存储在多个目标客户端上,所述备份邻近参数定义源客户端和多个目标客户端中的每一个目标客户端之间的最小和最大距离中的至少一个。
全文摘要
说明了用于在网格计算系统上跨多个客户端进行数据备份的设备、系统和方法。序列管理设备包括客户端请求模块、序列模块以及数据包存储模块。序列模块被配置为从源客户端接收待备份的数据。序列模块被配置为生成不透明序列键,该键识别网格计算系统上的一个或多个目标客户端。数据包存储模块被配置为根据不透明序列键将来自源客户端的数据的备份副本存储在多个目标客户端上。不透明序列键可以由序列管理设备生成,并且只能由序列管理设备知道,以便为在多个目标客户端上备份的数据维护最小的安全级别。
文档编号G06F11/14GK1894930SQ200480037303
公开日2007年1月10日 申请日期2004年11月8日 优先权日2003年12月15日
发明者约瑟夫·J.·法图拉 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1