SSD固态硬盘的GC与Trim

摘要:
当一个文件在支持Trim的系统里被删除后,操作系统会发个命令给SSD,让他知道这个数据所在的这个page可以直接被写入,等于把控制权从操作系统变为了SSD主控制器固件。

操作系统:其实并没有删除数据;

事实上,它只是在硬盘前的索引区里标记这块文件占用的区域为无效的,

所以等该区域被擦除后,下次数据将要再次写入的时候,可以写入这块被标记的区域。

这也就是为啥那 些所谓的文件恢复软件能恢复的道理。(数据依然存在)。

固态硬盘:在固态硬盘闪存内,数据存储一般是以page(页)为最小单位存储的(典型的为4KB),而128个page组成了一个block(块),

数据以页(page)为单位来读取和写入,但却只能以块(Block)为单位来删除。

当读取数据或者写入到一个没有被使用过的page上时,固态硬盘的速度是很快的,

但是在无效数据区上的话,就比较复杂了,需要许多步骤来完成。

*注意:硬盘本身是不知道当前数据的状态的,他只是被控制着做这做那。

上面这一套在普通的机械硬盘上工作起来非常完美,因为他们可以直接覆写旧的区域,

但是当用到NAND闪存上就行不通了,当全部闪存被写满一遍后,没有空余 (从未写过)的块可以被使用的情况下,速度就下来了。

GC:要覆写(这里指在无效数据区域写)一个4KB 页的文件系统,首先要把整个512KB 块复制进缓存里。

然后,在缓存里删除这个4KB页,替换成新的数据。

接下来,清空整个闪存内的这个512KB区域,并从缓存里把新的数据写回去。

SSD固态硬盘的GC与Trim第1张

SSD固态硬盘的GC与Trim第2张

Trim:SSD一样会复制整个包含删除数据的块到缓存,清空块并写入有效数据的页回去,

区别是这样等于把这个延迟时间从覆写数据的那个时间提前到了删除数据的时候

简而言之,这个问题是因为操作系统和文件系统不能和SSD的主控进行删除文件的交流造成的,

如果有之前没清除干净的数据,所有写入的页的操作都要先清除块再改写,将严重影响写入速度。

有2种途径来修复这个问题:

第一个:定期运行垃圾回收程序(GC)

这个操作有点像整理,在SSD空闲时,全盘扫描有效的页并合并整理起来变为一个包含全部有效页的块,而那些无效的页和块都将被完全的清除。

第二个:更好的途径就是当数据删除时候让系统告诉SSD数据没了,让SSD立即擦掉那些数据占用的块,这就是Trim命令做的事。

当一个文件在支持Trim的系统里被删除后,操作系统会发个命令给SSD,

让他知道这个数据所在的这个page可以直接被写入,

等于把控制权从操作系统变 为了SSD主控制器固件。

总结:Trim保证速度不下跌的真正秘密是: 把将来要做的事提前做掉了, 但是这件事迟早要做,所以基本不会影响SSD原有的写入次数(寿命)。

Trim的三要素:

1. 系统: Win7, 2008R2 , Linux核心2.6.28以上。

2. 固件: SSD的厂商在固件里要放有Trim算法。

3. 驱动: MS的驱动,Intel的AHCI驱动目前支持。 别的要看之后的更新了。

以上3点缺一不可。

RAID阵列里的盘明确不支持TRIM,不过RAID可以支持GC。

参考:http://blog.csdn.net/dayancn/article/details/52054664

免责声明:文章转载自《SSD固态硬盘的GC与Trim》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇building tool如何发布Maven依赖到中央仓库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

磁盘随机读写与顺序读写性能对比

1 机械硬盘性能测试 1.1 顺序读取性能测试 图1.1 机械硬盘顺序读取测试 以上为机械硬盘顺序读情况下的性能测试,测试显示平均读取速度能达到84.0MB/s。 1.2 顺序写入性能测试 图1.2机械硬盘顺序写入测试 以上为机械硬盘顺序写情况下的性能测试,测试显示平均写入速度能达到79.0MB/s。 1.3 随机读取性能测试 图1.3机械硬盘随机读...

联想笔记本如何安装固态硬盘-联想G50-80如何安装固态硬盘(全流程+装系统)(专用)

在现在,大家普遍想让自己的电脑运行的更流畅,于是装固态就成了一个不错的选择。下面以联想G50-80为例介绍如何加装内存条。 一、硬件准备 联想G50-80 东芝固态硬盘:TOSHIBA TR2000 480G(参考价格:379元人民币) 启动U盘(用于装系统,需要事先制作好) 二、详细步骤 1、断电、关机。拔掉电源插头,关机。一定确保电脑断电、关机,严...

SSD 相关基础知识

SDD 基础知识 SSD(Solid State Drives)是固态硬盘,使用闪存颗粒来存储数据,闪存又可分为NAND Flash和NOR Flash,通常所说的SSD硬盘都使用NAND Flash芯片来存放数据。NOR型存储内容以编码为主,其功能多与运算相关;NAND型主要功能是存储资料。 Nor Flash:主要用来执行片上程序   优点:具有很好的...

flashcache 介绍

rpm:   flashcache-utils-0.0-4.1.el6.x86_64   kmod-flashcache-0.0-3.el6.x86_64 基本介绍:   Flashcache是Facebook技术团队开发的一个内核模块,通过在文件系统(VFS)和设备驱动之间新增一次缓存层,可以用SSD作为介质的缓存,通过将传统硬盘上的热门数据缓存到SSD...

固态硬盘逻辑坏道简单修复方法(2015-04-02更新)

一般固态硬盘在突然掉电后会随机出现逻辑坏道,用以下方法可以修复: 1、找到逻辑坏道的扇区数。 2、直接填充任意数据到坏道扇区,即可修复该扇区的逻辑坏道,该扇区将变为可用状态。 理论上适用于任何固态硬盘,我的镁光M550就是这么修复的。 注意: 1、如果逻辑坏道过多,可以先备份整个硬盘,然后全盘填充任意数据即可。 2、全盘备份推荐使用GHOST,因为支持读取...

固态硬盘 每秒1.5G

引用:http://news.xinhuanet.com/edu/2012-12/04/c_124041356.htm  殷雪冰(左)和路向峰(右)正在对他们共同设计的设备进行调试。记者 方非摄   传输速度每秒1.5GB,仅需3秒就能传输一张DVD光盘的数据,是普通硬盘速度的15倍。一秒钟可以访问31万次,而普通硬盘仅可以访问16次。这些数据,描绘着一款...