Performance 数据压缩和重复数据消除之间的实际差异

Performance 数据压缩和重复数据消除之间的实际差异,performance,duplicates,compression,storage,netapp,Performance,Duplicates,Compression,Storage,Netapp,重复数据消除和数据压缩之间的确切区别是什么 据我所知,重复数据消除是指当我们拥有完全相同的数据拷贝(相同块(块级重复数据消除)或相同文件(文件级重复数据消除)时,存储中只保留一个拷贝,并且对于该拷贝,每次不同用户使用该块或文件时,引用计数都会增加 但是压缩是如何在内部工作的 请帮我解决这个问题。 提前感谢。简单的回答是,重复数据消除可以被视为一种高度专业化的压缩形式,针对特定的环境。接下来是详细的答案 在对比这些技术之前,让我们先谈谈典型的压缩是如何工作的 压缩 压缩本身是极其多样的。你有一些有

重复数据消除和数据压缩之间的确切区别是什么

据我所知,重复数据消除是指当我们拥有完全相同的数据拷贝(相同块(块级重复数据消除)或相同文件(文件级重复数据消除)时,存储中只保留一个拷贝,并且对于该拷贝,每次不同用户使用该块或文件时,引用计数都会增加

但是压缩是如何在内部工作的

请帮我解决这个问题。
提前感谢。

简单的回答是,重复数据消除可以被视为一种高度专业化的压缩形式,针对特定的环境。接下来是详细的答案

在对比这些技术之前,让我们先谈谈典型的压缩是如何工作的

压缩 压缩本身是极其多样的。你有一些有损压缩算法,比如JPEG和MP3,它们使用一个我们如何看或听的模型来丢弃一些对图像或声音可能不那么重要的信息,但仍然会降低质量。根据您的问题,这些技术大多超出了问题的范围

您可能最关心的是我们所谓的通用无损算法,如zip、LZMA、LZ4等,它们以可逆的方式压缩任意文件。通常,这些压缩文件至少使用以下非详尽列表中的几种技术:

  • 匹配查找。在(重复字节的字符串)中查找冗余,并用较短的序列替换重复。例如,此类算法可能具有以下字符串:

    开发者

  • 然后将其替换为以下内容:

    developers (0,11)(0,22)
    
    其中(0,11)表示“重复使用从位置0开始的11个字符”。这被称为“匹配查找”或LZ77风格的压缩,非常简单

  • 熵编码。您可以从以下字符串开始:

    aabcabcabaacbaacbcaabaacbaa

  • 这看起来很随意,对吧?但是,您可能会注意到,有些字母比其他字母显示得更多-A的显示量大约是B和C的2倍,而其他字母则根本不显示

    使用该信息,您可以选择表示字符串中信息较少的字符的编码,例如,A可以使用二进制
    0
    进行编码,而B和C分别分配
    10
    11
    。如果您最初使用的是每个字符8位,这是一个很大的节省

  • 造型
  • 大多数数据具有复杂的关系,这些关系不一定通过上述简单的技术得到很好的压缩,而是需要某种类型的模型。例如,您可能有各种模型根据相邻像素预测图像中像素的值。你可能有一个模型,它可以根据句子中最有可能出现的下一个单词来预测该点。例如,如果我说:<代码>谁让狗“< < /代码>”,你很可能会以高精度填空。

    所有这些都不是相互排斥的——它们通常以互补的方式使用,而且还有一些以上未提及的附加技术

    现在,在我们讨论什么是重复数据消除之前,请注意压缩算法的典型特征。这些不是绝对规则,而是许多压缩算法的共同特征,除非它们是专门为避免它们而设计的:

    输入字节和输出字节之间没有简单的关系

    输入和输出是以复杂的方式关联的(不像Base-64编码,其中每3个连续的输入字节依次对应于4个连续的输出字节)。其影响如下:

    • 您通常不能简单地获取压缩数据并解压缩其中的任意部分,例如“解压缩此文件的最后500字节”。您可能需要从头开始读取整个压缩文件,或者至少从流中的某个已知点开始读取

    • 修改未压缩的输入可能会对压缩的输出产生任意大的影响。例如,更改输入中的单个字节可能会更改输出中的每个后续字节。这通常意味着难以增量地更新大型压缩流(即,基于对输入的修改)

    重复数据消除 鉴于上述压缩的定义和讨论,重复数据消除通常指的是什么

    今天,在存储设备或体系结构的竞争中,您通常会首先考虑重复数据消除。例如,这是一种在存在大量重复数据时节省磁盘空间的方法(例如,想象一下,SAN上有100个VM映像—每个VM上的操作系统和其他常见文件之间可能存在大量重复)

    重复数据消除是一种仅存储此冗余数据一次的方法。本质上,它大规模地实现了上面的技术(1),没有上面讨论的一些限制。因此,它只是一种在大数据块上运行的压缩形式,可以跨整个驱动器或整个存储主机,甚至跨网络机器群集运行

    但是,现在您不能只“gzip”整个驱动器,因为重复数据消除应该是透明的、功能上和性能上的。文件系统提供的API(例如POSIX或Win32等)允许用户写入文件的任意部分。如果用户修改1GB文件中的1个字节,如果解压然后压缩整个文件需要一分钟或更长时间,他们会感到惊讶

    因此,重复数据消除的工作方式仍然可以对文件进行随机访问;e、 例如,通过索引可以定位任何字节的位置)。这通常意味着重复数据消除仅适用于较大的匹配(块)大小,否则将降低跟踪成本