1.5.4 数据可靠性剖析
SSD用如下几个关键指标来衡量可靠性。
❑ UBER:Uncorrectable Bit Error Rate,不可修复的错误比特率。
❑ RBER:Raw Bit Error Rate,原始错误比特率。
❑ MTBF:Mean Time Between Failure,平均故障间隔时间。
1.数据可靠性
图1-25所示为S3710 SSD手册中的Reliability(可靠性)项。
UBER是一种数据损坏率衡量标准,等于在应用了任意特定的错误纠正机制后依然产生的每位读取的数据错误数量占总读取数量的比例(概率)。
图1-25 S3710 SSD手册中的Reliability
为什么SSD要定义UBER?对于任何一项存储设备,包括HDD,用户最关心的都是数据保存后的读取正确性。试想数据丢失或损坏会对客户产生什么后果,尤其是企业级用户数据。那如何让用户相信存储设备是可靠的呢?UBER指标描述的是出现数据错误的概率。
为什么会产生错误数据?SSD的存储介质是闪存,闪存有天然的数据位翻转率。主要有以下几种原因:
❑ 擦写磨损(P/E Cycle)。
❑ 读取干扰(Read Disturb)。
❑ 编程干扰(Program Disturb)。
❑ 数据保持(Data Retention)发生错误。
虽然SSD主控和固件设计会用纠错码(ECC)的方式(可能还包括其他方式,如RAID)来修正错误数据,但在某种条件下错误数据依然有纠不回来的可能,所以需要用UBER让用户知道数据错误码纠不回来的概率。
闪存原始的数据位翻转加上BCH码(一种ECC纠错算法)经ECC校验码保护后,可以计算转换到UBER。影响UBER的最核心因素是RBER。图1-26所示为从RBER、ECC编码长度(Code Length)和保护强度(Strength)换算到UBER的过程,从中得出结论:在相同的ECC编码长度和RBER下,随着保护强度的增大,UBER在大幅度降低。
图1-26 UBER和保护强度的关系
在相同的ECC编码长度和保护强度下,RBER越低,UBER就越低,并呈指数级降低,如图1-27所示。
图1-27 UBER和RBER的关系
RBER反映的是闪存的质量。所有闪存出厂时都有一个RBER指标,企业级闪存和消费级闪存的RBER是不同的,价格当然也有所不同。RBER指标也不是固定不变的,如图1-28所示,闪存的数据错误率会随着使用时间(PE Cycle)的增加而增加。为了应对极限情况,必须准备好处理每100位数据就有1位坏掉的情况。
图1-28 RBER和使用时间的关系
RBER还跟闪存内部结构有关。两个相邻闪存块的RBER有可能完全不同,图1-29是单个闪存块里面不同闪存页的RBER分布图。看得出来,Upper Page(又称慢页,简称UP)的RBER比Lower Page(又称快页,简称LP)的RBER要高两个数量级。
图1-29 快页与慢页的RBER
通常商用企业级和消费级SSD的UBER指标如表1-9所示。
表1-9 企业级和消费级SSD的UBER值需求
2.MTBF
工业界MTBF指标反映的是产品的无故障连续运行时间,也是产品的可靠性指标。计算MTBF有一些标准,目前最通用的权威性标准是MIL-HDBK-217、GJB/Z299B和Bellcore。其中,MIL-HDBK-217是由美国国防部可靠性分析中心及Rome实验室提出的,现已成为行业标准,专门用于军工产品MTBF值的计算;GJB/Z299B是我国的军用标准;Bellcore是由AT&T贝尔实验室提出的,现已成为商用电子产品MTBF值计算的行业标准。
MTBF主要考虑的是产品中每个器件的失效率。但由于器件在不同的环境、不同的使用条件下失效率会有很大区别,例如,同一产品在不同的环境下,如在实验室和海洋平台上,其可靠性肯定是不同的;又如一个额定电压为16V的电容在实际电压为25V和5V的条件下失效率肯定也是不同的。所以,在计算可靠性指标时,必须考虑多种因素。所有这些因素几乎无法通过人工进行计算,但借助软件(如MTBFcal软件)和其庞大的参数库,能够轻松得出MTBF值。
对于SSD而言,JESD218A标准定义了测试SSD每天读/写量的方法,还补充了SSD的一些额外的失败测试。要考虑的另一件事是:什么工作负载用于测试MTBF?例如合格的SSD使用工作负载每天写20GB数据,一共持续5年,基于这个工作负载加上补充性失效测试,得知这款SSD MTBF可达120万小时。但如果工作量减少到每天写10GB数据,MTBF将变为250万小时;如果每天写5GB数据,MTBF就是400万小时。