最近有一篇关于SSD固态硬盘数据可靠性的文章很流行,说是希捷的一位工程师Alvin Cox研究发现固态硬盘在不通电的情况下数据会随着时间流失,而且温度对SSD可靠性也有非常大的影响,最后总结出大多数SSD的可靠年限只有2年,建议重要数据不要用SSD保存。权威专家+可怕的后果+危言耸听的写法——这简直是完美的QQ空间以及现在的微信圈范本,尼玛,什么时候这也扩散到DIY圈子了?
虽然现在大家都知道了SSD的好处了,但SSD始终绕不开的一个问题就是数据可靠性,先天性的P/E操作既给了SSD超强的性能,也给它带来了隐患——数据寿命是有限的,升级带TLC会导致寿命减少,升级到更先进的制程也会导致寿命减少,不明真相的人民群众难免要怀疑SSD的寿命了,这本来很合理,但前面提到的那个SSD不通电都能导致数据流失的传闻是真的吗?
一个成功的谣言绝不会100%都是错误的,高明的撒谎者总会三分真中掺杂七分假,前面这个谣言也是如此——SSD不通电会流失数据以及温度对SSD寿命有影响的说法是对的,但把这个影响夸张到如此地步就不对了,Anandtech网站现在就出了一个打脸辟谣文章。
首先是前面那个报告作者Alvin Cox的身份,这篇报告并不是出自希捷公司的,而是JEDEC组织,Alvin Cox曾是JC-64.8标准小组(也就是SSD委员会)的主席,不过有一点是正确的——Alvin Cox本人确实是希捷公司资深工程师,只不过这跟他发表报告无关,JEDEC组织本身就是厂商们的联合组织,成员来自不同厂商是很正常的事,目前JC-64.8标准小组是HGST公司的Frank Chu领导的。
在回答前面有关SSD数据保留问题之前,我们先来了解下厂商是如何确定SSD可靠率的。首先,SSD必须保证一定的容量,因此不可能把很多区块(blocks)用于OP空间之类,这样做会降低用户的可用容量(SSD的这个特点可以参考我们之前的文章解释)。第二,SSD必须达到规定的UBER及FFR指标,下面的表格解释了UBER和FFR的含义,前者是SSD读取字节中出错的字节比例,FFR则是功能失效的比例,消费级及企业级SSD在这两个指标上有不同的要求,消费级SSD的UBER是10-15,也就是1/1015的字节读取失败率,FFR不能高于3%。
最后一点就是SSD不通电状态下要达到JEDEC规定的数据保存率,消费级SSD是30°C温度下1年,企业级是40°C下三个月。
以上指标最后都是用TBW来表示,这也就是我们看到的SSD标识中数据写入量的意义,比如100TB数据写入寿命,这意味着在写入100TB数据时其指标也能达到上述要求。
这个表格来自Intel
温度确实也会对SSD的数据保存造成影响,从Intel给出的消费级SSD关机温度及活动温度下的保存时间来看,40°C活动温度、30°C关机温度下SSD的数据保存时间是52周,也就是一年。关机温度越高,SSD数据保存时间就会越短,活动温度25-30°C但关机温度55°C时,SSD保存数据的时间就只有1周了,这就是之前的谣言中“数据保存时间只有几天”的来源了,这种情况确实会发生,但根本不具有代表性。
现实中55°C的关机温度几乎不可能(PS:如果真有这样的情况,我觉得这时候应该先关心自己的人身安全而非数据安全了),因为大部分SSD还是在室温环境下使用,温度通常都在30°C以内。活动时的温度通常是40°C左右,系统内其他部件也会产生热量的。
最后从技术上解释下这个数据保存的问题。半导体的导电性跟温度息息相关,这对NAND闪存来说不是好消息,因为断电之后电子理应不再移动,否则就会改变Cell单元的电荷。换句话说,随着环境温度的升高,电子会更快地从浮栅极逃离,最终会导致Cell单元的电压状态改变,导致数据不可读。(也就是SSD不能再保存数据)
活动状态下则是另一回事,更高的温度会硅基导电性更高,P/E操作过程中电流量更高,隧道氧化层的压力更少,这会提高Cell单元的可靠性,因为SSD可靠性主要就是受限于隧道氧化层保持浮栅极中的电子的能力。(NAND的读写原理也可以参考我们之前的文章)
总之,在典型的SSD使用环境下,我们根本不需要担心SSD的数据保留问题。前面的表格还只是通过了可靠性测试,全新的SSD数据保留率会更高,对MLC NAND闪存来说通常是10年。如果你买了一个SSD放着不用,那么它直接被淘汰的可能性实际上比SSD不能保留数据的可能性更大。