如何启用 Trim?

如何启用 Trim?

我听说Ubuntu 14.04将会有修剪默认情况下启用。如何做到这一点?通过向ext4安装选项或者运行 cron-job?

Trim 的默认选项是否会自动兼容逻辑卷管理器以及标准 Ubuntu 系统加密的加密层?

看到有关此事的一些细节真是太好了。

答案1

声称 14.04 将默认启用修剪只是故事的一半。

TRIM 的默认选项是否会自动兼容标准 ubuntu-system 加密的 LVM 和加密层?

LVM 是一个容器,而不是文件系统,所以这不是问题。


值得一读的文章:

蓝图

SSD 需要进行 TRIM,即需要告知操作系统将哪些块视为“未使用”(即已删除文件中的块)。如果没有这项功能,SSD 的写入速度会随着时间的推移变得慢得令人无法忍受。

http://wiki.ubuntuusers.de/SSD/TRIM(德语)解释了细节,但这种管理确实应该默认进行。有两种方法可以实现这一点,在删除文件时立即将块标记为未使用(“discard”挂载选项),或定期调用 fstrim。discard 会减慢删除速度,而 cronjob 偶尔会给机器带来一些潜在的意外 IO 负载,因此本讨论主要是为了决定我们默认要采用哪种方法。

我 (Martin Pitt) 认为 cron 方法更好。如果我们采用这种方法,我们需要讨论何时以及如何运行它:

  • 合理的间隔是多少(每周/每月/等等)
  • 如何检测需要修剪的设备/分区(/proc/mounts、hdparm -I、未使用“discard”安装等)

该德语链接的结论是:

  • 每周执行一次 cron 作业,因为丢弃会导致性能受到太大的影响。

/etc/cron.weekly/fstrim在 Ubuntu 14.04 中,只有 Intel 和 Samsung SSD 会默认启用 TRIM,因为一些廉价 SSD 在运行 TRIM 时甚至会自行变砖。14.04 beta 2的内容如下:

#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e

# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g.  https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all

这并不意味着 TRIM 只能用于三星和英特尔 SSD,但为了避免出现问题,这是目前的默认选项。请注意,如果您已经知道您的 SSD 可以处理 TRIM,您可以通过编辑/etc/cron.weekly/fstrim上述文件并将--no-model-check选项添加到最后一行来绕过供应商检查:

exec fstrim-all --no-model-check

或者,您也可以通过其他几种方式手动安排 TRIM。如何手动操作

来源:webupd8

  • 但并非所有 SSD 都受支持。顺便说一下,我的 SSD 不支持(刚刚检查过)
  • LSI.com 有一份兼容 SSD 的列表,PDF

进行修剪的方法是使用以下命令:

sudo fstrim -v /

Ubuntu 也是这样做的:通过创建一个 cronjob 每周执行一次。

从我自己的系统执行:

rinzwind@schijfwereld:~$ sudo fstrim -v /
[sudo] password for rinzwind: 
/: 93283299328 bytes were trimmed
rinzwind@schijfwereld:~$ 

花费一点时间,并且直到完成才会显示任何进展。

相关内容