机械硬盘trim功能,机械硬盘trim指令

http://www.itjxue.com  2023-01-18 10:01  来源:未知  点击次数: 

固态硬盘trim原理是什么?

在机械硬盘上,写入数据时,Windows会通知硬盘先将以前的擦除,再将新的数据写入到磁盘中。

1、机械硬盘工作原理只有读和写;

2、SSD而言TRIM的最大作用是清空待删除的无效数据;

3、trim技术需要OS和ssd同时支持才有效。

SSD的TRIM功能有什么作用

Trim的作用

原本在机械硬盘上,写入数据时,Windows会通知硬盘先将以前的擦除,再将新的数据写入到磁盘中。而在删除数据时,Windows只会在此处做个标记,说明这里应该是没有东西了,等到真正要写入数据时再来真正删除,并且做标记这个动作会保留在磁盘缓存中,等到磁盘空闲时再执行。

这样一来,磁盘需要更多的时间来执行以上操作,速度当然会慢下来。

而当Windows识别到SSD并确认SSD支持Trim后,在删除数据时,会不向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。Volume Bitmap只是一个磁盘快照,其建立速度比直接读写硬盘去标记删除区域要快得多。这一步就已经省下一大笔时间了。然后再是写入数据的时候,由于NAND闪存保存数据是纯粹的数字形式,因此可以直接根据Volume Bitmap的情况,向快照中已删除的区块写入新的数据,而不用花时间去擦除原本的数据。

以上就是Trim的原理以及真正作用。

注意:如果SSD组RAID0后,将失去Trim功能

这个功能一个大的特点就是:回收闲置的SSD数据块

Objective Analysis的SSD分析师Jim Handy这样形容到(Objective Analysis是一家半导体市场研究公司):

TRIM指令让操作系统可以告诉固态驱动器哪些数据块是不会再使用的;否则SSD控制器不知道可以回收这些闲置数据块。

Handy表示:"TRIM对SSD是个福音。"

他认为TRIM的简约性将极大减少写入负担,同时允许SSD更好地在后台预删除闲置的数据块,以便让这些数据块可以更快地预备新的写入。

SandForce首席技术官Radoslav Danilak表示,值得注意的是OS(操作系统)的角色。

Danilak表示:"SSD知道哪些过期数据可以删除和回收,但是它不知道操作系统已经决定删除哪些数据,直到操作系统为了新的信息而重新使用逻辑块地址(LBA)。"

Danilak表示:"TRIM这种指令的优点便是它可以同时透过过期数据和OS删除的数据来访问LBA,从而推动性能的改善。TRIM唯一的缺点便是如果它在SSD固件中没有得到很好的实施,那么它的操作有可能会阻碍正常的驱动器操作。"

STEC负责SSD技术营销的高级经理Scott Shadley认为,如果TRIM可以让SSD完全忽略一个LBA范围的数据,那么这是一件好事,但是这种结果也有可能没有什么用处。

对Shadley来说,真正的问题是,如果损耗平衡技术(wear leveling )在运作,那么LBA范围并不一定反映SSD闪存的物理地址序列。

Shadley表示:"这意味着SSD还是要面临如何将数据迁移到设备内部真正空余空间的问题。"

Shadley表示:"如果那个LBA范围反映的是整个介质上的页面,那么实际上就没有空余的块或最小的可擦写的单位。这会带来更加复杂的损耗平衡过程,从而进一步加重写入负担。TRIM只适合于那些损耗平衡过程实际上并未有效节约或延长驱动器性能或寿命的SSD。"

开关Trim后的写入速度对比

举个例子,假如一个128KB大小的区块内存放着一个128KB的文件,如果文件被删除并执行Trim操作,固态硬盘就可以避免把这个区块中的字节与对此区块的后续写入所需的其它字节相混合,这能大大减轻固态硬盘的“磨损”。

在Windows 7里,Trim请求不仅限于删除操作,也于分区和卷级别命令、文件系统命令、系统还原功能完全整合。

win7下Trim启用的验证方法

其实Windows 7默认状态下Trim指令是开启的,如果想查询目前的Trim指令状态,我们可以在管理员权限下,进入命令提示符界面,输入“fsutil behavior QUERY DisableDeleteNotify”,之后会得到相关查询状态的反馈。在这里,提示为“DisableDeleteNotify = 0”即Trim指令已启用;提示为“DisableDeleteNotify = 1”即为Trim指令未启用。

并不是操作系统提供Trim指令支持,所有SSD都能享受到Trim技术所带来的好处,这还需要固态硬盘的固件支持才能实现。一些主要的固态硬盘主控芯片厂商已经提供了支持Trim的固件(例如英特尔"X25-M G2"),不过也有厂商开发出不依赖操作系统的垃圾回收技术,通过回收不再使用的闪存区块加入负载平衡算法,防止固态硬盘在长期使用后速度下滑,并延长闪存使用寿命,过程完全在固态硬盘内部完成。

有关固态硬盘(SSD)还有很多其他的相关问题,毕竟目前来说固态硬盘不太容易普及应用,只能适合用来做一些高速系统启动盘,或者专门的软件安装盘来达到高速的效果,应用上仍然存在很多的疑问。

固态硬盘删除的资料能恢复吗?固态硬盘格式化后能恢复数据吗?

固态硬盘删除了还能恢复吗? 固态硬盘格式化还能恢复吗?很多人在咨询数据恢复公司后得到的回复估计是:无法恢复。真的这么绝对吗?又是什么原因导致恢复不了呢?看完这篇文章,基本就会有个大致的了解了。

一、trim的原理和意义

当我们在操作系统中删除一个文件时,系统并没有真正删掉这个文件的数据,只是把这些数据占用的地址标记为‘空’,即可以覆盖使用。这只是在文件系统层面的操作,硬盘本身并不知道那些地址的数据已经‘无效’,除非系统通知它要在这些地址写入新的数据。在机械硬盘(HDD)上本无任何问题,因为机械硬盘允许覆盖写入,但到固态硬盘(SSD)上问题就来了, 由于NAND(闪存)不支持覆盖写入,而是要先擦除后再写入,这种特性会导致固态硬盘(SSD)陷入越用越慢的窘境。 要得到‘空闲’的闪存空间来进行写入,固态硬盘(SSD)就必须进行GC(垃圾回收)操作。TRIM 指令也叫disable delete notify(禁用删除通知),是告诉 NAND(闪存 )存储设备要擦除哪些数据的ATA指令。当相关地址的数据可以被擦除时,操作系统会发给SSD一个TRIM指令。固态硬盘(SSD)控制器在操作删除后和再次写入前,执行安全擦除操作。这样在后期写入操作过程中不用再花时间去擦除数据,写入速度要快得多。 Trim 的意义在于它能大量减少“有效”页数据的数量,大大提升 GC 的效率。特别是消费级的 SSD 由于一般 OP 空间较少,因此相对于有大量 OP 空间的企业级 SSD 来说,Trim 显得非常重要。

二、什么操作系统和文件系统支持trim?

Trim指令是微软和各大硬盘厂商联合开发的一项技术,属于ATA8--ACS规范的技术指令。在windows操作系统下,trim指令只能在NTFS和ReFs文件系统下才可以启用,在exFAT和FAT16/32文件系统下是无法启用的。不支持trim的操作系统版本包括:windows xp、windows2003、windows 2008。而windows 7以后基本所有版本都支持trim功能。在windows系统下,如何查看trim功能有没有启用呢?这就需要用到一个命令了,C:fsutil behavior query disabledeletenotify,当收到的指令是0时,则代表已经启用了trim功能,收到的指令是1,则代表没有启用。

三、USAP是什么?

既然trim是ATA指令,那是不是跟移动固态硬盘就没关系呢?对于移动硬盘盒内的固态硬盘,如果移动硬盘盒支持UASP协议,那么硬盘中的trim功能就可以用。如果不支持UASP协议,则不能用。 USAP ,是USB-IF所制定用于透过USB接口连接序列设备的一个传输协议,能让大容量储存设备传输速度提升20%,并降低CPU利用率、数据延迟和等待时间等。实现UASP加速需要满足以下条件:

1、电脑主板上的USB3.2 Gen 1或Gen2主控芯片要支持UASP;

2、电脑操作系统必须是Win8、10或者Mac OS 8 9以上的系统版本;

3、外接设备比如移动硬盘盒要支持UASP传输协议。

四、哪些情况可以恢复数据?

通过上面的简单介绍应该可以知道, 绝大多数情况下的固态硬盘(SSD)删除或格式化是无法恢复数据的,要具体情况具体分析 ,以下几种情况可以恢复数据:

1、硬盘在Windows XP、Windows 2003、Windows2008操作系统下使用;

2、固态硬盘(SSD)及部分叠瓦硬盘(支持TRIM)格式化为exFAT或FAT16/32文件系统;

3、固态硬盘(SSD)及部分叠瓦硬盘(支持TRIM)接在不支持UASP协议的移动硬盘盒里使用;

4、在较新的操作系统下,关闭了NTFS或ReFS文件系统的TRIM功能;

5、误操作后立马对固态硬盘(SSD)进行了断电,后期没有再加电。

现在常见的NVMe SSD使用了全新的协议,NVMe中与SATA TRIM指令等同的是 Deallocate 。对于SCSI来说,对应的也不是TRIM,而是 UNMAP。

ssd上的trim功能必须开启吗

开启Trim功能减少磁盘擦写操作,延长固态硬盘的FLASH寿命。 Windows 7默认状态下Trim指令是开启的,如果想查询目前的Trim指令状态,我们可以在管理员权限下,进入命令提示符界面,输入“fsutil behavior QUERY DisableDeleteNotify”,之后会得到相关查询状态的反馈。在这里,提示为“DisableDeleteNotify = 0”即Trim指令已启用;提示为“DisableDeleteNotify = 1”即为Trim指令未启用。

输入CMD右键以管理员身份运行

命令提示符里面,右键选择粘贴不能支持Ctrl+V

粘贴“fsutil behavior QUERY DisableDeleteNotify”

回车获得Trim状态,提示为“DisableDeleteNotify = 0”即Trim指令已启用;提示为“DisableDeleteNotify = 1”即为Trim指令未启用。

注意:如果SSD组RAID0后,将失去Trim功能,非RAID模式状态下,未开启Trim请及时更新驱动和系统补丁即可。以上文章仅为参考帮助说明,并不做全面的可适用性保证

(责任编辑:IT教学网)

更多

推荐新书快递文章