用于数据备份的方法及设备与流程

文档序号:11286040阅读:301来源:国知局
用于数据备份的方法及设备与流程

本公开的各种实施例总体上涉及存储领域,并更为具体地涉及用于数据备份的方法及设备。



背景技术:

在专用备份设备(purposebuiltbackupappliance,pbba)领域中,去重(de-duplication)技术是最为关键的技术之一。去重操作是一种数据压缩操作,其目的在于在将数据备份到备份设备之前删除重复数据而仅仅备份新的数据,从而有效地减少了重复数据对存储空间的占用。去重是一种计算密集型处理,包括数据分段算法、数据摘要计算算法、摘要索引搜索等。此外,根据用户需要,备份设备通常还提供数据压缩和数据加密选项。可以通过高性能的中央处理器(cpu)来实现这一目的。然而,这种cpu非常昂贵,不利于普及使用。另一方面,基于软件的解决方案在成本、适用范围和性能方面,同样存在着诸多缺陷。



技术实现要素:

为了解决上述问题,本公开的实施例提供了一种用于数据备份的方法和设备。本公开的第一方面提供了一种用于数据备份的方法,该方法使目标数据段在通过原有的主备份设备之前首先通过辅备份设备来进行数据分段以及摘要数据的生成。该方法具体包括:在与主备份设备耦合的辅备份设备处,将待备份的目标数据划分为多个数据段;生成用于该多个数据段的每个数据段的相应摘要数据,该摘要数据为长度小于相应数据段长度的映射数据段;以及向该主备份设备提供该摘要数据以用于该目标数据在该主备份设备处的备份。

在某些实施例中,该方法还包括:在对该目标数据进行分段处理之前,通过协议处理,从输入到该辅备份设备的客户端数据中获得该目标数据。

在某些实施例中,生成该摘要数据包括:通过为该多个数据段确定相应散列值(也称作哈希值)来生成该摘要数据。

在某些实施例中,该方法还包括:从该主备份设备接收从该多个数据段中确定的重复数据段的第一指示,该重复数据段的该摘要数据与该主备份设备中存储的先前摘要数据匹配;以及响应于接收到该第一指示,将该重复数据段从该辅备份设备中移除。

在某些实施例中,该方法还包括:从该主备份设备接收从该多个数据段中确定的新数据段的第二指示,该新数据段的该摘要数据与该主备份设备中存储的先前摘要数据不匹配;以及响应于接收到该第二指示,对该新数据段执行预处理。

在某些实施例中,对该新数据段执行预处理包括以下至少一个:压缩该新数据段以及加密该新数据段。

在某些实施例中,该方法还包括:将经过预处理的该新数据段提供给该主备份设备以用于存储。

本公开的第二方面提供了一种用于数据备份的设备,该设备包括:与主备份设备耦合的辅备份设备,该辅备份设备进一步包括:数据分段装置,可操作以将待备份的目标数据划分为多个数据段;摘要数据生成装置,可操作以生成针对该多个数据段的每个数据段的相应摘要数据,并且向该主备份设备提供该摘要数据以用于该目标数据在该主备份设备处的备份,其中,该摘要数据为长度小于相应数据段长度的映射数据段。

本公开的第三方面提供了一种用于数据备份的计算机程序产品,该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第一方面中的方法的步骤。

应当理解,发明内容部分并非旨在标识本公开的实施例的关键或 重要特征,亦非旨在用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。

附图说明

通过对附图中的示例实施例的描述,本公开的特征和优点将易于理解,在附图中:

图1示出了根据本公开的实施例的用于数据备份的示意性系统图;

图2示出了根据本公开的实施例的用于数据备份的方法的流程图;

图3示出了根据本公开的另外的实施例的用于数据备份的方法的流程图;

图4示出了根据本公开实施例的用于数据备份的设备的框图;

图5示出了根据本公开实施例的一个包含有多个soc设备的辅备份设备的内部结构图;

图6示出了根据本公开实施例的一个soc设备的内部结构图;

图7示出了根据本公开实施例的包括多个客户端以及多个存储阵列的用于数据备份的系统的结构图;以及

图8示出了一个可以用来实施本公开的实施例的设备的示意性框图。

在所有附图中,相同或相似参考数字表示相同或相似元素。

具体实施方式

现在将参考一些示例实施例描述本公开的原理。可以理解,这些实施例仅出于说明并且帮助本领域的技术人员理解和实施例本公开的目的而描述,而非建议对本公开的范围的任何限制。在此描述的本公开的内容可以以下文描述的方式之外的各种方式实施。

如本文中所述,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”。术语“基于”可以被理解为“至少部分地基于”。术语“一个实施例”可以被理解为“至少一个实施例”。术语“另一实施例”可以被理解为“至少一个其它实施例”。

图1示出了根据本公开的实施例的用于数据备份的系统100的示意性示图。如图所示,系统100包括客户端102、主备份设备104、以及与主备份设备104耦合的辅备份设备106。主备份设备104与辅备份设备106可以例如经由以太网而彼此耦合。在图1中,主备份设备104包括控制器114以及用于存储备份数据的存储装置阵列116。辅备份设备106至少包括数据分段装置108、摘要数据生成装置110、以及数据通信装置112。

根据本公开的实施例,在操作中,客户端102可以将待备份的目标数据传递给向辅备份设备106,而不是如传统方案中那样直接发送给主备份设备104。辅备份设备106的数据分段装置108将目标数据划分为多个数据段。这些数据段随后被提供给摘要数据生成装置110。摘要数据生成装置110生成针对该多个数据段的相应摘要数据。特别地,根据本发明的实施例,摘要数据为长度小于相应数据段长度但代表了相应数据段的映射数据段。

摘要数据生成装置110随后向主备份设备104提供生成的摘要数据。在从辅部分设备106中的摘要数据生成装置110中接收到生成的摘要数据后,主备份设备104中的控制器114将所接收的每个摘要数据与已有摘要数据逐一地进行比较,以确定由摘要数据表示的数据段是重复数据段还是新数据段。如果该摘要数据与已有摘要数据中的任何一个相匹配,则确定该摘要数据表示的相应数据段为重复数据段,并且如果该摘要数据不与已有摘要数据中的任何一个相匹配,则确定该摘要数据表示的相应数据段为新数据段。仅在确定了该摘要数据表示的数据段为新数据段时,才将该新数据段从辅备份设备106中的数据通信装置112中发送到主备份设备104中的存储器阵列116中。对目标数据的各个数据段重复上述过程,以最终完成该目标数据在主备份设备104处的备份。

根据本公开的实施例,一部分去重处理从主备份设备104被转移给辅部分设备106,从而提高去重的性能。换言之,该辅部分设备106可以充当一种“附接盒(add-onbox)”,它可以被实现为在去重以及 压缩或加密算法方面具有非常高的性能的soc卡等。而且,本公开的实施例无需对原有的主备份设备104进行任何改动,因此有利于兼容性和扩展性。而且,通过使用摘要数据,使用少量的字节数(例如,仅20个字节)就可以代表各个数据段,以使得在后面进行去重操作时,无需使每个数据段(例如,平均长度为8kb)以逐字节的方式与已有数据段进行比较,而是只需将表示相应数据段的具有少量字节数的摘要数据与已有的摘要数据比较即可。这大幅降低了主设备104的控制器114的计算复杂度。

下面将参考图2详细描述辅备份设备106的功能/操作。具体而言,图2示出了根据本公开的实施例的用于数据备份的方法200的流程图。方法200可由辅备份设备106来实现。

方法200开始于步骤210,在该步骤,在与主备份设备104耦合的辅备份设备106处,将待备份的目标数据划分为多个数据段。在某些实施例中,对目标数据的分段处理采用不定长的方式。这是由于用户对一个文件(例如,gb数量级的文件)的改动可能很小,例如,仅增加几个字节。在这种情况下,如果采用定长分段处理,则后面所有没有被改变的数据段也都将随之被改变。采用不定长分段处理则可以适应性地仅关注于发生改变的那些数据段,并且使得未发生改变的那些数据段不受影响,从而提高了去重的效率。但需要指出,本公开并不旨在限定用于数据分段处理的算法,任何数据分段算法均应落入本公开的保护范围内。

方法200进行到步骤220,在此生成用于该多个数据段的相应摘要数据。例如,在某些实施例中,可以为每个数据段生成一个对应的摘要数据。备选地,为多个数据段生成一个摘要数据也是可能的。本公开的范围在此方面不受限制。

根据本公开的实施例,所生成的摘要数据为长度小于相应数据段长度的映射数据段。为此,在某些实施例中,可以通过为该多个数据段确定相应散列值(也称作哈希值)来生成该摘要数据。例如,在一个实施例中,可以为各个数据段基于安全哈希算法sha1来确定相应 的摘要数据。使用例如sha1算法获得的摘要数据在降低数据量的同时,可以显著降低去重判断时的错误率。此外,控制器114中的计算复杂度得以降低。同样需要指出,本公开并不旨在限定用于生成摘要数据的算法,任何摘要数据生成算法均应落入本公开的保护范围内。

接下来,在步骤230,向主备份设备104提供摘要数据,以便主备份设备104对目标数据进行备份。如上所述,由于目标数据段首先通过辅备份设备106来进行数据分段和摘要数据的生成,主备份设备104不再需要执行分段操作以及摘要数据生成操作。这降低了主备份设备104在这些方面的负载。

图3示出了根据本公开的另一实施例的用于数据备份的方法300的流程图。方法300中的步骤320-340分别对应于方法200中的210-230,在此不再赘述。下面将主要描述方法300中包括的可选的附加步骤。

在310处,在对目标数据进行分段处理(即步骤210/320)之前,通过协议处理从输入到辅备份设备106的客户端数据中获得目标数据。附加的协议处理操作使得能够从通过例如网络接口卡接口(nic)或光纤通道接口(fc)等不同接口输入的客户端数据分组中提取相应的原始数据作为目标数据,以便用于随后的分段处理。

在某些实施例,方法300还可以包括在步骤340之后执行的步骤350和360。具体而言,在步骤350处,辅备份设备106可以从主备份设备104接收从该多个数据段中确定的重复数据段的第一指示。在此使用的术语“重复数据段”是指其摘要数据与主备份设备104中存储的先前摘要数据匹配的那些数据段。具体而言,在操作中,主备份设备104中的控制器114查遍全部已有摘要数据并尝试找到与输入的该摘要数据匹配的先前的摘要数据。如果该摘要数据与已有摘要数据中的任何一个相匹配(也称为摘要数据命中),则主备份设备104中的控制器114确定该摘要数据表示的相应数据段为重复数据段。响应于接收到该第一指示,将该重复数据段从辅备份设备106中移除。

在传统去重技术中,很难实现在线全局去重。这是因为全局化去 重需要进行全局索引搜索以匹配数据摘要。一些规模扩展的解决方案仅仅可以实现全局去重的后处理。与此不同,在本公开的实施例中,数据在被备份到主备份设备104之前就进行了高效的在线去重操作。以此方式,有效地减少了重复数据对存储空间的占用,提高了去重的效率和性能。

备选地或附加地,在步骤360,辅备份设备106可以从主备份设备104接收从该多个数据段中确定的新数据段的第二指示。在此使用的术语“新数据段”是指其摘要数据与主备份设备104中存储的先前摘要数据不匹配的那些数据段。类似地,在操作中,如果主备份设备104中的控制器114查遍全部已有摘要数据而并没有其中找到任何一个与输入的该摘要数据匹配的摘要数据(也称为摘要数据未命中),则主备份设备104中的控制器114确定该摘要数据表示的相应数据段为新数据段。响应于接收到第二指示,辅备份设备106可以在步骤365对新数据段执行预处理。

根据本公开的实施例,在步骤365处对新数据段执行的预处理可以包括以下至少一个:压缩新数据段;以及加密新数据段。如上所述,由于对重复数据段的去重操作以及对新数据段的压缩和加密操作均通过辅备份设备106来执行,因此,同样不再需要在原有的主备份设备104中执行去重、压缩以及加密操作。这进一步卸载了主备份设备104的负载。

继而,方法300可以进行到步骤370。在370处,将经过预处理的该新数据段提供给主备份设备104以用于存储,并完成对该新数据段在主备份设备104中的备份。主备份设备104对数据的备份可以使用任何目前已知或者将来开发的技术实现,在此不加赘述以避免混淆本公开的主题。

图4示出了根据本公开实施例的用于数据备份的辅备份设备106的框图。在图4所示的示例中,结合图1,辅备份设备106包括数据分段装置108、摘要数据生成装置110以及数据通信装置112。数据分段装置108可操作以将待备份的目标数据划分为多个数据段。摘要 数据生成装置110可操作以生成针对该多个数据段的每个数据段的相应摘要数据。在某些实施例中,如上所述,摘要数据生成装置110可以为多个数据段确定相应散列值,从而生成摘要数据。摘要数据可由数据通信装置112发送给主备份设备104。

在某些实施例中,辅备份设备106还可以包括协议处理装置402,可操作以在对该目标数据进行分段处理之前从输入到辅备份设备106的客户端数据中获得该目标数据。在某些实施例中,辅备份设备106还包括指示接收装置412,用于从主备份设备104接收从该多个数据段中确定的重复数据段的第一指示。辅备份设备106中的重复数据删除装置404可响应于接收到第一指示而将该重复数据段从辅备份设备106中移除。

指示接收装置412还可以从主备份设备104接收从该多个数据段中确定的新数据段的第二指示。作为响应,数据预处理装置406可以对该新数据段执行预处理。如图所示,新数据预处理装置406可以包括以下至少一个:数据压缩装置408,用于压缩该新数据段;以及数据加密装置410,用于加密该新数据段。经过预处理的新数据段可由数据通信装置112提供给主备份设备104以便存储。

根据本公开的实施例,辅备份设备106可以利用各种方式来实现。例如,在某些实施例中,辅备份设备106可以被实现为一个或多个片上系统(soc)。图5示出了根据本公开实施例的被实现为soc的辅备份设备106的框图。

在图5所示的实施例中,辅备份设备106可以被实现为soc卡,其例如可以是一种外部设备互连(pci)设备并且通过pci插槽耦合至计算机。辅备份设备106中包括处理单元cpu540。在某些实施例中,cpu540仅被用来管理各个soc卡520,例如用于检查各个soc卡520的状态,因此可以利用成本较低的器件来实现。除此之外,辅备份设备106中还包含用于为整个辅备份设备106提供电能的电源模块580以及用于冷却整个辅备份设备106的风扇模块560。需要指出,由于soc卡中运行有用于压缩或加密任务的芯片,因此,风扇模块 560的功率应当足够强大以将这些soc卡冷却,或者也可以为每个soc卡设置一个单独的风扇模块。

图6示出示出了图5中描绘的soc设备520的示意性框图。如图6所示,soc设备520包括nic端口604-1和604-2,用于与客户端连接来接收客户端数据以及与主备份设备104连接来将新数据段发送给主备份设备104。例如,nic端口604-1用于接收客户端数据,并且端口604-2用于将新数据经由其发送给主备份设备104。soc设备620还包括作为数据分段装置的处理器602。在图6所示的实现中,soc设备520还包括专用的摘要数据芯片606、数据压缩芯片608、以及数据加密芯片610,用于高效执行上述方法200或方法300中的相关操作。也就是说,摘要数据生成、数据压缩、数据加密等模块在此实施例中被实现为芯片。

图7示出了根据本公开实施例的用于数据备份的系统700的结构图。如图7所示,系统700包括:多个客户端102-1、102-2、…、102-n;辅备份设备106;以及与辅备份设备106耦合的主备份设备104。系统700还包括网络交换机702,以及用于确定对哪个客户端的哪些数据进行备份的备份服务器704。

主备份设备104中包括上文描述的控制器114以及多个存储器阵列116-1、116-2、…、116-n。在此示例实现中,控制器114包括nic接口(或fc接口)706和序列式主总线适配器(sashba)708,以用于连接多个存储器阵列。多个存储器阵列116-1、116-2、…、116-n中的每一个阵列通常包括给定数目(例如,10-60个)存储设备(例如,磁盘)。多个阵列被连接在一起形成“简单磁盘捆绑”(jbod)以共同为备份数据提供存储空间。在操作中,辅备份设备106可以如上文所述的操作,以便与主备份设备104配合工作,实现数据的增量备份。

图8示出了一个可以用来实施本公开的实施例的设备800的示意性框图。例如,辅备份设备106可以在设备800中实现。如图所示,设备800包括中央处理单元(cpu)801,其可以根据存储在只读存 储器(rom)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序指令,来执行各种适当的动作和处理。在ram803中,还可存储设备800操作所需的各种程序和数据。cpu801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。

设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的各个过程和处理,例如方法200和/或300,可由处理单元801执行。例如,在一些实施例中,方法200和/或300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到ram803并由cpu801执行时,可以执行上文描述的方法200和/或300的一个或多个步骤。

综上所述,本公开的各个实施例提供了一种用于数据备份的方法及设备。由于将一部分例如数据分段、压缩、加密等尤其适于(例如包含了多个soc卡的)辅备份设备106执行的操作移入辅备份设备106中执行,因此降低了对cpu的资源占用,从而在整体上实现了较高的备份性能。此外,利用本公开的所述方法以及设备执行的数据备份操作,使得数据在被备份到主存储设备之前就进行了高效的在线去重操作,从而有效地减少了重复数据对存储空间的占用。

总体而言,本公开的各种实施例可以以硬件或专用电路、软件、逻辑或其任意组合实施。一些方面可以以硬件实施,而其它一些方面可以以固件或软件实施,该固件或软件可以由控制器、微处理器或其它计算设备执行。虽然本公开的各种方面被示出和描述为框图、流程 图或使用其它一些绘图表示,但是可以理解本文描述的框、设备、系统、技术或方法可以以非限制性的方式以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备或其一些组合实施。

此外,虽然操作以特定顺序描述,但是这不应被理解为要求这类操作以所示的顺序执行或是以顺序序列执行,或是要求所有所示的操作被执行以实现期望结果。在一些情形下,多任务或并行处理可以是有利的。类似地,虽然若干具体实现方式的细节在上面的讨论中被包含,但是这些不应被解释为对本公开的范围的任何限制,而是特征的描述仅是针对具体实施例。在分离的一些实施例中描述的某些特征也可以在单个实施例中组合地执行。相反对,在单个实施例中描述的各种特征也可以在多个实施例中分离地实施或是以任何合适的子组合的方式实施。

虽然本公开以具体结构特征和/或方法动作来描述,但是可以理解,在所附权利要求书中限定的技术方案的范围并不必然限于上述具体特征或动作。换言之,以上描述的仅仅是本公开的可选实施例。对于本领域的技术人员来说,本公开的实施例可以存在各种更改和变化。凡在本公开的精神和原则之内所作的任何修改、等效替换、改进等,均包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1