FTRIM是針對SSD提供的回收空間的接口,對ioctl的包裝。
基本介紹
- 外文名:FTRIM
- 屬性:針對SSD提供的回收空間的接口
- 特點:對ioctl的包裝
- 具體方法:ext4_trim_fs
ftrim,由來,
ftrim
檔案系統針對SSD提供的一種回收空間的接口,在linux由ioctl實現,ftrim只是對ioctl的包裝。ext4支持了ftrim,具體方法為ext4_trim_fs。
由來
SSD與傳統磁碟區別很大,SSD由cell組成。目前有兩種,一種是一個cell存儲一個bit,被稱為Single Level Cell(SLC);另一種是一個cell存儲多個bit,被稱為Multi Level Cell(MLC)。頁是SSD的基本讀寫單位,一般一頁的大小是4K。塊由連續的頁組成,塊的大小一般為128 頁。是擦除的基本單位,也就是說擦除操作是以塊為單位進行的。讀操作以頁位單位進行。寫一個空頁時,可以直接寫目標頁。寫一個非空頁,必須先讀出塊,然後擦除快,然後再寫塊。過程如右圖所示。這樣覆蓋寫操作的代價就會很大。
檔案系統進行刪除操作時,一般只刪除索引,不刪除數據。比如在ext2的檔案系統上有一個電影檔案,刪除之後,只是斷開了元數據到電影本身數據連結,電影本身的數據還在磁碟上直到被重寫。這也就為磁碟數據恢復提供了機會。
SSD上也可以按上面說的做,但是前面已經提到:在SSD上覆蓋寫操作的代價大於寫一個空白頁。為了改善寫操作的性能,大多數SSD支持了TRIM。也就是在檔案刪除的時候,檔案系統告訴SSD控制器哪些頁被刪除了。這樣SSD控制器就會將刪除的頁清空,從而成為空白頁。這樣就改善了下次寫作的性能,因為下次寫操作是寫空白頁。支持TRIM的SSD刪除操作如圖所示。