不同重复数据删除模式 你该如何选择

日期: 2008-02-20 作者:王刚 来源:TechTarget中国

  尽管今天单位存储空间的成本不断走低,但企业需要存储或者备份的数据量仍然在持续上涨,导致了企业在磁盘存储空间方面无止境的成本投入。是否能有一种技术或者解决方案能够10倍甚至20的缩减企业数据量,让磁盘备份在容量空间方面的成本能够被更多的企业承受呢?重复数据删除正是近期的一项热门技术,由于可以大幅压缩和删减用户需要备份的数据量,因此让用户和厂商都对此青睐有加。


  但是一旦深入到重复数据删除的采购,这些专家就没有更好的意见了。因为重复数据删除的很多供应商目前仅仅能够实现这项功能,而实现的具体方式则各有不同,适用于一家公司的重复数据删除解决方案,未必就适用于另外一家公司。IT168特邀昆腾资深技术顾问为大家深入解析重复数据删除的底层原理与应用。


  主持人:重复数据删除是存储业内近年来比较热门的概念之一,相信对于重复数据删除,有很多网友有这样那样的疑问,今天我们非常有幸请来昆腾公司的王刚先生,为大家对重复数据删除做深入的阐释。前期在论坛上也很多网友提了很多这方面的问题,我们选择了一些有价值的问题,在访谈当中王刚先生会针对这些问题做一些回答。首先我们还是希望王刚先生介绍一下重复数据删除概念。


  



王刚:好的,重复数据删除实际上是最近几年比较热门的一个话题。那么重复数据删除在大家的印象之中,首先考虑到的是数据删除,所以说比较回避这个话题,觉得数据删除首先会涉及到安全性问题,或者说这个数据删除到底实现的模式是什么样子。


重复数据删除目前有很多叫法,比如说容量优化,或者是复本删除技术,这些技术实际上总体的原理是一样的,就是用户在存储和备份数据的时候,已经存在的数据,比如说昨天或者前天,有同样一份数据,那么今天再往用户的虚拟带库,或者是磁盘上存的时候,这些数据还要不要重复的存上去,如果这个数据继续存上去的话,就会占用多余的存储空间,这就是重复数据删除由来的原因之一。


  有些人会比较混淆重复数据删除与数据压缩,我们可以简单的分析一下,在重复数据删除里面它部分借鉴了压缩的模式,但不一样的地方在哪儿呢?


  压缩一般是挑选数据类型的,比如说视频文件,这些已经压缩过的数据对压缩技术来讲效率就不高,而对于数据库和文本文件,这些文本的数据文件,压缩的效果一般能达到2比1以上。


  重复数据删除不同,重复数据删除对数据进行一些算法的处理。把数据切割成一块一块,比如说4K,或者是16K,32K,然后进行比对,比对完了以后,只有变化过的,唯一的数据块才存到磁盘空间上去,这是基本的原理,如果这样理解了的话,就会发现可以把这个叫做复本删除,或者是容量优化。但是如果用户的数据原来没有发生重复数据删除的话,这个数据会几倍几倍的往磁盘空间上增加,采取了数据删除以后,这个增加的是唯一的数据块。


  主持人:现在各个厂商都有重复数据删除的产品,昆腾也是其中一家,您介绍一下这些种类,和不同技术带来的优势和劣势。


  王刚:重复数据删除的产品很多,但是我们看这些产品,或者是在挑选这些产品的时候,要搞清楚的一点是:他们的重复数据删除是基于哪种技术的?


  一般而言分为三种技术。第一基于字符块的,数据文件在进入重复数据删除设备,或者软件的时候,这个引擎会对这个文件进行字符块的分块,比如说4K,16K,32K,然后把这个输入到一个函数里面得出唯一的值,然后以这个值为比较,如果在函数列表里面发现同一个值的话,那就表明这个数据块是唯一的,这是一种模式。


  还有一种就是这个文件先输入到重复数据删除的引擎里面,这时候是对这个文件进行一次扫描,扫描以后有可能对文件进行逐个字节的对比,这是第二种模式。


  第三种也是对数据进行分块的分割,但是很明显这个分割的时候,这个字符块大小不是固定的,如果是固定的,这个效率肯定会影响重复数据删除的效率。那么固定与不固定的区别在什么地方呢?不固定的是分割的时候先扫描一下,看看这些块根据哪一个模式,多少长度分割出来以后,这个重复率是最高的,然后进行切割,产生一个唯一的列表值。如果是固定的话,不管这文件输入进来以后,怎么分割重复率都是固定的。


  这样从技术上来看就是两大流行:基于文件的与基于数据块的。这两个主流确定下来以后,实际上在选择重复数据删除的时候,还有一点比较重要,就是重复数据删除发生在哪个位置,这一点与用户最终的采购选择以及应用模式有很大关系。


  一般而言,重复数据删除发生在三个位置,第一个是用户的服务器上,用户的服务器在备份的时候就是介质服务器,如果发生在介质服务器上的话, 我们会发现这种重复数据删除通常是软件产品。其优点很明显,比如说往后端的磁盘上传输数据的时候,一定是经过重复数据删除过的数据块,这时候数据产生的空间是最小的,此外用户不用对它后端的磁盘阵列和虚拟带库修改了。缺点在于,如果是基于软件的话,那一定要和用户的备份软件密切结合的,还有一点就是它的CPU占用率,和内存占用率,由于这两方面的占用,在做重复数据删除的时候,会不会影响使用性,所以一般来讲用户选择的时候,最好查一下用户的列表,当前用的备份软件是什么,主机平台是什么,这样来讲的话,才能和使用环境切合起来。


  第二种就是重复数据删除发生在虚拟带库,除了虚拟带库正常的功能以外,还有重复数据删除的功能,这种产品叫做硬件的VTL。这一类产品可以分两种类型,第一种是重复数据删除发生在VTL接收数据的过程中,我们叫In line前事处理。也就是数据到VTL之后,先保存到内存里面,经过重复数据删除以后才存。后事处理是数据直接写入VTL的磁盘组,然后引擎会发出一个重复数据删除的指令,一般来讲或者用命令行,或者是定制一些策略,然后数据会再被读出来,完成重复数据删除的工作,然后再把原先占用的空间清理掉。


  现在,重复数据删除有各种不同的实现模式,对于用户来说最重要的是什么呢?就是产品或者技术推出来以后,用户是否有一个选择的余地。就像今天我想用先事处理的模式,那么有一天我觉得这种模式不是适合我今天的业务模式,或者是今天的环境,我能不能把它改成后事模式,能不能给用户多一点选择,我想这应该是重复数据删除产品需要完善的地方。


  主持人:其实刚才听了王先生给我们介绍这么多种重复数据删除,包括前事处理,后事处,跨数据级的,那么昆腾在其中究竟是属于哪一种呢?


  王刚:我们先分析一下前事处理的工作流和工作方式。在前事处理模式下,备份Server发数据文件,会首先进入VTL的内存里面,这是没有进行重复数据删除的数据基,这时候重复数据删除的引擎会把这个数据集截留成一块一块,这个我刚才讲过 了,是根据哪些地方重复率最高是随意切割的,这是可变的字符块模式。切割完了以后比对,比对完了以后才真正的往后台上存。那么这时候就会发现实际上虚拟带库的引擎80%的工作都在做重复数据删除的对比,而只有20%的工作是把删除后唯一的数据块放到用户的RAID阵列上去。


  主持人:这会耗用一定的虚拟带库内存?


  王刚:是的,可以说80%的会被重复数据删除的工作占用了,所以说衡量这个产品或者技术是否先进,还要看产品的处理能力够不够:内存是不是给大,CPU是不是双核的芯片以上,是否能消除基于前事处理模式在内存和CPU的消耗,所以前事处理的产品,如果CPU算法不是很优的话,那么服务器上大量的数据流过来的时候,来不及处理,即使后端的阵列带宽很高,机头也会产生处理瓶颈。但如果处理能力足够,足以弥补缺陷的话,那么优势依然很明显,还是很好的。


  后事处理,是数据到重复数据删除的VTL的时候,这个数据不是在内存里面堆积,而是先写到阵列组上。一般来说当写满某几盘磁带的时候,这个引擎就会触发,先对这个磁带进行重复数据删除,这时候有一个动作就是回读,就是把这个数据重新读回到内存里,这时候大家发现后事处理这种模式虽然不影响当时备份时候的性能,但是它的IO一定是占用最高的,为什么呢,因为反复读写的关系RAID阵列一定是最忙的。


  多次读写带来的问题包括,例如今天晚上需要备份的数据很多,这时候正在做重复数据删除,就有可能发生处理不过来影响备份的情况。第二有些磁带已经在重复数据删除过程之中,那么如果用户再发起一个备份的话,需要考虑的因素更复杂一些,


  至于前事处理好还是后事处理好,这两个是没有区别的,实际上是没有区别的,也就是说对用户来讲完全和环境是有关系的,你的备份量,比如说总共只有几十兆每秒一次,不管是前事处理还是后事处理都是没有问题的,如果用户对带宽的要求很高,那么一般来讲的话,前事处理不是太合适。因为毕竟这个CPU和内存能配到多大,能配到多高,如果这样多多少少有影响,一般来讲前事处理的性能比不上后事处理。但是如果前事处理的设备比较强大,这基本上就没有什么问题。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐