- 产品
- 产品解决方案
- 行业解决方案
- 案例
- 数据资产入表
- 赋能中心
- 伙伴
- 关于
时间:2022-06-15来源:ニ赱過浏览数:741次
大数据时代的海量数据管理压力催生各种方法来治理数据洪流。面对企业数据量的急剧膨胀,需要不断购置大量的存储设备来应对不断增长的存储需求。然而,单纯地提高存储容量并不能从根本上解决问题。
为阻断疫情传播,很多企业选择居家远程办公,多人线上协同办公也变得流行起来。在协同办公平台上,项目负责人将一个文件在工作群进行群发,然后由各个部门人员对所负责的文件内容部分进行编辑,也有用户需要对文件进行拷贝更名来备份。这会在后台存储系统中产生大量该文件的副本与更新版本,由此导致的数据爆炸式增长给线上协同办公平台存储管理带来极大的技术挑战。
图1. 远程协同办公
大数据时代的海量数据管理压力催生各种方法来治理数据洪流。面对企业数据量的急剧膨胀,需要不断购置大量的存储设备来应对不断增长的存储需求。然而,单纯地提高存储容量并不能从根本上解决问题。
跟随数据量增长的存储设备采购开支、存储管理成本和数据中心能耗使企业越来越难以承担。特别是海量数据存储管理的复杂性,容易造成存储资源浪费和利用效率不高。因此,为解决信息的急剧增长问题,堵住数据“井喷”,基于数据缩减的高效存储理念由此而生。
数据缩减技术能够有效地删除数据冗余提升存储空间利用率的技术,主要包括:数据压缩(Data Compression)、差分压缩(Delta Compression)和重复数据删除(Data Deduplication)三类技术。
数据压缩(Data Compression)是指采用编码方式用更少的比特位来表示数据对象内原始信息的技术。数据压缩的方式非常多,根据压缩后是否损失信息可分为无损压缩和有损压缩两大类。无损压缩是通过确定和删除统计冗余来减少数据对象存储的比特位。由于数据统计冗余度的理论限制,无损压缩的压缩比一般比较低,被广泛应用于文本数据、程序和特殊应用场合的图像数据等需要精确存储数据的压缩。
典型的无损压缩算法有:香农-范诺编码(Shannon-Fano Coding)、霍夫曼编码(Huffman Coding)、算术编码(Arithmetic Coding)、游程编码(Run-Length Coding)、词典编码(Dictionary Coding)等;词典编码算法中的Lempel-Ziv(LZ)压缩方法是最流行的无损压缩算法,被广泛地应用于WinRAR、GZIP和GIF等压缩软件。
有损压缩通过发现和删除数据对象中不重要的信息来减少存储所需的比特位。它利用了人类视觉、听觉对图像、声音中的某些频率成分不敏感的特性,允许压缩的过程中损失一定的信息。虽然不能完全恢复原始数据,但是所损失的部分对理解原始图像的影响较小,却换来了比较大的压缩比,被广泛应用于语音、图像和视频数据的压缩。由于删除数据对象内部冗余的本质,数据压缩仅能获得有限的数据缩减率。经典的有损压缩算法有图像压缩领域的JPEG标准和视频压缩领域的MPEG标准等。
差分压缩是通过开发数据对象间相似性来压缩数据对象存储空间的技术。它能够定位两个相似的数据对象中的共同数据内容,并按它们存储的先后分为旧版本和新版本。
通过差分算法可以获得反映数据对象新旧版本之间差异数据内容,再通过对差异数据内容进行无损压缩生成差分对象;数据对象的新版本可以由旧版本和差分对象解压生成的差异数据内容联合生成。由于差分对象编码后往往可以远小于原数据对象,差分压缩能够有效地缩减数据对象的存储空间。
为了确定两个数据对象是否相似的算法有很多,比如计算数据对象内多个固定窗口内容中的弱哈希值,选取几个最小或最大的哈希值作为特征来比较和判断两个数据对象是否相似。如果两个数据对象有相同的相似特征则认为它们的内容十分相似。相比于数据压缩,差分压缩通过额外的计算开销和内存资源开销能够发现和消除更多的数据冗余。目前,具有代表性的差分压缩方法有XDelta算法和ZDelta算法。
重复数据删除技术是一种大范围消除粗粒度数据冗余的快速数据缩减技术。它通过将文件或数据流划分为若干数据对象,并对各个数据对象进行加密哈希指纹计算,基于数据对象指纹的索引查询检测出数据流中相同的数据对象,只传输或者存储唯一的数据对象副本,并使用指向唯一副本的指针替换其他副本。我们可以根据操作处理的粒度、位置、时机、节点数、范围和效果等标准对重复数据删除技术进行不同的分类。
图2. 重复数据删除技术成熟度曲线图
参考Ganter的存储技术成熟度曲线,我们画出了图2所示的重复数据删除技术成熟度曲线。重复数据删除相关技术研究早在上世纪90年代就被各国学者广泛研究,主要围绕数字文档中的副本和重复内容检测进行深入研究。2000年左右,出现了不少重复数据删除技术研究工作,不仅有通过检测重复和相似数据减少数据冗余以节省存储空间,还有利用重复数据删除思想提升因特网带宽受限下的数据传输性能。2006年图灵奖得主Jim Gray提出观点“磁带已死,磁盘是新磁带,闪存是新磁盘,随机存储器局部性是为王道”。当随机访问的硬盘代替顺序访问的磁带,备份和归档存储系统可以获得相当惊人的速度提升,但成本却很难跟磁带库媲美。基于重复数据删除的磁盘存储刚好可以弥补这一缺陷,通过节省容量使磁盘备份变得高速又经济适用,作为新一代数据保护存储兴起并可能代替磁带库。近十年来,重复数据删除技术已经成为存储与网络方向的学术研究热点,在产业界也获得广泛应用,几乎所有存储企业都有推出重复数据删除技术相关存储产品。当前移动终端的普及使得数据上云需求提升明显,重复数据删除技术对数据上云也至关重要,不仅能够节省用户的数据云存储成本,还能避免重复数据传输提升网络带宽利用率。
图3. 数据缩减技术示例
如图3所示,数据缩减技术可以将数据集中重复数据块、相似数据块甚至重复字节分别通过重复数据删除、差分压缩和压缩分别进行的存储空间缩减。在逻辑空间内,文件1划分为1和2号数据块,文件2划分为3、4、5号数据块,块2和块3内容相同,块1和块5相似,块4含有大量重复字节。在物理空间里,重复数据删除可以避免存储块2,而差分压缩可以根据块5计算出块1的差分块。由于块1与块5的差异内容压缩后的差分块很小,可与块4压缩后合并存储在同一数据块的空间内。
我们可以将重复数据删除技术与数据压缩、差分压缩进行对比分析。这三种技术在本质上都是通过检索冗余数据并采用更短的指针来表示来实现缩减数据容量。它们的区别关键在于:技术基础、消除冗余范围、发现冗余方法、冗余粒度、性能瓶颈、具体实现方法、平均压缩率和安全隐患等诸多方面的不同,如表1所述。
数据压缩技术的前提是信息的数据表达存在冗余,以信息论研究作为基础;而重复数据删除的实现依赖数据块的重复出现,差分压缩的实现依赖于数据块之间的相似性,都是数据缩减能力由数据集本身决定的实践性技术。数据压缩技术主要根据一些固定的模式字符串匹配来编码减少文件的大小,一般只能对存储卷内的单个文件起作用;而重复数据删除技术和差分压缩均可以作用在文件系统的共享数据集内,但前者是基于数据块指纹匹配查询消除在存储系统中文件之间以及文件内的相同数据对象,后者则是基于数据块相似性检测消减存储系统中相似的数据对象。
数据压缩是工作在字节级,由于仅在文件内比对处理,统计平均数据缩减率约为2:1。而重复数据删除和差分压缩都是对KB级数据块的粗粒度进行全局文件系统范围内的分析,但差分压缩一般为定长分块,而重复数据删除可以为变长分块,使得差分压缩的统计平均数据缩减率约为3:1,重复数据删除则约为20:1。从在数据缩减处理性能瓶颈上看,数据压缩的瓶颈在于字符串匹配;差分压缩的瓶颈不仅在于相似特征匹配,还有随着压缩数据越来越多的数据重建过程也会变得很慢;重复数据删除处理的数据变长分块、块指纹计算及对比都容易成为处理瓶颈。
不同于其他两种技术,重复数据删除技术因为使用加密哈希计算块指纹来标识数据块,存在因为哈希冲突而丢失数据的安全隐患。具体实现起来数据压缩已有技术标准,可直接对流式数据进行处理,透明地作用于存储系统或网络系统;而重复数据删除和差分压缩现在还没有达成统一标准,需要对应用进行修改,难以做到透明实现,更多地以产品形态出现,如存储系统、文件系统或应用系统。
表1. 数据缩减技术特征比对
特征 |
数据压缩 |
差分压缩 |
重复数据删除 |
技术基础 |
信息论 |
相似数据块 |
重复数据块 |
消除冗余范围 |
单个文件 |
文件系统 |
文件系统 |
发现冗余方法 |
字符串匹配 |
相似性检测 |
块指纹匹配 |
冗余粒度大小 |
字节级 |
数据块级 |
数据块级 |
处理性能瓶颈 |
字符串匹配 |
特征匹配和数据重建 |
数据分块、块指纹计算与比对 |
数据安全问题 |
数据不丢失 |
数据不丢失 |
存在哈希碰撞而丢失数据的隐患 |
具体实现方法 |
有技术标准,可透明地用于存储系统或网络系统 |
无技术标准,难以透明实现,以产品形态出现 |
无技术标准,难以透明实现,以产品形态出现 |
平均缩减率 |
低(~2:1) |
较低(~3:1) |
高(~20:1) |
在实际应用中,重复数据删除技术往往结合数据压缩或差分压缩以最大限度地缩减数据存储容量,提高资源利用率。值得一提的是,在同时应用数据压缩或差分压缩和重复数据删除技术时,为了降低对系统的处理需求和提高数据压缩比率,通常需要先应用重复数据删除技术,然后再使用数据压缩技术进一步降低元数据和唯一数据对象的存储空间。如果顺序颠倒会出现什么样的结果呢?压缩会对数据进行重新编码,从而破坏了数据原生的冗余结构,因此再应用重复数据删除效果则会大打折扣,而且消耗时间也更多。而先执行重复数据删除则首先消除了冗余数据块,然后应用数据压缩对唯一数据块进行再次压缩。这样,两种技术的数据缩减作用得到叠加,而且数据压缩的消耗时间大大降低。因此,先进行重复数据删除处理,再进行数据压缩或差分压缩,可以获得更高的数据压缩率和性能。