将数据组块分组到压缩区域中的制作方法

文档序号:9221630阅读:431来源:国知局
将数据组块分组到压缩区域中的制作方法
【专利说明】
【背景技术】
[0001]计算机系统可以生成大量数据,该大量数据可以被计算机系统本地存储。例如,由计算机系统的故障引起的这样的数据的丢失可能对企业、个体或者利用计算机系统的其他实体有害。为了保护数据免于丢失,数据备份系统可以存储计算机系统的数据的至少一部分。在这样的示例中,如果计算机系统的故障阻止数据的某部分的取回,则从数据备份系统取回数据可以是可能的。
【附图说明】
[0002]以下详细描述参考了附图,其中:
图1是基于补充次序信息将组块分组到压缩区域中的示例系统的框图;
图2A是至少部分地由图1的系统实现的备份系统的示例备份流的图;
图2B是存储图2A的备份流的组块的示例组块容器的图;
图2C-2G图示了以图1的系统、基于补充次序信息将组块分组到压缩区域中的示例; 图2H是包括清单(manifest)指针的组块容器的框图;
图3是基于在组块的数据之间的相似性并且基于补充次序信息将组块分组到压缩区域中的示例计算设备的框图;
图4A-4F图示了以图3的计算设备、基于相似性和补充次序信息将组块分组到压缩区域中的示例;
图5是用于将相似的组块分组到压缩区域中的示例方法的流程图;以及图6是用于基于相似性和补充次序信息将组块分组到压缩区域中的示例方法的流程图。
【具体实施方式】
[0003]数据备份系统的设计和实现可以涉及实现的成本和性能之间的折衷。例如,诸如数据去重复(deduplicat1n)和压缩之类的技术可以使得备份数据能够被更紧凑且因此更便宜地存储在系统中。然而,增加的去重复和压缩可能降低可以从数据备份系统取回数据的速度(本文称为“恢复速度”),因为取回备份数据涉及将备份数据恢复到其完整和解压缩的形式。
[0004]在对备份数据执行去重复的备份系统中,备份系统可以将输入数据的序列划分到非重叠数据组块的有序集合中,本文可以将其称为“备份流”。执行去重复的备份系统一般可以存储一个或多个备份流的每个独特组块一次。在本文描述的示例中,数据“组块”是诸如到备份系统的数据输入的序列之类的数据的序列的一部分。在某些示例中,组块可以具有大约4-8千字节(KB)的平均大小。在其他示例中,组块可以具有任何其他适合的大小。在某些示例中,备份系统可以在组块容器中存储组块。在本文描述的示例中,“组块容器”可以是存储一个或多个组块的数据结构。例如,容器可以被实现为分立的文件或对象。在某些示例中,组块容器可以具有处于若干兆字节(MB)范围内的最大大小。在其他示例中,组块容器可以具有任何其他适合的最大大小。
[0005]除去重复之外,备份系统还可以对将被存储的数据执行压缩。在某些示例中,备份系统可以单独地压缩每个组块。压缩较大单元的数据一般可以以通用压缩器产生较好的压缩;然而,由于从备份系统请求(例如,取回)的数据在其被备份系统输出之前被解压缩,所以压缩较大单元的数据可能导致浪费更多时间解压缩将不被输出的数据。在某些示例中,备份系统可以将组块容器的组块分组到一个或多个压缩区域中,并可以独立地压缩每个压缩区域。在这样的示例中,压缩组块容器的压缩区域中的组块可以在高效压缩和恢复速度之间取得平衡。在本文描述的示例中,“压缩区域”可以是一个或多个组块的分组,在组块容器中相邻,所述一个或多个组块相对于彼此且独立于任何其他组块而被压缩或者将被压缩。例如,压缩区域的组块可以独立于组块容器的每个其他压缩区域的组块而被压缩。在某些示例中,压缩区域可以具有处于大约128 KB的范围内的最大大小。在其他示例中,压缩区域可以具有任何其他适合的最大大小。
[0006]在某些示例中,组块最初可以被以它们在备份流中出现的次序添加到组块容器,并且初始的压缩区域可以由组块容器中的相邻组块的分组形成。然而,在某些示例中,后续备份流的组块可以被添加到组块容器,因为在后续备份流中,它们接近于已经存储在组块容器中的组块。在这样的示例中,后续备份流的组块可以被存储在与包括已经存储在组块容器中的组块的(一个或多个)初始压缩区域不同的(一个或多个)新压缩区域中。例如,第一备份流可以包括第一组块分组,该第一组块分组包括在第一天到备份系统的数据输入。该第一组块分组可以被放置在组块容器的第一压缩区域中以用于存储。第一组块分组可以是例如经常(例如,每天)改变的文件部分。在这样的示例中,在几天内做出的对文件的修改可以被存储在新的组块中且被分组到组块容器的新压缩区域中。然而,由于备份系统中的去重复,表示文件的未修改部分的组块可能不被再次存储在新压缩区域中。因此,当稍后从备份系统取回文件时,备份系统可以解压缩包含文件的至少一个组块的所有不同压缩区域(例如,第一压缩区域以及存储文件的修改的每个后续的压缩区域),这对恢复速度可能是有害的。
[0007]为了解决这些问题,本文描述的示例可以重新布置组块容器的组块以将很可能被一起取回的组块分组到压缩区域中。本文描述的示例可以包括存储器以存储包括处于多个第一压缩区域中的第一多个数据组块的组块容器,并可以基于补充次序信息将第二多个组块分组到组块容器的第二压缩区域中。在某些示例中,补充次序信息可以针对第一多个数据组块中的至少一对组块指定针对组块对在不同于组块容器且被至少部分地存储在组块容器中的组块的有序集合中的接近度关系。组块的有序集合例如可以是备份流。通过基于在备份流中的接近度将组块分组到压缩区域中,本文描述的示例可以将很可能被一起取回的组块分组到压缩区域中,并可以由此改进恢复速度。例如,表示上文描述的文件修改的组块很可能在备份流中接近于表示文件的未修改部分的组块而出现,并且补充次序信息可以指定这些接近度关系。相应地,通过基于由补充次序信息指定的(一个或多个)接近度关系将组块分组到第二压缩区域中,本文描述的示例可以将很可能被一起取回的组块分组到压缩区域中。
[0008]如上文描述的那样基于被放置在组块容器中的组块的相邻性形成压缩区域的另一问题是:其可能使得备份系统错失显著量的可能的压缩。例如,表示对文件的修改的组块可以与彼此共享数据,并可以与表示未修改部分的组块共享数据。虽然如果被分组在相同的压缩区域中,则压缩技术可能能够压缩这样的共享的数据,但是如果这些组块被放置在不同的压缩区域中,则该可能压缩的大部分可能被错失。为了解决这些问题,本文描述的示例还可以基于在组块的数据之间的相似性将组块容器的多个组块分组到压缩区域中。以这种方式,本文描述的示例可以改进组块容器的压缩,因为相似的组块可以相对于彼此而被压缩,并产生改进的压缩率。
[0009]现在参考附图,图1是基于补充次序信息将组块分组到压缩区域中的示例系统100的框图。在图1的示例中,系统100包括与存储器140通信的引擎122和124。存储器140可以是任何类型的机器可读存储介质。在某些示例中,系统100可以包括(一个或多个)附加引擎。如本文中使用的那样,“机器可读存储介质”可以是任何电子的、磁的、光的或者包含或存储诸如可执行指令、数据等等之类的信息的其他物理存储装置。例如,本文描述的任何机器可读存储介质可以是以下内容中的任一个:存储驱动器(例如,硬盘驱动器)、闪存、随机存取存储器(RAM)、任何类型的存储盘(例如,压缩盘只读存储器(CD-ROM)、任何其他类型的压缩盘、DVD等等)等等,或者它们的组合。进一步地,本文描述的任何机器可读存储介质可以是非瞬变的。
[0010]在图1的示例中,系统100可以被一个或多个计算设备实现。如本文使用的那样,“计算设备”可以是服务器、计算机联网设备、芯片集、台式计算机、笔记本计算机、工作站,或者任何其他处理设备或装置。在图1的示例中,至少部分地实现系统100的计算设备可以包括至少一个处理资源。在本文描述的示例中,处理资源可以包括例如被包括在单个计算设备中或者跨多个计算设备分布的一个处理器或多个处理器。如本文使用的那样,“处理器”可以是以下内容中的至少一个:中央处理单元(CPU)、基于半导体的微处理器、图形处理单元(GPU)、被配置成取回和执行指令的现场可编程门阵列(FPGA)、适于存储在机器可读存储介质上的指令的取回和执行的其他电子电路,或者它们的组合。
[0011]存储器140可以存储包括第一多个145数据组块的组块容器150。在图1的示例中,第一多个145组块可以包括组块11-16、13’和15’。如在图1中示出的那样,第一多个145组块中的组块可以具有不同大小。组块容器150可以将第一多个145组块包括在组块容器150的多个第一压缩区域中。第一压缩区域可以包括:包括组块11-13的压缩区域152、包括组块14-16的压缩区域154以及包括组块13’和15’的压缩区域156。在本文描述的示例中,被用于指定个体组块的参考符号(例如,“11”、“12”等等)是出于说明目的的标记,且不被包括在组块本身中。然而,出于说明的目的,以相同参考符号(例如,“11”)标记的组块指示包括相同数据的组块,并且以不同参考符号标记的组块指示包括至少部分地不同的数据的组块。在其他示例中,组块容器150可以包括不同数量的压缩区域、不同数量的组块、组块到压缩区域中的不同分组,或者它们的组合。虽然在图1中图示了一个组块容器,但是系统100可以将组块存储在任何适合数量的组块容器中,这些组块容器中的某些或全部可以被存储在存储器140中。
[0012]引擎122和124中的每一个以及系统100的任何其他引擎可以是实现相应引擎的功能的硬件和编程的任何组合。可以以多个不同的方式实现硬件和编程的这样的组合。例如,编程可以是存储在非瞬变机器可读存储介质上的处理器可执行指令,并且硬件可以包括处理资源以执行那些指令。在这样的示例中,机器可读存储介质可以存储当被处理资源执行时实现系统100的引擎的指令。
[0013]存储指令的机器可读存储介质可以被集成在与处理资源相同的计算设备中以执行指令,或者机器可读存储介质可以与计算设备和处理资源分离,但对计算设备和处理资源来说可访问。存储指令的机器可读存储介质可以与存储器140分离,或者可以被存储器140实现。处理资源可以包括被包括在单个计算设备中或者跨多个计算设备分布的一个处理器或多个处理器。此外,在某些示例中,存储器140可以被集成在与处理资源的至少一个处理器相同的计算设备中,或者与处理资源的处理器中的至少一个分离,但对处理资源的处理器中的至少一个来说可访问。
[0014]在某些示例中,指令可以是安装包的一部分,当所述安装包被安装时,可以被处理资源执行以实现系统100的引擎。在这样的示例中,机器可读存储介质可以是便携式介质,诸如CD、DVD或闪式驱动器,或者由从其可下载和安装安装包的服务器维持的存储器。在其他示例中,指令可以是已经被安装在包括处理资源的计算设备上的一个或多个应用的一部分。在
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1