一种用于存储数据的方法、装置和系统的制作方法

文档序号:8445492阅读:210来源:国知局
一种用于存储数据的方法、装置和系统的制作方法
【技术领域】
[0001] 本发明涉及数据保护领域,更具体地,涉及一种用于存储数据的方法、装置和系 统。
【背景技术】
[0002] 对于存储系统而言,数据的备份非常重要。而在备份系统中,重复数据删除(Data de-duplication)技术是为了减少存储空间而进入的新的技术方案。重复数据技术主要包 括以下几个方面:将数据对象分割为不重叠的数据块(chunk);基于每个数据块的内容为 该数据块生成一个标识(ID);若某一数据块具有唯一的标识,也就是说之前没有存储过带 有该标识的数据块,则将该数据块存储到物理存储设备上,若某一数据块的标识和之前已 经存储到物理存储设备上的数据块的标识相同,则该数据块将被抛弃,只存储一个指向该 具有相同标识的数据块的指针。
[0003] 可以看到,通过重复数据删除技术,可以非常显著的减少备份所需的存储空间。然 而,重复数据删除技术带来了数据损失迅速蔓延的风险。例如,某一个数据对象遭到破坏 时,引用该数据对象中的数据块的其他数据对象也将遭到破坏。这种连锁的破坏导致了重 复数据删除技术无法真正有效的被实施,该技术带来的有益效果也无法实现。
[0004] 因此,为了减小数据损失蔓延的风险,同时也发挥重复数据删除技术的作用,现有 技术中提出了一个折衷的技术方案,基于被引用的次数生成数据片断的整数个副本。也就 是说为数据片断至少要存储一个副本,若某一个数据片断被多次引用,则为了保护这个重 要的数据片段,会为该数据片断存储多个副本。通过采用该技术方案,在存储的数据片断被 损坏后,由于保存有该数据片断的副本,就不会造成引用该数据片断的所有数据对象的破 坏,这样就减少了数据损失蔓延的风险。但是考虑到对于每个数据片断都需要存储一个或 者多个副本,该技术方案需要消耗大量的存储空间,这就降低了存储空间的利用效率,使得 重复数据删除技术带来的减少存储空间需求的效果无法有效的发挥。

【发明内容】

[0005] 基于现有技术中存在的上述问题,本发明实施例提供了一种用于存储数据的方 法、装置和系统,以减少数据损失蔓延风险,并尽可能少的占用物理存储空间。
[0006] 根据本发明的一个方面,提供了一种用于存储数据的方法,所述方法用于重复数 据删除系统,所述方法包括:获得通过重复数据删除得到的数据块;将所述数据块分到至 少一个组中;记录所述数据块的分组信息;对于每个组,基于该组中的数据块计算校验数 据块;存储计算得到的校验数据块;若一个数据块被损坏,则根据该数据块所在组的其他 数据块以及所在组的校验数据块恢复该被损坏的数据块。
[0007] 根据本发明的另一个方面,提供了一种用于存储数据的装置,所述装置用于重复 数据删除系统,所述装置包括:数据块获得模块,被配置为获得通过重复数据删除得到的数 据块;分组模块,被配置为将所述数据块分到至少一个组中;记录模块,被配置为记录所述 数据块的分组信息;计算模块,被配置为对于每个组,基于该组中的数据块计算校验数据 块;存储模块,被配置为存储计算得到的校验数据块;第一恢复模块,被配置为若一个数据 块被损坏,则根据该数据块所在组的其他数据块以及所在组的校验数据块恢复该被损坏的 数据块。
[0008] 根据本发明的另一个方面,提供了一种重复数据删除系统,包括上述用于存储数 据的装置。
[0009] 本发明所提供的技术方案能够在减少数据损失蔓延风险的同时,尽可能少的占用 物理存储空间。
【附图说明】
[0010] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其 它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号 通常代表相同部件。
[0011] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图;
[0012] 图2示出了本发明实施例一种用于存储数据的方法的流程示意图;
[0013] 图3示出了本发明实施例另一种的流程示意图;
[0014] 图4示出了本发明实施例一种用于存储数据的装置的结构示意图;
[0015] 图5示出了本发明实施例一种重复数据删除系统的结构示意图。
【具体实施方式】
[0016] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整的传达给本领域的技术人员。
[0017] 所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。 因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包 括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为"电路"、"模 块"或"系统"。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质 中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0018] 可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计 算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限 于一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便 携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储 器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、 或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程 序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0019] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但 不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0020] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限 于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0021] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机 程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++, 还包括常规的过程式程序设计语言一诸如"C"语言或类似的程序设计语言。程序代码可以 完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部 分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在 涉及远程计算机的情形中,远程计算机可以通过任意种类的网络--包括局域网(LAN)或 广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提 供商来通过因特网连接)。
[0022] 下面将参照本发明实施例的方法、
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1