什么是Trim? Trim又叫 Disable Delete Notify。当系统删除某个文件时候,它只是简单的在逻辑数据表内把存储要删除的数据的位置标记为可用而已。而Trim也是做类似的事情,在删除数据时,不会向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。
机械磁盘本身的特点就是对删除的数据仅标记为可用,而无需进行实质的删除。但是固态硬盘不可以覆盖写,所以不能像机械硬盘那样方便;而在写入已被写过的位置时,是需要进行实质的删除数据操作。因此为了在写入时避免频繁删除操作,Trim诞生了。
如OS在C文件被删除后会利用Trim命令告诉主控:“C1/C2没用了,你看着办吧。”,主控可以立刻标记它们为废块,不再搬动,并在合适的时机进行垃圾收集(GC)。
硬盘的TRIM支持,(若是虚拟机,则相应的虚拟软件、硬件也是)需要达成以下几个条件才行:
1. 运行的操作系统要支持TRIM指令
2. 硬盘控制器要支持TRIM指令
3. 硬盘块设备(驱动)要支持TRIM指令
参考:
1. https://zhuanlan.zhihu.com/p/115244514
2. https://zhuanlan.zhihu.com/p/27328255