SSD Trim介绍

1. 机械硬盘

机械硬盘(HDD)主要是通过机械装置来控制磁头在硬盘上对磁性物质进行磁化来进行写读操作的装置,因此机械硬盘可以直接覆盖写,所以不需要特别的擦除操作。
操作系统(包括磁盘驱动及文件系统)对机械硬盘的此特性进行了专门优化。当用户删除硬盘上的文件时,操作系统并没有告诉硬盘删除操作,操作系统只是将文件系统的数据映射表进行相应的标记(如FAT表中标记FAT表项为空),并不是真正是删除文件数据。这样做,可以提高操作效率。下次有新文件写入时,操作系统会通过文件系统表项中空白项对应数据区的位置,直接进行覆盖写操作即可。

2. 固态硬盘

固态硬盘(SSD)主要是通过NandFlash来存取数据。操作系统按照操作机械硬盘的方式来操作固态硬盘时,会面临一些问题。
当用户删除文件时,操作系统只是在文件系统中标记对应数据区为空闲,并不真正擦除对应数据区。下一次写操作时,是直接覆盖写。FLASH对应的SLC块容量为1MB,操作系统删除100MB文件之后,假设写128K数据大小文件,此时直接是覆盖写,覆盖因为需要搬移,并且实际搬移的数据可能是需要擦除的无效数据,这就非常影响写速度。
在这里插入图片描述

3. Trim

针对固态硬盘的这种问题,操作系统层面还有各种协议协会,共同提出了专门针对固态硬盘的优化方案——Trim。Trim命令在ATA命令集中,被称为TRIM,在SCSI命令集中被称为UNMAP。
Trim,就是操作系统在删除文件时,直接告诉固态硬盘删除操作,而不只是在文件系统中标记一下。例如,操作系统删除200MB文件,通过Trim告诉固件,那么固件就直接将对应200MB的NandFlash擦除。这样写的时候,就不用进行过多搬移,尤其是针对无效数据的搬移。
所以Trim主要有两个作用:
将擦除操作从覆盖写移到删除操作时。
将对无效数据的搬移操作直接消除掉。
Trim的效果必须是操作系统与固态硬盘匹配,才能发挥效果。windows7默认状态下trim指令是开启的,如果想查询目前的trim指令状态,我们可以在管理员权限下,进入命令提示符界面,

  • 输入“fsutil behavior query disabledeletenotify”,之后会得到相关查询状态的反馈。
  • 提示为“disabledeletenotify=0”即trim指令已启用;
  • 提示为“disabledeletenotify=1”即为trim指令未启用。
  • 输入“fsutil behavior set disabledeletenotify 0”,启用TRIM功能。
  • 输入“fsutil behavior set disabledeletenotify 1”,关闭TRIM功能。

4. 补充

传统机械硬盘没有TRIM,也不需要TRIM。但是最新的机械硬盘,为了追求更高的容量,采用了SMR(叠瓦式磁记录方式),这就导致写的时候需要写更宽的磁道,也就是说写的时候,如果当前磁道相领磁道有数据,
也是需要有一个相应的搬移操作,这同样影响写速度。为了避免这种情况,主要是删除文件时,需要提前完成一个搬移操作,以此来避免影响写时的速度。所以此种方式的机械硬盘也是可以响应操作系统的Trim指令,并且有良好的效果。

Linux的SSD TRIM是一种用于优化固态硬盘(SSD)性能和寿命的技术。TRIM是一项操作系统级别的指令,用于通知SSD哪些数据块不再被使用,可以被擦除和重。这有助于提高SSD入性能,并减少因为重未使用数据块而引起的性能下降。 要启用SSD TRIM功能,您需要进行以下步骤: 1. 确保您的SSD支持TRIM。大多数现代SSD都支持这个功能,但一些较旧或低端的SSD可能不支持。您可以查看SSD制造商的文档或技术规格来确认它是否支持TRIM。 2. 检查您的Linux发行版是否已启用TRIM。大多数现代Linux发行版默认情况下已启用TRIM。您可以运行以下命令来检查: ``` sudo systemctl status fstrim.timer ``` 如果输出显示"active"或"enabled",则表示TRIM已启用。 3. 确保您的文件系统支持TRIM。大多数常见的文件系统,如ext4和XFS,都支持TRIM。您可以通过检查`/etc/fstab`文件中的文件系统挂载选项来确认是否启用了TRIM。 例如,对于ext4文件系统,您应该看到类似于以下内容的挂载选项: ``` UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 discard,noatime,errors=remount-ro 0 1 ``` 请注意,`discard`选项用于启用TRIM。 4. 手动运行TRIM命令。如果TRIM没有自动运行,您可以手动运行TRIM命令来清理未使用的数据块。使用以下命令: ``` sudo fstrim -av ``` 这将触发对所有已挂载文件系统的TRIM操作。 请谨慎使用TRIM命令,因为它会触发SSD上的擦除操作,可能会导致数据丢失。确保在运行TRIM之前备份重要数据。 希望这些信息对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值