Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11701345
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-09-19 14:04:26

 一、什么是重复数据删除技术?

     重复数据删除技术的含义就是存储数据时,检查和比较已存在的数据。如果它们是相同的,那就过滤掉这部分数据的备份,然后通过指针引用已存在的数据。重复数据删除技术对备份这样的应用是非常突出的,同时也产生了大量重复数据删除技术的副产品。这些应用都是重复数据删除技术首选的目标。

     我们来举个例子,说明一下如何使用一个支持重复数据删除技术的产品,当我们要通过Exchange邮件服务器将一个具有相同附件的邮件发给20个接收者的时候,我们就可以只保留附件的第一个实例,然后其他的接收者可以通过不同的指针指向第一个实例来看这个附件。

     在这种方案设计下,不同文件的许多部分都可以像那样只存储一次。举个例子,如果一个文档的前几行包含这个文档的路径名,那么这个路径通常和这个文件夹中其他所有文档的具有相同的名字。

     如果这个路径名只有40个字符长,并且前29个字符和其他所有文件的是一样的,所以所有的这些文件的前29个字符将只保留一个实例,其他都用指针来代替。因为许多类型的文件,其架构原理都是相似的,像PowerPoint 和PDF文档都很可能包含许多和原始的Word文档相似的文本,并且这些相似的字符串在许多文档中循环使用。

  二、重复数据删除技术实施上有何不同?

  重复数据删除技术可以执行在文件、数据块以及数据子块的级别,当然也有一些厂商把它们叫做"blocklet"、"chunklet",数据每一个chunk的尺寸越小,重复数据删除技术的效果就越明显,但是额外的进程和较大的数据库都会增加其相应的成本。

  如果重复数据删除执行在文件一级别,那么全部的文件必须作相同的重复删除处理;如果执行在数据块一级别,那么不管数据块大小为512字节或者4096字节,全部的数据块也必须同等的被指针所替代;如果执行在blocklet级别,那么只有少数的24个字符能够被同等的指针所替代,从而达到最大、最有效的压缩比。

  达到这种不断减少的效果最关键的是,使用索引和进程来存放一些大量的短字符串占用的空间要远大于使用短指针替代重复的字符串占用的空间,而且越来越大。

  除了以上介绍的几种重复数据删除技术处理的级别,还有一种通过虚拟磁带库进行重复数据删除处理的方式,这种方式其他技术相比最主要的不同是,它像数据移动一样,不管数据在传输过程中是否进行了重复数据删除处理,都将移动到虚拟磁带库中,然后在其内部进行重复数据删除的操作,或者说是进行后处理操作。

  在这些不同的实现的基本方法中,最粗略的分类可以分为两类:一种情况,你先接收到所有的数据并他们写入磁盘,然后将来的某个时候通过重复数据删除处理将这些数据重新读取并处理一次,另外一种情况是当接收数据的时候就直接进行及时地内部处理以达到重复数据删除的处理。这就是大家常说的在线处理和后处理。

  三、在线方式和后处理方式的重复数据删除处理技术各有哪些优劣?

     在线方式的重复数据删除处理在性能方面是很难达到一个很好的效果的。但是如果你能够达到很好的性能,那么这将对你的应用非常有利。因为一旦你完成了重复数据删除的这部分处理工作,你的全部工作也就完成了。这也就意味着没有太多的负载并且你也不必为后续工作的容量计划而费神,也不用关心哪些资源本应该是可利用的。

     相反的,对于后处理方式的重复数据删除处理,当你的数据通过备份应用软件保存到磁盘时,没有过度的负载消耗,但是在这之后用户就需要关心一下他们的数据,因为在这之后还有很多对性能有影响的后处理工作需要完成。

     当你看完以下的内容时,你就非常容易理解了。后处理方式的重复数据删除处理会导致磁盘子系统的活动情况就像副产品一样迅速增长。最简单的原因就是你必须把所有的数据都写入磁盘,然后再进行读取和其他操作。因此这大量的数据库数据及其索引信息是让人非常头疼的,它也使整个处理过程变得非常缓慢。

     由于这些原因我们可以断定,如果你在线方式的重复数据处理可以达到300-400MB/s的话,你就不要考虑使用后处理方式的重复数据删除技术,因为这会导致你的磁盘处在一个高I/O负载的环境,它会使你的系统性能降低。

     早期的一次beta测试支持的结果显示,当你有一个非常大的数据量需要处理的时候,我们的后处理技术就显得非常缓慢。这个非常大的数据仓库,尤其是使用基于哈希算法的方式的时候,它会导致许多索引和目录难以置信的活跃,影响整体的性能。我们所说的大数据量,都是20、30或40TB的数据。 

四、如果在我们的环境里使用磁盘代替磁带,你更倾向于后处理方式或在线处理方式的哪一种?或者是采用其他什么不同的方法?

    这个话题讨论的重点主要在于工作量的大小。如果你仅有很小的工作量并且你只需要每晚备份1TB的数据量,那么会有很多种不同的方法能够满足这种要求。再配置和扩展性方面还有两个属性需要注意,那就是可伸缩性和复杂性。

     当你需要处理的较大量的数据时,比如每晚需要处理20TB的数据,你就真的需要担心一下你的配置是否能够满足系统负荷的要求。如果你处理这些巨大的工作负荷是通过买更多的硬件设备支持的话,那我觉得还是部署后处理方式的重复数据删除技术。

     同时需要注意的是,当我们把数据从磁盘发送到磁带上,在向磁带发送之前我们还需要做重复数据删除的反操作。

     因为把数据写到磁带中和把数据发送到离线状态是一样的,你的使用环境要求你要具备所有自然访问数据的条件。这也就意味着只有NetBackup、TSM 或者Legato备份管理软件才能直接使用这些磁带。如果你把数据写入磁带,那他就变成一种似有的格式了,他需要你通过重复数据删除处理的反操作使数据能够被应用所使用。

  四、如果在我们的环境里使用磁盘代替磁带,你更倾向于后处理方式或在线处理方式的哪一种?或者是采用其他什么不同的方法?

    这个话题讨论的重点主要在于工作量的大小。如果你仅有很小的工作量并且你只需要每晚备份1TB的数据量,那么会有很多种不同的方法能够满足这种要求。再配置和扩展性方面还有两个属性需要注意,那就是可伸缩性和复杂性。

     当你需要处理的较大量的数据时,比如每晚需要处理20TB的数据,你就真的需要担心一下你的配置是否能够满足系统负荷的要求。如果你处理这些巨大的工作负荷是通过买更多的硬件设备支持的话,那我觉得还是部署后处理方式的重复数据删除技术。

     同时需要注意的是,当我们把数据从磁盘发送到磁带上,在向磁带发送之前我们还需要做重复数据删除的反操作。

     因为把数据写到磁带中和把数据发送到离线状态是一样的,你的使用环境要求你要具备所有自然访问数据的条件。这也就意味着只有NetBackup、TSM 或者Legato备份管理软件才能直接使用这些磁带。如果你把数据写入磁带,那他就变成一种似有的格式了,他需要你通过重复数据删除处理的反操作使数据能够被应用所使用。
七、重复数据删除原理上有哪些不同?

     目前市场上大家讨论比较多的重复数据删除技术主要有三种形式。一种把数据看成一种不可知的形式并且以相近的方法搜索数据流。一旦相近的数据被发现,一个比对不同的算法程序将被执行,以确保哪些数据和已存在的数据相同,需要过滤掉。只有新的数据被存储。

     另一种是通过哈希技术或者哈希算法把数据打碎分片成一些摘要。例如一个8字节大小的数据,那么我们就通过一个哈希算法生成一个指向数据的摘要,那么数据就保存好了。如果这个签名或者哈希值由一个新的数据流重计算得出,那么这个计算结果就被认为是已经存在的数据,可以通过原有数据进行引用。这样他就不需要消耗更多的存储,也因此减少了存储磁盘阵列的消耗。

     第三种是把数据流看作成内部的逻辑内容,这种方法主要是识别记录的数据格式。它采用内嵌在备份数据中的文件系统的元数据识别文件;然后与其数据存储库中的其它版本进行逐字节地比较,找到该版本与第一个已存储的版本的不同之处并为这些不同的数据创建一个增量文件。

     因此,做重复数据删除处理有好多种基本的方法,实施这些方法也有好多种不同的方式。目前Quantum/ADIC, Data Domain and FalconStor使用哈希算法和由此衍生出的一些新用法。Sepaton使用的则是第一种内容自感知的方式。 

阅读(392) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~