存储 频道

企业采购指南 谈重复数据删除技术选型

  【IT168 导购】现在有两个不同内容的Word文档(其显示的文字不同 ),他们之间有没有重合地方呢?或者说,这两个不同的文档之间有没有通用的内容呢?答案是肯定的。如不同的文档之间,可能具有相同的访问权限。假设,每个文档需要利用0.5K的容量来保存这些信息或者属性(如只读或者隐藏等等)。那么10000个文件,需要占用多少容量呢?上百万个文件呢?显然,这些通用的信息会造成比较大的浪费。为了节约存储的成本,此时重复删除技术就派上用场了。

  重复数据删除技术是一个减少或者消除冗余文件、字节、或者数据块的一个过程。简单的说,就是确保只有少有的数据被保存到存储设备中。重复的内容都被压缩了。从而来降低存储成本(如硬盘或者维护的成本等等)。在存储设备中(如用于文件服务器的存储设备),往往数据会有比较高的通用性。用户之间、服务器之间、同一种类型的文件之间相当一部分内容都是通用的。重复数据删除技术按自然边界江数据拆分为非常细粒度的子块单元,会采用指针代替相同的子块单元,从而达到显著降低存储空间的目的。这个原理跟数据库中的关系表有点类似。不过重复数据删除技术的工作原理要比其复杂的多。还好这并不是存储管理员必须要掌握的内容。我们只需要知道,重复数据删除技术有哪几种类型、各自有什么特点、如何根据企业的实际情况来选择适用的存储技术等等。

  根据启动重复数据删除技术的时机来区分,可以将重复数据删除技术分为联机重复数据删除技术和后期处理重复数据删除技术。作为存储管理员,可以不精通重复删除技术背后的工作原理,但是对于这两种技术的特点必须了解。

  一、后期处理重复数据删除技术的优缺点分析

  假设现在往存储设备中存储数据,那么存储系统是什么时候判断是否有重复的子块呢?是存储之间判断,还是存储作业完成之后判断呢?这就是重复数据删除流程启动的时机。如果是在存储作业完成之后再进行判断的话,那么就是后期重复数据删除技术。

  这里笔者以一个备份的案例来谈这种技术的优缺点。现在有一个Oracle数据库,需要定期向存储设备中备份数据。当数据库服务器开始向备份设备传输备份数据流时,系统是将整个备份数据量作为一个整体来传递。然后启动单独的进程开始读取已写入磁盘的数据块,开始判断是否有重复的子块,并进行后续的相关动作。如下图所示,可以形象的说明这种方式的特点。

  从上图中可以知道,数据存储与重复数据删出流程是两个独立的进程。一个进程负责数据的存储,另外一个进程来检查是否有重复的数据块以及后续的处理。简单的说,就是一边往存储设备中存储数据、一边进行判断。如果读入的数据块和已存储的数据块重复了,则会使用指针来替代这个数据块并删除重复的数据块(或者说可以被后续的数据所覆盖)。如果没有重复的话,则不会对这个暑假块进行任何操作(因为这个数据块实际上已经保存在硬盘上)。

  这种处理方式主要的缺陷是对于I/O的要求比较高。其先将数据保存在存储设备上。然后再由一个独立的进程从硬盘中读取数据来判断是否有重复的现象。如果有的话,还需要将其删除。从这个流程中就可以看出,有多个I/O的过程。所以对硬盘的I/O提出了比较高的要求。其优势是在存储数据的时候,不需要先在内存中进行缓存、再判断。为此可以节省内存的开销,提高数据存储的效率。

0
相关文章