Ubuntu是否支持TRIM命令与SSD一起使用?


34

SSD驱动器填满后,需要对其进行“清除/重置”以保持性能。通过对新的SSD驱动器执行TRIM命令来完成此操作。Ubuntu是否支持TRIM命令(通过hdparm等)来清除/重置这些驱动器?


好的问题是,尽管请注意,TRIM改进性能的程度在SSD中确实有所不同,但对于某些SSD而言,并没有您想像的那么大(尽管无论如何它们似乎大多数都是较慢的)。
尼古拉斯·奈特

1
我认为性能会恢复到出厂默认值(如果不接近)。在这里看看解释-> anandtech.com/show/2738/10
ssanj 2010年

Answers:


24

似乎在10.10和更高版本中支持TRIM功能:

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


我认为您仍然必须使用将TRIM命令“发送”到SDD的工具。如果它按您指定的方式工作,那将是很好。:)这篇Anandtech文章->(anandtech.com/show/2738/10)指定要使TRIM正常工作,操作系统和SSD都需要TRIM支持。我猜我的问题是,与支持TRIM的SSD驱动器一起使用时,对TRIM的OS / Linux支持。
ssanj

3
TRIM命令需要知道要释放的块,因此如果不确切知道磁盘上哪些块未被使用,则发出此危险。是的,操作系统和磁盘都需要具有修整支持。在Linux中,它是在内核版本2.6.33中添加的,因此将包含在Maverick中。您正在使用的两个磁盘驱动程序和文件系统都需要支持修整才能正常工作。如果您将ext4用作Maverick上的文件系统,那应该没问题。
杰里米·克尔

我不知道接下来是否有可能对现有的SSD进行“改装的TRIM”,以清理在操作系统支持TRIM之前积累的现有碎片。还是需要重新安装?
肯特·布加亚特

20

杰里米(Jeremy)的答案并不完全是准确的AFAIK。我已经在Lucid上运行了最新的稳定内核已有一段时间,并且由于我将OCZ Agility作为主磁盘,因此一直非常关注TRIM的状态。

这是我所知道的(我认为):

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

  • EXT4支持TRIM,但仅在日记功能关闭时才支持。

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

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

但是,较新版本的hdparm(v9.25-Maverick的版本为v9.27)带有一个名为的脚本,该脚本wiper.sh可以对驱动器进行快速分析,然后修剪所有空白空间。我发现,cron wiper.sh每周运行一次(或每天/每月/不限一次),而不是失去功能,变得容易得多。除非您不停地进行拆卸,否则OS驱动器的SSD降级不会这么快。您不需要实时修剪。

还有一个叫做DiskTRIM的GUI前端,它似乎不在存储库中。经验不足的用户可能会发现它比设置cron作业更易于使用。

有用于hdparm和disktrim的PPA,并且所有PPA都可以在Lucid上运行(甚至更远),而无需2.6.33+内核。


您可以链接到那些PPA吗?
豪尔赫·卡斯特罗

那么启用discardext4 的mount选项是否会禁用日志记录?我一直在寻找参考资料,但除了这个答案我找不到其他人-您能提供资料吗?
Hamish Downer 2012年

2
在Ubuntu 12.04中,wiper.sh已替换为fstrim
tomodachi

1
@Oli:我已经读了一些书,现在我很确定discard选项不会禁用日记。最初,Afaict的“丢弃”选项仅适用于日志(我发现此补丁程序允许不使用日志而丢弃)。该内核EXT4页文档丢弃选项,但没有提及该杂志是不兼容的。
Hamish Downer 2012年

8

从内核2.6.33开始,Linux支持带有ETX4文件系统的自动TRIM。

第一Ubuntu的释放带自动TRIM支持是10.10(MAVERIC),但它在fstab中被激活(如所描述的在这里)。


4

通常,是的,因为有很多获取新内核的方法。如果我们澄清您的问题为:“ 10.04 LTS是否已开箱即用地支持该命令?” 那么答案是否定的。然而,无论是特立独行的又整洁的内核(-generic,-generic-PAE,-server和-虚拟口味)已回迁到10.04 LTS,并且可从Ubuntu软件仓库$释放的更新,例如,linux-image-generic-lts-backport-maverick特立独行的补丁包,可以清醒


2

我正在运行11.04,TRIM似乎开箱即用。

按照此处的说明进行了测试,以创建一个文件,将其删除,然后查看扇区是否被清零/删除

我尝试按照此处的说明启用TRIM 但没有骰子

我运行wiper.sh,我明白了

/sbin/wiper.sh-详细--commit / dev / sda1
wetr.sh:Mark Lord撰写的Linux SATA SSD TRIM实用程序,版本3.3。
rootdev = / dev / sda1
fsmode2:fsmode =读写
/:fstype = ext4
freesize = 13785252 KB,保留= 137852 KB
准备在/ dev / sda1上对可用空间进行在线TRIM(在/上以读写方式安装了ext4)。

此操作可以静默破坏您的数据。确定(是/否)?ÿ
正在创建临时文件(13647400 KB)。
同步磁盘..
开始TRIM操作。
get_trimlist = / sbin / hdparm --fibmap WIPER_TMPFILE.9689

/ dev / sda:
修剪462个范围内的27294800个扇区
成功了
删除临时文件
同步磁盘..
做完了

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

好奇是否有人可以使用它。


如果您将丢弃选项添加到fstab,但仍无法正常工作,则可能是Alpha中的错误。您应该提交错误报告。
乌里

我只是在natty中对此进行了测试(遵循以下说明:askubuntu.com/questions/18903/how-to-enable-trim),并且在natty中甚至可以更好地工作,TRIM几乎是瞬时的。
乌里

您的SSD可能不支持TRIM-很多早期的SSD不支持TRIM。
Hamish Downer 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.