来源: 存储随笔
用认真的态度与专业的情怀倾注于存储,欢迎关注我,与我交流哦! Trim是新一代操作系统(比如,Win7,Mac OS等)中特有的功能。Trim有一个曾用名,叫做“Disable Delete Notify”,顾名思义,Trim的作用就是告诉固态硬盘SSD文件已删除。 为什么需要用Trim命令告诉固态硬盘呢?因为当我们在系统中删除一个文件(比如文件A)的时候,只是在逻辑上把"文件A"进行删除了,但是对固态硬盘SSD来说,还不知道"文件A"被删除,依然认为"文件A"是有效数据。只有当用户对“已删除文件A对应的地址”再次写入新的数据时,固态硬盘才意识到"文件A"是无效数据。这样就会产生一个问题:如果用户一下子删除大量文件后,固态硬盘依然把这些"已删除文件"认为是有效数据,这样,在固态硬盘启动垃圾回收(GC, Garbage Clean)的时候就会搬迁很多的无效数据,导致写放大系数很大,对固态硬盘的寿命造成伤害。 在没有启动Trim功能时,如下图:
(1)我们对固态硬盘写入四个文件A,B,C,D; (2)然后删除文件C。我们可以看到下图中,系统OS层文件确实被删除了,而固态硬盘SSD中文件C依然有效; (3)再写入一个新的文件E。此时在固态硬盘的逻辑地址(LBA, Logical Block Address)上,文件E覆盖了文件C的位置。但是在物理地址(PBA, Physical Block Address)上,文件E写入到了新的地址,此时文件C物理地址已被标记为无效,等待进行垃圾回收GC;
当启动Trim功能时,如下图:
(1)同样,我们对固态硬盘写入四个文件A,B,C,D; (2)然后删除文件C。此时,我们可以看到,系统OS层文件被删除后,固态硬盘SSD中逻辑层(LBA)同时对文件C进行删除,物理层(PBA)将文件C标记为无效,等待垃圾回收; (3)再写入一个新的文件E。由于文件C已被删除,可以直接写入文件C所在的位置(LBA). Trim功能的重要性 从上面Trim功能的实现原理中,我们可以了解到Trim功能开启之后可以让固态硬盘提早知道无效数据,并及时进行垃圾回收,不用等待积累很多的无效数据之后才进行回收。垃圾回收数据瞬间过大,就会导致固态硬盘的性能出现断崖式的下降。同时,Trim功能可以有效的降低写放大系数,延长固态硬盘的寿命。 针对这个问题,你有何想法呢?
|