FTRIM是针对SSD提供的回收空间的接口,对ioctl的包装。
基本介绍
- 外文名:FTRIM
- 属性:针对SSD提供的回收空间的接口
- 特点:对ioctl的包装
- 具体方法:ext4_trim_fs
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删除操作如图所示。