Rin*_*ind 38
声称 14.04 将默认启用修剪只是故事的 1/2。
TRIM 的默认选项是否会自动与标准 ubuntu 系统加密的 LVM 和加密层兼容?
LVM 是一个容器而不是文件系统,所以这不是问题。
值得一读的文章:
SSD 需要修剪,即需要告诉它们操作系统认为哪些块是“未使用的”(即来自已删除文件)。没有这个,SSD 上的写入速度会随着时间的推移变得难以忍受。
http://wiki.ubuntuusers.de/SSD/TRIM(德语)解释了细节,但这种内务管理确实应该在默认情况下发生。有两种方法可以解决这个问题,在删除文件时立即将块标记为未使用(“丢弃”挂载选项),或者定期调用 fstrim。丢弃会减慢删除速度,而 cronjob 偶尔会给机器带来一些潜在的意外 IO 负载,因此本次讨论主要是关于决定默认情况下我们想要采用哪种方法。
我(Martin Pitt)认为 cron 方法更好。如果我们这样做,我们需要讨论何时以及如何运行它:
- 什么是合理的间隔(每周/每月/等)
- 如何检测需要修剪的设备/分区(/proc/mounts、hdparm -I、未安装“丢弃”等)
来自德语链接的结论:
只有英特尔和三星 SSD 在 Ubuntu 14.04 中默认启用 TRIM,因为一些廉价的 SSD 在运行 TRIM 时甚至会变砖。/etc/cron.weekly/fstrim14.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
Run Code Online (Sandbox Code Playgroud)
这并不意味着 TRIM 只能与三星和英特尔 SSD 一起使用,但为了避免遇到问题,这是目前的默认选项。请注意,如果您已经知道您的 SSD 可以处理 TRIM,您可以通过编辑/etc/cron.weekly/fstrim上面的文件并将--no-model-check选项添加到最后一行来绕过供应商检查:
exec fstrim-all --no-model-check
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过其他几种方式手动安排 TRIM。怎么做手动。
来源:webupd8
进行修剪的方法是使用以下命令:
sudo fstrim -v /
Run Code Online (Sandbox Code Playgroud)
这也是 Ubuntu 这样做的方式:通过创建一个每周执行一次的 cronjob。
从我自己的系统执行:
rinzwind@schijfwereld:~$ sudo fstrim -v /
[sudo] password for rinzwind:
/: 93283299328 bytes were trimmed
rinzwind@schijfwereld:~$
Run Code Online (Sandbox Code Playgroud)
需要一些时间,并且在完成之前不会显示任何进展。