重复数据删除技术解密
二、重复数据删除的五个阶段
数据收集
在数据收集阶段,软件通过比较进入的备份数据和先前的备份缩小需要进行分析数据的范围,使用“内容已知”数据库辨别它们之间可能的重复和相似数据。例如,如果名为同一个客户端中的 “\root\documents\abc.txt”文件在备份中存在两次,软件自动决定采取何种动作。如果进入的数据是已存在数据的修改版本,该数据就进入下一阶段(数据识别、数据比较)的处理流程以确定数据发生的具体变化;如果进入的数据和已存在数据完全相同,那么进入下一阶段对数据副本进行校验。另外的数据收集操作包括:标志保存在不同位置(例如,不同的客户端、目录等)的相同对象副本。软件还为数据收集阶段发现的冗余数据对创建一工作列表,该表格用于数据识别和比较阶段进行进一步分析。
数据识别/数据比较
在数据识别/数据比较阶段,软件以字节为单位分析数据收集阶段标志出的相似数据对象。如果数据收集阶段创建的工作表表明需要进行数据识别,那么软件就会用 delta 差分算法确定备份组中的哪些数据是唯一的、哪些数据是重复的。
该算法可以有效地以字节为单位映射发生变化的数据,并且对数据对象内的偏移或者位置改变不敏感,所以,即使相关的对象之间发生明显的结构改变,该算法仍可以定位冗余的数据。
如果数据收集阶段从元数据级别认定备份组中的数据和前一个备份相同,那么在数据识别阶段将以字节为单位对数据进行比较。在该步骤中,软件调用数据比较器识别出数据发生变化的文件。
数据重组
数据识别/数据比较的结果被传递给数据重组过程,在该过程中数据被重新组装,放入临时的“保留磁带”中,新数据被保存,前一阶段被标出的重复数据被已存数据的指针替代。对备份软件而言,保留磁带和真正的磁带完全相同,只是存储在新磁带中的数据要远少于真正的磁带上存储的数据。从备份软件看来,数据是连续的并且也没有删除副本,软件可以根据嵌入在文件系统中的指针读取重复数据的唯一一份副本。该过程的最终结果是产生一份经过重复数据删除的备份组视图。
可选的完整性检查
在实际删除所有的重复数据前,软件执行一次可选的检查,以保证数据100%的完整性。在本阶段中,软件通过将“保留磁带”(代表经过重复数据删除的数据)和原始数据进行比较验证其结构和整个数据内容。
空间回收
在空间回收阶段,软件从文件系统中删除冗余的数据,释放先前被占用的磁盘空间以备他用。保留磁带和原始的、没有经过重复数据删除的磁带交换位置(比如条码、槽位以及属性等),然后软件智能的释放重复的区块并将它们放回空闲空间池。经过这样的处理以后,所有其他需要存储空间的数据处理过程都可以重用先前被重复数据占用的空间。