以只读方式挂载文件系统会增加 SSD 的使用寿命吗?

dtm*_*and 18 ssd read-only

让我们假设我有一些数据一旦创建,就再也不必更改了。我已将此数据复制到 SSD,然后将文件系统重新安装为只读,并从现在开始保持这种状态。这样做会增加 SSD 的使用寿命吗?

我正在寻找的不仅仅是一个简单的“是的,阅读无关紧要 - 只有写入 SSD 才会导致磨损”。此问题下方显示了一个答案,答案链接到一篇文章,受访者提到:

如果“页面”或擦除块在很长一段时间内未重新编程,则某些位(可能非常小)可能会恢复到未编程状态。

对此有什么要说的吗?你知道有哪些研究关注这种行为吗?

rob*_*rob 17

简短的回答:

这取决于你在做什么。随着时间的推移,仅从 SSD 读取数据仍会导致其存储单元退化。以只读方式安装驱动器将阻止您直接写入它,但驱动器的固件仍会产生后台写入。但是根据您的使用模式,您可能有也可能没有什么需要担心的。

长答案:

Flash 错误分析和管理中概述了几种类型的错误:

  • 擦除错误:由重复的编程/擦除周期(写入)引起
  • 编程干扰错误:在对相邻页面进行编程时无意中更改了一页中的数据
  • 保留误差:浮栅中编程的电荷逐渐消散
  • 读取错误:存储在单元格中的数据随着相邻单元格的重复读取而发生变化

这篇论文是一篇有趣的读物,但深入到这个层次可能超出了您的问题范围,除了说仅从 NAND 存储器读取不会永远保留数据之外。

根据美光公司 Jim Cooke演讲,对于 MLC 和 SLC,每 100,000 次读取和 1,000,000 次读取就应该擦除和重新编程单元。

幻灯片 19:

Cells not being read receive elevated voltage stress

Stressed cells are
• Always in the block being read
• Always on pages not being read

Charge collects on the floating gate causing the cell to appear to be weakly programmed 

Does not damage cells; ERASE returns cells to undisturbed levels

Disturbed bits are effectively managed with ECC
Run Code Online (Sandbox Code Playgroud)

幻灯片 20:

Rule of thumb for excessive reads per block between ERASE operations
• SLC – 1,000,000 READ cycles
• MLC – 100,000 READ cycles

If possible, read equally from pages within the block

If exceeding the rule-of-thumb cycle count, then move the 
block to another location and erase the original block

Establish ECC threshold to move data

Erase resets the READ DISTURB cycle count

Use ECC to recover from read disturb errors
Run Code Online (Sandbox Code Playgroud)

也就是说,这些论文似乎是针对 NAND 存储器的低级用户(例如,SSD 固件开发人员),而不是供最终用户使用的。所以我怀疑您的驱动器固件已经在后台透明地处理了这个问题。

但是回到最初的问题,仅读取是否会导致驱动器磨损?是的。多少?情况很复杂。如果您假设固件每读取 100,000 次就将页面的单元重写到新位置,并且总是有大量可用块,那么每读取 100,000 次就有 1 次写入。但最重要的是,固件还执行磨损均衡和其他任务,一个逻辑写入放大为多个物理写入。

实际上,您可能不需要特别担心,除非驱动器几乎已满,并且您不断从整个驱动器中读取数据。但是,如果您不间断地从驱动器中读取数据,请在一个月内密切关注 SMART 表,以了解您的读取模式导致后台写入的速度。而且,当然,始终确保您有多个备份。