SSD掉电保护也是一门艺术

简介: 当你正在文思泉涌地敲打键盘赶稿件时,电脑突然抽风,然后,你就看到了绝望的蓝色(系统崩溃,电脑蓝屏了)。其实office软件有自动保存的功能,当电脑重启,再次打开WORD文件时,会提醒你要不要导入最后自动保存的内容(这个方法不是100%管用)。

类似的情况,你是否想过,正在往SSD写入数据时,系统突然掉电了,那SSD的数据会怎么样呢?

总的来说,系统掉电会给SSD带来三种情况的灾难:
3.造成SSD坏块增加。系统的突然掉电有可能会使NAND闪存中多个bit发生错误,如果错误的bit超过了ECC的纠错能力,主控就会将其标记为坏块,后续就不能用来存储数据。这也就是为什么在不正常断电之后,我们有时会看到坏块的增加。

在上一篇文章("你知道企业级SSD与消费级SSD的区别吗?")中,我们有介绍企业级SSD与消费级SSD区别。简单言之,企业级SSD更加注重数据的安全性,而消费级SSD更加注重的是成本。

对于消费级SSD,由于对数据的安全性要求不能那么的严格,并且ECC/LDPC纠错技术,Wear-leveling技术以及其他的Flash管理技术基本可以满足需求。

但是,对于企业级的SSD,这些措施并不能完全满足数据安全性的苛刻要求。

目前针对企业级SSD掉电保护的措施有两种:
1.增加电源储存电路(power hold-up circuit)。
2.关闭“回写缓存”(write-back caching)功能。

接下来,我们就这两种保护措施展开介绍:

1.增加电源储存电路(power hold-up circuit)
SMART公司的一款XceedIOPS SSD的掉电保护电路图如下:

你是否会遇到这样一种情况:

1.用户写入数据丢失。我们在前面的文章提到“在Host写入数据时,并不会直接交给主控去写入NAND闪存,而是先把数据丢到DRAM缓存中,之后再传到主控内部的缓存中,最后再由主控写入NAND闪存”(详细内容请见本公众号历史文章“SSD内涵与外在俱佳—记SSD之结构与工作原理”)。我们假设Host写入的数据在放到DRAM这一步时突然掉电,由于DRAM是挥发性记忆体,只要断电,数据就会丢失。这对用户来说肯定会崩溃的,对企业级的用户更是不能容忍的。


2.FTL mapping信息丢失。SSD在完成一部分数据写入的时候需要更新闪存转换层FTL的mapping table(FTL相关详细内容请见本公众号历史文章“如何成为一个具有领导力的SSD主控?”), 如果在还未来及更新mapping table时,系统掉电,那么后果就是整块SSD对于系统不能识别。目前市场上SSD厂商都不会提供修复mapping table的工具。要想修复这块SSD就必须返厂维修,SSD厂商会通过特殊的方式对mapping table进行重建,并找到丢失的数据。


大多数的企业级SSD会有一块专门检测SSD供电电压的电路,如果检测到供电电压低于设定的阈值时,此时会给SSD主控发送预警。接着启动power hold-up电路,保证SSD正常的操作。


Power hold-up电路中的电压源可以是超级电容(supercapacitor), 或者一系列的分离式电容(discrete capacitors), 甚至可以是一块电池(不过,目前市场上还没有产品采用这个方法)。这里主要分享超级电容和分离式电容。

(1)超级电容
超级电容是通过极化电解质实现储存能量的电化学元件。它可以在较小的三维空间存储惊人的能量。基于超级电容的掉电保护电路如上图所示。

由于设计基于超级电容的掉电保护电路相对简单,所以大多数的企业级SSD也是采用这个方法。但是超级电容想要在企业级SSD的应用中立于不败之地,并不容易。

超级电容会随着时间的增加,容量减小,并且电解液也会因为泄露和扩散而不断流失。温度对超级电容的影响不容忽视,环境温度每上升10度,超级电容的寿命就会折半。

超级电容大多数是铝电解电容。虽然铝电解电容具有较高的电容体积比,但是与所有的电解电容一样,铝电解电容同样具有可靠性顾虑。


分离式电容会增加电路设计的复杂性,不过会克服超级电容可靠性的限制。基于分离式电容的掉电保护电路是采用了一系列的分离式电容并联,如下图。


(2)分离式电容

分离式电容主要有氧化铌电容和聚合钽电容。这些电容不像超级电容那样采用电解液,所以不会有泄露相关的问题。氧化铌电容和聚合钽电容的环境温度可以达到85度。从这个角度讲,分离式电容更加利用企业级SSD的应用。

选择超级电容还是分离式电容,需要应用者根据成本与可靠性作出折中的决策。

2.关闭“回写缓存”(write-back caching)功能
我们先回顾一下什么叫write-back caching。看下图:

在Host写入SSD数据的整个流程是这样的:
(1)Host触发写入命令,并传入数据;
(2)SSD接收到数据之后,把数据放到DRAM缓存中,并开始写入NAND闪存;
(3)SSD发送完成报告给Host(注意,这时Data还没真正写入NAND闪存,SSD已经发送完成报告了);
(4)来自DRAM缓存的数据,这时才真正写入NAND闪存;
(5)NAND闪存完成数据写入之后给主控报告。

这样的一个过程,我们就称为write-back caching。

假设,系统在第(4)步掉电了,这时Host已经接收到完成报告,就认为数据已经写到了NAND闪存。但现实是骨感的,数据还在路上,这样,数据肯定丢失了。Host再去读它自己认为已经写好的数据,那么SSD会返回数据错误或者数据丢失。

如果,我们把这个功能关掉,把上面的流程调整一下:
(1)Host触发写入命令,并传入数据;
(2)SSD接收到数据之后,把数据放到DRAM缓存中,并开始写入NAND闪存;
(3)来自DRAM缓存的数据,这时才真正写入NAND闪存;
(4)NAND闪存完成数据写入之后给主控报告;
(5)SSD发送完成报告给Host。

关掉write-back caching之后,SSD要等到全部数据真正写入NAND闪存之后才会给Host发送完成报告, 这样,Host就不会错误的读取信息了。但是这样的做法会降低SSD的写入性能。在应用过程中,需要使用者作出折中的方案。

【结语】
掉电保护对企业级SSD尤为重要,目前掉电保护的措施有:
1.增加电源储存电路(power hold-up circuit),电容可以超级电容或者分离式电容。
2.关闭“回写缓存”(write-back caching)功能。

研发更加有效的掉电保护技术是一门科学,更是一门艺术,让我们拭目以待新科技。



相关文章
|
移动开发 JavaScript 小程序
uView Tabbar 底部导航栏
uView Tabbar 底部导航栏
455 0
|
4月前
|
运维 监控 网络协议
如何设计一个高性能内网穿透服务
本文深入解析了基于Go语言开发的高性能内网穿透工具IntraLink,涵盖其技术架构、核心实现、协议处理、性能优化与安全机制,展示了如何构建高效、稳定、安全的内网穿透服务。
215 1
|
3月前
|
数据采集 缓存 JSON
GitHub 开源爆款工具|MediaCrawler:程序员零门槛采集抖音/小红书/B站等社交评论,30K star 背后的场景实战揭秘!
MediaCrawler 是一个支持多平台的社交媒体数据爬虫工具,覆盖小红书、抖音、B站等主流平台,提供关键词/ID爬取、评论采集、登录态缓存、代理池等功能,结合 Playwright 实现浏览器模拟,降低逆向难度,适合内容运营、数据分析等场景,开源免费,使用简便。
883 0
|
3月前
|
存储 缓存 固态存储
固态硬盘为什么会出现故障?
近年来,固态硬盘(SSD)因速度快广受用户青睐,但使用中也出现故障频发的问题,如开机异常、数据丢失、系统卡顿等。本文解析SSD故障原因,包括寿命限制、主控设计缺陷、电压波动、固件问题等,并提供数据抢救方法与延长SSD寿命的实用技巧,助你避免数据丢失风险。
|
存储 固态存储 Java
浅析企业级SSD Multi-Stream Write技术
Multi-stream write(多流写)技术可以使SSD根据主机端提供的Stream ID,将具有相同或相似生命周期的数据写入到相同的擦除单元中去,大大提高了GC时的效率,减少了写放大,使得SSD的性能和寿命都有了较大的提升。
|
设计模式 存储 人工智能
基于阿里云通义星尘实现多智能体(Multi-agent)协同工作的构想与尝试
近年来,大规模预训练模型(大模型)快速发展,其能力显著增强,尤其是在语言理解和生成方面取得了突破。然而,尽管大模型强大,但仍需被动响应指令,为此,研究转向了更具自主性的新范式——智能体(AI agent)。不同于仅执行命令的大模型,智能体不仅能理解复杂指令,还能规划行动步骤并在特定领域自我学习与改进。为进一步提高处理复杂任务的能力,多智能体(Multi-Agent)系统应运而生,多个智能体通过协作、交流信息和共享资源,共同完成更为复杂精细的任务。本文探讨了如何利用阿里云的通义星尘实现基础的多智能体协同工作,介绍了智能体的概念、优势及局限性,并通过具体案例展示了如何构建协作型多智能体系统。
|
安全 Shell 网络安全
常见的网络安全协议有哪些?
【8月更文挑战第7天】
2866 6
|
API Android开发
31. 【Android教程】状态栏通知:Notification
31. 【Android教程】状态栏通知:Notification
1509 1
|
机器学习/深度学习 人工智能 NoSQL
【AIGC】深入浅出理解检索增强技术(RAG)
【5月更文挑战第10天】本文介绍了检索增强生成(RAG)技术,这是一种将AI模型与内部数据结合,提升处理和理解能力的方法。通过实时从大型文档库检索信息,扩展预训练语言模型的知识。文章通过示例说明了当模型需要回答未公开来源的内容时,RAG如何通过添加上下文信息来增强模型的回答能力。讨论了实际应用中令牌限制和文本分块的问题,以及使用文本嵌入技术解决相关性匹配的挑战。最后,概述了实现RAG的步骤,并预告后续将分享构建检索增强服务的详情。
861 3
Xmind2022最新版破解与激活教程,操作简单
Xmind 是一款 全功能 的思维导图和头脑风暴软件。像大脑的瑞士军刀一般,助你理清思路,捕捉创意。
4180 0