技术专题

联系我们

电话:13337706658

传真:025-83690203

地址:南京市玄武区成贤街50号成贤大厦1305室

企业微信

SSD的TRIM恢复技术

发布时间:2019-10-17 18:37:03

SSD数据丢失的原因

从用户的操作来说,又可以分为修改,删除,格式化等

同名文件修改和覆盖的情况,比如有一个FILE A,开始它存储在FLASH空间的X,映射关系为A->X。后来,用户重写了该文件,由于FLASH不能覆盖写,SSD内部必须寻找一个没有写过的位置写入新的数据,假设为Y,这个时候新的映射关系建立:A->Y,之前的映射关系解除。这种情况下,空间X的数据还是存在的,只有当触发GC(垃圾回收),数据才真正意义上被清除。所以修改和覆盖的同名文件,也是有可能恢复的。

删除和格式化的情况,可以对照图FTL-02,图中第5步到第7步是TRIM命令处理后,GC的处理,它们不是Trim命令处理的部分。Trim命令是不会触发GC的,所以我们只要在GC之前,数据还是存在page里的,只是Valid Page Bit map被清除了,这就给数据的恢复带来了可操作性。

另外,在SSD的交换区中也会存在一些残留数据,这些数据同样也是有可能被恢复的。

TRIM 的工作原理:

当一个文件在支持Trim的系统里被删除后,操作系统会发个命令给固态硬盘主控,让它知道这个数据所在的这个page可以直接被写入,等于把控制权从操作系统变为了主控制器。

固态硬盘一样会复制整个包含删除数据的块到缓存,清空块并写入有效数据的页回去,区别是这样等于把这个延迟时间从覆写数据的那个时间提前到了删除数据的时候,自然就会显得固态硬盘的速度回来了,因为在写入的时候有可用的空块。

小Z聊固态:浅谈固态硬盘关键字之Trim

Trim工作示意图(图片来源于网络)

Trim只是一个指令,它让操作系统通知主控某个页的数据已经'无效'后,任务就已完成,并没有更多的操作。其余的所有的垃圾文件的清理、回收等工作,都与Trim无关,完全是由主控其它的固件在工作。

TRIM的意义:

它能大量减少"有效"页数据的数量,大大提升主控回收垃圾文件,处理垃圾文件的效率。

TRIM后的数据恢复:

一般情况下,TRIM执行后的数据并不是完全不能恢复的。若要恢复被”TRIM“掉的数据,佳时机一定是刚”TRIM“就立即断电,否则随着时间的推移,”TRIM“后的数据会被GC(垃圾回收)掉。

我们使用自主研发的专业设备,绕过主控,直接读取FLASH闪存芯片,从而恢复部分数据