欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

SSD的寿命要怎么算?

程序员文章站 2022-10-02 13:29:31
消费者选购ssd时总是会去研究他们的耐久度寿命如何,毕竟硬盘挂了真的很麻烦,里面的数据很大概率会全部丢失,然而针对单个硬盘而言,想预测它的寿命是不可能的,无论机械硬盘还...

消费者选购ssd时总是会去研究他们的耐久度寿命如何,毕竟硬盘挂了真的很麻烦,里面的数据很大概率会全部丢失,然而针对单个硬盘而言,想预测它的寿命是不可能的,无论机械硬盘还是固态硬盘,他们都是一个薛定谔的定时炸弹,随时都可能爆炸,可能性会随时间的推移而增加,而你的幸运值和电源的稳定性会成为动态变量影响这个结果。

ssd的寿命等于闪存的寿命?

而对于一款产品这个群体而言,大致的平均寿命还是可以推测到的,说到ssd的寿命,首先大家会想到闪存的写入次数限制,这和闪存的工作原理有关,以浮栅极型nand闪存为例,闪存是通电与否代表计算机可识别的1、0状态,加电瞬间会产生强大的电场(大于1000万 vt/cm),这么强的电场会破坏隧道氧化层的原子结合,脱离的电子就会上升到浮栅极上以形成电位变化,断电之后电子还会恢复正常位置,这样反复的断电-加压就形成了不同的电位信号。

加电的过程等同于hdd硬盘的数据写入操作,它被称为“program(编程)”,断电的过程电位恢复,这相当于hdd硬盘的擦除数据,这里成为“erase(擦除)”,完整的一次p/e循环就是nand的写入循环,从这里也可以看出ssd要想写入数据就需要恢复默认电位,也就是以“擦除”为前提,这个特性决定了ssd的数据写入方式,也会带来其他的一系列问题。

最直接的影响就是ssd寿命,因为p/e循环次数是有限的,浮栅极不像hdd的gmr(巨磁阻尼)效应那样是永久的,存在次数限制。而不同类型的闪存p/e次数是不一样的,传统的2d slc闪存p/e次数可达100,000次,而2d mlc则有3000-5000次,企业级的可达10000次,2d tlc则是1000-1500次比较常见,而现在的3d tlc闪存由于使用了不同的工艺,其p/e次数已经能达到3000次,新进的鄙视链底端角色3d qlc其实也有1000p/e,寿命其实还是可以的。

而有了闪存的p/e次数和ssd的容量,通过一条公式是可以计算出理想情况下ssd的最大寿命的:

ssd寿命=(闪存p/e×ssd闪存容量)÷(写入放大系数×年数据写入量)

以一个240gb的3d tlc ssd为例,闪存3000p/e,ssd的闪存容量实际是256gb,写入放大系数这个其实和主控算法和写入的数据类型有关的,其实很难说具体数值是多少,这里取5这个较大的值,至于年数据写入量嘛,这完全取决于个人使用习惯,这里就取2000gb,其实这写入量已经相当大了,所以:

(3000 × 256)÷(5 × 2000)=76.8年

这个ssd能用76年?以闪存的理论寿命来说是对的,然而我刚才也说过这是理论的最大寿命,是在一切都在理想情况下算出来的,而他的最小值呢?其实可以参考厂商为这个ssd的提供的质保市场,多数是三年或者五年,有些高端产品会提供十年质保,他们给出这样的质保时间就说明这款ssd在这段时间内大概率不会坏掉,毕竟rma是需要人力物力投入的,ssd在质保期内大面积挂掉这会让厂商赔相当多的钱,而且对自己的名声也不是好事情。

另外现在多数厂商还会给出ssd的寿命周期写入量tbw,有些则是给出每日复写次数dwpd,后者其实可以换算成tbw,假设厂商为一个512gb的ssd给出的dwpd是1,说明它每天可以写入自身一次的数据,也就是512gb,质保期5年,所以它的tbw就等于512gb × 365 × 5 ÷ 1024=912.5。

有些人会误以为这个tbw就是ssd寿命周期可以写入数据总量,写这么多数据后ssd就会挂掉,其实不是的,其实这个数字的意思是你如果在保修期内写入超过这么多数据的话就不给你保修了,因为你的写入操作已经超出了这个ssd正常使用的范畴,其实一般来说这个数字也挺难超过的,能超过这个数的人我倒是挺想知道你平常是怎么折磨这个ssd的。

当然tbw这个数字不是完全没有价值的,你可以看作是ssd写入耐久度的最小值,而你的ssd实际寿命就在tbw值和闪存的理论写入最大值之间。

然而真相远没有这么简单

实际上因为闪存寿命耗尽而挂掉的ssd只占少数,大部分ssd都是因为其他各种各样的原因挂掉的,有些是因为主控烧了,主控比闪存先挂的现象很常见,因为ssd主控的工作温度大多数都很高,ssd的所有读写操作都要经它之手,它的工作压力其实是最大的,所以突然猝死是相对可能的。

还有一个可能性就是主控和闪存都安好,然而其他供电元件坏了,ssd上面虽然大家都只关心主控、闪存、缓存这些主要芯片,不过它上面其实还有不少其他芯片和元件的,而这些东西也有可能故障,一旦故障也有可能导致整个ssd瘫痪,特别是电源不稳定时供电元件烧毁的可能性相当大,比如上图这块可怜的ssd,不过这种故障其实ssd数据可能还有得救,而闪存或者主控挂了数据就真没了。

而针对这些可能出现的故障,厂商通常都会给出一个mtbf故障间的平均时间,意思就是消费者硬盘两次故障之间的平均间隔时间是多少,通常这个值都比较大,以intel 760p为例,mtbf是160万小时,换过来有100多年,所以其实没有啥参考价值,说到底还是个随机事件,被你碰到了算你运气不好。

所以其实已经没有什么好害怕的了,ssd是否暴毙其实就是在掷骰子,运气不好就会挂掉,与其算这个算哪个担心ssd的寿命,还不如买个性能好的用起来爽一点,真担心的话就去买个质保长一些的,至少ssd在质保期内挂掉的可能性还是比较小的。

最后来说下ssd两种常见的死亡方法,第一种是写入锁定,就是主控检查到你ssd已经不行了,直接不允许写入任何东西,这种状况其实是最好的死亡方式,至少你还有拯救数据的机会,而第二种则是毫无征兆的突然暴毙,这种其实是最常见的,你自己没有任何拯救数据的机会,而厂家大多数情况下都不会帮你把数据恢复出来,而找第三方数据恢复服务的话,价格也是极高的,所以,多备份自己的重要数据吧。

SSD的寿命要怎么算?