禁用 TRIM 以避免文件系统损坏

禁用 TRIM 以避免文件系统损坏

我读了以下内容文章关于 TRIM 和 Samsungg 的问题。

我正在运行 Ubuntu 14.04.1 并且我有一台 250GB 的三星 PRO 850。

我担心我的文件系统会因为相同的固件问题而受损。

有谁对相同的 SSD 和 Ubuntu 版本有疑问吗?

您是否建议为了安全起见禁用装饰?

如果是,删除文件 /etc/cron.weekly/fstrim 就足够了?

谢谢你,西蒙娜

答案1

简短回答:关于在 Trim 就绪 SSD 中禁用 TRIM 的影响的问题,我不会这么做。

详细回答:原因如下:

引用自早期帖子

TRIM 为 SSD 上的新写入操作 (Wop) 准备至少一次写入的物理块,从而避免在 Wop 发生之前立即擦除目标块(在没有 TRIM 的设置中就是这种情况)。为此,SSD 必须具有支持 TRIM 的硬件控制器。但情况并非总是如此。

第一个使用阶段是,即当全新的 SSD 刚刚安装且相对较新时,所有 SSD 块尚未至少写入一次。在此阶段,TRIM 不会系统地启动,对整体读写速度的益处有限。

在早期阶段之后,这取决于许多因素,其中包括您写入・访问 SSD 的次数,Wop 的速度将减慢并达到速度平台期。

目前,经验法则是,与未启用 TRIM 的相同硬件相比,启用 TRIM 的 SSD 的写入时间减少了一半以上。有人认为,定期fstrim使用垃圾收集实用程序实际上对曾经写入但现在已丢弃的块执行零重写,这将使写入速度提高 4 倍(是的,400%!)或更多。我(和大多数人)没有办法控制这一点,除非隔离并查看正在写入的块,无论有没有fstrim垃圾收集在起作用。

HTH,至少在概念上是这样的。要了解更多,您必须深入研究一些相当技术性的白皮书。对于非专家来说,它们非常深奥。

关于禁用 TRIM,首先检查你的 SSDTRIM 就绪并且已启用:

$ sudo hdparm -I /dev/sda | grep "TRIM supported"

警告:阅读你的手册页hdparm 使用它。如果误用,可能会彻底损坏您的系统。但上述命令完全无害。

  • 如果显示空白,则表示未启用 TRIM -> 结案

  • 如果得到结果* Data Set Management TRIM supported (limit 8 blocks),请检查 TRIM 是否确实在您的机器上处于活动状态。

在 Ubuntu 上,有两种可能性(我知道的):

  • discard对于通常格式化为 ext3 或 ext4 的任何 SSD 设备,您的 /etc/fstab 文件中可能有一个as mount 选项。如果您安装的卷具有 ext3 格式,discard则 mount 选项实际上会将卷限制为只读。我认为这会很快引起任何人的注意。因此,任何具有discardmount 选项的卷都可能是 ext4。

  • 您可以编程fstrim定期自动运行(每小时、每天、每周或其他)。要检查是否已fstrim编程,请在终端中输入以下内容:

    $ 查找 /etc/trim | egrep fstrim

至少在 Ubuntu 14.04.x 上,这是我最近运行的,fstrim计划每周启动一次,这对于任何普通桌面用户来说都差不多。如果您运行数据写入密集型服务(即面向性能的数据库管理系统),则可能需要将频率提高到每日一次。WADR,不知何故,如果您不得不问,我怀疑情况并非如此。

最后,是的,抑制fstrim它或将其从/etc/cron.{hourly,daily,weekly,monthly}目录中删除将会停止机器上的修剪过程。

我的意见(应你的要求提供,不作为你必须遵循的建议):你可能安全地将该fstrim文件留在原处。如果你希望禁用它,请去购买等效的传统基于磁盘(HDD)的驱动器来替换它。你可能比使用未激活 TRIM 的 SSD 更好,因为你为此付出了高昂代价。但坦率地说,将你提取的 SSD 用作压纸机会很可惜。这将是选择discardTRIM垃圾收集毫不夸张的说。

答案2

三星调查后发现问题是由于 raid 上的 Linux 内核的一个错误。看来 raid 驱动程序和 scsi/ata 驱动程序之间存在误解。

您可以在以下链接中找到详细信息raid0:使用 trim 时数据损坏

相关内容