SSD 驱动器上的数据如何丢失?

Jos*_*son 4 power ssd data-loss-prevention

我看到一些评论说 SSD 驱动器的速度是 HDD 的十倍,并且在数据丢失方面更可靠,因为硬盘驱动器的磁头可以划伤磁盘,而 SDD 则没有。我正在寻找可以插入笔记本电脑的 M.2 卡,特别是可以代替标准硬盘驱动器。

然而,在商店里,几年前有人告诉我,当笔记本电脑配备双 HDD 和 SSD 配置时,没有人确定 SSD 可以保存多长时间的数据,因为没有人对它们进行过长时间的测试,有些人认为它会变得更容易丢失有关它们的数据,因为写入的数据多于移动设备固态对应物上的数据。

最重要的是,我还被告知,如果断电且未插入电池,我将丢失所有数据。现代计算机是否通过确保部分电池电量始终存在来解决这个问题?这个问题是如何解决的,或者现代计算机是否仍然存在这个问题?

谢谢。

bwD*_*aco 7

大多数 SSD 使用 NAND,无需电源即可保留数据。

大多数 SSD 使用称为 NAND 闪存的电子芯片。NAND 本身是非易失性的,这意味着即使断电它也能保留其数据,但数据丢失可能以多种不同的方式发生,这与机电硬盘驱动器的故障方式大不相同。

一些设备(大部分已停产)有时被称为 SSD,它们使用易失性 DRAM 作为存储介质,因此在断电时会丢失数据。这些“RAM 磁盘”设备可能有备用电池,可以在断电后保留数据数小时。您可能会将基于 NAND 的 SSD 与这些设备混淆,这些设备通常不会在消费计算环境中遇到。


尽管不太可能,但如果其映射表损坏,SSD 可能会丢失其数据的跟踪,从而导致数据丢失。如果在驱动器忙时意外断电,就会发生这种情况。现代驱动器旨在抵抗此类故障。

您提到的故障模式,包括意外断电,不仅仅是因为断电,而是因为 SSD 管理其 NAND 上的数据的方式。一些相关背景如下:

每个物理 NAND 单元只能维持有限数量的写入。为了避免由于底层 NAND 的使用不均匀而导致过早出现故障,SSD 的控制器(其板载处理器)会在称为磨损均衡的过程中根据需要主动分散写入和重新排列数据。

但是,无论数据在 NAND 上的哪个位置,控制器仍必须能够跟踪数据的位置并以一致的方式将其呈现给操作系统。此功能称为闪存转换层( FTL)。作为此 FTL 的一部分,SSD 控制器维护一个内部映射表,该表指定 SSD 上的每个块在 OS 上的位置在物理 NAND 上的位置。大多数 SSD 都有一个 DRAM 芯片,就像你电脑上的内存一样,用来保存这个映射表。这种 DRAM 是易失性的,这意味着它的内容在断电时会丢失。尽管该映射表最终存储在 NAND 本身上,但由于上述耐用性限制并且 DRAM 仍然比 NAND 快得多,因此不会经常将其重写到 NAND 上。

在某些情况下,映射表可能会因断电而损坏,最有可能是在写入操作期间。如果映射表损坏,SSD 上的数据将无法读取,因为驱动器无法确定数据在 NAND 上的位置。为了防止数据损坏,映射表通常以这样一种方式写入和维护,即它基本上始终保持一致状态,并且可以从断电中恢复。较新的 SSD 设计为在断电时非常稳健,但仍有可能(即使不太可能)发生映射表损坏,从而导致驱动器上的所有数据丢失。

一些 SSD,尤其是设计用于服务器和其他关键应用的企业型号,具有内置电容器,可提供足够的电力以确保映射表和(可能)写入过程中的任何数据可以安全地提交到非易失性发生电源故障时的 NAND。尽管此功能在消费类 SSD 中很少见,但仍然有像 Crucial MX500 这样的驱动器具有一定程度的断电保护功能。即使它无法保护尚未完全写入驱动器的数据,断电保护也有助于确保在发生断电时不会发生映射表损坏,无论 SSD 当时在做什么,因此任何驱动器上已有的数据是安全的。


随着时间的推移,闪存单元可能会泄漏电荷,导致数据丢失或损坏,并且频繁使用的驱动器不会像新驱动器那样保留其数据。

至于长期数据保留和数据丢失,闪存通过在浮栅 MOSFET阵列中存储和感应电子电荷来运行。这种电子电荷可以通过基本上迫使电荷通过绝缘体来改变,绝缘体在每个晶体管中形成浮栅以存储数据。

随着时间的推移,电子可能会从浮栅绝缘体中泄漏出来,从而导致数据丢失或损坏。对于没有多少使用的闪存来说,这个过程可能需要很多年,但是频繁使用的 SSD 会磨损 NAND 芯片内部的浮栅绝缘层,并且不会长时间保留其存储的数据。最终,晶体管将根本无法保持电荷,从而无法存储数据。

为了增加存储容量并降低每 GB 的成本,大多数现代 NAND 每个单元可以容纳多于一位,而不是每个单元存储两个 (MLC)、三个 (TLC) 甚至四个 (QLC) 位。为此,器件必须能够分别区分浮栅晶体管中的 4、8 或 16 个不同的电荷电平。这使得此类设备对电荷水平的变化更加敏感,因此磨损得更快。对于现代形式的 NAND,每个单元通常可以处理 1,000 到 3,000 次写入周期,然后才能再可靠地保存数据。这就是 SSD 的耐用性有限的原因,也是磨损均衡是必要的原因。

对于客户端或消费类 SSD,SSD 制造商提供的耐用性评级是您可以写入驱动器并且仍然能够期望它至少保留其数据一年的数据总量。出于保修目的,这个数字传统上倾向于保守,但对于现代 SSD 而言,通常约为数百 TB 写入 (TBW)。(对于用于企业或数据中心使用的 SSD,保留要求是更宽松的三个月,并且基于更高的温度,反映了服务器典型的更密集的操作条件。)

温度也会影响 NAND 的耐用性。浮栅绝缘体在较高温度下会比在较低温度下更快地泄漏电荷,这意味着最好将未使用的 SSD 存放在凉爽的环境中。另一方面,NAND 在较高温度下写入时磨损较少;如果在低温(例如 10 °C 或更低)下承受写入密集型工作负载,驱动器可能会比预期更快地磨损。

JEDEC 幻灯片显示温度如何影响数据保留

上图(来自解释 SSD 规格JEDEC 演示文稿)显示了驱动器保留数据的能力如何受到驱动器活动和存储温度的影响。由于耐用性取决于驱动器在不使用时保留其数据的能力,对于给定的写入数据量,较长的保留期意味着较高的写入耐用性。

总而言之,轻度使用的 SSD 将保存其数据数年,但如果您频繁使用驱动器,则存储在其中的数据可能不会持续很长时间,直到它开始损坏或丢失。定期为驱动器通电将允许它刷新其存储的数据,并将驱动器存储在凉爽的地方并避免过热将有助于它更长时间地保留数据。由于闪存的工作方式,SSD 和闪存驱动器不是用于长期存档目的的理想数据存储方式;更好的解决方案是使用像M-DISC媒体这样的存档光盘,这些光盘经过专门设计和测试,可以在极长的时间内保留数据。