为什么 SSD 不能自动丢弃?

为什么 SSD 不能自动丢弃?

我很惊讶地发现这个discard选项仍然不会自动添加到我的文件系统,尽管我有一个 SSD。因此我必须遵循这些说明添加它。

安装程序为什么不自动执行此操作?使用时是否存在一些隐藏的缺点discard?在可靠地检测 SSD 方面是否存在问题?

答案1

我的答案这里提到了原因,但对于默认不启用它的具体原因,归结为影响不同硬件,硬件配置和软件配置的几个重要因素,但它们基本上归结为:

  • 使用什么文件系统?(并非所有文件系统都支持 TRIM。事实上,只有一小部分文件系统支持 TRIM,包括 ext4 和 btrfs)

  • 使用哪种 SSD?(有些 SSD 不适合 TRIM。有些 SSD 不需要 TRIM)

  • 是否会使用 RAID?(使用 TRIM 时会出现几个 RAID 问题)

  • 它会产生什么性能影响?(负面的,正面的。这取决于 SSD、硬件、RAID 配置……)

因此,我猜,考虑到所有这些疑问,我们只能通过手动方式进行测试,看看是否真的有好处。我可以说,至少就我的情况而言,启用和不启用 Trim 的 Intel 520 的好处非常小。但是,考虑到所有这些性能问题,启用自动 TRIM 甚至会像宣传的那样仍然是一个坏主意,因为对于某些用户来说,它会很好,但对于其他用户来说,它可能非常糟糕。

答案2

我偶然发现一些信息说这非常重要禁用丢弃安装选项在 Linux 下的 SSD 上(-o nodiscard)。以下是引用和链接:

关联:

https://www.intel.com/content/dam/support/us/en/documents/ssdc/data-center-ssds/Intel_Linux_NVMe_Guide_330602-002.pdf

引自第 6 页:

“文件系统建议

重要提示:不要在文件系统使用中丢弃块。

在创建 Linux 文件系统时,请务必关闭丢弃选项。您希望允许 SSD 使用 SSD 控制器中更高级、更一致的方法管理 NVM(非易失性存储器)和主机之间的块及其活动。

核心文件系统:

• ext4 — 默认扩展选项是在文件系统构建时不丢弃块,保​​留这一点,并且不要添加“丢弃”扩展选项,因为某些信息会告诉您这样做。

• xfs – 使用 mkfs.xfs,添加 –K 选项以便您不会丢弃块。

如果您要使用软件 RAID,建议使用 128k 的块大小作为起点,具体取决于您要运行的工作负载。您必须始终测试您的工作负载。

正如您所看到的,制造商英特尔本身非常强烈地强调了这一点,他们在文本中重复了五次,其中四次明确,一次是通过专业人士理解的逻辑。这对制造商来说非常强调。此外,这款 SSD 也不赖:它是几年前售价 1,200 美元的英特尔 SSD。

相关内容