CN107632897B - 一种基于ssd故障概率模型的故障注入方法 - Google Patents
一种基于ssd故障概率模型的故障注入方法 Download PDFInfo
- Publication number
- CN107632897B CN107632897B CN201710787766.2A CN201710787766A CN107632897B CN 107632897 B CN107632897 B CN 107632897B CN 201710787766 A CN201710787766 A CN 201710787766A CN 107632897 B CN107632897 B CN 107632897B
- Authority
- CN
- China
- Prior art keywords
- ssd
- probability
- failure
- malfunction
- mathematical model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明涉及一种基于SSD故障概率模型的故障注入方法,具体包括以下步骤:建立一种基于一元六次多项式的SSD故障概率数学模型;确定数学模型的各参数;根据已建立的数学模型与Linux内核机制编写Systemtap脚本,实现故障注入工具;确定故障相关参数如故障位置、SSD生命周期、总测试时间;使用故障注入工具与故障相关参数,当对目标SSD产生相关IO操作时,根据故障概率数学模型判断是否对目标SSD注入故障。从而能在短时间内真实有效地模拟出高效固态硬盘SSD长期运行的故障产生情况。
Description
技术领域
本发明属于计算机领域,涉及计算机可靠性评测技术,特别涉及一种简单有效的基于一元六次多项式的SSD故障概率数学模型的建立,数学模型参数的确定以及根据故障概率模型判断是否进行SSD故障注入的方法。
背景技术
随着高速固态硬盘SSD的不断发展,它在存储方面的性能不断突出。由于其具有快速读写、质量轻、能耗低等优点,越来越多的服务器已使用高性能的SSD取代传统的机械硬盘HDD来存储重要的数据。然而在实际应用场景如数据中心尤其是面向高端、关键业务的应用场景越来越多,固态硬盘SSD可靠性问题变得日益突出。在现代企业中,基于闪存的SSD故障能够导致服务器节点宕机,更糟糕的情况下会引起数据丢失。由此可见,对于可靠性要求较高的数据存储服务,掌握与分析固态硬盘SSD的可靠性十分重要,如何真实有效地评价高效固态硬盘SSD的可靠性也成为了国内外研究的重点。
在专利CN 102270173,《刘宏伟,周海鹰,左德承,等.基于scsi驱动层的故障注入工具》中,该工具在SCSI协议中间层截获SCSI上层命令,修改命令之后能够实现多种暂态和永久性的SCSI磁盘有关的故障注入,但是该工具在进行故障注入时没有考虑存储器的故障概率模型,因此不能在短时间内有效模拟存储器长期运行的情况。
在专利CN 102789416,《徐萍,徐军,高小鹏,等.面向bit软件测试的存储器故障注入方法及其模拟器》中,它通过建立故障模式库,编写并解析XML故障序列文件为模拟器可识别的故障序列,在处理器访问存储器时查找相应故障并注入,当触发故障时进行故障模拟,能产生各类较多的故障注入。但是该故障注入方法依然缺乏对存储器故障概率随时间变化的考虑,也不能在短时间内有效模拟存储器长期运行的情况。
在论文《Kumar S,Kumar S,Kumar S,et al.A Large-Scale Study of FlashMemory Failures in the Field[C]//ACM SIGMETRICS International Conference onMeasurement and Modeling of Computer Systems.ACM,2015:177-190.》中,作者对Facebook公司4年来几百万小时的SSD全天候运行情况进行了研究,得出了SSD的故障率随时间变化的曲线,如图2所示,但是对于该故障率曲线没有合适的数学表达模型,从而不能利用该故障率曲线来模拟高效固态硬盘SSD在长期运行中的实际故障情况,也就不能在短时间内确切有效地对使用SSD作为主要存储介质的存储系统的可靠性进行测试评价。
由此可见,目前有关固态硬盘SSD可靠性的研究主要通过故障注入来实现,但现有的故障注入方法缺乏对SSD故障概率数学模型的研究与应用。因此不能在短时间内确切有效地模拟高效固态硬盘SSD长期运行的情况。
发明内容
为解决现有技术中存在的上述缺陷,本发明的目的在于提供一种确切有效的基于SSD故障概率模型的故障注入方法。
为达到以上目的,本发明是采取如下技术方案予以实现:
一种基于SSD故障概率模型的故障注入方法,包括下述步骤:
1)根据论文《Kumar S,Kumar S,Kumar S,et al.A Large-Scale Study of FlashMemory Failures in the Field[C]》的SSD故障率随时间变化的曲线建立使用一元六次多项式表达的SSD故障概率数学模型;
2)确定故障概率数学模型中的各相关参数;
3)根据已建立的故障概率数学模型与Linux内核机制编写Systemtap脚本,实现故障注入工具;
4)确定包括故障位置、SSD生命周期和总测试时间的故障相关参数;
5)使用故障注入工具与故障相关参数,当对目标SSD产生相关IO操作时,根据故障概率数学模型判断是否注入故障;如果当前时刻根据故障概率数学模型得出的故障概率满足SSD故障概率值,进入步骤6),不满足SSD故障概率值的则返回步骤5),重复步骤5)直至Systemtap脚本运行终止;
6)对目标SSD注入故障,产生对应的硬件故障。
进一步,所述建立使用一元六次多项式表达的SSD故障率数学模型如下:
f(t)=a0*t6+a1*t5+a2*t4+a3*t3+a4*t2+a5*t+a6 (1)
其中a0、a1、a2、a3、a4、a5和a6分别为待确定的模型参数,其取值需要根据曲线拟合效果进行确定;t为定义的SSD生命周期内从使用开始所经历的时间。
进一步,所述步骤2)具体包括以下步骤:
2a)依据对SSD故障率随时间变化的曲线描绘出符合其变化趋势的散点分布图;
2b)选择一元六次多项式拟合散点分布图,从而确定数学模型中的参数a0、a1、a2、a3、a4、a5和a6。
进一步,所述步骤4)具体包括以下步骤:
4a)在Linux中通过ls-l/dev命令查看要注入目标SSD的主设备号与次设备号,确定故障位置;
4b)以s为单位设置总测试时间t0与目标SSD的生命周期t2。
进一步,所述步骤5)具体包括以下步骤:
5a)根据已确定的故障相关参数,使用stap命令编译Systemtap脚本,形成可加载内核模块,并使之加载到当前内核中形成一个动态的新内核;
5b)当对目标SSD产生相关IO操作时,故障注入工具可以获取从故障注入开始到当前时刻所经过的时间t1,以秒s为单位;
5c)根据t1与设置的SSD生命周期t2的比值,将t1投射到SSD故障概率数学模型的定义域得到值t3;
5d)将t3代入到SSD故障概率数学模型中,得到当前时刻故障概率p;
5e)将概率p乘以100后量化为整数n1,产生一个0到100之间的随机数n2,如果n2小于等于n1,则对目标SSD注入相应故障,否则不注入故障并返回到5b)。
本发明的有益效果在于:该基于SSD故障概率数学模型的故障注入方法能在不重新编译内核的基础上,短时间内模拟出高效固态硬盘SSD长期运行的故障产生情况,对使用高效固态硬盘SSD作为存储介质的存储系统的可靠性测试评估起到了极大的促进作用。
附图说明
图1为本发明提出的SSD故障概率数学模型所反映的SSD故障概率随时间的变化曲线图。
图2为论文《Kumar S,Kumar S,Kumar S,et al.A Large-Scale Study of FlashMemory Failures in the Field[C]》中的SSD故障率随时间变化的曲线。
图3为基于SSD故障概率模型进行SSD故障注入方法的流程框架图。
具体实施方式
下面结合附图和实施例对发明作进一步的详细说明,但并不作为对发明做任何限制的依据。
本发明使用的SSD故障概率数学模型的图像表达,如图1所示,从图中可以看出固态硬盘SSD的故障率随时间变化的趋势是先增后减,后又增加的。
本发明引用的论文《Kumar S,Kumar S,Kumar S,et al.A Large-Scale Study ofFlash Memory Failures in the Field[C]》中的SSD故障率随时间变化的曲线,如图2所示。
本发明提出的一种基于SSD故障概率模型进行SSD故障注入方法的流程,如图3所示,包括:
步骤A、依据论文《Kumar S,Kumar S,Kumar S,et al.A Large-Scale Study ofFlash Memory Failures in the Field[C]》中的SSD故障率随时间变化的曲线建立图3的故障注入模块中故障注入工具所包含的SSD故障概率数学模型,通过与多种函数比较发现,SSD的故障率随时间的变化关系与一元六次多项式的变化关系类似。建立使用一元六次多项式表达的SSD故障率数学模型。
f(t)=a0*t6+a1*t5+a2*t4+a3*t3+a4*t2+a5*t+a6 (1)
其中a0、a1、a2、a3、a4、a5和a6为待确定的模型参数,其取值需要根据曲线拟合效果进行确定;t为定义的SSD生命周期内从使用开始所经历的时间。
步骤B、确定故障概率数学模型中的各相关参数:
步骤B1、依据论文《Kumar S,Kumar S,Kumar S,et al.A Large-Scale Study ofFlash Memory Failures in the Field[C]》中的SSD故障率随时间变化的曲线描绘出符合其变化趋势的散点分布图,为了简化操作,设置定义域为[3,20],值域为符合变化趋势的[0,100]内的值,从而确定了17个散点。
步骤B2、选择一元六次多项式拟合散点分布图,从而确定数学模型中的参数a0、a1、a2、a3、a4、a5和a6,这里使用matlab曲线拟合工具cftool拟合得到a0、a1、a2、a3、a4、a5和a6的值分别为-0.0002823,0.02235,-0.7001,10.91,-87.08,332.9,-451.3。
步骤C、根据已建立的故障概率数学模型与Linux内核机制编写Systemtap脚本,实现图3的故障注入模块中的故障注入工具。
步骤D、确定图3中主控制模块的故障相关参数如故障位置、SSD生命周期t2、总测试时间t0:
步骤D1、在Linux中通过ls-l/dev命令查看要注入目标SSD的主设备号与次设备号,这里假设为8与48,8是主设备号,48是次设备号,从而确定故障位置;
步骤D2、设置目标SSD的生命周期t2与总测试时间t0,这里假设为40与60,其中40代表目标SSD的生命周期t2,60代表总测试时间t0,以秒s为基本单位。
步骤E、使用故障注入工具与故障相关参数,当对目标SSD产生相关IO操作时,根据故障概率数学模型判断是否注入故障,直至Systemtap脚本运行结束:
步骤E1、根据已确定的故障相关参数,使用stap命令编译Systemtap脚本,形成可加载内核模块,并使之加载到当前内核中形成一个动态的新内核。
步骤E2、当对目标SSD产生相关IO操作时,故障注入工具可以获取从故障注入开始到当前时刻所经过的时间t1,以秒s为单位。
步骤E3、根据t1与设置的SSD生命周期t2的比值,将t1投射到SSD故障概率数学模型定义域得到值t3。
步骤E4、将t3代入到SSD故障概率数学模型中,得到当前时刻故障概率p。
步骤E5、将概率p乘以100后量化为整数n1,产生一个0到100之间的随机数n2,如果n2小于等于n1,则判断应对目标SSD注入相应故障,进入步骤F,否则不注入故障并返回到步骤E2。
步骤F、图3中的Linux操作系统内核模块内产生相应的硬件故障。
通过上述方法可以说明本发明能够通过建立一种以一元六次多项式表达的SSD故障概率数学模型,并利用该故障概率数学模型对高效固态硬盘SSD进行故障注入,从而能在短时间内模拟出高效固态硬盘SSD长期运行的故障产生情况。因此,本发明对使用高效固态硬盘SSD作为存储介质的存储系统的可靠性测试评价有着重要的参考意义,对重要数据的存储方法技术有着重要的借鉴作用。
本发明并不局限于上述实施例,在本发明公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。
Claims (6)
1.一种基于SSD故障概率模型的故障注入方法,其特征在于,包括下述步骤:
1)根据SSD故障率随时间变化的曲线建立使用一元六次多项式表达的SSD故障概率数学模型;
2)确定故障概率数学模型中的各相关参数;
3)根据已建立的故障概率数学模型与Linux内核机制编写Systemtap脚本,实现故障注入工具;
4)确定包括故障位置、SSD生命周期和总测试时间的故障相关参数;
5)使用故障注入工具与故障相关参数,当对目标SSD产生相关IO操作时,根据故障概率数学模型判断是否注入故障;如果当前时刻根据故障概率数学模型得出的故障概率满足SSD故障概率值,进入步骤6),不满足SSD故障概率值的则返回步骤5),重复步骤5)直至Systemtap脚本运行终止;
6)对目标SSD注入故障,产生对应的硬件故障;
所述步骤1)建立使用一元六次多项式表达的SSD故障率数学模型如下:
f(t)=a0*t6+a1*t5+a2*t4+a3*t3+a4*t2+a5*t+a6 (1)
其中,a0、a1、a2、a3、a4、a5和a6分别为待确定的模型参数,其取值需要根据曲线拟合效果进行确定;t为定义的SSD生命周期内从使用开始所经历的时间。
2.根据权利要求1所述的一种基于SSD故障概率模型的故障注入方法,其特征在于,所述步骤2)具体包括以下步骤:
2a)依据对高效固态硬盘SSD故障率随时间变化的曲线描绘出符合其变化趋势的散点分布图;
2b)选择一元六次多项式拟合散点分布图,从而确定数学模型中的参数a0、a1、a2、a3、a4、a5和a6。
3.根据权利要求1所述的一种基于SSD故障概率模型的故障注入方法,其特征在于,所述步骤4)具体包括以下步骤:
4a)在Linux中通过ls-l/dev命令查看要注入目标SSD的主设备号与次设备号,确定故障位置;
4b)设置总测试时间t0与目标SSD的生命周期t2。
4.根据权利要求3所述的一种基于SSD故障概率模型的故障注入方法,其特征在于,所述步骤4b)以s为单位设置总测试时间t0与目标SSD的生命周期t2。
5.根据权利要求1所述的一种基于SSD故障概率模型的故障注入方法,其特征在于,所述步骤5)具体包括以下步骤:
5a)根据已确定的故障相关参数,使用stap命令编译Systemtap脚本,形成可加载内核模块,并使之加载到当前内核中形成一个动态的新内核;
5b)当对目标SSD产生相关IO操作时,故障注入工具获取从故障注入开始到当前时刻所经过的时间t1;
5c)根据t1与设置的SSD生命周期t2的比值,将t1投射到SSD故障概率数学模型的定义域得到值t3;
5d)将t3代入到SSD故障概率数学模型中,得到当前时刻故障概率p;
5e)将概率p乘以100后量化为整数n1,产生一个0到100之间的随机数n2,如果n2小于等于n1,则对目标SSD注入相应故障,否则不注入故障。
6.根据权利要求5所述的一种基于SSD故障概率模型的故障注入方法,其特征在于,所述步骤5b)时间t1以秒s为单位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710787766.2A CN107632897B (zh) | 2017-09-04 | 2017-09-04 | 一种基于ssd故障概率模型的故障注入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710787766.2A CN107632897B (zh) | 2017-09-04 | 2017-09-04 | 一种基于ssd故障概率模型的故障注入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107632897A CN107632897A (zh) | 2018-01-26 |
CN107632897B true CN107632897B (zh) | 2019-07-23 |
Family
ID=61099851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710787766.2A Active CN107632897B (zh) | 2017-09-04 | 2017-09-04 | 一种基于ssd故障概率模型的故障注入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107632897B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760098A (zh) * | 2012-06-13 | 2012-10-31 | 北京航空航天大学 | 面向bit软件测试的处理器故障注入方法及其模拟器 |
CN103559112A (zh) * | 2013-11-05 | 2014-02-05 | 北京经纬恒润科技有限公司 | 一种软件故障注入方法及系统 |
EP2791803A1 (en) * | 2011-12-15 | 2014-10-22 | The Mathworks, Inc. | System and method for systematic error injection in generated code |
JP2014203314A (ja) * | 2013-04-08 | 2014-10-27 | 日立オートモティブシステムズ株式会社 | Ecuシミュレーション装置 |
WO2015107611A1 (ja) * | 2014-01-14 | 2015-07-23 | 日立オートモティブシステムズ株式会社 | シミュレーション方法およびその装置 |
-
2017
- 2017-09-04 CN CN201710787766.2A patent/CN107632897B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2791803A1 (en) * | 2011-12-15 | 2014-10-22 | The Mathworks, Inc. | System and method for systematic error injection in generated code |
CN102760098A (zh) * | 2012-06-13 | 2012-10-31 | 北京航空航天大学 | 面向bit软件测试的处理器故障注入方法及其模拟器 |
JP2014203314A (ja) * | 2013-04-08 | 2014-10-27 | 日立オートモティブシステムズ株式会社 | Ecuシミュレーション装置 |
CN103559112A (zh) * | 2013-11-05 | 2014-02-05 | 北京经纬恒润科技有限公司 | 一种软件故障注入方法及系统 |
WO2015107611A1 (ja) * | 2014-01-14 | 2015-07-23 | 日立オートモティブシステムズ株式会社 | シミュレーション方法およびその装置 |
Non-Patent Citations (2)
Title |
---|
A Large-Scale Study of Flash Memory Failures in the Field;Justin Meza et.al;《ACM》;20150619;全文 |
An Availability Approached Task Scheduling Algorithm in Heterogeneous Fault-Tolerant System;Jian Sun el.al;《2014 9th IEEE International Conference on Networking, Architecture, and Storage》;20141231;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN107632897A (zh) | 2018-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808428B (zh) | 一种对分布式文件系统进行统一性能测试的方法 | |
CN102789416B (zh) | 面向bit软件测试的存储器故障注入方法及其模拟器 | |
Aggarwal et al. | The power of system call traces: Predicting the software energy consumption impact of changes | |
US20120179447A1 (en) | Hybrid Simulation System and Method | |
CN103092751B (zh) | 一种云环境下基于用户行为模型的web应用性能测试系统 | |
Shi et al. | Evaluating scalability bottlenecks by workload extrapolation | |
CN101308471B (zh) | 一种恢复数据的方法及装置 | |
CN110674055B (zh) | 一种用于部件级和部件联合级的缓存一致性模拟验证方法 | |
US20070220481A1 (en) | Limited source code regeneration based on model modification | |
CN105447051A (zh) | 一种数据库操作的方法和装置 | |
Keller et al. | File systems deserve verification too! | |
CN103516549A (zh) | 一种基于共享对象存储的文件系统元数据日志机制 | |
CN103617120A (zh) | 一种单元测试方法和装置 | |
CN105589928A (zh) | 用于分布式数据处理系统的模拟测试方法 | |
Suresh et al. | Shingled magnetic recording for big data applications | |
TW202040407A (zh) | 塊鏈式帳本中的資料驗證方法、系統、裝置及設備 | |
CN110532182A (zh) | 一种虚拟化平台的自动化测试方法及装置 | |
US6847927B2 (en) | Efficient array tracing in a logic simulator machine | |
CN107632897B (zh) | 一种基于ssd故障概率模型的故障注入方法 | |
CN104598699A (zh) | 面向SystemC电路模型的软错误敏感度分析方法 | |
CN101883019A (zh) | 一种验证存储服务器是否满足视频应用的测试方法 | |
CN105677560A (zh) | 一种测试方法、装置及系统 | |
CN109739756B (zh) | 移动终端应用测试的方法及设备 | |
CN112632440B (zh) | 基于水印特征规则串的教师个人主页静态资源生成方法 | |
CN115048312A (zh) | 一种基于协议集的仿真平台和芯片通用验证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |