专利名称:一种数据存储方法和系统的制作方法
技术领域:
本发明涉及数据处理领域,具体涉及一种数据存储方法和系统。
技术背景
随着数字信息化速度的加快,数据量和访问量爆炸性的增加,作为数据保护的数 据的复制和备份正在面临着巨大的考验。
由于数据归档的规范性等一系列问题,造成了有大量的重复数据存在于物理存储 设备中,从而浪费了大量物理存储空间,许多企业不得不因此加大对存储硬件设备的投入, 增加了许多不必要的开销。
目前主流的数据远程复制方式有完全复制、差量复制和差分复制,这三种实施数 据复制的三种策略中,并不能从本质上完全解决数据复制的性能和效率问题,因为不论是 完全复制、差量复制或是差分复制,其复制的数据存在大量的冗余,许多数据被一而再再而 三的重复复制,增加了数据复制的时间开销,同时也带来了在数据复制过程中的安全隐患。发明内容
本发明要解决的技术问题是提供一种数据存储方法和系统,能够节省数据在物理 存储实体上的空间资源,从而提高数据远程复制的效率和安全性。
为了解决上述问题,本发明提供了一种数据存储方法,包括
将各存储的文件分割为预定大小的数据段;
为分割成的各数据段生成唯一对应于该数据段的标识信息,所述标识信息用于携 带所对应的数据段的属性信息;
比较各数据段的内容,找出重复数据;
将内容相同的两份或两份以上数据作为一组;对于各组重复数据,保留其中一份 数据,并将该份数据的物理存储位置保存为该组中其他各份数据的冗余数据水印;如果一 个数据段存在重复数据,则将该数据段中的重复数据用其冗余数据水印代替。
优选地,所述比较各数据段的内容,找出重复数据的步骤中是采用KMP算法进行 比较,找到最大长度的重复数据。
优选地,各数据段的唯一标识信息可以但不限于采用红黑树的形式进行存储。
优选地,所述将数据段中的重复数据用其冗余数据水印代替的步骤包括
将该数据段中的重复数据删除;
在该数据段的唯一标识信息中,增加所删除的重复数据在该数据段中的位置,以 及所删除的重复数据的冗余数据水印。
优选地,所述的方法还包括
当访问数据时,如果所访问的数据段中包含冗余数据水印,则从该冗余数据水印 所表示的物理存储位置访问该冗余数据水印替代的数据。
本发明还提供了一种数据存储系统,包括
分割模块,用于将各存储的文件分割为预定大小的数据段;
索引模块,用于为分割成的各数据段生成唯一对应于该数据段的标识信息,所述 标识信息用于携带所对应的数据段的属性信息;
比较模块,用于比较各数据段的内容,找出重复数据;
处理模块,用于将内容相同的两份或两份以上数据作为一组;对于各组重复数据, 保留其中一份数据,并将该份数据的物理存储位置保存为该组中其他各份数据的冗余数据 水印;如果一个数据段存在重复数据,则将该数据段中的重复数据用其冗余数据水印代替。
优选地,所述比较模块采用KMP算法进行比较,找到最大长度的重复数据。
优选地,所述索引模块采用红黑树的形式存储各数据段的唯一标识信息。
优选地,所述处理单元将数据段中的重复数据用其冗余数据水印代替是指
所述处理单元将该数据段中的重复数据删除;在该数据段的唯一标识信息中,增 加所删除的重复数据在该数据段中的位置,以及所删除的重复数据的冗余数据水印。
优选地,所述的系统还包括
数据重定向模块,用于当收到对数据段的访问请求时,如果该数据段中包含冗余 数据水印,则将对于该冗余数据水印对应的数据的访问请求指向该冗余数据水印表示的物理存储位置。
本发明的技术方案消减了冗余数据,能提高存储空间利用率,显著的降低网络复 制数据所需的带宽,有效的增强了文件远程复制时的效率、高可靠性和存储空间利用率;由 于减少了传输的数据和其相关的传输时间,因此也有效的增强了数据在物理存储实体上的 安全性和传输过程中的安全性,同时也增强了数据远程复制的适用范围,使其适用于更广 的应用部署,丰富了存储系统的架构。
图1为实施例一的数据存储方法的流程示意图2为实施例二的数据存储系统的示意框图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结 合,均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机 可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况 下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一,一种数据存储方法,如图1所示,包括
将各存储的文件分割为预定大小的数据段;
为分割成的各数据段生成唯一对应于该数据段的标识信息,所述标识信息用于携 带所对应的数据段的属性信息;
比较各数据段的内容,找出重复数据;
将内容相同的两份或两份以上数据作为一组;对于各组重复数据,保留其中一份 数据,并将该份数据的物理存储位置保存为该组中其他各份数据的冗余数据水印;如果一个数据段存在重复数据,则将该数据段中的重复数据用其冗余数据水印代替。
本实施例中,所述将各存储的文件分割为预定大小的数据段的步骤可以是在系统 初始化时先进行一次,在初始化时对整个物理存储实体中存储的文件全部进行一次扫描, 通过扫描对这些文件进行分割;还可以每次有新的文件写入物理存储实体的时候都进行一 次,对新写入物理存储实体的文件进行分割。相应的,每次分割后进行比较;新写入文件时, 可以不用只将已有数据段和新写入的文件分割而成的数据段进行比较,而不用再将已有数 据段之间进行比较。
本实施例中,所述唯一标识信息可以称为数据指纹。
本实施例中,所述数据段的属性信息可以但不限于包括该数据段所属文件、该数 据段在所属文件中的位置等。
本实施例中,所述比较各数据段的内容,找出重复数据的步骤中,可以但不限于采 用KMP算法进行比较,找到最大长度的重复数据;还可以调整对比颗粒度,比如是N个字母 或字符(N为正整数)。
本实施例中,各数据段的唯一标识信息可以但不限于采用红黑树的形式进行存 储,提高内容信息检索的效率和对物理存储实体的文件的相关信息进行删除的功能。
本实施例中,所述将数据段中的重复数据用其冗余数据水印代替的步骤具体可以 包括
将该数据段中的重复数据删除;
在该数据段的唯一标识信息中,增加所删除的重复数据在该数据段中的位置,以 及所删除的重复数据的冗余数据水印。
如果一个数据段中有多个重复数据时,可以在该数据段的唯一标识信息中分别记 录各重复数据的冗余数据水印。
本实施例中,所述方法还可以包括
当访问数据时,如果所访问的数据段中包含冗余数据水印,则从该冗余数据水印 所表示的物理存储位置访问该冗余数据水印替代的数据。
这里的访问包括“查看”、“复制”、“剪切”等。
可见,采用本实施例的方案中,当对这些数据进行远程复制时,由于减少了冗余数 据而减少了传输的数据量和传输时间,因此提高了远程复制的可靠性和安全性。
实施例二,一种数据存储系统,如图2所示,包括
分割模块,用于将各存储的文件分割为预定大小的数据段;
索引模块,用于为分割成的各数据段生成唯一对应于该数据段的标识信息,所述 标识信息用于携带所对应的数据段的属性信息;
比较模块,用于比较各数据段的内容,找出重复数据;
处理模块,用于将内容相同的两份或两份以上数据作为一组;对于各组重复数据, 保留其中一份数据,并将该份数据的物理存储位置保存为该组中其他各份数据的冗余数据 水印;如果一个数据段存在重复数据,则将该数据段中的重复数据用其冗余数据水印代替。
本实施例中,所述分割模块可以是在系统初始化时和每次有新的文件写入物理存 储实体的时候都进行一次分割。相应的,所述比较模块当有新分割成的数据段时就将新分 割成的数据段和原有数据段进行比较。
本实施例中,所述数据段的属性信息可以但不限于包括该数据段所属文件、该数 据段在所属文件中的位置等。
本实施例中,所述比较模块可以但不限于采用KMP算法进行比较,找到最大长度 的重复数据。
本实施例中,所述索引模块可以但不限于采用红黑树的形式存储各数据段的唯一 标识信息,可提高内容信息检索的效率和对物理存储实体的文件的相关信息进行删除的功 能。
本实施例中,所述处理单元将数据段中的重复数据用其冗余数据水印代替具体可 以是指
所述处理单元将该数据段中的重复数据删除;在该数据段的唯一标识信息中,增 加所删除的重复数据在该数据段中的位置,以及所删除的重复数据的冗余数据水印。
如果一个数据段中有多个重复数据时,所述处理单元可以在该数据段的唯一标识 信息中分别记录各重复数据的冗余数据水印。
本实施例中,所述系统还可以包括
数据重定向模块,用于当收到对数据段的访问请求时,如果该数据段中包含冗余 数据水印,则将对于该冗余数据水印对应的数据的访问请求指向该冗余数据水印表示的物理存储位置。
本实施例中,所述系统还可以包括
远程复制模块,用于对数据进行远程复制。
本实施例中,所述系统还可以包括
界面管理模块,用于为用户提供可管理系统的界面,方便用户与系统功能的交互, 提供了文件信息查询、浏览,日志信息查看,文件远程复制等功能。
其它实现细节可以参照实施例一。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘 等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应 地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明的权利要求的保护范围。
权利要求
1.一种数据存储方法,包括将各存储的文件分割为预定大小的数据段;为分割成的各数据段生成唯一对应于该数据段的标识信息,所述标识信息用于携带所 对应的数据段的属性信息;比较各数据段的内容,找出重复数据;将内容相同的两份或两份以上数据作为一组;对于各组重复数据,保留其中一份数据, 并将该份数据的物理存储位置保存为该组中其他各份数据的冗余数据水印;如果一个数据 段存在重复数据,则将该数据段中的重复数据用其冗余数据水印代替。
2.如权利要求1所述的方法,其特征在于所述比较各数据段的内容,找出重复数据的步骤中是采用KMP算法进行比较,找到最 大长度的重复数据。
3.如权利要求1所述的方法,其特征在于各数据段的唯一标识信息可以但不限于采用红黑树的形式进行存储。
4.如权利要求1到3中任一项所述的方法,其特征在于,所述将数据段中的重复数据用 其冗余数据水印代替的步骤包括将该数据段中的重复数据删除;在该数据段的唯一标识信息中,增加所删除的重复数据在该数据段中的位置,以及所 删除的重复数据的冗余数据水印。
5.如权利要求1到3中任一项所述的方法,其特征在于,还包括当访问数据时,如果所访问的数据段中包含冗余数据水印,则从该冗余数据水印所表 示的物理存储位置访问该冗余数据水印替代的数据。
6.一种数据存储系统,其特征在于,包括分割模块,用于将各存储的文件分割为预定大小的数据段;索引模块,用于为分割成的各数据段生成唯一对应于该数据段的标识信息,所述标识 信息用于携带所对应的数据段的属性信息;比较模块,用于比较各数据段的内容,找出重复数据;处理模块,用于将内容相同的两份或两份以上数据作为一组;对于各组重复数据,保 留其中一份数据,并将该份数据的物理存储位置保存为该组中其他各份数据的冗余数据水 印;如果一个数据段存在重复数据,则将该数据段中的重复数据用其冗余数据水印代替。
7.如权利要求6所述的系统,其特征在于所述比较模块采用KMP算法进行比较,找到最大长度的重复数据。
8.如权利要求6所述的系统,其特征在于所述索引模块采用红黑树的形式存储各数据段的唯一标识信息。
9.如权利要求6到8中任一项所述的系统,其特征在于,所述处理单元将数据段中的重 复数据用其冗余数据水印代替是指所述处理单元将该数据段中的重复数据删除;在该数据段的唯一标识信息中,增加所 删除的重复数据在该数据段中的位置,以及所删除的重复数据的冗余数据水印。
10.如权利要求6到8中任一项所述的系统,其特征在于,还包括数据重定向模块,用于当收到对数据段的访问请求时,如果该数据段中包含冗余数据水印,则将对于该冗余数据水印对应的数据的访问请求指向该冗余数据水印表示的物理存 储位置。
全文摘要
本发明提供了一种数据存储方法和系统;方法包括将各存储的文件分割为预定大小的数据段;为分割成的各数据段生成唯一对应于该数据段的标识信息,所述标识信息用于携带所对应的数据段的属性信息;比较各数据段的内容,找出重复数据;将内容相同的两份或两份以上数据作为一组;对于各组重复数据,保留其中一份数据,并将该份数据的物理存储位置保存为该组中其他各份数据的冗余数据水印;如果一个数据段存在重复数据,则将该数据段中的重复数据用其冗余数据水印代替。本发明能够节省数据在物理存储实体上的空间资源,从而提高数据远程复制的效率和安全性。
文档编号G06F17/30GK102033924SQ201010589269
公开日2011年4月27日 申请日期2010年12月8日 优先权日2010年12月8日
发明者张宇, 张雷, 文中领 申请人:浪潮(北京)电子信息产业有限公司