最近,在论坛经常看到有人提出这样的疑问:SSD长时间断电不用,里面的数据会丢失吗?SSD放了几年,会无法启动吗?在此做个简单的分析与解答。
之所以有这样的疑问,是因为SSD的核心元件——NAND Flash工作原理导致的“数据保持力(Data Retention)”问题,它也是所有基于NAND Flash的SSD共有特性。
SSD也好,U盘也罢,它们都是我们常用的“非易失性存储器(non-volatile memory,即NVM)”。从名字不难看出,它并非数据绝对不会丢失,只是不易丢失。
根据NAND Flash自身工作原理,其上面的存储单元在长时间不进行读写操作的情况下,浮栅门级中存放的电荷会逐步漏电,导致原本存储的数据发生变化,如图示中数据 “0” 可能变为 “1”。当数据错误达到一定数量,超出SSD的纠错能力时,数据将彻底损坏。
从数据写入,到数据因存放而出错,需要一定时间。而这个时间的长短,就是我们通常说的“数据保持力”。
对基于NAND Flash的SSD来说,数据写入时的工作温度和断电时的存放温度,是影响“数据保持力”的重要因素。其行业标准(JEDEC)如下:
引自JESD218A
同时,JEDEC还列出了不同写入温度,不同断电放置温度,SSD所需满足的数据保持时间:
引自JESD218A
温度升高,电子活性增强,NAND Flash的写入效果会更好;相应的,存储在浮栅内的电荷泄露速度也会加快,并造成数据保持力的下降。以企业级SSD为例,写入温度55℃,断电存放温度25℃,其数据保持力应达到101周,约合2年时间;当存放温度提升至40℃,数据保持力将下降至13周(约3个月),二者差距非常明显。
与此同时,NAND Flash自身的磨损情况,是影响数据保持力的另一个重要因素。在之前《企业级 SSD 寿命要怎么看》一文中,我们详细介绍了SSD的寿命计算方式,提到,电子在反复来回穿越的过程中会对浮栅的隧道氧化层造成不可逆的磨损,使其最终不能再有效保持浮栅门中的电荷,从而失效。随着数据写入量的增加,SSD的NAND磨损也会加剧,剩余寿命越低,数据的保持力也就越差。
综上所述,SSD长时间不通电,是有可能出现数据损坏,甚至无法启动的情况,特别是当SSD存放在高温环境,且写入寿命所剩无几的时候。而经常使用的SSD就不会有这些情况发生,具体原因请往下看。
对即将出错的数据重新写入,是延长SSD数据保持力的有效方法。如,PBlaze系列企业级SSD会在上电时,通过后台扫描存储在NAND中的数据,当发现数据出错率接近LDPC硬解码的能力时,会对这部分数据进行搬移,将其写入新的地址并释放原来的存储空间,以延长SSD断电后的数据保持时间。
同时,对采用MLC、TLC乃至QLC的SSD,将Firmware固件镜像、FTL映射表、AES秘钥等重要元数据保存在具有更高可靠性的pSLC模式NAND区域当中,并进行跨Die、跨Channel备份,也是从根本上大幅提高元数据的保存时间,降低这些重要数据出错的有效方式。
将3D NAND划分出SLC模式区域
Firmware固件镜像是决定SSD能否启动、能否稳定运行的关键。PBlaze系列企业级SSD提供了多个存放固件的Slot,可实现多个版本固件镜像的共存与冗余备份。当新版本固件镜像加载失败,会自动读取其副本,并对出错镜像加以修复。此外,当SSD累积使用一定时间,或触发高温等可能导致数据损坏的情况发生,SSD也会自动对固件镜像进行重新写入,确保镜像的准确并有效延长其保存时间。
以上这些操作看似简单,但要做到优秀,并不容易,需要在有效增强数据保持力的同时,尽量降低写放大,保证SSD的写入寿命,且不能对用户操作以及SSD的延迟、QoS造成影响。它要求SSD厂商在IO优先级处理、磨损均衡,以及一系列数据保护、数据纠错措施中取得平衡。而对于用户来说,不管是企业级还是消费级,对暂时不用的SSD妥善保存,并对重要数据做好备份,方是王道。