首先我們還是應該來了解一下什么是TRIM,為什么支持TRIM的硬盤在數據恢復效果方面要打一些折扣。
我們剛剛提到,對于傳統機械硬盤來說,用戶手動刪除數據時系統只是刪除了相應的索引文件。當下一次進行數據寫入時,磁頭通過添加磁場直接改變磁粒子的磁極狀態,也就是直接寫入新的數據即可實現。
然而對于固態硬盤來說,閃存芯片固有的特性使得在數據刪除后,必須進行擦除操作后才可以寫入新的數據。
對于我們普通的操作來說,當有數據需要使用的時候,如果原來的區塊位置上沒有文件則直接進行寫入,速度很快。但是如果該區塊上有已被用戶刪除,也就是被系統刪除了索引的文件存在的話,則需要進行一次擦除操作。長期如此,固態硬盤的寫入性能自然也就降低了。
事實上,Wear Leveling(均衡磨損)機制也可以在一定程度上防止性能下降的情況,它可以盡可能地將文件平均分配到其他區塊,避免對某一部分區塊的過渡地重復進行讀寫操作,延遲了壽命的同時,在寫入性能方面也有保證。這也是為什么很多人建議使用固態硬盤時盡可能地多預留一些空閑位置的原因了。
而針對性能問題,TRIM機制就橫空出世。TRIM指令也叫Disable Del ete Notify(禁用刪除通知),這是Windows 7和Windows Server 2008 R2獨有的功能。用戶進行數據刪除的操作時,TRIM就會向固態硬盤發出清空區塊的操作,使得固態硬盤提前恢復區塊狀態,處于全新的環境下,使得系統不會再跟蹤這些區塊。這樣再進行寫入操作時就不會再出現性能下降的問題了。
如此來看,這種不會再追蹤這些區塊或地址,幾乎使得支持TRIM的固態硬盤要想恢復數據成為天方夜譚。因為那些數據已經被刪除了。但是我們應該意識到,TRIM指令的執行是有一定周期的,可能是在硬盤空閑狀態下進行,也可能定期執行一次。
可惜的是,我們無法短期內獲知這種變化的規律,目前也沒有專門的軟件來檢測TRIM的運行機制,這就使得我們今天要進行的測試存在很多變數。測試結果可能無法代表普遍的應用環境,僅供參考。