带有加密段的段去除重复系统的制作方法

文档序号:7912959阅读:149来源:国知局
专利名称:带有加密段的段去除重复系统的制作方法
带有加密段的段去除重复系统
背景技术
段数据重复存储系统通过只在与新接收的段相同的段以前未存储的情况下存储新接收的段,以空间有效的方式存储数据。然而,存储系统的一些用户想要能够在存储之前加密数据以便确保安全性。然而,加密一般不允许识别相同段,并因此消除了去除重复(deduplication)系统的效率。此外,一些去除重复系统将想为要求存储的数据使用压缩。然而,压缩一般不允许识别相同段,并因此消除了去除重复系统的效率。



在下面的详细描述和附图中,公开了本发明的各种实施例。图I是示出用于数据存储的系统的一实施例的框图。图2是示出段存储引擎的一实施例的框图。图3是示出存储用户系统的一实施例的框图。图4是示出用于存储数据的过程的一实施例的流程图。图5是示出用于检索数据的过程的流程图。图6是示出存储用户系统的一实施例的框图。图7是示出用于存储数据的过程的一实施例的流程图。图8是示出用于检索数据的过程的流程图。图9是示出存储用户系统的一实施例的框图。图10是示出用于存储数据的过程的一实施例的流程图。图11是示出用于检索数据的过程的流程图。图12A是示出数据结构的一实施例的框图。图12B是示出数据关系的一实施例的框图。图13A是示出数据关系的一实施例的框图。图13B是示出数据关系的一实施例的框图。图13C是示出数据关系的一实施例的框图。
具体实施例方式本发明能够以多种方式来实现,包括实现为过程、设备、系统、组合物、计算机可读存储媒体上实施的计算机程序产品和/或处理器,如配置成执行耦合到处理器的存储器上存储的和/或由所述存储器所提供的指令的处理器。在此说明书中,这些实现或本发明可采用的任何其它形式可称为技术。通常,在本发明范围内可改变公开的过程的步骤顺序。除非另有说明,否则,诸如处理器和存储器等被描述为配置成执行任务的组件可实现为暂时配置成在给定时间执行该任务的组件或制造为执行该任务的特定组件。在本文中使用时,术语“处理器”指配置成处理诸如计算机程序指令等数据的一个或多个装置、电路和/或处理核。本发明一个或多个实施例的详细描述在下面与显示本发明原理的附图一起提供。本发明结合此类实施例进行描述,但本发明并不限于任一实施例。本发明的范围仅受权利要求的限制,并且本发明包括许多备选、修改和等同。许多特定的细节在下面的描述中陈述以便提供本发明的详细理解。提供这些细节以用于示例的目的,并且本发明可在一些或所有这些特定细节不存在的情况下根据权利要求来实践。为了清晰的目的,与本发明相关技术领域中已知的技术材料未详细描述以免不必要地混淆本发明。本文中公开了一种带有段的加密的段去除重复系统。该系统包括处理器和存储器。处理器配置成接收加密段,并且确定加密段是否以前已被存储。通过将数据流、数据块或数据文件分割成一个或多个段并且加密所述一个或多个段的每个段来确定该加密段。在该加密段以前未被存储的情况下,则存储该加密段。本文中公开了一种用于读取加密数据的系统。该系统包括去除重复的存储装置和处理器。处理器配置成从去除重复的存储装置检索一个或多个加密段。通过将数据流、数据块或数据文件分割成一个或多个段并且加密所述一个或多个段的每个段来确定所述一个或多个加密段。处理器还配置成将段解密和组装段以重构数据流、数据块或数据文件。
在一些实施例中,公开了一种带有段的压缩的段去除重复系统。该系统包括处理器和存储器。处理器配置成接收和压缩段,并且确定压缩段是否以前已被存储。通过将数据流、数据块或数据文件分割成一个或多个段并且压缩所述一个或多个段的每个段来确定所述压缩段。在该压缩段以前未被存储的情况下,存储该压缩段。在一些实施例中,公开了一种用于读取压缩数据的系统。该系统包括去除重复的存储装置和处理器。处理器配置成从去除重复的存储装置检索一个或多个压缩段。所述一个或多个压缩段是通过将数据流、数据块或数据文件分割成一个或多个段并且压缩所述一个或多个段的每个段来确定的。处理器还配置成解压缩段和组装段以重构数据流、数据块或数据文件。在一些实施例中,公开了一种用于存储加密及压缩数据的系统。该系统包括配置成确定加密压缩段是否以前已被存储的处理器。所述加密压缩段是通过将数据流、数据块或数据文件分割成一个或多个段并且压缩然后加密所述一个或多个段的每个段来确定的。在该加密压缩段以前未被存储的情况下,存储该加密压缩段。在一些实施例中,公开了一种用于读取加密压缩数据的系统。该系统包括去除重复的存储装置和处理器。处理器配置成将去除重复的存储装置中存储的一个或多个加密压缩段解密。所述一个或多个加密压缩段是通过将数据流、数据块或数据文件分割成一个或多个段并且压缩然后加密所述一个或多个段的每个段来确定的。处理器还配置成解压缩所述一个或多个解密的压缩段,并组装所述一个或多个解密的解压缩段以重构数据流、数据块或数据文件。在一些实施例中,段的加密在系统之间的传送期间和在存储期间为段的数据内容提供了安全性,同时仍提供段的有效的去除重复存储。在一些实施例中,段的压缩提供了系统之间的传送期间的带宽节省和存储期间的存储空间节省,同时仍提供段的有效的去除重复存储。图I是示出用于数据存储的系统的一实施例的框图。在所示示例中,使用存储用户系统Iio的用户或存储用户系统110经网络108访问存储系统100。在各种实施例中,网络108包括有线网络、无线网络、局域网、广域网、因特网或任何其它适当的网络中的一种或多种网络。存储系统100包括系统接口 102、段存储引擎104和多个存储单元(在图I中表示为存储单元112、存储单元114、存储单元116及存储单元118)。通过使用副本存储系统106,存储系统100被复制。例如,通过将存储单元上存储的段和元数据存储到另一存储单元,该存储单元被复制。存储用户系统110将文件、数据流或数据文件分割成段(例如,为一个或多个段识别边界-例如,哈希函数在文件的内容的一部分上运算;在该哈希函数等于某个值、是最小值、是最大值、介于最小长度与最大长度之间和/或是文件的窗口内的极值等时,确定段边界)。段边界被确定,使得两个类似文件、数据流或数据块具有的目标是对这些文件、数据流或数据块的相同部分具有相同段,并且对这些文件、数据流或数据块的非相同部分具有不同段。在各种实施例中,段确定基于数据的内容(使用基于数据内容所计算的值),而不是基于内容(例如,字节计数、文件准则等)或基于内容的准则和基于非内容的准则的组合。在各种实施例中,存储用户系统110加密和/或压缩段。存储用户系统110经网络108发送要由存储系统100存储的段(例如,压缩段、加密段、压缩加密段等)。在各种实施例中,有关如何重构文件、数据流或数据块的信息也从存储用户系统110发送到存储系统100和/或由存储用户系统110存储,或进行对信息的任何其它适当动作。 存储系统100使用系统接口 102接收段。段存储引擎104在存储单元(例如,存储单元112、存储单元114、存储单元116或存储单元118)中存储段。在各种实施例中,存储单元包括一个存储装置、多个存储装置、存储装置的一部分、硬盘驱动器、驱动器阵列、半导体存储器或任何其它适当的存储单元。仅在段以前未在存储单元中存储时,段存储引擎104才在存储单元中存储段。在一些实施例中,通过查看相同的标识符是否已经在用于存储系统100的存储的段的索引中存在,标识符(例如,数字指纹、安全哈希算法哈希值、Rabin哈希等)用于确定段是否以前已存储。在各种实施例中,使用存储系统100,使用存储用户系统110或任何其它适当的系统来确定用于给定段的标识符。在一些实施例中,标识符与相关联的段一起从存储用户系统110发送到存储系统100。存储用户系统110经网络108请求存储系统100上存储的一个或多个段。存储系统100使用系统接口 102接收请求。段存储引擎104查找用于在适当的存储单元中存储文件、数据流或数据块的段。所述一个或多个段经网络108被发送到存储用户系统110。存储用户系统110使用所述一个或多个段来重构文件、数据流或数据块。在各种实施例中,将段解密和/或解压缩或进行任何其它适当的处理以便重构期望的文件、数据流或数据块。在各种实施例中,使用的加密、解密、压缩和/或解压缩系统是与数据段去除重复系统兼容的任何适当的系统-例如,其中给定加密和/或压缩段能够用于识别也被类似地加密和/或压缩的相同段是否以前已存储的系统。在各种实施例中,硬件和/或软件组件或加速器或一个或多个处理器用于压缩、解压缩、加密和/或解密或硬件和/或软件的任何其它适当的组合。在一些实施例中,存储用户系统110是多个存储用户系统之一,并且所述多个系统的每个系统能够使用不同或类似的压缩/解压缩和/或加密系统和/或用于类似加密系统的不同密钥。图2是示出段存储引擎的一实施例的框图。在一些实施例中,图2的系统用于实现图I的段存储引擎104。在所示示例中,段存储引擎200包括接口 202、重复消除器过滤器206、索引210及段存储单元接口 212。段存储引擎200使用接口 202接收段。重复消除器206识别新接收的段是否已经在段存储单元中存储。索引210用于使用存储单元接口 212定位存储单元中的存储段。接口 202接收检索段的请求。接口 202与索引210通信以经存储单元接口 212定位存储单元中存储的适当的段。响应请求,经接口 202提供适当的段。在一些实施例中,元数据信息与段相关联存储-例如,段标识符、源系统、会话信息、用户信息、主机信息、密钥信息、加密类型、压缩信息、压缩类型、格式信息、填充信息、相关联文件、数据流或数据块
坐寸ο图3是示出存储用户系统的一实施例的框图。在一些实施例中,图3的存储用户系统300用于实现图I的存储用户系统110。在所示示例中,存储用户系统300包括存储装置302、存储装置304、存储装置306、存储接口 308、数据分段器/数据重组器310、段加密器 /段解密器312、耦合到网络320的接口 314、映射存储装置316、密钥存储装置318及能够由用户324访问的用户接口 322。用户324能够经用户接口 322请求要存储文件、数据流或数据块。存储接口 308从存储装置302、存储装置304或存储装置306接收要处理的文件、数据流或数据块。在各种实施例中,存储接口 308从外部存储装置(图3中未示出)、外部系统(图3中未示出)或任何其它适当的内部或外部组件、装置或系统接收文件、数据流或数据块。文件、数据流或数据块由数据分段器/数据重组器310处理。数据分段器/数据重组器310将文件、数据流或数据块分割成段。在各种实施例中,通过使用基于内容的技术(例如,在数据项目的各种位置计算某个函数,在该函数等于某个值、或当该值是最小值、是最大值或者是相对于为该数据项目所计算的其它函数值的其它极值时)、基于非内容的技术(例如,基于数据项目属性-例如,字节长度、标题、创建日期)或任何其它适当的技术来识别段边界,从而将文件、数据流或数据块分割成段。在各种实施例中,段受限于最小和/或最大长度、每数据项目的最小或最大数量的段或任何其它适当的限制。数据分段器/数据重组器310还处理信息以指示到文件、数据流或数据块的段映射,以便能够从段来重构文件、数据流或数据块。在一些实施例中,指纹列表用于指示与文件、数据流或数据块相关联的段的映射。映射信息使用映射存储装置316来存储。段加密器/段解密器312将段加密。加密和解密系统兼容于能够使用去除重复系统来存储段-例如,给定段与该给定段的加密版本之间存在一一对应关系,以便通过使用给定段的加密版本能够识别其加密形式中的该给定段是否以前已存储。注意,这有点降低了能够使用的可能加密系统的强度,然而,具有加密的去除重复系统的总体系统性能对于一些应用优于选择带有要求的属性的加密系统。在各种实施例中,加密系统和/或解密系统包括流密码(例如,Rivest密码4 (RC4) ,Rivest密码5 (RC5)等)、密码反馈系统、电子码本系统、高级加密标准(AES)、数据加密标准(DES)或任何其它适当的系统。在一些实施例中,通过在解密后去填充或加密前将段填充到固定块大小来使用固定块密码系统。加密段经接口 314和网络320被传送到耦合到存储用户系统300的系统。用户324能够经用户接口 322请求要检索文件、数据流或数据块。映射存储装置316中存储的信息由数据分段器/数据重组器310用于确定请求从去除重复段存储系统(例如,图I的存储系统100)检索哪个(哪些)加密段。加密段经网络320和接口 314传送,并且使用段加密器/段解密器312来解密。段加密器/段解密器312使用密钥存储装置318中存储的信息将加密段解密。在各种实施例中,密钥存储装置318中存储的密钥至少部分地基于一个或多个以下项与段相关联用户、源系统、会话或指派与文件、数据流或数据块相关联的密钥的任何其它适当的方式。数据分段器/数据重组器310重组解密的段以恢复文件、数据流或数据块。图4是示出用于存储数据的过程的一实施例的流程图。在所示示例中,在400中,将数据流、数据文件或数据块分割成段。在402中,将段加密。在404中,传送加密段。例如,将加密段从数据用户系统传送到存储系统。在各种实施例中,传送与加密段相关联的元数据信息-例如,段标识符、源标识符、用户标识符、主机标识符、会话标识符、加密类型、力口密密钥、格式类型、填充类型、关联的文件、数据流或数据块等。在406中,选择要处理的加密段。在408中,确定选定的加密段是否以前已被存储。在一些实施例中,在传送加密段前执行检查以确定加密段是否以前已被存储,并且仅在加密段以前未被存储的情况下才执行完全段的传送。
在段以前已被存储的情况下,适当时,在410中,存储对以前存储的加密段的引用。例如,相对于检索与已加密的且确定为与以前存储的加密段相同的段相关联的数据流、数据块或文件,在引用有助于能够检索加密段的情况下,存储引用。在一些实施例中,在索引中存储引用,所述索引关联于数据流、数据块或文件与从所述数据流、数据块或文件所确定的段之间的映射。在一些实施例中,引用或指示传送到用户存储系统。在该段以前尚未存储的情况下,在412中存储该选定的加密段。存储指示选定的加密段被存储所在的位置的索引条目。在各种实施例中,索引条目包括数字指纹、SHA-I哈希、Rabin哈希或用于识别相同段是否以前已存储的任何其它适当的标识符。在一些实施例中,将索引条目传送到用户存储系统。在414中,确定所有加密段是否已处理。在所有加密段尚未全部处理的情况下,控制传递到406。在所有加密段已全部处理的情况下,过程结束。图5是示出用于检索数据的过程的流程图。在所示示例中,在500中,检索恢复数据文件、数据流或数据块所需的存储的加密段。在502中,传送加密段。例如,将检索的段从存储系统发送到存储用户系统。在504中,将加密段解密。在506中,通过重组解密的段,恢复数据文件、数据流或数据块。图6是示出存储用户系统的一实施例的框图。在一些实施例中,图6的存储用户系统600用于实现图I的存储用户系统110。在所示示例中,存储用户系统600包括存储装置602、存储装置604、存储装置606、存储接口 608、数据分段器/数据重组器610、段压缩/段解压缩612、耦合到网络620的接口 614、映射存储装置616、压缩存储装置618及能够由用户624访问的用户接口 622。用户624能够经用户接口 622请求要存储文件、数据流或数据块。存储接口 608从存储装置602、存储装置604或存储装置606接收要处理的文件、数据流或数据块。在各种实施例中,存储接口 608从外部存储装置(图6中未示出)、外部系统(图6中未示出)或任何其它适当的内部或外部组件、装置或系统来接收文件、数据流或数据块。文件、数据流或数据块由数据分段器/数据重组器610处理。数据分段器/数据重组器610将文件、数据流或数据块分割成段。在各种实施例中,通过使用基于内容的技术(例如,在数据项目的各种位置计算某个函数,在该函数等于某个值、或当该值是最小值、是最大值或者是相对于为该数据项目所计算的其它函数值的其它极值时)、基于非内容的技术(例如,基于数据项目属性-例如,字节长度、标题、创建日期)或任何其它适当的技术来识别段边界,从而将文件、数据流或数据块分割成段。在各种实施例中,段受限于最小和/或最大长度、每数据项目的最小或最大数量的段或任何其它适当的限制。数据分段器/数据重组器610还处理信息以指示到文件、数据流或数据块的段映射,以便能够从段重构文件、数据流或数据块。在一些实施例中,指纹列表用于指示与文件、数据流或数据块相关联的段的映射。映射信息使用映射存储装置616来存储。段压缩/段解压缩612压缩段。压缩和解压缩系统兼容于能够使用去除重复系统来存储段-例如,在给定段与该给定段的压缩版本之间存在一一对应关系,以便通过使用给定段的压缩版本能够识别其压缩形式中的该给定段是否以前已被存储。在各种实施列中,压缩系统和/或解压缩系统包括无损压缩/解压缩系统、Huffman编码系统、Lempel-ZivWelch编码系统或任何其它适当的系统。压缩段经接口 614和网络620被传送到耦合到存储用户系统600的系统。 用户624能够经用户接口 622请求要检索文件、数据流或数据块。映射存储装置616中存储的信息由数据分段器/数据重组器610用于确定请求从去除重复段存储系统(例如,图I的存储系统100)检索哪个(哪些)压缩段。压缩段经网络620和接口 614传送,并且使用段压缩/段解压缩612来解压缩。段压缩/段解压缩612使用压缩存储装置618中存储的信息将压缩段解压缩。在各种实施例中,压缩存储装置618中存储的压缩信息至少部分地基于一个或多个以下项与段相关联用户、源系统、会话或指派与文件、数据流或数据块相关联的压缩信息的任何其它适当的方式。数据分段器/数据重组器310重组解压缩段以恢复文件、数据流或数据块。图7是示出用于存储数据的过程的一实施例的流程图。在所示示例中,在700中,将数据流、数据文件或数据块分割成段。在702中,将段压缩。在704中,传送压缩段。例如,将压缩段从数据用户系统传送到存储系统。在各种实施例中,传送与压缩段相关联的元数据信息-例如,段标识符、源标识符、用户标识符、主机标识符、会话标识符、压缩类型、压缩器状态、格式类型、关联的文件、数据流或数据块等。在606中,选择要处理的压缩段。在608中,确定选定的压缩段是否以前已存储。在一些实施例中,在传送压缩段前执行检查以确定压缩段是否以前已存储,并且仅在压缩段以前未存储的情况下才执行完全段的传送。在段以前已存储的情况下,适当时,在710中,存储对以前存储的压缩段的引用。例如,相对于检索与已压缩的且确定为与以前存储的压缩段相同的段相关联的数据流、数据块或文件,在引用有助于能够检索压缩段的情况下,存储引用。在一些实施例中,在索引中存储引用,所述索引关联于数据流、数据块或文件与从所述数据流、数据块或文件所确定的段之间的映射。在一些实施例中,引用或指示传送到用户存储系统。在该段以前尚未存储的情况下,在712中存储该选定的压缩段。存储指示选定的压缩段被存储所在的位置的索引条目。在各种实施例中,索引条目包括数字指纹、SHA-I哈希、Rabin哈希或用于识别相同段是否以前已被存储的任何其它适当的标识符。在一些实施例中,将索引条目传送到用户存储系统。
在714中,确定所有压缩段是否已处理。在所有压缩段尚未全部处理的情况下,控制传递到706。在所有压缩段已全部处理的情况下,过程结束。图8是示出用于检索数据的过程的流程图。在所示示例中,在800中,检索恢复数据文件、数据流或数据块所需的存储的压缩段。在802中,传送压缩段。例如,将检索的段从存储系统发送到存储用户系统。在804中,将压缩段解压缩。在806中,通过重组解压缩段,恢复数据文件、数据流或数据块。图9是示出存储用户系统的一实施例的框图。在一些实施例中,图9的存储用户系统900用于实现图I的存储用户系统110。在所示示例中,存储用户系统900包括存储装置902、存储装置904、存储装置906、存储接口 908、数据分段器/数据重组器910、段压缩/段解压缩912、段加密器/段解密器914、耦合到网络924的接口 922、映射存储装置916、压缩存储装置918、密钥存储装置920及能够由用户928访问的用户接口 926。用户928能够经用户接口 926请求要存储文件、数据流或数据块。存储接口 908从存储装置902、存储装置904或存储装置906接收要处理的文件、数据流或数据块。在各种实施例中,存储接口908从外部存储装置(图3中未示出)、外部系统(图3中未示出)或任何其它适当的内部 或外部组件、装置或系统来接收文件、数据流或数据块。文件、数据流或数据块由数据分段器/数据重组器910处理。数据分段器/数据重组器910将文件、数据流或数据块分割成段。在各种实施例中,通过使用基于内容的技术(例如,在数据项目的各种位置计算某个函数,在该函数等于某个值、或当该值是最小值、是最大值或者是相对于为该数据项目所计算的其它函数值的其它极值时)、基于非内容的技术(例如,基于数据项目属性-例如,字节长度、标题、创建日期)或任何其它适当的技术来识别段边界,从而将文件、数据流或数据块分割成段。在各种实施例中,段受限于最小和/或最大长度、每数据项目的最小或最大数量的段或任何其它适当的限制。数据分段器/数据重组器910还处理信息以指示到文件、数据流或数据块的段映射,以便能够从段来重构文件、数据流或数据块。在一些实施例中,指纹列表用于指示与文件、数据流或数据块相关联的段的映射。映射信息使用映射存储装置916来存储。段压缩/段解压缩912压缩段。压缩和解压缩系统兼容于能够使用去除重复系统来存储段-例如,在给定段与该给定段的压缩版本之间存在一一对应关系,以便通过使用给定段的压缩版本能够识别其压缩形式中的该给定段是否以前已存储。在各种实施列中,压缩系统和/或解压缩系统包括无损压缩/解压缩系统、Huffman编码系统、Lempel-ZivWelch编码系统或任何其它适当的系统。段加密器/段解密器912将压缩段加密。加密和解密系统兼容于能够使用去除重复系统来存储压缩段-例如,在给定压缩段与该给定压缩段的加密版本之间存在一一对应关系,以便通过使用给定压缩段的加密版本能够识别其加密形式中的该给定压缩段是否以前已存储。注意,这有点降低了能够使用的可能加密系统的强度,然而,具有加密的去除重复系统的总体系统性能对于一些应用优于选择带有要求的属性的加密系统。在各种实施例中,加密系统和/或解密系统包括流密码(例如,Rivest密码4(RC4)、Rivest密码5 (RC5)等)、密码反馈系统、电子码本、高级加密标准(AES)、数据加密标准(DES)或任何其它适当的系统。在一些实施例中,通过在解密后去填充或加密前将段填充到固定块大小来使用固定块密码系统。
加密压缩段经接口 922和网络924被传送到耦合到存储用户系统900的系统。用户928能够经用户接口 926请求要检索文件、数据流或数据块。映射存储装置916中存储的信息由数据分段器/数据重组器910用于确定请求从去除重复段存储系统(例如,图I的存储系统100)检索哪个(哪些)加密压缩段。加密压缩段经网络924和接口 922传送,并且使用段加密器/段解密器914来解密 。段加密器/段解密器914使用密钥存储装置920中存储的信息将加密压缩段解密。在各种实施例中,密钥存储装置920中存储的密钥至少部分地基于一个或多个以下项与段相关联用户、源系统、会话或指派与文件、数据流或数据块相关联的密钥的任何其它适当的方式。段压缩/段解压缩912使用压缩存储装置918中存储的信息将解密压缩段解压缩。在各种实施例中,压缩存储装置918中存储的压缩信息至少部分地基于一个或多个以下项与段相关联用户、源系统、会话或指派与文件、数据流或数据块相关联的压缩信息的任何其它适当的方式。数据分段器/数据重组器910重组解压缩的解密段以恢复文件、数据流或数据块。图10是示出用于存储数据的过程的一实施例的流程图。在所示示例中,在1000中,将数据流、数据文件或数据块分割成段。在1002中,将段压缩。在1003中,将段加密。在1004中,传送压缩加密段。例如,将压缩加密段从数据用户系统传送到存储系统。在各种实施例中,传送与压缩加密段相关联的元数据信息-例如,段标识符、源标识符、用户标识符、主机标识符、会话标识符、压缩类型、压缩器状态、加密类型、加密密钥、格式类型、填充类型、关联的文件、数据流或数据块等。在1006中,选择要处理的压缩加密段。在1008中,确定选定的压缩加密段是否以前已存储。在一些实施例中,在传送压缩加密段前执行检查以确定加密段是否以前已存储,并且仅在压缩加密段以前未存储的情况下才执行完全段的传送。在段以前已存储的情况下,适当时,在1010中,存储对以前存储的压缩加密段的引用。例如,相对于检索与已压缩和加密的且确定为与以前存储的压缩加密段相同的段相关联的数据流、数据块或文件,在引用有助于能够检索压缩加密段的情况下,存储引用。在一些实施例中,在索引中存储引用,所述索引关联于数据流、数据块或文件与从所述数据流、数据块或文件所确定的段之间的映射。在一些实施例中,引用或指示传送到用户存储系统。在该段以前尚未存储的情况下,在1012中存储该选定的压缩加密段。存储指示选定的压缩加密段被存储所在的位置的索引条目。在各种实施例中,索引条目包括数字指纹、SHA-I哈希、Rabin哈希或用于识别相同段是否以前已被存储的任何其它适当的标识符。在一些实施例中,将索引条目传送到用户存储系统。在1014中,确定所有压缩加密段是否已处理。在所有压缩加密段尚未全部处理的情况下,控制传递到1006。在所有压缩加密段已全部处理的情况下,过程结束。图11是示出用于检索数据的过程的流程图。在所示示例中,在1100中,检索恢复数据文件、数据流或数据块所需的存储的压缩加密段。在1102中,传送压缩加密段。例如,将检索的段从存储系统发送到存储用户系统。在1104中,将压缩加密段解密。在1106中,将解密的压缩段解压缩。在1108中,通过重组解压缩的解密段,恢复数据文件、数据流或数据块。图12A是示出数据结构的一实施例的框图。在所示示例中,数据项目120包括数据流、数据块或数据文件。数据项目1200被分割成可变长度的段1210的集合。在一些实施例中,段具有固定的长度。段1210的集合包括一个或多个段-在图12A中表示为SpS2、s3、S4 及 Sn。图12B是示出数据关系的一实施例的框图。在所示示例中,示出了数据项目ID与段ID之间的映射一IDdata与 相关联。关
联关系包括ID IDdata的数据能够使用带有
IDsegment2、IDsegment3、IDsegment4 直至^segmentN 的 ID 的
段的集合来重构或重组。在一些实施例中,图12B的数据关系使用映射存储装置(例如,图3的映射存储装置316、图6的映射存储装置616和/或图9的映射存储装置916)来存储。图13A是示出数据关系的一实施例的框图。在所示示例中,示出了数据项目ID与源ID、用户ID、主要ID及格式类型之间的映射。用于数据项目的ID与源ID的源(例如,系统源标识符)、带有用户ID (例如,生成、请求存储、请求检索数据项目的用户标识符)的用户、带有主机ID的主机(例如,与用户相关联的主机系统)及格式类型的格式(例如,流、块、文件、备份、原始、磁带格式等)相关联。在各种实施例中,ID的任何组合或ID的缺乏或其它适当的关联信息与数据项目ID相映射。在一些实施例中,图13A的数据关系使用映射存储装置(例如,图3的映射存储装置316、图6的映射存储装置616和/或图9的映射存储装置916)来存储。图13B是示出数据关系的一实施例的框图。在所示示例中,示出了段ID与加密类型、加密密钥及填充类型之间的映射。用于段的ID与加密类型的加密(例如,AES、DES等)、用于加密的密钥(例如,包括128个比特、256个比特、字母数字串等的密钥)及填充类型的填充(例如,添加到可变长度段以实现与加密类型兼容的数据长度的填充的类型、零填充、数据型式填充等)相关联。在各种实施例中,加密有关信息或其它适当的关联信息的任何组合与数据段ID相映射。在一些实施例中,图13B的数据关系使用密钥存储装置(例如,图3的密钥存储装置318和/或图9的密钥存储装置920)来存储。图13C是示出数据关系的一实施例的框图。在所示示例中,示出了段ID与压缩类型和压缩器状态之间的映射。用于段的ID与压缩类型的压缩(例如,Huffman编码系统、Lempel-Ziv Welch编码系统等)和用于压缩的状态(例如,包括128个比特、256个比特、字母数字串等的密钥)相关联。在各种实施例中,压缩有关信息或其它适当的关联信息的任何组合与数据段ID相映射。在一些实施例中,图13C的数据关系使用压缩存储装置(例如,图6的压缩存储装置618和/或图9的压缩存储装置918)来存储。虽然为了清楚理解的目的而以一定的细节描述了上述实施例,但本发明并不限于提供的细节。实施本发明有许多备选方式。公开的实施例是说明性而不是限制性的。所要求权利的是
权利要求
1.一种用于存储加密数据的系统,包括 处理器,配置成 接收加密段,其中通过将数据流、数据块或数据文件分割成一个或多个段并且加密所述一个或多个段的每个段来确定所述加密段; 确定是否以前已存储所述加密段; 在以前尚未存储所述加密段的情况下,存储所述加密段;以及 存储器,耦合到所述处理器并配置成向所述处理器提供指令。
2.如权利要求I所述的系统,其中所述将所述数据流、所述数据块或所述数据文件分割至少部分地基于以下之一基于内容的技术或基于非内容的技术。
3.如权利要求I所述的系统,其中加密包括使用以下之一来加密流密码系统、密码反馈系统、电子码本系统、AES系统或DES系统。
4.如权利要求I所述的系统,其中对于第一段和与所述第一段相同的第二段,加密的第一段与加密的第二段相同。
5.如权利要求I所述的系统,其中所述一个或多个段的每个段在加密前被压缩。
6.如权利要求5所述的系统,其中使用以下之一对所述一个或多个段的每个段进行压缩无损压缩系统、Huffman编码系统或Lempel-Ziv Welch编码系统。
7.如权利要求5所述的系统,其中对于第一段和与所述第一段相同的第二段,压缩的第一段与压缩的第二段相同。
8.一种用于存储加密数据的方法,包括 接收加密段,其中通过将数据流、数据块或数据文件分割成一个或多个段并且加密所述一个或多个段的每个段来确定所述加密段; 使用处理器来确定是否以前已存储所述加密段; 在以前尚未存储所述加密段的情况下,存储所述加密段。
9.如权利要求8所述的方法,其中所述将所述数据流、所述数据块或所述数据文件分割至少部分地基于以下之一基于内容的技术或基于非内容的技术。
10.如权利要求8所述的方法,其中加密包括使用以下之一来加密流密码系统、密码反馈系统、电子码本系统、AES系统或DES系统。
11.如权利要求8所述的方法,其中对于第一段和与所述第一段相同的第二段,加密的第一段与加密的第二段相同。
12.如权利要求8所述的方法,其中所述一个或多个段的每个段在加密前被压缩。
13.如权利要求12所述的方法,其中使用以下之一对所述一个或多个段的每个段进行压缩无损压缩系统、Huffman编码系统或Lempel-Ziv Welch编码系统。
14.如权利要求12所述的方法,其中对于第一段和与所述第一段相同的第二段,压缩的第一段与压缩的第二段相同。
15.一种用于存储加密数据的计算机程序产品,所述计算机程序产品在计算机可读存储媒体中被实施并包括用于以下操作的计算机指令 接收加密段,其中通过将数据流、数据块或数据文件分割成一个或多个段并且加密所述一个或多个段的每个段来确定所述加密段; 使用处理器来确定是否以前已存储所述加密段;在以前尚未存储所述加密段的情况下,存储所述加密段。
16.一种用于读取加密数据的系统,包括 去除重复的存储装置; 处理器,配置成 从所述去除重复的存储装置检索一个或多个加密段,其中所述一个或多个加密段是通过将数据流、数据块或数据文件分割成一个或多个段并且加密所述一个或多个段的每个段来确定的; 解密所述一个或多个加密段;以及 组装所述一个或多个解密段以重构所述数据流、所述数据块或所述数据文件;以及 存储器,耦合到所述处理器并配置成向所述处理器提供指令。
17.如权利要求16所述的系统,其中所述将所述数据流、所述数据块或所述数据文件分割至少部分地基于以下之一基于内容的技术或基于非内容的技术。
18.如权利要求16所述的系统,其中解密包括使用以下之一来解密流密码系统、密码反馈系统、电子码本系统、AES系统或DES系统。
19.如权利要求16所述的系统,其中对于第一加密段和与所述第一加密段相同的第二加密段,解密的第一加密段与解密的第二加密段相同。
20.如权利要求16所述的系统,其中所述一个或多个段的每个段在加密前被压缩。
21.如权利要求20所述的系统,其中使用以下之一对所述一个或多个段的每个段进行压缩无损压缩系统、Huffman编码系统或Lempel-Ziv Welch编码系统。
22.如权利要求20所述的系统,其中对于第一段和与所述第一段相同的第二段,压缩的第一段与压缩的第二段相同。
23.一种用于读取加密数据的方法,包括 从去除重复的存储装置检索一个或多个加密段,其中所述一个或多个加密段是通过将数据流、数据块或数据文件分割成一个或多个段并且加密所述一个或多个段的每个段来确定的; 使用处理器来解密所述一个或多个加密段;以及 组装所述一个或多个解密段以重构所述数据流、所述数据块或所述数据文件。
24.如权利要求23所述的方法,其中所述将所述数据流、所述数据块或所述数据文件分割至少部分地基于以下之一基于内容的技术或基于非内容的技术。
25.如权利要求23所述的方法,其中解密包括使用以下之一来解密流密码系统、密码反馈系统、电子码本系统、AES系统或DES系统。
26.如权利要求23所述的方法,其中对于第一加密段和与所述第一加密段相同的第二加密段,解密的第一加密段与解密的第二加密段相同。
27.如权利要求23所述的方法,其中所述一个或多个段的每个段在加密前被压缩。
28.如权利要求27所述的方法,其中使用以下之一对所述一个或多个段的每个段进行压缩无损压缩系统、Huffman编码系统或Lempel-Ziv Welch编码系统。
29.如权利要求27所述的方法,其中对于第一段和与所述第一段相同的第二段,压缩的第一段与压缩的第二段相同。
30.一种用于读取加密数据的计算机程序产品,所述计算机程序产品在计算机可读存储媒体中被实施并包括用于以下操作的计算机指令 从去除重复的存储装置检索一个或多个加密段,其中所述一个或多个加密段是通过将数据流、数据块或数据文件分割成一个或多个段并且加密所述一个或多个段的每个段来确定的; 使用处理器来解密所述一个或多个加密段;以及 组装所述一个或多个解密段以重构所述数据流、所述数据块或所述数据文件。
全文摘要
一种用于存储加密数据的系统包括处理器和存储器。处理器配置成接收加密段。通过将数据流、数据块或数据文件分割成一个或多个段并且加密所述一个或多个段的每个段来确定所述加密段。处理器还配置成确定该加密段是否以前已被存储,并且在该加密段以前未被存储的情况下,存储该加密段。存储器耦合到处理器并配置成向处理器提供指令。
文档编号H04N21/4335GK102804800SQ201080036014
公开日2012年11月28日 申请日期2010年6月7日 优先权日2009年6月9日
发明者C·R·伦布 申请人:Emc公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1