WatchStor.com — 领先的中文存储网络媒体 | 51CTO旗下网站

新闻资讯 > HBA > 正文
SSD TRIM技术提升固态硬盘速度与寿命
作者: 佚名 2010-08-09 09:56 【三好在线】

当一个文件被删除后,操作系统其实并没有删除数据,事实上,它只是在硬盘前的索引区里标记这块文件占用的区域为可覆盖的,所以下次数据将要再次写入的时候,可以覆盖写入这块被标记的区域。这也就是那些所谓的文件恢复软件能恢复的道理。(因为数据未被删除依然存在)。

这里要注意一点:硬盘本身是不知道当前数据的状态的,他只是被主控控制着做这做那,在普通的机械硬盘上工作起来非常完美,因为他们可以直接覆写旧的区域,但是当用到NAND闪存上就行不通了,在全部闪存被写满一遍后,没有从未被写过的块可以被使用的情况下,闪存不会直接覆写区域,而是需要经过复杂的步骤来进行覆写。从而速度就慢下来了。

在固态硬盘闪存内,数据存储一般是以page为最小单位存储的(典型的为4KB),而128个page组成了一个block,数据可以以4KB大小的页来读取和写入,但却只能以512KB(128 page)的块大小来删除。当读取数据或者写入到一个没有被使用过的page上时,固态硬盘的速度是很快的,但是覆写数据的话,就比较复杂了,需要许多步骤来完成。步骤可见下图:

当SSD的所有空闲块都被使用后,再有写入操作,它只能覆写数据到之前被操作系统标记为删除的区域。这也是速度下降的开始:要覆写一个4KB 页的文件系统,首先要把整个512KB 块复制进缓存里。然后,在缓存里删除这个4KB页,替换成新的数据。接下来,清空整个闪存内的这个512KB区域,并从缓存里把新的数据写回去。如果你需要同时覆写很多的块,例如是一系列小文件随机写入操作或者只是简单的写入一个大文件到SSD。这会让你的SSD缓存快速过载,然后你的写入速度就会直线下降。早期缓存少的SSD甚至会延迟接近1秒,为了修复这个问题,SSD厂商一个个都在新主控制器上加入了越来越大的外置缓存,这虽然一定程度上解决了随机写入卡的问题,但是却不能解决SSD在覆写时速度下降的问题,这就是我们为什么需要SSD TRIM技术。

由于操作系统和文件系统不能和SSD的主控进行删除文件的交流,所以如果之前有没清除干净的数据,所有写入页的操作都要先清除块再改写,将严重影响写入速度。有2种途径来修复这个问题:第一个就是定期运行垃圾回收程序(GC)(这个操作有点像磁盘碎片整理,在SSD空闲时,全盘扫描有效的页并合并整理起来变为一个包含全部有效页的块,而那些无效的页和块都将被完全的清除)。

第二个更好的途径就是当数据删除时候让系统告诉SSD数据没了,让SSD立即擦掉那些数据占用的块,这就是SSD TRIM技术。当一个文件在支持TRIM的系统里被删除后,操作系统会发个命令给SSD,让他知道这个数据所在的这个page可以直接被写入,等于把控制权从操作系统变为了SSD主控制器固件。

SSD一样会复制整个包含删除数据的块到缓存,清空块并写入有效数据的页回去,区别是这样等于把这个延迟时间从覆写数据的那个时间提前到了删除数据的时候(这个时候对速度影响不大,如果你删除了很大很大的数据,可以去观察硬盘灯在你删除之后几秒内狂闪),所以就会显得SSD的速度回来了,因为你写入的时候有可用的空块。所以我们可以说,SSD TRIM技术保证速度不下跌的真正秘密是: 把将来要做的事提前做掉了。 但是这件事迟早要做,所以基本不会影响SSD原有的写入次数(寿命)。这里要说明一下TRIM不支持RAID而GC支持RAID。

【编辑推荐】

  1. 企业级SSD MLC比SLC价格占优
  2. SNIA制定SSD存储测试规范 方便用户对比产品
  3. SSD应用广泛 发展机遇已来临
  4. SSD与重复数据删除完美结合 提升管理性能
  5. 百亿亿次计算系统10年内实现 SSD起关键作用

标签:HBA 硬盘/SSD 

了不起的IT经理
LecVideo
论坛与活动