当前位置: 首页>>技术教程>>正文


Ubuntu是否支持使用SSD的TRIM命令?

, , ,

问题描述

驱动器填满后,SSD驱动器需要为”cleared/reset”才能保持性能。这是通过新SSD驱动器的TRIM命令完成的。 Ubuntu是否支持TRIM命令(通过hdparm等)来清除/重置这些驱动器?

最佳解决办法

看起来在10.10及更新版本中支持TRIM功能:

此外,TRIM内容会自动发生 – 如果磁盘报告它支持TRIM,则在不再需要空块时会自动释放它们(例如,删除文件)。您无需手动发出hdparm命令即可使用。

次佳解决办法

Jeremy的回答并不完全准确AFAIK。我已经在Lucid上运行了最新的稳定内核已经有一段时间了,因为我有一个OCZ Agility作为我的主盘,所以我一直非常敏锐地关注TRIM的状态。

这就是我认识的(我认为):

  • 从2.6.33开始,内核具有TRIM支持(Maverick为2.6.35)。

  • EXT4具有TRIM支持,但仅在journaling关闭时才有。

  • TRIM在内核中的工作方式非常基础且非常慢。遵循规范的磁盘可以接受多个范围,但内核目前一次只能执行一个范围。这来自我一个月前读过的东西。我希望我有源,因为这可能不是真的或可能不再适用。

Journalling是为我杀死它的原因。数据损坏是PITA。

然而,较新版本的hdparm(v9.25 – Maverick在v9.27)附带了一个名为wiper.sh的脚本,它可以对驱动器进行快速分析,然后修剪所有空白区域。而不是失去功能,我发现cron wiper.sh每周运行一次(或每天一次/每月一次)更容易。除非你经常撕毁,否则操作系统驱动器的SSD降级不会那么快。您不需要实时TRIMming。

还有一个名为DiskTRIM的GUI前端,它似乎不在回购中。经验不足的用户可能会发现这比设置cron作业更容易使用。

有hdparm和disktrim的PPA,所有这些都可以在Lucid上运行(并且可以在后面运行),而不需要2.6.33+内核。

第三种解决办法

自内核2.6.33以来,Linux支持使用ETX4文件系统的自动TRIM。

第一个支持自动TRIM的Ubuntu版本是10.10(Maveric),但它必须在fstab中激活(如描述的here)。

第四种办法

一般来说,是的,因为有很多方法可以获得更新的内核。如果我们澄清您的问题,请阅读“10.04 LTS是否支持开箱即用?”然后答案是否定的。但是,Maverick和Natty的内核(-generic,-generic-pae,-server和-virtual flavors)都被反向移植到10.04 LTS,并且可以从Ubuntu存储库中的$ release-updates获得,例如,linux-image-generic-lts-backport-maverickMaverick’s backport to Lucid

第五种办法

我正在运行11.04并且它看起来不像TRIM开箱即用。

我测试了using the instructions here to create a file, delete it, and see if the sectors get zeroed out/deleted

我试图启用TRIM using the instructions here,但没有骰子

我跑了wiper.sh,我明白了


/sbin/wiper.sh --verbose --commit /dev/sda1
wiper.sh: Linux SATA SSD TRIM utility, version 3.3, by Mark Lord.
rootdev=/dev/sda1
fsmode2: fsmode=read-write
/: fstype=ext4
freesize = 13785252 KB, reserved = 137852 KB
Preparing for online TRIM of free space on /dev/sda1 (ext4 mounted read-write at /).

This operation could silently destroy your data.  Are you sure (y/N)? y
Creating temporary file (13647400 KB)..
Syncing disks..
Beginning TRIM operations..
get_trimlist=/sbin/hdparm --fibmap WIPER_TMPFILE.9689

/dev/sda:
trimming 27294800 sectors from 462 ranges
succeeded
Removing temporary file..
Syncing disks..
Done.

但是,如果我再次运行它,它会显示需要修剪的相同数量的扇区/范围,并再次报告成功。我每次都得到完全相同的东西。它看起来不像是被删除/释放的扇区。阅读它们仍然显示相同的数据。

好奇,如果有其他人让它工作。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2220.html,未经允许,请勿转载。