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