如何看待重复数据删除技术的弱点
2008-08-21 11:57:14 来源:WEB开发网实例1:受损数据读取
如果从磁盘读取数据,而且那些数据由于某种原因损坏了,然后开始将受损的数据应用于新数据,你可能会遇到一个大问题。当你再次从磁盘读取数据,进行重复数据删除的操作时,它可能就不同了。
如果将读取的数据与新数据进行对比,内存中的数据将是坏的,所以你找到的所有一样的数据在下次被读取时都将变成其他的数据。因此,基本上从受损数据中读取的任何数据都将被错误的对比,因而变得无法读取。
如果那些数据由于某种原因被重新读取,而且读取的是正确的数据的话,那么后续数据都将是正确的。除此之外,就会发生无法恢复的调试,你将丢失大量的数据。 令人担心的是,一部分数据是好的,一部分数据是坏的,要想区分开来,非要进行非常细致的检查工作。
实例2:受损数据重复数据
但是,如果数据从一开始就出错,在磁盘上就已经受损了怎么办? 这个问题与第一个实例很相似,只是第一个实例中的数据是好的,后来才读取了坏的数据,令所有数据都受损了。在这个实例中,重复数据是在内存中创建的,是好的,但是磁盘上的数据是坏的。 也就是说,你用一个好的重复数据建立了数据,但是一旦从磁盘读取数据,数据就变成坏的了。好的一面是,一旦从磁盘重新读取数据到内存,数据就一样了,所以这个问题不是很严重。 但是在利用内存中的原始数据创建数据时,你不能进行恢复已经删除的重复数据。当你下个月恢复删除的重复数据时,你会获得错误的数据,除非从磁盘读取正确的数据才行。 再次强调一点,这是个调试问题,可能无法解决。
你需要向厂商咨询些什么
我自己遇到过数据受损的事故,我也看到其他人遇到过同样的问题,你迟早也会遇到。 我也非常相信新的T10 Data Integrity Field标准,这个标准会从主机向磁盘进行8字节的检验,让磁盘来验证数据,估计很多厂商都将在今年晚些时候提供基于这种标准的产品。我个人很喜欢这个标准,因为有些部分已经应用于硬件的数据通道中,它是由为你提供SCSI协议的同一个厂商提供的。
文件系统可以进行数据检验,但是如果文件系统在进行检验时修正了数据,你可能会遇到两个问题:
文件系统在检验之前必须将数据读回到服务器。当数据被写回设备之前,它们是没有被检验过的。
服务器CPU必须计算出检验数字,并且在文件被读回时进行验证。这对服务器有很大影响。 包括增加内存带宽的要求以及利用CPU高速缓存,要求将应用程序重新从内存载入以及检验数字计算所需的内存带宽。
如果你运行的应用程序使用了大量服务器资源,这就会构成一个严重的问题了。
有些产品有着自己的文件系统和检验数字,可以解决我对数据损坏的部分担忧,但是并非所有的厂商都提供了具有这些功能的产品。这只是你应关注的重复数据删除中的一部分问题。 在选购产品时,你还必须考虑其他许多因素,但是这应该是你优先考虑的因素。你在提出这个问题的时候,厂商们也许会说这是你自己的问题,你的系统应该象T10DIF那样。 这种回答是错误的。在你提出问题之前,厂商们必须考虑到你的硬件和软件,如果它们把问题丢给你,你就不用考虑购买它们的产品了。
在某些环境中,重复数据删除是一种很重要的工具,但是凡事都有两面性,你应该认真规划和执行它。
更多精彩
赞助商链接