你抽屉里断电的固态硬盘里的数据正在悄然丢失
在主存储领域,固态硬盘几乎完全取代了机械硬盘。它们的速度快几个数量级,使用更便捷,功耗也更低。但若你将固态硬盘用于冷存储,期待抽屉里闲置多年的硬盘仍能完美运行,或许该重新考虑策略了。长期断电可能导致可靠的固态硬盘出现数据损坏或丢失。正因如此,许多用户并不认为固态硬盘是可靠的长期存储介质,更倾向于使用机械硬盘、磁带或M-Disc。
固态硬盘数据并非你想象中那般持久
与通过磁化旋转磁盘存储数据的机械硬盘不同,固态硬盘通过改变NAND闪存单元中的电荷来表示0和1。NAND闪存即使断电也能在底层晶体管中保留数据,这与其他非易失性存储器类似。然而关键在于SSD断电后能保持数据的时长。即便是最廉价的QLC NAND固态硬盘,在完全断电状态下也仅能安全存储数据约一年。更昂贵的TLC NAND可保留数据长达3年,而MLC和SLC NAND的断电存储寿命分别可达5年和10年。
问题在于,多数消费级固态硬盘仅采用TLC或QLC闪存。因此若用户让固态硬盘断电超过一年,数据完整性将面临风险。尽管QLC闪存的可靠性近年来有所提升,但建议将2-3年作为断电使用的安全边界。断电后,NAND单元存储的电压可能消失,导致数据丢失或硬盘彻底失效。
消费级固态硬盘的这种数据保留缺陷,使其无法作为长期数据存储的可靠介质,尤其对创意工作者和研究人员而言。机械硬盘虽也会因磨损导致数据腐蚀,但其抗断电能力仍更强。若您已久未检查归档数据,建议尽快进行核验。
但多数人无需担忧
上述情境仅适用于企业用户、发烧友及个体创业者。对普通用户而言,长期存储海量数据且驱动器处于断电状态的需求并不存在——个人电脑通常仅使用一两块固态硬盘,即便断电也最多持续数月。您可能遭遇的SSD数据丢失,多半源于罕见的电压浪涌或硬盘故障,而非电压衰减。某些因素如温度和底层NAND闪存的质量确实会加速电压衰减。
即便持续通电,固态硬盘也并非永恒之物。NAND闪存的有限写入周期终将导致硬盘寿命终结,但多数用户在硬盘报废前就会更换新设备。因此,您无需担心向SSD写入过多数据,也无需顾虑电脑断电数日、数周甚至数月。但切勿信任那些断电后积满灰尘、闲置多年的SSD——这引出了我的下一个观点。
备份始终是必要的
防患于未然
在主存储领域,固态硬盘已基本取代机械硬盘。它们的速度快数倍,使用更便捷,功耗也更低。但若你将固态硬盘用于冷存储,指望抽屉里闲置多年的硬盘仍能完美运行,或许该重新考虑策略了。长期断电可能导致可靠的固态硬盘出现数据损坏或丢失。正因如此,许多用户不认为固态硬盘是可靠的长期存储介质,更倾向于使用机械硬盘、磁带或M-Disc。
对于固态硬盘,“存入即忘”行不通
只要将消费级固态硬盘用作电脑的主存储设备,一切尚可。在闪存的写入/擦除循环耗尽前,您很可能早已更换了新硬盘。但若用于长期存储,依赖固态硬盘则存在风险——断电数年后数据可能丢失。这种数据损耗可能发生在断电1至3年间的任何时刻,因此优先采用替代存储介质并投资备份系统至关重要。

关于数据保留的一个关键点很少被提及,本文也未涉及:数据保留能力与编程/擦写循环次数成反比,且随温度升高呈指数级下降。因此保留规格通常规定为:在Z温度下经历Y次循环后仍能保持X时长。即使是仅写入一次的QLC固态硬盘,若存放在-40℃的冷冻室中,数据仍可保存数十年。
制造商同样在DWPD/TBW数值上玩弄此类手段——通过降低数据保持规格,他们能用完全相同的闪存宣传更高耐用性。但纵观多年数据可知,NAND闪存性能已显著恶化:唯一呈倍数增长的仅是容量,而耐用性与数据保持能力均已下降数个数量级。
长期以来,SLC闪存的黄金标准是10万次循环后可维持10年数据。
如今QLC闪存已沦落至不足1千次循环后仅能维持数月。
我似乎还记得读到过:数据保留能力与写入时的温度成正比。即最佳方案:在驱动器高温时写入数据,冷冻保存。若有人能证实或反驳此观点将不胜感激。
我确信曾见过完全相同的论述。
耐用度下降实属必然,毕竟特征尺寸也在缩小。逻辑芯片和DRAM内存亦是如此。
我推测到2035年时,2010年的硬件仍能正常工作,而2020年的设备可靠性会显著下降。
据我所知,闪存技术转向3D结构后容量有所提升,此后制程缩减幅度不大。若保持单元内位数不变,我不认为2010年与2020年或2025年的闪存耐用度会有显著差异。
逻辑芯片和DRAM的核心影响因素在于电压与温度的极限承受能力,而这些参数历年间呈现波动趋势。因此其发展方向尚难预料。
> 即使仅写入一次的QLC固态硬盘,在-40℃冷冻环境中仍可保存数据数十年。
所以字面意义上把数据存进冷库吧。
万一这里有固件工程师,实际原理是怎样的?
比如固态硬盘是否会在开机时、每隔N小时执行刷新操作?还是必须访问特定存储块?若中断该过程会怎样?比如将NVMe硬盘装在移动外壳里,每月仅连接几分钟当大容量闪存盘使用,这样会出问题吗?
闲置空间又如何?比如用4TB硬盘传输1GB数据,剩余空间会因数据衰减而受损吗?
这些机制在实际应用中的影响和用户管理方式都非常模糊。
我是SSD固件工程师,主要负责企业级产品,消费级产品的内部机制可能有所不同。
通常数据刷新会在系统通电时(取决于电源状态)在后台自动执行。操作期间性能可能受到限制,因此用户仅会察觉到后台运行时的轻微速度下降。
闲置空间数据衰减 可能 不成问题,因为文件系统数据通常存储在更稳健的介质区域(如SLC单元),这类区域随时间推移更不易发生数据丢失。
至于用户管理方式,或许每月执行一次fsck之类的操作?日常使用这类SSD基本没问题,但作为冷存储备份可能不太理想。
假设我有块几年前买的4TB USB固态硬盘,大部分时间都闲置在抽屉里未通电。要完成全盘刷新,它需要通电多长时间(大致估算)?假设处于完全空闲状态。
(注:我确实有一块4TB USB固态硬盘,曾闲置抽屉数年未触碰。重新连接时数据完好无损。当然,这是块写入周期极低的新硬盘,且存放环境受控。老旧磨损的硬盘可能就会出问题。)只是想知道,如果遇到类似情况,我应该保持连接多长时间才能“重置褪色时钟”。
>通常系统通电时(取决于电源状态),数据刷新会在后台自动完成。
固态硬盘如何判断何时执行刷新任务?据我所知固态硬盘没有内部时钟,无法感知断电时长。此外,读取操作是否会向控制器发送某种遥测信号,反馈数据强度以判断是否需要刷新?还是说它只是按固定计时器盲目刷新?
数据刷新大约需要多长时间?假设我有一个用于存储数据的便携式外置SSD,将它连接到电脑并运行
是否需要刷新内部坏块?
通常未使用的空闲空间是好事,因为它能让驱动器以MLC或SLC模式运行而非原生QLC模式。(至少从性能测试来看,SLC/MLC相较QLC的优异表现似乎印证了这一点。)而且SLC/MLC的数据保持能力预计会显著优于QLC。
>因为这能让驱动器以MLC或SLC模式运行,而非原生QLC模式
这取决于SSD控制器的实现方式,特别是是否主动将数据从SLC缓存迁移至TLC/QLC区域。我认为多数控制器会这样做,否则随着存储空间填满,驱动器性能将迅速衰退。基本没有理由不主动迁移数据。
产品构想:为M.2 SSD设计的供电“冷存储盒”。配备2至8个M.2插槽。内部计算机定期连接其中一个插槽,读取全部数据后等待特定时间再断电。每次读取成功时,对应硬盘旁可亮起绿色指示灯。可采用电池供电。
> 可采用电池供电。
运行频率要求如何?若能采用太阳能供电,或许能大幅简化单体设备寿命周期内的复杂性。
我认为这篇博客是对JDEC数据保留标准[1]的重新阐述。
这些标准中更值得注意的是:“客户端”与“企业级”类别对保留时长的要求存在差异。
企业级仅要求断电后数据保留3个月。
客户端则要求断电后数据保留1年。
当然,凡事皆有两面性…
企业级标准要求设备每日保持24小时通电运行,而客户端类别仅需满足每日8小时使用需求。
正如技术领域的诸多事项…最终取决于用户选择在哪个方面做出妥协。
[1]https://files.futurememorystorage.com/proceedings/2011/20110…
> 我认为这篇博客是对JEDEC数据保持标准[1]的重新阐述。
具体指JEDEC JESD218标准(写入耐受性详见JESD219)。
即使具备1年断电数据保持能力,数据仍会丢失,因此数据保持性始终存在妥协空间
是否有真实数据来源佐证此结论?我通常认可xda论坛,但其文章质量参差不齐,常采用耸人听闻的标题党手法——用噱头吸引点击却缺乏实质内容。近期接连出现“NAS必备软件推荐”类文章,结果推荐的竟是Home Assistant这类老生常谈的热门工具。
这篇文章似乎只是串联了其他XDA文章,缺乏原始数据支撑。我绝不会依赖任何单一硬件永久存储数据,而这更像是标题党——文中甚至直言“……但其实不必担心……”
那么持续通电的SSD中那些极少读取的文件怎么办?
我的台式机除断电外基本持续通电,但SSD上百万文件中确实存在数年未读写的数据。
固态硬盘控制器会自动检测需要刷新电荷的已用块并执行操作吗?还是说我需要定期执行类似“find / -type f -print0 | xargs -0 cat > /dev/null”的命令,确保每个文件偶尔被读取?
不需要,固件会自动执行维护。优秀的固件会在空闲时逐步执行擦除操作。可惜我们无法真正判断固件是否优秀或是否在工作。
不知是否有简易方法测量设备功耗——以此判断它是否在执行维护任务。
我也需要这个问题的答案。
没问题。但整个硬盘随时可能报废,这点毋庸置疑。
你绝对应该每隔几周对硬盘执行一次完整块读取:dd if=/dev/disk of=/dev/null
不过用默认的512字节块大小操作毫无意义。
用户名起得挺贴切
个人资料也挺有意思。不知为何他把我们这些HN用户称为“国会”。
有没有专注于长期数据保存的闪存存储设备(最好能供终端用户使用)?
若非如此,这似乎是市场中一个巨大的空白。非闪存的耐用存储介质往往令人烦恼或不适合日常使用。我渴望能从某个角落翻出25年前的SD卡,意外发掘出时光胶囊般的珍藏——就像如今还能完美播放20多年前的迷你光盘,重现前任主人留下的最后录音那样。
在此不客气地自卖自夸下我的防数据腐蚀工具,目前正在为其增强–daemon守护模式功能
https://github.com/pmarreck/bitrot_guard
对于离线数月的固态硬盘,“重新激活”的具体流程是什么?
只需接上电源让电脑运行几分钟就行吗?还是需要持续运行数小时?
是否需要执行特殊命令或进行TRIM操作?
我们其实并不清楚。我希望某些评测网站能实际测试硬盘衰减所需时间,并在通电10分钟至1小时后重新测试——包括完整读取、位级写入等操作,从而确定合理的需求标准。
问题在于测试耗时数年,发布时数据已过时,而新控制器可能采用不同需求/算法。
曾有人测试过这个
https://www.tomshardware.com/pc-components/storage/unpowered…
需注意出现文件损坏的SSD其磨损程度已远超厂商标称最大TBW值(约达标值的4倍)。全新SSD与磨损SSD的ECC计数存在两到三个数量级的差异,我认为这非常显著。期待2025年末是否有更新进展。
我猜读取整个设备可能触发自我保护机制,但这很大程度上取决于制造商和固件版本。
我也对此感到好奇。真希望有人能构建模拟“快速衰减”的SSD,揭示不同固件的实际行为模式。
备份数据。1 2 3。
我会运行CHKDSK之类的工具,或编写脚本计算磁盘上每个文件的哈希值。
不确定是否足够,但似乎是个合理的起点。
> 但大多数人无需为此担忧
> 反正你应该始终保持备份
> 备份数据是应对存储介质局限性的最简策略。将数据分散存储于不同介质的多个副本,可确保意外事件发生时数据不会永久消失。这正是3-2-1备份法则的核心:至少在2种不同介质上存储3份数据副本,其中1份需异地保存。
嗯。备份似乎正是我将数据存放在断电固态硬盘上的原因。特别是当其中一份存放在异地时。
我自己使用机械硬盘,主要是因为它们更便宜,但这种情况可能不会永远持续。我预计那些技术能力不如我(但被告知要备份)的人,只会使用手边现有的设备。
仅通电不足以维护固态硬盘。必须定期读取每个数据位以激活存储单元。若存放于NAS设备中,每月执行一次完整卷检查通常已足够。
这不是SSD控制器的职责吗?
这显然取决于SSD本身及其运行的固件。我认为不能完全依赖它。即便它运作完美,而你的策略是定期通电刷新存储单元,你又如何确定刷新何时完成?
NVMe固件虽有读取恢复级别(RRL)和两种自检模式(短/长),但具体实现完全取决于厂商。所以实际操作只能依靠主机软件实现?或者连这都不够?毕竟固件理论上可以向主机返回任意结果…这感觉太像阴谋论了?
你认识固件工程师吗?
咦。这或许能解释为何我笔记本SSD会随机出现数据损坏。重启后fsck总会发现长期未触碰的随机文件出错。
遇到这种随机损坏就该换固态硬盘了。固态硬盘(以及机械硬盘)本身都内置ECC校验功能,若出现错误就绝非宇宙射线所致。说明你的固态硬盘严重损坏,整体健康状况不容乐观。
我买了替换件却一直没换。奇怪的是随机损坏现象几年前就停止了(通过旧备份确认过,并非我没注意到)。
这种情况完全可能。某些SSD在这方面问题更严重。我手头的三星870 EVO就出现过你描述的数据丢失。三星虽知晓问题存在,却通过固件更新悄悄掩盖了故障——但一旦数据丢失,便永远无法挽回。
咦,我还以为自己买到瑕疵品呢。我的硬盘保修期刚过就报废了(之前还频繁出现媒体错误)
我的电脑里两块硬盘都遇到了这个固件漏洞。它们使用一段时间后随机故障——所谓“一段时间”指不到一年。换了两块替换盘才意识到该检查固件更新
除非你的系统是极其特殊的Linux设备,否则fsck永远不会检查文件内容的一致性。
它在文件树中发现了问题——丢失文件、节点计数错误等异常——这促使我发现某些文件与历史备份不符(打开后明显损坏,比如图像下半部分变成纯噪点)。确认问题后,我还发现部分文件无法读取(IOError),而fsck会在下次运行时直接删除这些文件。
若非fsck发出警报,我可能永远不会察觉异常。
但元数据也是数据,对吧?接下来的问题是:文件系统元数据是否可能长期处于未更新状态,从而让SSD数据损坏过程得以发生?
文章暗示这不会影响“普通用户”。这种说法绝对错误。有多少人会在决定回收地下室那台用了15年的旧电脑时,才想起备份家庭照片?
有多少人拥有那种几年才开一次机的设备?比如度假时才用。事实上我也有台设备如今极少使用(街机),现在恐怕得重装系统了——毕竟上次使用已是两三年前的事。
这可是个重大隐患,他们却没在包装盒上标注。
闪存的编程原理是提高电子隧道效应至浮栅层的概率,擦除则通过增加电子反向隧道效应的概率实现。这些概率永远不会归零。乘以时间和单元数量后,最终避免位错误的概率就变得相当低了。
SLC与MLC的区别仅在于MLC采用四级编程电压(而非两级),因此读取数据时需区分更接近的电荷电平。基本单元设计相同。老实说我难以置信MLC能正常工作,更别提QLC了。我一直在想,为何无法将QLC模拟成MLC运行——除非制造商刻意禁止。
所有主流3D NAND制造商都已从浮栅技术转向电荷捕获技术。原理与你描述基本一致,但本质上是让电子滞留在非导电区域而非绝缘栅极上。
> 我确实好奇为何无法让QLC像MLC那样运行,除非制造商根本不允许这样操作。
你可以在常规内存块之上运行纠错码,例如(这只是个示例;我不清楚闪存中可擦除的‘块’有多大),每8192位内存中存储4096位数据,并在磁盘驱动程序读取每个8192位块时恢复其中4096位数据。我认为这比简单的“低电平映射为0,高电平映射为1”方案更优。
我确实好奇为何无法将QLC当作MLC来操作——除非制造商刻意限制此功能。
其实存在将QLC转为SLC的方法:https://news.ycombinator.com/item?id=40405578
感谢!我之前竟漏看了这个!
> 我确实好奇为何无法让QLC像MLC那样运行,除了制造商不允许之外。
许多驱动器内部都采用这种方式(或SLC模式)。不过如果物理格式能改变内核可访问层的配置就更方便了。
> 说实话我甚至难以相信mlc能正常工作,更别提qlc了。除了制造商不允许之外,我真不明白为何无法让qlc像mlc那样运行。
厂商常将这类pMLC或pSLC(p=伪)单元作为“高耐用性”闪存出售。
市场主要需求是更高容量
TLC/QLC完全没问题,除非你真的以每秒数百兆字节的速度全天候写入磁盘,否则很难耗尽擦写周期
我手头有款MLC固态硬盘,其TBW/GB值远高于常规QLC固态硬盘的保修标准
我保留了几块旧固态硬盘用于测试,之前测试的256GB海盗船硬盘使用一年半后状态良好,不过可能弄丢了… (当时仅剩10%写入寿命,损失不大)不过桌上的512GB三星SSD应该快到期了,也得去检查看看。
呃,那么现代高密度硬盘呢?它们将伺服器的轨道参数存储在板载闪存(即OptiNAND)中。会不会出现“旋转锈蚀”导致数据存储位置信息丢失?
https://blog.westerndigital.com/optinand-explained/
这应该不成问题,毕竟这类应用所需容量极低。
真正的隐患在于QLC闪存——其存储单元容差正被极度压缩…
我也存疑。我不信任SSD/闪存用于归档存储,因此目前仍受限于最大18TB的硬盘容量。
我以为这是三星740系列的陈年问题?我用过那款,断电后速度会因错误累积而缓慢下降,但重写整个硬盘的每个扇区后又能正常工作一年。
我很少使用这块硬盘。虽然仍会启动它写入数据,但不作长期存储。我是否存在风险?
据我理解,非正式测试表明:当闪存盘磨损到即将彻底报废的程度时(远超厂商标称的总写入量规格),确实会出现大量数据损坏——但正常使用下不会如此,尤其对仅写入一次测试数据的新盘而言。只要不过度磨损硬盘,基本无需担忧。
我的擦除脚本:
若有人想深入研究SSD数据保留机制,可采用纯dm-crypt加密驱动器,用零填充加密卷,并在后续某个时间点检查是否存在非零数据块。这种方法无需编程即可实现:向SSD写入随机数据并保存(仅需保存密钥而非完整数据),同时确保所有存储单元电荷水平达到最大差异化。还能防止固态硬盘进行压缩等潜在操作。
我四处查找资料才明白这个道理,之前完全不知道真是太笨了。虽然数据有备份,但我保留固态硬盘是因为喜欢操作系统原汁原味的运行状态…看来我得把硬盘克隆成ISO镜像,存到机械硬盘里了。
我的两台旧笔记本经历过长时间断电(数年)后无法启动,才明白这个道理。它们都是正常关机存放的,后来发现两块SSD都彻底报废了。
那些SSD是彻底损坏了,还是还能重新安装系统?
我可能记错了,但普遍共识大致是:SSD用于活跃数据存储,因其速度快且需要频繁通电;HDD则适用于长期存储,因其闲置时的性能衰减远比SSD缓慢。
我想硬盘也不喜欢多年不转动(机械部件通常需要定期使用)。但至少磁盘本身完好无损
我最近整理了一堆装有笔记本硬盘的外置USB硬盘,它们都以不同形式出现故障。看来得把所有数据迁移到配备服务器级硬盘的NAS上了
至少通常还能读取数据。我遇到的多数有缺陷的SSD都是彻底损坏,导致数据完全无法访问。
或者每年开机1-2次。
开机后运行程序对每个比特执行读取操作。这正是ZFS文件系统完整性检查/擦除功能的实用价值所在。
不确定
dd if=/the/disk of=/dev/null是否能实现读取功能。为何不能?这正是底层工具的核心功能。若存疑可将输出重定向至其他位置。我偏爱在黑色背景配绿色字体的xterm终端中执行
hexdump -C命令,营造出《黑客帝国》般的视觉效果。没有(经过验证的)备份就像不系安全带开车。
提醒:切勿将重要数据存储在单一硬盘上。若使用双硬盘存储,请避免采用相同类型硬盘。(此建议源于惨痛教训:服务器中使用带固件缺陷的机械硬盘时,所有硬盘在通电特定秒数后集体报废)
这不过是把问题推迟解决,代价却翻倍。唯有存储在机械硬盘上的备份才算真正的备份。
更何况,数据复制不等于备份。
那么长期存储数据的最佳方式是什么?
根据时间需求,刻在石碑上通常是个不错的选择
所有主流厂商都推荐“磁带”。(但部分原因在于扩展性和历史数据等实际考量)
正因如此,我宁愿每年花几美元请人代管。必要时甚至会付费给两家服务商实现双重备份。
你付费给哪家服务商?(换个问法:你用哪家云存储供应商?)对每月2美元的价格点很感兴趣 🙂
我猜“几美元”是比喻说法,意指其成本远低于自行管理SSD阵列并确保定期供电等操作。
[编辑:哈哈,发现有人在同一分钟内贴出了 完全相同的例子 。有趣的巧合。]
不过他们存储量可能很小。比如我用Backblaze B2备份,宣传价是每月6美元/TB,所以静态存储300MB大概就是“几美元”。
说说这个每周2美元的文件存储方案吧,我感兴趣。
延续这诡异的趋势,我来抢购每日2美元的套餐
说的是Tarsnap。产品很酷,老板人也不错,但天啊价格实在离谱。我真心想支持他,但实在负担不起。
我倒想试试每分钟2美元的套餐!
Backblaze B2每月6TB才6美元,如果你只有300GB左右数据…用restic或kopia备份到它上面很合适
最近开始折腾 restic 和 B2,放弃在权限和能力(cap_dac_read_search)上搞花哨操作后,整体运行相当顺畅。但存在两种模式的冲突:“交互式有效模式”[0]与“系统dd良好兼容模式”[AmbientCapabilities=]
我担心B2的下载成本会导致远程快照验证变得昂贵。或许可以使用
restic check --read-data-subset X对小数据块进行随机抽查,但不确定这种方式的价值。我欣赏它与LUKS加密的相似性:可为自动化备份流程设置主密钥,同时保留仅用于紧急情况的记忆型密码短语。
[0] https://restic.readthedocs.io/en/latest/080_examples.html#ba…
每年72美元约为购买价格的3倍(按年计算)。BB在风险管理、基础设施开销等方面似乎相当精明。
我们真能确定云服务商能做到这点吗?S3即将迎来20周年。
时间足够长,可能出现轻微数据腐化,但现实中究竟有多少用户会将数据归档十年以上?又有多少人在从Glacier调取数据后,会实际核查其完整性?
值得了解,但除特殊情况外影响不大
即使是最廉价的固态硬盘(例如采用QLC NAND的型号),在完全断电状态下也能安全存储数据约一年。更昂贵的TLC NAND可保留数据长达3年,而MLC和SLC NAND在断电存储状态下的数据保留期分别可达5年和10年。
这段表述存在混淆。消费级固态硬盘通常不提供数据保留规格,即便在美光这份详尽的数据手册中也找不到相关说明:https://advdownload.advantech.com/productfile/PIS/96FD25-S2T… 同时企业级SSD的数据保留规格通常设定在其额定寿命末期,该寿命对应的DPWD/TBW强度在实际使用中本就难以达到——这正是“50℃环境下3个月”等数据的来源。
实际应用中,固态硬盘在合理时间范围内通常不会丢失数据。但别指望这方面存在“设计保证”的规格,毕竟不同硅片性能存在差异。
任何给定的TBW/DWPD数值对断电数据保留都无关紧要。据我所知,数据手册中从未提供这些数值,我甚至怀疑这些数据的来源,因为从未见过任何官方依据。目前我甚至怀疑制造商内部是否真正掌握这些数据——毕竟他们从未提及过,且这些参数似乎超出了固态硬盘的预期使用场景。