CN102097133A - 一种海量存储系统的可靠性测试系统及测试方法 - Google Patents

一种海量存储系统的可靠性测试系统及测试方法 Download PDF

Info

Publication number
CN102097133A
CN102097133A CN 201010620500 CN201010620500A CN102097133A CN 102097133 A CN102097133 A CN 102097133A CN 201010620500 CN201010620500 CN 201010620500 CN 201010620500 A CN201010620500 A CN 201010620500A CN 102097133 A CN102097133 A CN 102097133A
Authority
CN
China
Prior art keywords
test
reliability
module
disk
array
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.)
Granted
Application number
CN 201010620500
Other languages
English (en)
Other versions
CN102097133B (zh
Inventor
潘�清
张晓清
王霄军
庄泽南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EQUIPMENT & DIRECTION TECHNOLOGY COLLEGE PLA
Original Assignee
EQUIPMENT & DIRECTION TECHNOLOGY COLLEGE PLA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EQUIPMENT & DIRECTION TECHNOLOGY COLLEGE PLA filed Critical EQUIPMENT & DIRECTION TECHNOLOGY COLLEGE PLA
Priority to CN2010106205007A priority Critical patent/CN102097133B/zh
Publication of CN102097133A publication Critical patent/CN102097133A/zh
Application granted granted Critical
Publication of CN102097133B publication Critical patent/CN102097133B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

一种海量存储系统的可靠性测试系统及方法,包括数据采集单元和数据分析单元,数据采集单元包括静态测试模块、72小时可靠性测试模块、恢复时间测试模块、BER测试模块、MTBF参考数据采集模块;所述数据分析模块包括静态测试评估模块、72小时可靠性测试结果分析模块、马尔科夫分析模块、蒙特卡罗分析模块、MTTDL分析模块;通过上述数据采集和数据分析,从静态测试、72小时可靠性测试和基于故障注入的可靠性测试等方面综合测试,采用马尔科夫模型、蒙特卡罗模型、磁盘阵列MTTDL来进行分析,得到反映被测系统的各项性能指标,解决了现有技术中的可靠性评价系统不能综合反映出海量存储系统的可靠性的技术问题。特别适用于海量存储系统的可靠性测试。

Description

一种海量存储系统的可靠性测试系统及测试方法
技术领域
本发明涉及一种存储系统的可靠性评价系统,具体地说是一种海量存储系统的可靠性测试评价体系。
背景技术
随着现代信息系统所采用的技术越来越先进,信息系统也趋向于大型化和复杂化,在数据处理应用领域中就需要极高的数据吞吐量,这就需要海量存储系统以满足需求。现有的存储测试基准工具大多面向较小规模的存储系统,且大都只关心存储系统的效率。
如中国专利文献CN101630534A中公开了一种非易失性存储器可靠性的测试方法和装置,在K个分别具有Nm个区块的非易失性存储器的每一个中分别选取N个区块,对被选取的K×N个区块分别执行T次测试程序,得到测试数据;根据测试数据统计执行测试程序次数与该次数的测试中累计发生失效的区块数目之间的数据关系并绘制测试曲线;确定等效失效区块数目判断标准;在测试曲线中读出执行次数值对应的失效数目;将得到的失效数目与等效失效区块数目判断标准相比较,判断是否合格。在该技术方案中虽然给出了一种测试失效区块来判断存储器可靠性的方法,但是对于海量存储系统,只关心该项性能是不够的,为了能够考察系统提供全年不间断服务的能力,可靠性需要综合评价整个系统的多项性能,目前海量存储系统的可靠性测试还没有成熟的测试方案和统一的测试标准。
马尔科夫状态转移方法,是在马尔科夫过程的假设前提下,通过分析随机变量的现时变化情况来预测这些变量未来变化情况的一种预测方法。马尔科夫过程只受到过去有限时间内的某个事件影响的随机过程的特性,对研究存储系统可靠性很有帮助定义。
蒙特卡罗方法又称统计模拟法、随机抽样技术,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。
发明内容
为此,本发明所要解决的技术问题在于现有技术中的可靠性评价系统不能综合反映出海量存储系统的可靠性,从而提出一种海量存储系统的可靠性测试系统。
为解决上述技术问题,本发明的一种海量存储系统的可靠性测试系统,包括数据采集单元和数据分析单元,
所述数据采集单元,通过测试采集用于分析的数据,包括:
(1)静态测试模块:对影响系统可靠性的属性进行总结,确定检查项,制定检查表,并针对检查项进行测试,将测试结果写入检查表;
(2)72小时可靠性测试模块:首先进行出厂测试,然后进行72小时压力测试,得到测试结果;
(3)恢复时间测试模块:在被测系统中插入故障,测量被测系统在故障情况下的性能变化,得出恢复时间;
(4)BER测试模块:采集磁盘在读数据过程中产生的错误率;
(5)MTBF参考数据采集模块:测量单个磁盘运行时的平均无故障时间;
所述数据分析单元,对数据采集部分采集到的数据进行处理和分析,包括:
(1)静态测试评估模块:根据静态测试中的检查表分析测试结果;
(2)72小时可靠性测试结果分析模块:根据所述72小时可靠性测试中的测试结果进行分析;
(3)马尔科夫分析模块:根据阵列正常运行状态、阵列故障状态、阵列恢复状态来建立马尔科夫模型,计算出被测系统的可靠性;
(4)蒙特卡罗分析模块:通过蒙特卡罗模拟建模,在已知单个磁盘MTBF的情况下,根据各个部件的出错率,模拟两个或两个以上部件在同一时间段的运行状态,得出其出错的概率,最后得到各部件组成的整个系统的MTBF,进而得出系统可用性值。
(5)MTTDL分析模块:通过数据丢失的方式,将平均无数据丢失时间分为两部分,一为因磁盘损坏造成的丢失,二为在磁盘良好的状态下,产生的不可恢复的读数据错误,然后将两部分综合得出总体的MTTDL。
一种海量存储系统的可靠性测试方法,包括如下步骤:
(1)由静态测试模块对影响系统可靠性的属性进行总结,确定检查项,制定检查表,并针对检查项进行测试,将测试结果写入检查表;然后由静态测试评估模块根据静态测试中的检查表分析测试结果;
(2)由72小时可靠性测试模块对被测系统进行72小时压力测试,得到测试结果;再通过72小时可靠性测试结果分析模块根据测试结果进行分析;
(3)在被测系统中插入故障,由恢复时间测试模块测量被测系统在故障情况下的性能变化,得出恢复时间;
(4)由BER测试模块采集磁盘在读数据过程中产生的错误率;
(5)通过MTBF参考数据采集模块测量单个磁盘运行时的平均无故障时间;
(6)通过马尔科夫分析模块根据阵列正常运行状态、阵列故障状态、阵列恢复状态来建立马尔科夫模型,来计算被测系统的可靠性;
(7)通过蒙特卡罗模拟建模,在已知单个磁盘MTBF的情况下,根据各个部件的出错率,由蒙特卡罗分析模块模拟两个或两个以上部件在同一时间段的运行状态,得出其出错的概率,最后得到各部件组成的整个系统的MTBF,进而得出系统可用性值。
(8)MTTDL分析模块通过数据丢失的方式,将平均无数据丢失时间分为两部分,一为因磁盘损坏造成的丢失,二为在磁盘良好的状态下,产生的不可恢复的读数据错误,通过上述采集的BER和MTBF,计算出两部分并综合得出总体的MTTDL。
步骤(1)中,所述静态测试模块中的检查项包括文档质量、安装和配置的容易程度、易用性、管理工具的功能、用户的透明性、容错功能、故障诊断功能、数据安全性、卷管理功能和文件锁机制。
所述步骤(2)中的72小时压力测试方法为被测系统在负载压力中,连续不停机运转72小时,记录在此期间系统出现的导致系统不可正常使用的错误,并评估错误对系统的可用程度的破坏,得出系统的可靠性。
所述恢复时间测试的步骤如下:首先,使用负载测试程序在一个正常状态下执行测试,记录下性能指标;然后,在负载运行时插入故障负载,同时记录性能指标。
所述马尔科夫模型建立涉及的参数包括:MTBF、MTTR和Repair_time,MTBF为单个磁盘的平均无故障时间,MTTR为单个磁盘的平均修复时间,Repair_time为阵列的修复时间。
所述蒙特卡罗模拟建模方法包括镜像部件的蒙特卡罗建模,不同部件冗余的蒙特卡罗建模,多个冗余部件的蒙特卡罗建模,冗余路径的蒙特卡罗建模。所述步骤(8)中MTTDL的计算公式如下:
MTTDL=1/[(1/MTTDL_DF)+(1/MTTDL_BER)],
其中MTTDL_DF为因磁盘损坏造成的丢失,MTTDL_BER为在磁盘良好的状态下产生的不可恢复的读数据错误。
在所述步骤(6)中,所述马尔科夫模型包括RAID0阵列计算模型、RAID1阵列计算模型、RAID6阵列计算模型,镜像冗余部件马尔科夫改进模型。
在所述步骤(7)中,所述蒙特卡罗模拟建模包括镜像部件的蒙特卡罗建模、不同部件冗余的蒙特卡罗建模、多个冗余部件的蒙特卡罗建模、冗余路径的蒙特卡罗建模。
本发明的上述技术方案相比现有技术具有以下优点,
(1)本发明所述的海量存储系统的可靠性测试系统及方法,包括数据采集单元和数据分析单元,数据采集单元包括静态测试模块、72小时可靠性测试模块、恢复时间测试模块、BER测试模块、MTBF参考数据采集模块;所述数据分析模块包括静态测试评估模块、72小时可靠性测试结果分析模块、马尔科夫分析模块、蒙特卡罗分析模块、MTTDL分析模块;通过上述数据采集和数据分析,从静态测试、72小时可靠性测试和基于故障注入的可靠性测试等方面综合测试,采用马尔科夫模型、蒙特卡罗模型、磁盘阵列MTTDL来进行分析,得到反映被测系统的各项性能指标,综合得出被测海量存储系统的稳定运行的能力,为海量存储系统的改进提供详实的参考数据,从而促进海量存储系统的发展和进步。
(2)本发明所述的海量存储系统的可靠性测试系统,静态测试采用检查表形式,参考海量存储系统的体系结构、基本特点、关键技术,对影响系统可靠性的重要属性进行总结,形成检查项,指定检查表,根据检查表中的内容对系统可靠性进行定性检查,从而来反映被测分布式文件系统的可靠性。
(3)本发明所述的海量存储系统的可靠性测试系统,72小时压力测试为被测系统在一定的压力负载中,连续不停机运转72小时,记录在此期间系统出现的各类导致系统不可正常使用的错误,并评估错误对系统的可用程度的破坏,从而得到被测系统在一定压力负载情况下的性能,用以评价被测系统的可靠性。
(4)本发明所述的海量存储系统的可靠性测试系统,通过在存储系统的各层插入故障,来测试被测海量存储系统在降级的情况下服务质量的变化,得到恢复时间,从而对被测海量存储系统的可用性进行综合评价。
(5)本发明所述的海量存储系统的可靠性测试系统,采用马尔科夫模型进行分析,利用MTBF(单个磁盘的平均无故障时间)、MTTR(单个磁盘的平均修复时间)等参数设置相关的状态转移概率,计算出真个系统的状态序列,在这些序列中分离出可用与不可用的状态,从而得到整个系统的可靠性。
(6)本发明所述的海量存储系统的可靠性测试系统,采用蒙特卡罗模拟建模的方法,完成对复杂冗余部件和复杂冗余路径的建模测试,并且在一般蒙特卡罗模拟建模算法的基础上进行改进,使得该建模算法大大提高,减少了内存空间的使用,提高了分析效率。
(7)本发明所述的海量存储系统的可靠性测试系统,分析被测系统的平均无数据丢失时间(MTTDL),通过数据丢失的方式分为两部分来计算,综合的反映出了其可靠性能。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1是本发明所述的海量存储系统的可靠性测试系统的结构图;
图2是本发明所述的海量存储系统的可靠性测试方法的示意图;
图3、图4、图5、图6是马尔科夫状态转移图。
具体实施方式
下面给出本发明所述的海量存储系统的可靠性测试系统及方法的一个
具体实施方式:
一种海量存储系统的可靠性测试系统,包括数据采集单元和数据分析单元,如图1所示。
所述数据采集单元,通过测试采集用于分析的数据,包括:
(1)静态测试模块:对影响系统可靠性的属性进行总结,确定检查项,制定检查表,并针对检查项进行测试,将测试结果写入检查表;
(2)72小时可靠性测试模块:首先进行出厂测试,然后进行72小时压力测试,得到测试结果;
(3)恢复时间测试模块:在被测系统中插入故障,测量被测系统在故障情况下的性能变化,得出恢复时间;
(4)BER测试模块:采集磁盘在读数据过程中产生的错误率;
(5)MTBF参考数据采集模块:测量单个磁盘运行时的平均无故障时间;
所述数据分析单元,对数据采集部分采集到的数据进行处理和分析,包括:
(1)静态测试评估模块:根据静态测试中的检查表分析测试结果;
(2)72小时可靠性测试结果分析模块:根据所述72小时可靠性测试中的测试结果进行分析;
(3)马尔科夫分析模块:根据阵列正常运行状态、阵列故障状态、阵列恢复状态来建立马尔科夫模型,计算出被测系统的可靠性;
(4)蒙特卡罗分析模块:通过蒙特卡罗模拟建模,在已知单个磁盘MTBF的情况下,根据各个部件的出错率,模拟两个或两个以上部件在同一时间段的运行状态,得出其出错的概率,最后得到各部件组成的整个系统的MTBF,进而得出系统可用性值。
(5)MTTDL分析模块:通过数据丢失的方式,将平均无数据丢失时间分为两部分,一为因磁盘损坏造成的丢失,二为在磁盘良好的状态下,产生的不可恢复的读数据错误,然后将两部分综合得出总体的MTTDL。
所述一种海量存储系统的可靠性测试系统的测试方法如下,如图2所示:
(一)由静态测试模块对影响系统可靠性的属性进行总结,确定检查项,制定检查表,并针对检查项进行测试,将测试结果写入检查表;然后由静态测试评估模块根据静态测试中的检查表分析测试结果;
静态测试的详细过程如下:
静态测试包括了定性检查测试和准则评估两个部分。定性检查测试是采用检查表形式,参考海量存储系统的体系结构、基本特点、关键技术,对影响系统可靠性的重要属性进行总结,形成检查项,制定检查表,根据检查表中的内容对系统的可靠性进行定性检查,具体的内容包括了以下几个方面:文档质量、安装和配置的容易程度、易用性、管理工具的功能、用户的透明性、容错功能、故障诊断功能、数据安全性、卷管理功能和文件锁机制。
针对海量存储系统制定的定性检查测试中,重要的指标是看系统提供的各种管理功能的易用性和自动化程度,根据海量存储系统的实际情况,建立出详细的可操作的系统功能易用性和自动化程度功能检查表,从而进行系统可靠性的定性评估。方案中与海量存储系统可靠性密切相关的检查内容包括:
1)硬件的容错性:包括磁盘、电源、风扇、控制器、网络等方面的容错功能;
2)软件的健壮性:包括应用软件的容错设计、快速恢复过程、异常事件处理能力等;
3)网络的冗余性:包括网络连接的冗余性、网络备份系统、自修复性等;
4)环境的健壮性:包括电源、空调系统的冗余性等;
5)问题监控和管理:包括全部系统资源和应用程序的监控,重点考察:监控项目的完整性、监控系统设计的一体化、自动切换、自动备份功能等;
6)人工干预手段:包括配置参数的优化、负载平衡调节等功能;
7)变更管理:变更管理是海量存储系统的一个重要组成部分,由于海量存储系统需要长时间(几年)不停机运行,因此,没有变更管理就没有系统的可靠性,它包括变更的跟踪、记录、评审、测试和监控等功能;
8)软件升级功能:用于操作系统、应用软件、网络、各种驱动程序的升级;
9)Minimize planned downtime(最小化计划宕机时间):最大程度地减少由于管理工作所引起的系统停机功能,包括软硬件升级、系统备份、数据库重新组织、数据库备份、备份系统切换等工作;
10)修复策略:系统的可靠性在很大程度上取决于系统的修复时间和策略,因此,系统修复策略的好坏关系直接关系到系统的可靠性指标;
11)可靠性管理:需要提供一个复杂的管理系统,来管理系统出现的每一个故障,包括故障出现的原因、时间、故障解决的方法、影响的用户等。
按照上述内容,制定海量存储系统的定性检查测试方案:
方案使用工具
  测试工具   功能介绍   作用
  Atms   可靠用性自动化测试套件   进行可靠性定性测试检查
测试方案约束
1)由被测方完整配置海量存储系统,然后交由测试方对系统进行可靠性性定性检查测试。
2)为保证系统能够达到较高可靠性,海量存储系统可进行优化配置。
3)定性检查测试中,硬件冗余的配置需由被测试方向测试方提供系统的体系结构拓扑图并进行展示,软件功能和容错功能需由被测试方进行演示,若硬件冗余的配置不能展示,软件功能和容错功能不能进行演示的,视为未包含该项。
测试方案参数配置
  参数类型   参数取值   备注
  可靠性定性检查测试指标   有、无   共30项
  可靠性定性检查测试结果   百分比   达成值
可靠性定性检查测试步骤
1)按测试平台拓扑图进行设备连接;
2)对海量存储系统控制器按配置数量进行人工检查;
3)通过相应的IP设置远程登陆设备控制管理平台界面或命令行窗口;
4)通过控制管理平台对海量存储系统进行虚拟卷划分,并分配给Windows和Linux操作系统的应用服务器;
5)按照可靠性定性检查表的内容,逐一对系统内的各项硬件配置和功能进行对照检查,并按照参数配置的要求填写表格。
6)根据检查结果产生可靠性定性检查测试结果表,结果中的达成百分比越高,表示从定性测试来看,海量存储系统的可靠性越高,采取的提高可靠性的关键技术较多,修复策略和应急方案完整并且有效。
(二)由72小时可靠性测试模块对被测系统进行72小时压力测试,得到测试结果;再通过72小时可靠性测试结果分析模块根据测试结果进行分析;
所述海量存储系统的72小时可靠性测试包括以下几个步骤:
(1)首先进行出厂测试,出厂测试的目的在于保证系统在进行72小时压力测试前,能够正常的配置运转。出厂测试的基本内容包括以下几点:系统加电(所有节点都成功引导)、系统断电、系统主要功能测试、系统监视功能测试、全系统测试、性能测试、基本可靠性测试。测试过程中设置优先级,所述优先级的排列顺序为A、B、C、D、E、F,优先级说明了该测试在出厂测试中的先后次序。只有通过了上述的出厂测试,才能够顺利的进行后面的72小时的压力测试。
(2)出厂测试后,按照步骤,对目标系统进行72小时压力测试。具体的压力测试需要参照测试方案的参数配置、约束和条件进行。
海量存储系统72小时压力测试的方法,即系统在一定的负载压力中,连续不停机运转72小时,记录在此期间系统出现的各类导致系统不可正常使用的错误,并评估错误对系统的可用程度的破坏,最终考量系统的可靠性。
被测海量存储系统在出厂测试通过之后,已经验证系统能够正常运行,并开始运行测试工具。72小时压力测试步骤如下:
(1)配置负载压力参数表。
(2)使用DAMeter(软件名称,不用翻译),IOMeter(软件名称,不用翻译)按照负载压力参数表对目标系统进行性能设计指标测试。
在达到了基本的性能指标后,进行下一部分的内容,即海量存储系统72小时压力测试。
(3)72小时压力测试负载设置
使用DAMeter模拟不同工作环境下的实际运行状态:
将72小时划分为24小时一个阶段,共3个阶段,每个阶段模拟环境如下:
  阶段   环境   读写比例   文件块读写平均大小   顺序随机读写比例
  1   Web服务器   44/56   16K   47/53
  2   E-mail服务器   99/1   16K   45/55
  3   事务服务器   87/13   23K   37/63
每阶段24小时的时间分配按照如下:
4小时HEAVY Workload+14小时MODERATE Workload+6小时IDLEWorkload
Figure BDA0000042477330000101
(4)每个阶段24小时负载结束后,记录相关系统状态、宕机时间和降级时间等数据。
(5)在每个24小时负载结束后,清空系统负载(必要时可重启动相关程序或部件)。
在72小时之中设置负载压力检查点、基本功能检查点,用于检查系统在压力状态下是否还在正常工作状态,是否出现系统降级和宕机情况:
(6)负载压力检查点
(7)基本功能检查点
Figure BDA0000042477330000113
在正常结束72小时可靠性压力测试后,需要进行的步骤为:
(8)收集被测方系统日志
(9)根据被测方的系统日志和测试方的测试记录,进行比对后,按照测试约束和参数配置,检查判定在测试过程中未发现的系统降级,系统宕机,读出错次数等情况。
测试记录要求
(1)测试全程记录负载情况,检查测试目标是否正在承担设计的压力负载
(2)测试结果精确到个位(秒)
(三)在被测系统中插入故障,由恢复时间测试模块测量被测系统在故障情况下的性能变化,得出恢复时间;
在海量存储系统的可用性测试中,恢复时间MTTR是一个重要的衡量时间。由于现代海量存储系统在设计时使用了大量冗余设计,因此在某一部件发生故障时,系统仍然是可用的,但是由于存取数据的路径减少了,系统提供服务的能力会发生一定的降级,我们将之称为outage。为了建造一个海量存储系统可用性测试环境,不仅需要负载测试工具产生实际的工作负载,更需要在存储系统中的各层插入故障,以测试系统在降级情况下服务质量的变化,得出恢复时间,从而给出存储系统可用性的综合评价。
恢复时间的测试过程主要分两步:
第一步,使用负载测试程序在一个正常状态下执行,记录下必要的性能指标,这一步建立了没有故障的系统服务质量的基本测量。
第二步,在负载运行的同时自动插入故障负载,同时记录各项性能指标。这一步是整个可用性测试的关键部分,因为它可以反映一个系统在有故障干扰的情况下服务质量的变化情况,也就是所要测的系统的可用性度量。
在系统的测试过程中,有许多因素会对测试产生影响,为保证测试数据的正确度,需要对测试做一些约束:测试过程中不允许发生任何影响IOPS(即每秒进行读写I/O操作的次数)的事件,如备份、升级、扩容、其他故障等;测试过程需要至少3分钟的预热时间,使IOPS稳定在一个区域内;负载参数中,传输块大小取值23K,读写比例取值87/13,随机比例取值37/63。插入故障负载的过程如下:
(a)带热备磁盘的Raid阵列故障注入
通过手动拔掉被测试RAID阵列中的一块硬盘,可以对RAID阵列注入一个磁盘丢失错误。在错误被侦测后,系统对IO请求进行重新配置,IO请求从仍然正常工作的其他硬盘中读取数据,系统仍然处于UP状态;然后,系统自动将热备磁盘加入到RAID阵列进行重构,此时系统有较大的outage,处于降级状态;直到新硬盘数据写入完毕,系统将恢复到正常状态。通过测试获得的系统重构Raid阵列的时间,就是单块磁盘的MTTR。
(b)控制器故障注入
通过手动关闭一个控制器电源开关(包括冗余电源一起关闭),可以对高端磁盘阵列注入一个控制器离线错误。由于系统设计能容忍任一控制器发生故障,因此系统能持续提供服务。在控制器切换过程中,IOPS将出现短暂为零的情况,在切换完毕后,因控制器减少,IOPS将有一定outage,但是系统仍然处于UP状态。通过测试获得的控制器切换接管时间,即控制器的MTTR。
(c)维护事件注入
维护事件插入技术是故障注入的一种扩展,常用的维护事件有:新建磁盘卷、扩容磁盘卷、删除磁盘卷、阵列内备份磁盘卷、阵列间备份磁盘卷、备份到其他存储设备。按照海量存储系统的设计,这些维护事件对系统基本无影响,IOPS只有轻微降级或无降级。通过维护事件的操作,可以验证维护事件在线维护功能的有效性。
此外,根据需要还可以插入其他故障,透明故障注入,例如冗余电源的插拔,不会对系统产生任何影响;接口卡故障注入,与控制器故障类似,系统会切换使用另外一个接口卡;交换机故障注入,会对单个交换机的负载加大,影响一定的网络传输质量;阵列软件故障注入,影响阵列的一些相关功能,如备份、迁移、数据安全保护等。
(四)由BER测试模块采集磁盘在读数据过程中产生的错误率;
BER(bit error rate)是表示磁盘在读数据过程中产生的错误率,一般来说是指读取多少位后会出现一次读取错误。就SCSI/FC/SAS磁盘来说,发生读取错误的几率为每读取10^15位(也就是约100TB)到10^16位(约1000TB或1PB),会出现一次错误。我们把这一几率称作误码率(BER-BitError Rate)。SATA磁盘的错误率要大一些,其BER比其它类型的磁盘要高出一两个数量级(即其BER为每读取10^14到10^15位出现一次错误,或者说每读取10/100TB出现一次错误,具体取决于磁盘设计)。如果SATA磁盘容量为1TB,完整读取磁盘十次,就会发现新的故障块(假定这里的BER为每读取10^14位出错一次)。
为测试目标高端磁盘阵列的BER,通过读写大量的数据,考查其过程中出现的读数据丢失次数N,则MTTDL_BER=N/Total_read_count,其中Total_read_count为读数据总量,单位bit。BER的出现概率为每10^15位出现一次,其规模较大,在测试中必须达到预计的规模才能正确测试出BER,在规模的设计中,可以同时对N目标进行测试,可以认为其测试规模=1个目标的测试规模*N。该方案比较符合实际的测试环境,能节省时间,其测试规模也较大。
(五)通过MTBF参考数据采集模块测量单个磁盘运行时的平均无故障时间;
在同一个环境下,同时测试大批量相同的硬盘,通过MTBF=RunTime*N/ErrorTime来获得测试结果的,其中RunTime为总运行时间,N为运行规模,Errortime为失效时间。
(六)通过马尔科夫分析模块根据阵列正常运行状态、阵列故障状态、阵列恢复状态来建立马尔科夫模型,来计算被测系统的可靠性;
利用离散状态序列模拟仿真计算可靠性数值,首先按照马尔科夫过程中各种状态的时间长度选取最小时间片,最小时间片代表的是每一个离散数列中的状态,在实际当中所占用的时间。在计算中取样本N=1000000,即产生10000000个最小时间片,每个样本所代表的时间长度即为最小时间片的时间长度。首先统计在这1000000个状态中分别出现查找不可用状态出现的次数,用离散数列的方式模拟集群系统的可靠性状态数列。按照状态转移矩阵模拟产生长度为10000000的样本序列,即N=10000000,产生1000000个状态,来查找其中为0的个数,设实验中产生0状态的个数为F,则该部件的可靠性:
Availability one _ node = 1 - F N
(a)RAID0阵列计算模型
目前海量存储系统中较为常用的为RAID0、RAID1、RAID5和RAID6。磁盘阵列在海量存储系统中的模型不同于RAID阵列在一般场景下的应用,而且以往的模型中还存在一些没有考虑到的实际情况。因此需要根据海量存储系统对磁盘阵列的真实调度和管理情况,对以往的基于马尔科夫状态转移方法计算RAID阵列可靠性的建模方法进行改进。这里的改进方式就不仅是按照各种阵列的冗余度情况,用同一状态图。而是将各种阵列分开,分别进行讨论。首先来看RAID0阵列的改进模型。
在海量存储系统中,基于马尔科夫状态转移的模拟计算方法,首先在所有的状态中选取最小时间片,将最小时间片作为阵列状态序列中的基本单位。这里举例说明,例如在设计RAID0阵列时,涉及的状态包括:阵列正常运行状态、阵列故障状态和阵列恢复状态。这其中涉及的参数包括:MTBF、MTTR和Repair_time。其中MTBF和MTTR为单个磁盘的平均无故障时间和平均修复时间,Repair_time是阵列的修复时间,在这里不同于其他方法的是在模型中加入了Repair_time这个参数,以往只是在集群系统中出现这个参数,在海量存储系统中,不能够单单的计算单个磁盘的MTTR或是MTTR的整倍数,因为在海量存储系统中需要考虑整个系统对于磁盘阵列的修复策略,所以要根据实际情况,加入这一参数。Repair_time的含义是在磁盘阵列出现故障时,海量存储系统发现故障、定位、变更管理和更换磁盘等操作所花费的时间,具体的参数数值获取方法是根据基于故障注入的海量存储系统修复时间的获取方法。那么在这三个参数中选取时间长度最短的作为最小时间片y,顺序产生一个离散的0、1状态序列,0表示整个RAID0阵列系统不可用,1表示可用。
海量存储系统中RAID0的具体的状态对照表如下:
  表示符号   状态情况   存储系统可靠性
  A   RAID0阵列正常状态   1
  B   RAID0阵列故障状态   0
  C   RAID0阵列故障修复状态   0
状态序列的产生方式是顺序的,利用马尔科夫状态转移的方法,即后一状态与以往的历史状态无关,只和上一状态有关,状态转移的依据就是按照状态转移图中的转移概率。改进的RAID0马尔科夫状态转移图如图3所示:
状态转移模型的产生是按照RAID0阵列的基本结构,因为RAID0阵列就是简单的将多个磁盘串联,所以在一块磁盘发生故障后,就会造成整个磁盘阵列的故障。因此,A状态转移到B状态的概率就是单个磁盘的可靠性故障概率,前面的系数n-k中,n是组成整个磁盘阵列RAID0的磁盘个数,k表示的是在整个海量存储阵列系统中,能够支持该磁盘阵列的全局热备盘个数。在有全局热备盘的情况下,海量存储系统可以用全局热备盘自动替换故障磁盘,使得磁盘阵列系统在有故障盘的情况下能够将故障盘的路径转换至全局热备盘,使磁盘阵列能够继续进行读写操作。按照RAID0阵列的马尔科夫状态转移图,产生马尔科夫状态转移矩阵:
1 - ( n - k ) * y MTBF ( n - k ) * y MTBF 0 0 1 - y Re pair _ time y RE pair _ time y MTTR 0 1 - y MTTR
根据RAID0的状态转移矩阵,就可以模拟RAID0阵列的可靠性序列,状态序列的初始状态设为A状态,设置样本的数量N,顺序产生状态序列,RAID0阵列的可靠性数值计算方法是先查找状态序列中的不可用状态,即B状态和C状态的个数,A状态的个数记为L1,B状态的个数记为L2,C状态的个数记为L3,则由n块磁盘组成的RAID0阵列的可靠性数值计算公式为:
A RAID 0 = 1 - L 2 + L 3 L 1 + L 2 + L 3
在产生多个样本的情况下,可以模拟磁盘阵列在海量存储系统中的可靠性状态,样本的数量应该远大于
Figure BDA0000042477330000163
,这样才能够产生出现错误的情况。继而所有的状态都能产生,也能够使模拟计算更为真实。
(b)RAID1阵列计算模型
RAID1阵列的计算模型与RAID0阵列基本方法是相同的,根据RAID1阵列的基本特点,即一块磁盘是另一块磁盘的镜像,在一块磁盘发生故障的过程中,另一块磁盘可以提供后备,不影响阵列对外提供读写服务。因此在RAID1阵列的建模计算,需要加入几种状态和相关的参数。具体的RAID1阵列在海量存储系统中的状态如下表:
  表示符号   状态情况   存储系统可靠性
  A   RAID1阵列正常状态   1
  B   1块磁盘发生故障   1
  C   RAID1阵列故障状态   1
  D   故障磁盘恢复状态   0
  E   RAID1阵列故障修复状态   0
RAID1阵列是由两块相同的磁盘组成,当一块磁盘发生故障并不影响海量存储系统对阵列的读写,因此在一块磁盘发生故障时,切换至后备磁盘,故障磁盘进行更换和恢复,因此这里需要加入一个参数Recovery_time,表示的含义就是海量存储系统查找故障磁盘并更换后备磁盘路径的时间。在一块磁盘已经方生故障的情况下,引入一个单块磁盘的风险增加概率a,这也是在前面介绍的服务器集群建模时所提到的。这个风险增加概率的一般取值在0.1到0.2之间。另外在模型改进方面,考虑两块磁盘同时发生故障的情况,即在最小时间片的时间跨度内,两块磁盘同时发生故障的概率,这个概率通过蒙特卡罗模拟仿真法得到,蒙特卡罗模拟仿真的方法在前面的也已做介绍。通过蒙特卡罗模拟仿真方法得到的两块磁盘同时故障概率记为a1。这里需要增加一个判定,如果系统中存在全局热备盘,且热备盘的个数为1,则蒙特卡罗仿真模拟法是在所有的磁盘,即2+1个磁盘中查找2个同时出错的情况,即产生三行按照单个磁盘可靠性数值标准正态分布的0、1状态序列,查找其中同时产生2个或3个0状态的情况,此时的蒙特卡罗模拟法需要注意最小时间片的选取,应当同整体的马尔科夫计算中的最小时间片y相统一,然后再计算概率a1。
其它的参数和RAID0阵列可靠性计算中相同,最小时间片y在MTTR、Repair_time和Recovery_time之间产生。其余的一些参数还包括单块磁盘MTBF、单块磁盘MTTR、阵列恢复时间Repair_time等参数。依照海量存储系统对RAID1阵列的使用方法和实际的情况,RAID1阵列在海量存储系统中的马尔科夫状态转移图如图4所示。
状态A到状态B的可靠性状态转移概率同RAID0的计算基本相同,从状态B到状态C与前面的
Figure BDA0000042477330000181
不同的是引入了第二块磁盘发生故障的风险增加概率,因为第一块磁盘发生故障的时刻,第二块磁盘同样也运转了和从开始到第一块磁盘发生故障时刻的时间。这里也引入了状态A到状态C的概率a1,表示运转中的两块磁盘,同时发生错误的概率。这些参数的引入,使得RAID1阵列的马尔科夫状态转移模型更贴近实际的海量存储系统中阵列的运行情况,根据状态转移图,得到状态转移矩阵:
1 - ( n - k ) * y MTBF - a 1 ( n - k ) * y MTBF a 1 0 0 0 1 - ( 1 + a ) * y MTBF - y Recovery _ time ( 1 + a ) * y MTBF y Recovery _ time 0 0 0 1 - y Repair _ time 0 y Repair _ time y MTTR 0 0 1 - y MTTR 0 y MTTR * 2 0 0 0 1 - y MTTR * 2
在得到状态转移矩阵以后,后面的仿真模拟方法和RAID0的基本一致,最后的计算公式稍有不同,状态A的个数为L1,状态B的个数为L2,状态C的个数为L 3,状态D的个数为L4,状态E的个数为L5,由于状态4和状态5都使数据不可用,即海量存储系统中的RAID1阵列无法提供读写服务,所以RAID1阵列的可靠性计算公式为:
Figure BDA0000042477330000183
其中的N为全部的样本个数,N=L1+L2+L3+L4+L5。
(c)RAID6阵列计算模型
不同的RAID级别,采用不同的内部容错机制,在RAID3、RAID4、RAID5和RAID6中都采用了数据的校验算法。利用无故障磁盘中的数据,通过算法恢复故障磁盘中的数据并重新写入。RAID6可以同时出现两块故障磁盘,但是在恢复数据的过程中,如果恢复故障磁盘的过程出现了读写错误,就会造成整个磁盘阵列的不可恢复,并导致RAID阵列的不可用。RAID6阵列的可靠性计算模型同RAID1基本相同,需要引入两个新的参数,一个是a2,一个是p。参数a2表示利用蒙特卡罗模拟算法计算的n-k块磁盘中同时有3块磁盘出现故障的概率,参数p代表BER_PDISK。
为了得到参数BER_PDISK,首先应该先得到海量存储系统中的磁盘BER(bit error rate),BER是表示磁盘在读写数据的过程中产生的错误率,其值可以从磁盘生产厂商的公布参数中获得。在实际的测试中,可以通过大量的读写操作来考察BER,BER其实就是在读写操作中,出现读写出错一位的概率,从国内外目前的实验报告来看,出现这一位的读写错误,需要大约1Pbite的读写操作。基于BER可以得到单个特定容量磁盘的BER_PDISK,即读写一块磁盘时,出现读写错误的概率,具体的公式如下:
BER_PDISK=(1-1/(BER/(512*8)))^(C/512)
其中,BER_PDISK为完整读取一块磁盘产生错误的概率。其中C为磁盘容量。如果按照1PB位出现一个错误位的概率,一块320GB的磁盘,BER_PDISK的值大约为99.76%。BER_PDISK就是需要在RAID6的模型中需要引入的新的参数。RAID6的模型中增加了几个状态,具体的状态如下表:
  表示符号   状态情况   存储系统可靠性
  A   RAID6阵列正常状态   1
  B   1块磁盘发生故障   1
  C   2块磁盘发生故障   1
  D   RAID6阵列故障状态   0
  E   单块故障磁盘恢复状态   1
  F   两块故障磁盘恢复状态   0
  G   RAID6阵列故障修复状态   0
模型中的基本状态转移参数的设置方法与RAID1相同,状态A到状态D加入了新的参数a2,即从正常状态,到3块磁盘同时发生故障的概率,因为RAID6阵列最多只能支持2块磁盘同时发生故障,所以3块磁盘同时发生故障就相当于阵列处于故障状态。在单块磁盘故障恢复和两块磁盘故障恢复到正常状态的概率中加入单块磁盘的BER_PDISK,表示考虑到磁盘阵列恢复时,如果发生读写错误,磁盘阵列的恢复就会受到影响,导致磁盘阵列的不可用。RAID6阵列在海量存储系统中的马尔科夫状态转移图如图5所示。
由此得出状态转移矩阵,矩阵的产生方法同RAID0和RAID1的方法相同,此处不再赘述。在RAID6阵列利用马尔科夫状态转移法仿真模拟计算中,需要将状态D、F和G视为整个磁盘阵列的不可用状态,状态序列中的其他状态都为可用。
RAID3、RAID4和RAID5阵列的马尔科夫状态转移计算模型与RAID6阵列计算模型产生的方法一样,只是RAID3、RAID4和RAID5阵列都只支持阵列中一块磁盘出现故障的情况,因此状态要少于RAID6阵列。基本的方法按照RAID6阵列的计算模型和计算方法即可。
(d)镜像冗余部件马尔科夫改进模型
海量存储系统中,除了使用较高级别的RAID阵列以外,为了提高整个系统的可靠性,关键部件都会采取全冗余的策略,例如磁盘盒中的电源、风扇和光纤卡等。这种镜像部件也可以利用马尔科夫状态转移仿真模拟的方法计算该部件的可靠性。
镜像部件的马尔科夫状态转移模型比RAID阵列简单,因为镜像部件的修复策略是直接更换部件,例如电源、风扇、光线卡、IB转换卡等。这些部件的平均修复时间就是更换该部件所花费的时间:其中包括出现问题联系厂商,将替换部件交付用户的时间。电源、风扇和光纤卡等模块的MTBF一般为几十万小时,MTTR一般在10-24小时。
镜像冗余部件改进的马尔科夫状态转移模型状态包括了以下几个:
  表示符号   状态情况   存储系统可靠性
  A   两个模块正常工作   1
  B   一个模块发生故障   1
  C   镜像部件故障状态   0
镜像部件中,可以容忍一个模块发生故障,因此状态C就表示两个模块同时发生故障导致的镜像部件不可用。镜像部件中的参数包括,单模块MTBF、单模块MTTR、故障风险增加概率a和两个模块同时故障概率a1,这里的最小时间片y为单模块的MTTR。由于是完全相同的模块,因此整个镜像部件的修复时间Repair_time等同于单模块的MTTR,因此就不再单独设置Repair_time这一参数。同时故障概率a1是利用蒙特卡罗仿真模拟法得到的,具体的方法同RAID1中得到两块磁盘同时发生故障的概率方法一样,只不过将这里的MTBF和MTTR替换为镜像部件中单一模块的MTBF和MTTR。由以上设置的状态和相关的参数,可以得到镜像冗余部件的马尔科夫状态转移图如图6所示。
状态转移中最小时间片y=MTTR。根据马尔科夫状态转移模型可以得到马尔科夫状态转移矩阵,通过状态转移矩阵可以进行仿真模拟计算,查找状态序列中状态C的个数,从而得到镜像冗余部件的可靠性数值。
(七)通过蒙特卡罗模拟建模,在已知单个磁盘MTBF的情况下,根据各个部件的出错率,由蒙特卡罗分析模块模拟两个或两个以上部件在同一时间段的运行状态,得出其出错的概率,最后得到各部件组成的整个系统的MTBF,进而得出系统可用性值。
为使用蒙特卡罗模拟法,需要产生一种随机分布来模拟部件在各个时间片的状态,这里使用标准正态分布。根据公式(1)可以求出单个部件在一段时间内的出错率。
AFR=1-e(-t/MTBF)                公式(1)
x=[-F-1(1-AFR/2),F-1(1-AFR/2)] 公式(2)
关于时间片的选取问题:在系统的整个寿命中,处于正常状态的时间远大于出错状态,因此可以选取系统中所有部件的MTTR的最小公约数作为时间片。这样分割之后,系统的不同部件的不同状态都可以用时间片的整倍数表示。
(a)镜像部件的蒙特卡罗建模
镜像部件指的是一个部件拥有一个冗余,两个部件的MTBF完全相同。这种冗余结构在存储阵列中相当常见。例如电源的镜像冗余、磁盘的RAID1保护层级、数据备份等都可以视为镜像部件。
在镜像部件中需要模拟两个随机数列,分别代表两个部件的状态,1代表部件处于可用状态,0代表部件发生错误。逐个时间片考察两个部件是否在同一时间片中出现出错状态,如果出现,代表该模块两个部件同时出错,整个模块就处于不可用状态。通过统计在一段时间内两个部件同时出错的个数,便获得该模块的出错率AFR,通过公式(3)即可求出该模块的MTBF。
MTBF=-t/log(1-AFR)            公式(3)
(b)不同部件冗余的蒙特卡罗建模
在设计电源的时候,通常会加入电池来保证系统断电的情况下系统能持续可用。在这种情况下两个部件的MTBF和MTTR都不相同,下面讨论这种情况下的蒙特卡罗模拟法。按照最小时间片的确定方法,较大MTTR的部件将在多个时间片内处于出错状态,如果第二个部件在此这几个时间片内出现错误状态,即可视为系统处于不可用状态。
(c)多个冗余部件的蒙特卡罗建模
在磁盘阵列的RAID保护级别中,RAID6可以保证系统在两个磁盘出错的状态下,仍处于可用状态,亦即当三个磁盘同时出错,系统才会出错。一旦出现三个以上硬盘同时出现出错状态,系统便处于不可用状态。
(d)冗余路径的蒙特卡罗建模
在海量存储系统中,关键部件都是全冗余设计,因此可以通过多条冗余路径访问到目标数据。对于每一条访问路径,只要该路径上的一个部件发生错误,即可认为该路径不可用,无法通过该路径获得磁盘阵列的数据。对于每一个部件,只要该部件出错,部件所处的所有路径将不可用。只有当全部路径都不可用时,才可认为系统无法访问到磁盘阵列,系统处于不可用状态。
对于有多个冗余的部件,可以用排列组合的方式,求出该部件的可用路径数。例如由RAID6组成的8块磁盘阵列的冗余度是2,即出现三个磁盘同时出错时该阵列将不可用,则冗余路径按照公式(4)就可求出路径集合k。
k=C(n,m)        公式(4)
(八)MTTDL分析模块通过数据丢失的方式,将平均无数据丢失时间分为两部分,一为因磁盘损坏造成的丢失,二为在磁盘良好的状态下,产生的不可恢复的读数据错误,通过上述采集的BER和MTBF,计算出两部分并综合得出总体的MTTDL。
衡量存储设备可靠性的一个重要参数是MTBF[1](Mean Time BetweenFailure,即平均无故障时间,MTBF=(系统持续运行时间*部件数量)/出错次数,单位为小时;AFR(Annual Faiure Rate,即年故障率)来表示,其与MTBF的换算关系为AFR=(365*24)/MTBF。目前市场上的大部分SCSI硬盘的MTBF大约为1.4M hours,其AFR即为0.0062。
在高端磁盘阵列中,由于使用了很多冗余技术,所以不能简单地使用MTBF来衡量系统的可靠性。为更好地描述存储系统的可靠性,MTTDL(MeanTime To Data Loss,即平均无数据丢失时间)被提出来。
在高端磁盘阵列中,通过数据丢失的方式,可将MTTDL分为两部分[3],一为因磁盘损坏造成的丢失,可表示为MTTDL_DF(MTTDL due to diskfailure),二为在磁盘良好的状态下,产生的不可恢复的读数据错误,可以表示为MTTDL_BER(bit error rate)。例如,SCSI磁盘的BER为1 out of10^15,即每读10^15bit数据时发生了一次读数据错误。
(a)MTTDL_DF的计算
在没有冗余磁盘的系统中,一块磁盘的损坏,将导致数据丢失,因此,其MTTDL_DF可表示为:
MTTDL_DF_Mirror_0=MTBF_individual/N
其中,N为系统中磁盘数量,MTBF_individual为单个磁盘的平均无故障时间。
下面考察具有一块磁盘冗余的系统(例如Raid5)的情况。由于系统能够容忍一块磁盘的损坏,所以只有当第二块磁盘同时损坏时才会导致其数据丢失。因此其MTTDL_DF可表示为:
MTTDL_DF_Mirror_1=MTBF_array/2nd failure rate
其中,MTBF_array为系统的MTBF,即第一块磁盘出现错误的MTBF:
MTBF_array=MTBF_individual/N
2nd failure rate为第二块磁盘失效的概率:
2nd failure rate=MTTR_1/MTBF_degraded
其中,MTTR_1为失效的第一块磁盘的MTTR,
MTBF_degraded为剩余系统的MTBF:
MTBF_degraded=MTBF_individual/N-1
综合以上公式可得:
MTTDL_DF_Mirror_1=MTBF_individual^2/[N*(N-1)*MTTR_1]
类似可得,有两块冗余磁盘的系统的MTTDL_DF为:
MTTDL_DF_Mirror_2=
MTBF_individual^3/[N*(N-1)*(N-2)*MTTR_1^2]
(b)MTTDL_BER的计算
BER(bit error rate)是表示磁盘在读数据过程中产生的错误率,其值可以从磁盘生产厂商的公布参数中获得。下面考察在有一个冗余的磁盘存储系统中,单个特定容量磁盘的BER_PDISK,
BER_PDISK=(1-1/(BER/(512*8)))^(C/512)
其中,BER_PDISK为完整读取一块磁盘所产生的错误,C为磁盘容量。
最后可得出,在有一个冗余的磁盘存储系统中,恢复一块磁盘的过程中,因读错误产生的平均数据丢失时间:
MTTDL_BER_Mirror_1=MTBF_individual/[N*(1-BER_PDISK^(N-1))]
类似可得,在有两个冗余的磁盘存储系统中,恢复一块磁盘的过程中,因读错误产生的平均数据丢失时间:
MTTDL_BER_Mirror_2=
[MTBF_individual*(MTBF_individual/10)]/[N*(N-1)*(1-BER_PDISK^(N-2))*MTTR_1]
综合以上两种出错率的建模方案,可以得出系统的总体MTTDL:
MTTDL=1/[(1/MTTDL_DF)+(1/MTTDL_BER)]
综上所述,所述步骤(一)、步骤(二)、步骤(三)、步骤(四)、步骤(五)的顺序不分先后,先进行哪一步的测试均可以,所述步骤(六)、步骤(七)、步骤(八)在步骤(三)、步骤(四)、步骤(五)数据采集后进行即可,顺序也不分先后,先进性哪一项分析都可以。通过上述测试,可以得出被测海量存储系统的可靠性。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

Claims (10)

1.一种海量存储系统的可靠性测试系统,包括数据采集单元和数据分析单元,其特征在于:
所述数据采集单元,通过测试采集用于分析的数据,包括:
(1)静态测试模块:对影响系统可靠性的属性进行总结,确定检查项,制定检查表,并针对检查项进行测试,将测试结果写入检查表;
(2)72小时可靠性测试模块:首先进行出厂测试,然后进行72小时压力测试,得到测试结果;
(3)恢复时间测试模块:在被测系统中插入故障,测量被测系统在故障情况下的性能变化,得出恢复时间;
(4)BER测试模块:采集磁盘在读数据过程中产生的错误率;
(5)MTBF参考数据采集模块:测量单个磁盘运行时的平均无故障时间;
所述数据分析单元,对数据采集部分采集到的数据进行处理和分析,包括:
(1)静态测试评估模块:根据静态测试中的检查表分析测试结果;
(2)72小时可靠性测试结果分析模块:根据所述72小时可靠性测试中的测试结果进行分析;
(3)马尔科夫分析模块:根据阵列正常运行状态、阵列故障状态、阵列恢复状态来建立马尔科夫模型,计算出被测系统的可靠性;
(4)蒙特卡罗分析模块:通过蒙特卡罗模拟建模,在已知单个磁盘MTBF的情况下,根据各个部件的出错率,模拟两个或两个以上部件在同一时间段的运行状态,得出其出错的概率,最后得到各部件组成的整个系统的MTBF,进而得出系统可用性值;
(5)MTTDL分析模块:通过数据丢失的方式,将平均无数据丢失时间分为两部分,一为因磁盘损坏造成的丢失,二为在磁盘良好的状态下,产生的不可恢复的读数据错误,然后将两部分综合得出总体的MTTDL。
2.一种海量存储系统的可靠性测试方法,其特征在于,包括如下步骤:
(1)由静态测试模块对影响系统可靠性的属性进行总结,确定检查项,制定检查表,并针对检查项进行测试,将测试结果写入检查表;然后由静态测试评估模块根据静态测试中的检查表分析测试结果;
(2)由72小时可靠性测试模块对被测系统进行72小时压力测试,得到测试结果;再通过72小时可靠性测试结果分析模块根据测试结果进行分析;
(3)在被测系统中插入故障,由恢复时间测试模块测量被测系统在故障情况下的性能变化,得出恢复时间; 
(4)由BER测试模块采集磁盘在读数据过程中产生的错误率;
(5)通过MTBF参考数据采集模块测量单个磁盘运行时的平均无故障时间;
(6)通过马尔科夫分析模块根据阵列正常运行状态、阵列故障状态、阵列恢复状态来建立马尔科夫模型,来计算被测系统的可靠性;
(7)通过蒙特卡罗模拟建模,在已知单个磁盘MTBF的情况下,根据各个部件的出错率,由蒙特卡罗分析模块模拟两个或两个以上部件在同一时间段的运行状态,得出其出错的概率,最后得到各部件组成的整个系统的MTBF,进而得出系统可用性值;
(8)MTTDL分析模块通过数据丢失的方式,将平均无数据丢失时间分为两部分,一为因磁盘损坏造成的丢失,二为在磁盘良好的状态下,产生的不可恢复的读数据错误,通过上述采集的BER和MTBF,计算出两部分并综合得出总体的MTTDL。
3.根据权利要求2所述的海量存储系统的可靠性测试方法,其特征在于:步骤(1)中,所述静态测试模块中的检查项包括文档质量、安装和配置的容易程度、易用性、管理工具的功能、用户的透明性、容错功能、故障诊断功能、数据安全性、卷管理功能和文件锁机制。
4.根据权利要求2或3所述的海量存储系统的可靠性测试方法,其特征在于: 所述步骤(2)中的72小时压力测试方法为被测系统在负载压力中,连续不停机运转72小时,记录在此期间系统出现的导致系统不可正常使用的错误,并评估错误对系统的可用程度的破坏,得出系统的可靠性。
5.根据权利要求2或3或4所述的海量存储系统的可靠性测试系统,其特征在于: 所述恢复时间测试的步骤如下:首先,使用负载测试程序在一个正常状态下执行测试,记录下性能指标;然后,在负载运行时插入故障负载,同时记录性能指标。
6.根据权利要求2或3或4或5所述的海量存储系统的可靠性测试系统,其特征在于: 所述马尔科夫模型建立涉及的参数包括:MTBF、MTTR和Repair_time,MTBF为单个磁盘的平均无故障时间,MTTR为单个磁盘的平均修复时间,Repair_time为阵列的修复时间。
7.根据权利要求2或3或4或5或6所述的海量存储系统的可靠性测试系统,其特征在于:所述蒙特卡罗模拟建模方法包括镜像部件的蒙特卡罗建模,不同部件冗余的蒙特卡罗建模,多个冗余部件的蒙特卡罗建模,冗余路径的蒙特卡罗建模。
8.根据权利要求2或3或4或5或6或7所述的海量存储系统的可靠性测试方法,其特征在于:所述步骤(8)中MTTDL的计算公式如下:
MTTDL = 1/[(1/MTTDL_DF) + (1/MTTDL_BER)],
其中MTTDL_DF为因磁盘损坏造成的丢失,MTTDL_BER为在磁盘良好的状态下产生的不可恢复的读数据错误。
9.根据权利要求2所述的海量存储系统的可靠性测试方法,其特征在于:在所述步骤(6)中,所述马尔科夫模型包括RAID0阵列计算模型、RAID1阵列计算模型、RAID6阵列计算模型,镜像冗余部件马尔科夫改进模型。
10.根据权利要求2所述的海量存储系统的可靠性测试方法,其特征在于:在所述步骤(7)中,所述蒙特卡罗模拟建模包括镜像部件的蒙特卡罗建模、不同部件冗余的蒙特卡罗建模、多个冗余部件的蒙特卡罗建模、冗余路径的蒙特卡罗建模。
CN2010106205007A 2010-12-31 2010-12-31 一种海量存储系统的可靠性测试系统及测试方法 Expired - Fee Related CN102097133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010106205007A CN102097133B (zh) 2010-12-31 2010-12-31 一种海量存储系统的可靠性测试系统及测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010106205007A CN102097133B (zh) 2010-12-31 2010-12-31 一种海量存储系统的可靠性测试系统及测试方法

Publications (2)

Publication Number Publication Date
CN102097133A true CN102097133A (zh) 2011-06-15
CN102097133B CN102097133B (zh) 2012-11-21

Family

ID=44130187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010106205007A Expired - Fee Related CN102097133B (zh) 2010-12-31 2010-12-31 一种海量存储系统的可靠性测试系统及测试方法

Country Status (1)

Country Link
CN (1) CN102097133B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541704A (zh) * 2011-12-31 2012-07-04 曙光信息产业股份有限公司 Raid卡的测试方法
CN103000228A (zh) * 2011-09-08 2013-03-27 上海宝信软件股份有限公司 存储设备的测试方法及系统
CN104407816A (zh) * 2014-11-25 2015-03-11 中国人民解放军国防科学技术大学 一种分布式存储系统数据可靠性评价的方法及系统
CN104765958A (zh) * 2015-03-27 2015-07-08 西南科技大学 一种基于连续状态空间的认知无线电接入问题新型算法模型
CN106776176A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种磁盘的故障注入方法、系统及故障管理系统
CN107220140A (zh) * 2017-06-29 2017-09-29 郑州云海信息技术有限公司 一种双控存储系统的可靠性测试方法及系统
CN107368381A (zh) * 2017-07-31 2017-11-21 郑州云海信息技术有限公司 一种存储系统可用性测试的方法与装置
CN107452427A (zh) * 2017-08-03 2017-12-08 郑州云海信息技术有限公司 一种存储设备数据完整性的测试方法及系统
CN107480020A (zh) * 2017-08-10 2017-12-15 郑州云海信息技术有限公司 一种对存储系统虚拟卷测试的方法
CN107678901A (zh) * 2017-10-30 2018-02-09 郑州云海信息技术有限公司 基于Linux分布式系统的磁盘性能测试系统和方法
CN108665942A (zh) * 2017-04-01 2018-10-16 北京兆易创新科技股份有限公司 一种nand闪存芯片的测试方法及设备
CN109324939A (zh) * 2018-10-24 2019-02-12 郑州云海信息技术有限公司 一种Raid特性测试方法、装置、设备及存储介质
CN110058954A (zh) * 2017-11-24 2019-07-26 爱思开海力士有限公司 用于错误测试的存储器系统
CN111966540A (zh) * 2017-09-22 2020-11-20 成都华为技术有限公司 存储介质的管理方法、装置及可读存储介质
CN113157582A (zh) * 2021-04-28 2021-07-23 中国工商银行股份有限公司 测试脚本执行序列确定方法及装置
CN114428709A (zh) * 2022-01-17 2022-05-03 广州鲁邦通物联网科技股份有限公司 一种云管理平台中sds状态检测方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231017A (ja) * 1996-01-18 1997-09-05 Hewlett Packard Co <Hp> データ記憶装置
US20040076043A1 (en) * 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
CN101552032A (zh) * 2008-12-12 2009-10-07 深圳市晶凯电子技术有限公司 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231017A (ja) * 1996-01-18 1997-09-05 Hewlett Packard Co <Hp> データ記憶装置
US20040076043A1 (en) * 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
CN101552032A (zh) * 2008-12-12 2009-10-07 深圳市晶凯电子技术有限公司 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103000228A (zh) * 2011-09-08 2013-03-27 上海宝信软件股份有限公司 存储设备的测试方法及系统
CN102541704B (zh) * 2011-12-31 2014-08-13 曙光信息产业股份有限公司 Raid卡的测试方法
CN102541704A (zh) * 2011-12-31 2012-07-04 曙光信息产业股份有限公司 Raid卡的测试方法
CN104407816A (zh) * 2014-11-25 2015-03-11 中国人民解放军国防科学技术大学 一种分布式存储系统数据可靠性评价的方法及系统
CN104407816B (zh) * 2014-11-25 2017-10-13 中国人民解放军国防科学技术大学 一种分布式存储系统数据可靠性评价的方法及系统
CN104765958A (zh) * 2015-03-27 2015-07-08 西南科技大学 一种基于连续状态空间的认知无线电接入问题新型算法模型
CN104765958B (zh) * 2015-03-27 2017-07-21 西南科技大学 一种基于连续状态空间的认知无线电接入问题新型算法模型
CN106776176A (zh) * 2016-12-16 2017-05-31 郑州云海信息技术有限公司 一种磁盘的故障注入方法、系统及故障管理系统
CN108665942A (zh) * 2017-04-01 2018-10-16 北京兆易创新科技股份有限公司 一种nand闪存芯片的测试方法及设备
CN107220140A (zh) * 2017-06-29 2017-09-29 郑州云海信息技术有限公司 一种双控存储系统的可靠性测试方法及系统
CN107368381A (zh) * 2017-07-31 2017-11-21 郑州云海信息技术有限公司 一种存储系统可用性测试的方法与装置
CN107452427A (zh) * 2017-08-03 2017-12-08 郑州云海信息技术有限公司 一种存储设备数据完整性的测试方法及系统
CN107480020A (zh) * 2017-08-10 2017-12-15 郑州云海信息技术有限公司 一种对存储系统虚拟卷测试的方法
CN111966540A (zh) * 2017-09-22 2020-11-20 成都华为技术有限公司 存储介质的管理方法、装置及可读存储介质
CN111966540B (zh) * 2017-09-22 2024-03-01 成都华为技术有限公司 存储介质的管理方法、装置及可读存储介质
CN107678901A (zh) * 2017-10-30 2018-02-09 郑州云海信息技术有限公司 基于Linux分布式系统的磁盘性能测试系统和方法
CN110058954A (zh) * 2017-11-24 2019-07-26 爱思开海力士有限公司 用于错误测试的存储器系统
CN109324939A (zh) * 2018-10-24 2019-02-12 郑州云海信息技术有限公司 一种Raid特性测试方法、装置、设备及存储介质
CN113157582A (zh) * 2021-04-28 2021-07-23 中国工商银行股份有限公司 测试脚本执行序列确定方法及装置
CN113157582B (zh) * 2021-04-28 2024-03-08 中国工商银行股份有限公司 测试脚本执行序列确定方法及装置
CN114428709A (zh) * 2022-01-17 2022-05-03 广州鲁邦通物联网科技股份有限公司 一种云管理平台中sds状态检测方法和系统
CN114428709B (zh) * 2022-01-17 2022-08-05 广州鲁邦通物联网科技股份有限公司 一种云管理平台中sds状态检测方法和系统

Also Published As

Publication number Publication date
CN102097133B (zh) 2012-11-21

Similar Documents

Publication Publication Date Title
CN102097133B (zh) 一种海量存储系统的可靠性测试系统及测试方法
US7917810B2 (en) Method for detecting problematic disk drives and disk channels in a RAID memory system based on command processing latency
US10002039B2 (en) Predicting the reliability of large scale storage systems
Vishwanath et al. Characterizing cloud computing hardware reliability
Hseuh et al. Performance modeling based on real data: a case study
US8108724B2 (en) Field replaceable unit failure determination
CN111104293A (zh) 用于支持盘故障预测的方法、设备和计算机程序产品
US20110029494A1 (en) Techniques for determining an implemented data protection policy
Elerath et al. Beyond MTTDL: A closed-form RAID 6 reliability equation
EP1810143A2 (en) System and method for network performance monitoring and predictive failure analysis
Venkatesan et al. A general reliability model for data storage systems
Venkatesan et al. Effect of codeword placement on the reliability of erasure coded data storage systems
Machida et al. Performability modeling for RAID storage systems by Markov regenerative process
US8843781B1 (en) Managing drive error information in data storage systems
US20220391298A1 (en) Node Mode Adjustment Method for when Storage Cluster BBU Fails and Related Component
Mazzeo et al. SIL2 assessment of an active/standby COTS-based safety-related system
Li et al. Understanding data survivability in archival storage systems
Pinciroli et al. The life and death of SSDs and HDDs: Similarities, differences, and prediction models
US7546489B2 (en) Real time event logging and analysis in a software system
Zhu et al. Design and maintenance for the data storage system considering system rebuilding process
CN108008909B (zh) 一种数据存储方法、装置及系统
CN111209146B (zh) 一种raid卡老化测试方法及系统
CN114282359A (zh) 表征卫星可靠性维修性保障性综合能力的参数评价方法
CN111223516B (zh) Raid卡检测方法以及装置
CN114546589A (zh) 双活容灾系统恢复点目标验证方法、装置和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121121

Termination date: 20131231