SSD 驱动器在装满后需要“清除/重置”以保持性能。这可以通过新 SSD 驱动器的 TRIM 命令完成。Ubuntu 是否支持 TRIM 命令(通过 hdparm 等)来清除/重置这些驱动器?
答案1
看起来 10.10 和更新版本支持 TRIM 功能:
此外,TRIM 操作是自动进行的 - 如果磁盘报告支持 TRIM,则空块会在不再需要时自动释放(例如,您删除文件)。您无需手动发出 hdparm 命令即可实现此功能。
答案2
据我所知,Jeremy 的回答并不完全准确。我已经在 Lucid 上运行最新的稳定内核一段时间了,并且一直在密切关注 TRIM 的状态,因为我的主磁盘是 OCZ Agility。
以下是我认为我所知道的:
从 2.6.33 版开始,内核支持 TRIM(Maverick 为 2.6.35)。
EXT4 支持 TRIM,但前提是日记已关闭。
TRIM 在内核中的工作方式非常基础,而且速度非常慢。符合规范的磁盘可以接受多个范围,但内核目前一次只能处理一个范围。这来自我大约一个月前读到的一篇文章。我希望我有来源,因为这可能不是真的,或者可能不再适用。
日志记录对我来说是致命的。数据损坏是一件很烦人的事情。
但是,较新版本的 hdparm(v9.25 - Maverick 为 v9.27)附带一个名为的脚本,wiper.sh
该脚本可以快速分析驱动器,然后修剪所有空白空间。与其失去功能,我发现wiper.sh
每周(或每天/每月/无论什么时间)运行一次 cron 更容易。除非您不断破坏系统驱动器,否则 SSD 性能下降不会发生得那么快。你不会需要实时TRIMming。
还有一个名为磁盘TRIM似乎不在存储库中。经验较少的用户可能会发现这比设置 cron 作业更容易使用。
有适用于 hdparm 和 disktrim 的 PPA,并且都可以在 Lucid(及更早的版本)上运行,而不需要 2.6.33+ 内核。
答案3
Linux 从内核 2.6.33 开始支持使用 ETX4 文件系统的自动 TRIM。
第一个具有自动 TRIM 支持的 Ubuntu 版本是 10.10 (Maveric),但它必须在 fstab 中激活(如所述这里)。
答案4
我正在运行 11.04,看起来 TRIM 并没有按照开箱即用的方式工作。
我测试过使用此处的说明创建一个文件,删除它,然后查看扇区是否被清零/删除。
我尝试启用 TRIM按照此处的说明,但没有骰子
我运行 wiper.sh,我得到了
/sbin/wiper.sh --verbose --commit /dev/sda1 wiper.sh:Linux SATA SSD TRIM 实用程序,版本 3.3,由 Mark Lord 编写。 rootdev=/dev/sda1 fsmode2: fsmode=读写 /:fstype=ext4 可用大小 = 13785252 KB,保留 = 137852 KB 准备对 /dev/sda1 上的可用空间进行在线 TRIM(ext4 在 / 上以读写方式安装)。 此操作可能会悄悄破坏您的数据。您确定吗 (y/N)?y 正在创建临时文件 (13647400 KB)... 正在同步磁盘.. 开始 TRIM 操作.. get_trimlist=/sbin/hdparm --fibmap WIPER_TMPFILE.9689 /dev/sda: 从 462 个范围中修剪 27294800 个扇区 成功 正在删除临时文件.. 正在同步磁盘.. 完毕。
但是如果我再次运行它,它会显示需要修剪的扇区/范围数量相同,并再次报告成功。我每次都得到完全相同的结果。看起来这些扇区从未被删除/释放过。读取它们仍然显示相同的数据。
好奇是否有其他人也能使用它。