rdt-218后两位演员?

虽然Mutex中文翻译为互斥锁,但为了和OS mutex充分的区别,所以我们在本文里称Oracle Mutex为Mutex。

Oracle中的mutex,类似于Latch,是一种低级的串行机制,用以控制对SGA中部分共享数据结构的访问控制。  Oracle中的串行机制有不少,引入它们的目的是避免一个对象出现下述现象:

  • 当某些进程在访问该对象时,该资源被重新分配
  • 当某些进程在修改它时,被其他进程读取
  • 当某些进程在修改它时,被其他进程修改
  • 当某些进程在读取它时,被其他进程修改

不同于Latch,Mutex的使用更灵活,用途更多,例如:

  • 哪些需要被mutex保护的共享数据结构可以有自己独立的mutex,即一个对象拥有自己独立的mutex,不像Latch往往一个需要保护大量对象,举例来说,每一个父游标有其对应的mutex, 而每一个子游标也有其对应的mutex
  • 每一个数据结构可能有一个或多个mutex保护,每一个mutex负责保护其结构的不同部分
  • 当然一个mutex也可以用来保护多于一个的数据结构

理论上mutex即可以存放在其保护的结构本身中(其实是嵌入在结构里),也可以存放在其他地方。 一般情况下Mutex是在数据结构需要被保护时动态创建出来的。 如是嵌在需要保护结构体内的mutex,则当 所依附的数据结构被清理时 该mutex也将被摧毁。

Mutex作为Latch的替代品,具有更快速获得,更小等优势。 获取一个mutex进需要大约30~35个指令, 而Latch则需要150~200个指令。一个mutex结构的大小大约为16 bytes,而在

大家对SSD的第一印象就是性能高、速度快,然而随着SSD在数据中心、高性能计算、高端存储、边缘计算等各种企业级应用场景的逐步普及,近年来企业级SSD产品的发货量逐年快速上升,而随着实际在网运行数量的逐步增加,一些可靠性问题也逐渐体现,而SSD的可靠性也企业级用户重点关注的方向。

讲到SSD的可靠性,我们通常能听到的术语有:Failure Rate(故障率或者失效率)、MTBF、AFR、Retention、Endurance、 UBER、FFR等,在实际工作中经常有些不是可靠性领域的工程师来询问这些指标的含义,所以本文主要简单介绍一下这些SSD可靠性指标的概念及其意义,方便大家更深入的了解和认识SSD的可靠性。      

提到可靠性,必须要讲下最经典的浴盆曲线(Bathtub Curve)可视化模型,浴盆曲线模型是指导产品或者系统进行可靠性设计、验证、优化的最常用的模型,也是可靠性工程师甚至质量工程师都非常关注的理论。

浴盆曲线简单来说将产品的生命周期分为三个阶段:

1)早期失效期(Infant Morality Period):此阶段失效率较高,大多是生产制造带来的失效,但是这段时间比较短,而且失效率随着时间推移会迅速降低并趋于稳定。

2)稳定期(Steady Period):或者叫随机失效期,有时也叫正常生命期,这个阶段产品的失效率是恒定的常数,通常发货给客户的产品都工作于这个阶段。

3)寿命耗尽期(Wear-out Period): 这个阶段产品由于寿命的耗尽,失效率逐渐增高。浴盆曲线在可靠性的设计和优化上有非常多的应用,本文中所讨论的可靠性指标MTBF/AFR等,都是指的正常生命期也就是稳定期。

MTBF 全称为Mean Time Between Failure即平均失效间隔时间,其定义为给定的样本数量,工作小时后,出现次故障,每个样本失效时已正常工作的时间记为 ,

MTBF通常用于一个故障可恢复的系统,相比故障率指标,MTBF的定义更加直接,也更适用于表现系统级的可靠性,更常用于预测和表征产品和系统的可靠性,而不是用故障率来进行体现。

实际应用中我们还经常听到AFR的概念,AFR即Annual Failure Rate,即年化的失效率,假设年度的发货量为,故障个数为,那么可以定义:

上面等式中的表示产品(系统)的时基失效率,AFR主要用于产品或者系统在发货后进行的故障率统计,这点和DPPM有类似之处,只不过DPPM更多用于独立的元器件。       

上面介绍了故障率、MTBF、AFR的定义,接下来说一说它们之间的关系及实际意义

因此,实际SSD产品的可靠性设计和评估方法是:系统的MTBF可以通过系统的失效率评估得到。而系统的是可以通过各个器件的失效率计算得到,器件的失效率(即FIT值)可以从各个元器件厂家获取。

需要强调的是系统失效率评估并非简单的所有独立元器件FIT值相加,而是需要根据元器件在系统中具体的使用方法和系统的适用场景计算,可以参考BellCore等专业文档。

MTBF相对故障率来说,更易于在研发过程中进行验证。MTBF的测试验证方法也就是通常讲的RDT(Reliability Demonstration Test)即可靠性验证测试,通过RDT验证MTBF的原理如下:

上述等式中各参数的意义:

2)AF表示温度加速因子,通常采用高温加速的方式进行;

4)A表示置信度因子,

5)CL表示置信度水平,r表示允许的失效个数,表示卡方分布;

根据MTBF和故障率的关系我们可以很容易得到AFR和MTBF的关系如下:

那么既然已经有MTBF为什么还要增加AFR这个指标呢,个人认为有以下两点区别:

1)MTBF主要用于研发设计时对产品可靠性指标进行预测和测试验证,不易于实际统计:MTBF 是在SSD产品设计时,需要制定的可靠性指标,MTBF需要在产品研发阶段通过计算可以得到,同时可以通过RDT等测试方法进行验证,因此MTBF更偏向于发货前的研发理论设计和研发阶段的验证;

2)AFR更易于在产品实际发货后进行统计,是对MTBF设计的实际验证:AFR虽然可以通过MTBF得到,但AFR更重要的是易于在SSD产品实际发货后进行统计,是一个实际的统计值,而统计MTBF则比较难在实际产品发货后统计。通过实际统计得到的AFR和设计的AFR值比较,是最终验证MTBF设计指标是否达成的依据,也是SSD产品可靠性在用户使用阶段最直接的体现指标之一。

实际上我们在做系统可靠性设计时,需要将故障率、FIT值、MTBF、AFR联系起来看,总结如下:

1)元器件的故障率是计算系统故障率的基本输入参数,通过系统故障率来评估系统MTBF;

2)系统级可靠性更直接的是用MTBF进行体现,MTBF可在批量发货前通过RDT验证;

3)AFR可以用于批量发货后的可靠性反馈验证;

4)可以大概总结硬件系统的MTBF可靠性设计预测和验证流程如下:    

前面三部分讲的失效率(Failure Rate)、MTBF和AFR都是通用的硬件产品可靠性指标,而不是SSD产品所特有的。实际上对于SSD产品来说,还有自己特有的特性和可靠性指标,也就是大家常见的Endurance、TBW、Data Retention、UBER、FFR这几个概念,实际上这几个概念的定义都来源于JESD218系列规范,我们先看看这四个概念的定义。

上面等式中表示该盘片的寿命是5年,这是企业SSD通常标称的寿命。

因为SSD使用NAND Flash作为存储数据的介质,NAND Flash 是一种数据非易失的介质,但不是永久不丢失数据的介质。NAND Flash有两个明显的特点:

第二,存放在NAND Flash内部单元的数据,只能保存一定长度的时间,当超过该时间,数据会逐渐丢失,因此NAND Flash存在Data Retention的概念。

不过,严格来说 Endurance和Data Retention并不是可靠性的指标,是属于功能指标,UBER和FFR才是可靠性的指标,但是UBER和FFR是需要在Endurance和Data Retention的前提条件下来定义,并进行测试验证。

SSD是一种用于保存数据的部件,因此对行业规范中制定了关于SSD保存数据方面的可靠性指标,也就是常见的UBER和FFR。

1)需要将整个测试样本量分为两部分各50%;

4)第二部分的Endurance测试完成后,需要进行一次对数据保存时间的测试即Retention测试;

5)最后统计UBER/FFR时需要统计上面2),3),4)步骤中所有的功能失效,错误IO个数,用于计算UBER/FFR。

本文的主要目的还是对SSD可靠性涉及到的概念进行简单梳理,帮助大家理解SSD的可靠性。由于每个指标详细的设计、预测以及验证方法都有比较多的内容,后续有机会再进行专题分享。            

我要回帖

更多关于 rtd2166 的文章

 

随机推荐