明显更快的速度是SSD(固态硬盘)最吸引人的地方,对于长期使用SSD的用户来说,通常不会愿意再使用机械硬盘作为系统驱动器了。目前,SSD稳步上升的容量和逐渐下降的价格使越来越多的电脑用户开始使用SSD,但是包括已经使用SSD的用户在内,实际上许多电脑用户对于SSD的稳定性和寿命都心存疑虑。这种不信任感源自于SSD的闪存单元有限的使用寿命,理论上闪存单元只能够承受有限的擦写次数,而据此推断,许多SSD大约只能够应付1000~3000次的擦除和写入操作。虽然很快第一代的SSD(例如英特尔X25)通过一个很长的使用寿命打消了人们的这种疑虑,但是由于控制器固件的问题,新一代的SSD又再次引起了人们的担心:由于固件缺陷,采用SandForce SF 2000控制器的SSD容易导致电脑出现BIOS无法检测、系统崩溃等各种千奇百怪的信息安全问题。
寿命短暂的闪存单元
SSD的存储密度有上升的趋势,闪存单元的尺寸越来越小,而且一个闪存单元可能被用于存储两三位的数据,这导致闪存单元的寿命更加短暂,每一个闪存单元存储一个数据位的单层单元可以应付100 000次写操作,而一个单元存储两位的多层单元(MLC)则只能够承受3 000次写操作,存储三位的三层单元(TLC)只能够承受1 000次写操作。
闪存单元的设计原理决定了它们的寿命极其有限:闪存单元通过浮动栅极(floating gate)的状态来存储数据,当向控制栅极(control gate)施加电压时可以为浮动栅极充电,让电子可以穿过薄薄的绝缘层到达浮动栅极,在此状态下,即使不再施加控制电压,电子也将留在浮动栅极,浮动栅极形成电场,可以阻止读取电流,因此对该单元的读取值为“0”。如果要将单元写入一个“1”,那么需要向控制栅极反向施加电压,通过绝缘层移出浮动栅极中的电子,在不带电的状态下,浮动栅极将允许读取电流通过,在这种情况下,对该单元的读取值为“1”。
浮动栅极周围的绝缘层磨损是闪存单元寿命短暂的原因,每一次电子穿越绝缘层的过程都将导致金属氧化物的损耗,随着时间的推移,绝缘层的金属氧化物损耗得差不多之后,原子键就会断裂,部分电子可能会在穿越过程中被困在氧化物中,导致负电荷积累,越来越多的控制电流被抵消。闪存单元的擦写操作需要的时间会越来越长,最终时间已经长到足以影响SSD性能的时候,SSD控制器将丢弃它。因此,闪存单元的删除和写操作是决定闪存单元寿命的关键,而闪存单元在实际使用中并不是逐一单独访问的,而是被链接起来成为一个256KB或者512KB的区块,这就导致SSD的每一次擦写操作都可能影响更多的闪存单元。因而,SSD需要通过控制器对写操作进行计划和管理,尽可能地避免放大擦写操作对闪存单元寿命的影响。
不管闪存单元有什么样的技术缺陷,在SSD容量更大并且价格更低廉的迫切需求下,制造商能够做的只能是不断地提高数据密度。如上所述,现如今的SSD,闪存单元不再是存储一个“0”或“1”的数据位,而是每一个单元存储两个位甚至三个位,闪存单元中不同的电压等级代表不同的“0”与“1”的组合。这需要大幅度地降低电压的容差,否则不足以弥补劣化的绝缘层所带来的影响。因而每一个单元存储两个数据位的多层单元只能够承受3 000次写操作,存储三个数据位的三层单元只能够承受1 000次,而不再是原来的100 000次写入和删除操作。另外,要以合理的价格扩张产能,以及在闪存存储设备小型化的需求下,制造商不断地压缩闪存单元的尺寸,这导致绝缘层以及闪存单元其他结构的尺寸同样被压缩,更容易受到磨损。
SSD的使用寿命
在正常的使用过程中,SSD很快就无法工作,这种担心已经被证明是毫无根据的。IT数码港经销商的存储产品经理托马斯·韦泽通过退换货率来描述这一问题,他认为SSD的退换货率并不比传统的机械硬盘高,而SSD的制造商OCZ的代表也表示,他们的SSD受益于所使用的NAND单元和动态补偿等先进技术的应用,从普通用户的角度来考虑,SSD的寿命完全够用。除了这些相对比较空泛的描述之外,一个更具体的证明是三星的IT存储事业部产品经理所提供的,该公司的产品通过固件缓解闪存单元的有限生命周期,根据目前的经验,840 EVO的耐用性和可靠性超过3年,840 PRO则超过5年。并且该公司的一个120GB容量的测试驱动器,目前已经用来写过563TB的数据,至今仍然工作正常。按照563TB的数据计算,这一驱动器相当于已经全盘擦写了4 700次,如果以每天全盘擦写一次来计算,这将需要持续12年。实际上,在互联网上也有许多用户提到,自己的SSD已经被用来写过几百TB的数据。
SSD能够使用多久与其所设计的使用强度也有一定关系,这通常可以根据制造商的保修期限来判断。高价位的OCZ Vector 150SSD设计的使用强度是5年内可以每天擦写50GB数据,因而,这种SSD有很长的保修期。而最便宜的OCZ Vertex 450设计的使用强度是3年内可以每天擦写20GB数据。对于一般用户来说,由于这个使用强度是按照每天擦写设计的,所以可以确保使用寿命足够长。同样的道理,三星的SSD也分为专业版本和普通的消费版本,分别提供5年和3年的保修期。因而,当我们选择SSD时,如果追求更高的稳定性与寿命,可以选择5年保修期的专业版本。而且在日常的使用过程中,适当地控制每天擦写的数据量,理论上可以延长SSD的使用寿命。
使用CrystalDiskInfo之类的工具可以读出SSD的使用情况等许多相关的统计信息,例如写入的数据量和磨损量指示等。不过,这些从0到100的数字有点过于抽象,因而,我们可以使用SSDLife(ssd-life.com)来分析这些记录,并预测SSD剩余的使用寿命。首次启动软件,SSDLife将记录数据的写入量,如果长期使用可以安装该软件,软件能够更准确地预测寿命。不过,通过SMART值预测驱动器寿命的准确率自然不会是百分之百,许多驱动器在SMART值预测将损坏之后,仍然可以使用很长的一段时间。不过,如果SMART值显示SSD寿命即将终结,那么我们应该定期为SSD上的数据进行备份。
当SSD出现故障时
SSD的控制器能够有计划地安排写入操作以减少闪存单元的擦写次数,并尽可能地给闪存单元平均分配写入任务,避免个别闪存单元过早地磨损。此外,控制器能够标记寿命终结的闪存单元,并用其他的闪存单元替换以避免区块内的所有闪存单元无法使用。个别生产商宣称他们的SSD可以替换的闪存单元多达30%,在出现故障的闪存单元能够得到替换的情况下,SSD除了出现轻微的性能损失和SMART值有相应的变化外,基本上不会对用户有任何影响。这种情况将一直持续到有缺陷的闪存单元所占比例过大的时候,当这种情况发生时,SSD将切换到只读模式。我们可以通过写操作和系统不稳定的错误信息预测这一天的到来,如果写操作的时间过长,Windows将取消它并提示失败的信息,而当SSD是系统驱动器时,操作系统将可能出现死机等不稳定的状况。
除了有缺陷的存储单元之外,有缺陷的固件也可以导致SSD不稳定,然而这种故障通常不会丢失数据。我们可以将固件存在缺陷的SSD连接到移动硬盘盒,或者通过SATA线连接电脑,然后使用专业的工具对其进行更新和备份。在本文最后部分,我们将为大家介绍如何创建一个可以启动系统的闪存盘,并使用其中包含的硬盘工具为系统驱动器创建镜像备份,或者从有故障的SSD中拷贝数据。
需要注意的是,如果需要使用SSD工具在线更新固件,那么要使用SATA数据线直接将SSD连接到电脑上,SSD工具无法通过USB连接在线更新固件。如果SSD是由于固件的缺陷而出现故障,例如文章开头所介绍的SandForce SF-2000固件缺陷,那么在更新SSD固件之后,SSD上的文件应该可以再次被读取。接下来,我们可以使用上面提到的工具克隆驱动器或复制文件,完成后使用SSD工具的“Secure erase”功能重置SSD。最后重新将数据复制或者克隆到SSD上,并检查SSD是否能够正常工作。
当硬盘寿命完全终结时
最坏的情况是在BIOS中找不到SSD,并且SSD在Windows数据载体管理系统或资源管理器中都不可见。此时,某些配备Indilinx控制器的特殊型号,可以从电脑上断开SSD的电源和SATA线,通过一个跳线重新设置BIOS,尝试让SSD可以重新被访问。不过,对于大部分SSD来说,如果SSD在其他电脑或者USB移动硬盘盒中也无法访问,那么这通常意味着SSD的控制器或者一些核心部件已经损坏。在这种情况下,SSD上保存的数据仍然存在于存储器单元中,但是控制器的故障导致它们无法被读取。
如果这些数据没有备份,必要时可以联系一些专业的数据恢复公司进行恢复,个人用户自行恢复的可能性基本为零。数据恢复公司Kroll Ontrack的经理马丁·希勒告诫大家,尝试自行恢复控制器故障的SSD通常只能带来更大的麻烦。专业的数据恢复专家可以从闪存单元中直接读出数据,并通过软件来完成本该由控制器执行的任务,将数据重建成文件。至于是否能够成功恢复数据,将取决于控制器的复杂性与控制器厂商的信息公开程度,还有数据恢复专家的水平。
控制器损坏导致SSD寿命终结的机率相对是比较低的,不过无论如何,我们都建议大家应该定期地为SSD创建备份。按照目前大部分的SSD容量来说,备份并不需要花费太多的时间。特别是当机箱内除了SSD还有一块机械硬盘时,可以使用Windows的备份功能或者其他备份工具,自动定期进行备份。
作者: 来源:新电脑 2014年3期