你所不知道的固态硬盘Trim知识 - 存储、网络设备 - 超能网玩家俱乐部 - Powered by Discuz!
开启辅助访问
切换到宽版
查看: 218|回复: 0

[SSD] 你所不知道的固态硬盘Trim知识

[复制链接]
  • TA的每日心情

    2017-4-14 10:01
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2017-4-21 09:58:58 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?快速注册

    x


      Trim功能是几乎所有SSD固态硬盘都具有的功能。大家对Trim可能已经是相当熟悉了。但是,我们真的了解Trim吗?

       我们常常遇到SSD固态硬盘越用越慢这样的情况。了解Trim的工作方式和作用,以及条件和限制因素。这样可以使得我们更好的保护SSD固态硬盘的速度性能以及健康安全,让它的性能得到更好发挥。这就是我们这篇文章的目的。

       Trim,英文意思是修剪,其实是一个ATA指令。ATA技术是一个关于IDE(Integrated Device Electronics)的技术规范族。最初,IDE只是一项企图把控制器与盘体集成在一起的硬盘接口技术。 随着IDE/EIDE得到的日益广泛的应用,全球标准化协议将该接口自诞生以来使用的技术规范归纳成为全球硬盘标准,这样就产生了ATA。ATA并无正式中文名称,操作系统发送此指令给SSD主控,以通知它哪些数据占用的地址是‘无效’的。
         在讲解Trim的重要性前,先说一点文件系统的相关知识。当我们在操作系统中删除一个文件时,系统并没有真正删掉这个文件的数据,它只是把这些数据占用的地址标记为‘空’,即可以覆盖使用。但这只是在文件系统层面的操作,硬盘本身并不知道那些地址的数据已经‘无效’,除非系统通知它要在这些地址写入新的数据。在HDD上本无任何问题,因为HDD允许覆盖写入。但到SSD上问题就来了,闪存不允许覆盖,只能先擦除再写入,要得到‘空闲’的闪存空间来进行写入,SSD就必须进行GC(垃圾回收)操作。在没有Trim的情况下,SSD无法事先知道那些被‘删除’的数据页已经是‘无效’的,必须到系统要求在相同的地方写入数据时才知道那些数据可以被擦除,这样就无法在最适当的时机做出最好的优化,既影响GC的效率(间接影响性能),又影响SSD的寿命。
        Trim只是一个指令,它让操作系统通知SSD主控某个页的数据已经‘无效’后,任务就已完成,并没有更多的操作。Trim指令发送后,实际工作的是GC机制。Trim可减少WA(写入放大)的原因在于主控无需复制已被操作系统定义为‘无效’的数据(Trim不存在的话,主控就不知道这些数据是无效的)到‘空闲’块内,这代表要复制的‘有效’数据减少了,GC的效率自然也就提高了,SSD性能下降的问题也就减弱了。其实Trim的意义在于它能大量减少“有效”页数据的数量,大大提升GC的效率。特别是消费级的SSD由于一般OP空间较少,因此相对于有大量OP空间的企业级SSD来说,Trim显得尤其重要。

      简单的举个例子,Trim相当产线的拉长,GC相当于产线的员工。Trim拉长每天从系统这个车间主任这里得知了哪些要做,哪些不做,然后Trim拉长就安排员工去做。假如没有拉长,上面又不能直接安排生产,那我们就先耍着咯,心情好就磨磨洋工,这样就毫无生产效率可言了,长此以往,厂子就倒闭了。虽然Trim拉长的工作就是简单的听几句话,再对GC员工说那么几句屁话。但是还是很重要的。这样是不是容易理解多!
           Trim工作原理简图:



               Trim的支持需要3个要素:
           1.SSD主控制器和当前搭配的固件需要支持Trim命令接收。
           2.当前操作系统需要支持Trim指令发送。(Win7/2008R2及后续版本)
           3.当前使用的磁盘驱动程序必须支持Trim命令传输。
           只有同时满足以上3个条件,才能做到系统Trim命令发送,驱动传输Trim命令,SSD固件接收到传输来的Trim命令。
           Trim目前不支持以下几种情况:(可能还有更多)
           1. Trim目前不支持RAID阵列中的SSD。(操作系统下进行软件RAID除外)
           2. Trim目前不支持磁盘镜像文件内操作。(VM等虚拟机软件使用的虚拟磁盘文件)
           3. Trim目前不支持加密的文件系统。(以防止暴露加密文件系统信息)

    影响Trim和GC效率的因素:(可能还有更多)

    1.WL磨损平衡。磨损平衡是对NAND闪存的保护。保证不擦写集中。如果擦写集中,对SSD固态硬盘的速度和寿命影响也很大。尤其是TLC NAND需要WL的保护。但WL会延缓Trim指令GC操作。它需要判断,标注优先级。以不让一个区域存在大量集中的擦写。所以,有时候我们磁盘整理,完了,感觉SSD固态硬盘的速度感觉没多大提升。但稍后,速度就会好起来了。

    2.WA写入放大。不仅造成写入缓慢,还让Trim和GC的任务增多了,然后写入更缓慢。Trim和GC效率不行,那么写入放大也增加了。它们互相影响。而减少写入放大是保证Trim和GC效率,提高SSD速度性能,健康安全的主要方法。如何减少写入放大,提高SSD性能呢?以后再讨论。

       我们无法自己去对SSD做频繁的或者重大的优化。所以我们得保证Trim正常运行。

       SSD固态硬盘的功能像NCQ、DVSLP、Trim、WL等等几乎所有SSD都有这些功能。在维护这些功能正常发挥作用之前。更重要的还是选择一个好的SSD固态硬盘。

      光威猛将,MLC NAND,SMI主控,便宜。MLC NAND是绝对比同等或者更高价位的TLC NAND有优势的。首先寿命长,不爽就随便磁盘整理,或者格式化,P/E多,任性,不需怕。其次MLC NAND的擦、写是有速度优势的。最后,写入放大相对更小。


    各类NAND的储存形式



    您需要登录后才可以回帖 登录 | 快速注册

    本版积分规则

    Archiver|手机版|小黑屋|超能网,科技生活第一站  

    GMT+8, 2017-8-21 20:01 , Processed in 0.548709 second(s), 30 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表