我看过几篇评论,说 SSD 驱动器的速度是 HDD 的十倍,而且在数据丢失方面更可靠,因为硬盘驱动器的磁头会划伤磁盘,而 SDD 则不会。我当时正在研究可以插入笔记本电脑代替标准硬盘的 M.2 卡。
然而,几年前,当笔记本电脑配备双 HDD 和 SSD 配置时,商店里就有人告诉我,没有人确定 SSD 可以保存数据多长时间,因为没有人对它们进行过长时间的测试,而且有些人认为 SSD 更容易丢失数据,因为与移动设备固态硬盘相比,数据写入的次数更多。
最重要的是,我还被告知,如果电源断电且电池未插入,您将丢失所有数据。现代计算机是否已通过确保电池电量始终存在来解决此问题?这个问题是如何解决的,或者现代计算机是否仍存在此问题?
谢谢。
答案1
大多数 SSD 使用 NAND,无需电源即可保存数据。
大多数 SSD 使用称为 NAND 闪存的电子芯片。NAND 本身是非易失性的,这意味着即使断电,它也能保留数据,但数据丢失可能以多种不同的方式发生,与机电硬盘发生故障的方式截然不同。
有些设备(大多已停产)有时被称为 SSD,它们使用易失性 DRAM 作为存储介质,因此断电后数据会丢失。这些“RAM 磁盘”设备可能有备用电池,可在断电后保留数据数小时。您可能会将基于 NAND 的 SSD 与这些设备混淆,因为这些设备在消费者计算环境中通常不会遇到。
虽然可能性不大,但如果 SSD 的映射表损坏,SSD 可能会丢失其数据的踪迹,从而导致数据丢失。如果驱动器繁忙时意外断电,就会发生这种情况。现代驱动器的设计可以抵御此类故障。
您提到的故障模式,即意外断电,不仅仅是因为断电,还因为 SSD 管理 NAND 上数据的方式。以下是一些相关背景:
每个物理 NAND 单元只能承受有限数量的写入。为了避免由于底层 NAND 使用不均衡而导致过早出现故障,SSD 的控制器(其板载处理器)会主动分散写入并根据需要重新排列数据,这个过程称为磨损均衡。
但是,无论数据位于 NAND 的哪个位置,控制器仍必须能够跟踪数据的位置并以一致的方式将其呈现给操作系统。此功能称为flash 转换层(超速运输)。作为此 FTL 的一部分,SSD 控制器维护一个内部映射表,该表指定了 SSD 上每个块在操作系统看来位于物理 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 规格) 显示了驱动器保留数据的能力如何受到驱动器活动温度和存储温度的影响。由于耐久性取决于驱动器在不使用时保留数据的能力,因此对于给定数量的写入数据,保留时间越长,意味着写入耐久性越高。
总而言之,轻度使用的 SSD 将保存其数据数年,但如果您频繁使用驱动器,则存储在其中的数据可能不会持续太久,很快就会开始损坏或丢失。定期给驱动器通电将使其刷新其存储的数据,并将驱动器存放在凉爽的地方并避免极端高温将有助于更长时间地保留数据。由于闪存的工作方式,SSD 和闪存驱动器不是长期存档数据的理想存储方式;更好的解决方案是使用存档光盘,例如磁碟这些介质经过专门设计和测试,可以在极长的时间内保留数据。