首先我们还是应该来了解一下什么是TRIM,为什么支持TRIM的硬盘在数据恢复效果方面要打一些折扣。
我们刚刚提到,对于传统机械硬盘来说,用户手动删除数据时系统只是删除了相应的索引文件。当下一次进行数据写入时,磁头通过添加磁场直接改变磁粒子的磁极状态,也就是直接写入新的数据即可实现。
然而对于固态硬盘来说,闪存芯片固有的特性使得在数据删除后,必须进行擦除操作后才可以写入新的数据。
对于我们普通的操作来说,当有数据需要使用的时候,如果原来的区块位置上没有文件则直接进行写入,速度很快。但是如果该区块上有已被用户删除,也就是被系统删除了索引的文件存在的话,则需要进行一次擦除操作。长期如此,固态硬盘的写入性能自然也就降低了。
事实上,Wear Leveling(均衡磨损)机制也可以在一定程度上防止性能下降的情况,它可以尽可能地将文件平均分配到其他区块,避免对某一部分区块的过渡地重复进行读写操作,延迟了寿命的同时,在写入性能方面也有保证。这也是为什么很多人建议使用固态硬盘时尽可能地多预留一些空闲位置的原因了。
而针对性能问题,TRIM机制就横空出世。TRIM指令也叫Disable Del ete Notify(禁用删除通知),这是Windows 7和Windows Server 2008 R2独有的功能。用户进行数据删除的操作时,TRIM就会向固态硬盘发出清空区块的操作,使得固态硬盘提前恢复区块状态,处于全新的环境下,使得系统不会再跟踪这些区块。这样再进行写入操作时就不会再出现性能下降的问题了。
如此来看,这种不会再追踪这些区块或地址,几乎使得支持TRIM的固态硬盘要想恢复数据成为天方夜谭。因为那些数据已经被删除了。但是我们应该意识到,TRIM指令的执行是有一定周期的,可能是在硬盘空闲状态下进行,也可能定期执行一次。
可惜的是,我们无法短期内获知这种变化的规律,目前也没有专门的软件来检测TRIM的运行机制,这就使得我们今天要进行的测试存在很多变数。测试结果可能无法代表普遍的应用环境,仅供参考。