
国内外高端务器可用性测试方法研究.docx
11页国内外高端务器可用性测试方法研究 黄守鹏潘清庄泽南王霄军装备指挥技术学院北京 101416摘要:国内对高端服务器可用性测试的研究很少,本文将介绍国外已有的一些测试方法具体分析Sun公司的R-Cubed可用性基准框架,Berkeley大学对Software RAID可用性的测试方法,以及不同冗余度可用性计算的研究关键词:可用性;R-Cubed可用性基准框架;Software RAID引言作为信息化建设中硬件架构不可或缺的海量存储阵列一直以来都备受关注,同时海量存储阵列的更新换代也在见证着世界领先科技的发展历程在海量存储阵列发展初期,人们一般关注的是服务器的性能方面的提高,随着海量存储阵列的广泛使用,人们对其可用性的要求也越来越高但是目前国际上在高性能服务器的可用性测试的研究还是刚刚起步,没有成熟的测试方案和统一的测试标准高端服务器的数据容量非常大,有的达到PB级,这样无法对其可用性进行直接测试现阶段对单个部件的测试已经有较成熟的方法,如磁盘可以在加温、加湿的环境下测试其可用性对系统可用性测试的一般方法是先对部件可用性进行测试,再通过马尔科夫(Markov)转移矩阵计算出整个系统的可用性,或是通过蒙特卡诺(Monte Carlo)仿真模拟出系统的可用性。
Sun公司提出了一种计算机系统可用性基准测试的框架R-Cubed他们的目标是定义一个可以用来在多数系统上执行的可用性基准测试框架Software Raid是RAID磁盘的软件实现,已经成为操作系统的重要组成部分,在Linux、Windows、Mac OS中都有所实现Berkeley大学在SoftwareRaid的可用性测试中,使用了一种故障插入(Fault Injection)技术,提出了可用性基准和可维护性基准的概念lR-Cubed可用性基准框架.1.1 可用性基准框架可用性基准(Benchmarking Availability)采用量化的方式来度量系统的可用性,使之具有可比较性可用性依赖于三个系统属性:(1)故障/维护率(Fault/Maintenance Rate):给定时间内系统发生故障/维护事件的次数2)健壮性(Robustness):系统检测和处理故障、维护、外部事件、故障程度等,使系统仍能正常运行的能力3)可恢复性(Recovery):系统从中断状态恢复到工作状态的速度Sun公司通过这三个属性的关系建立了一个分层的可用性基准框架,如图1可用性位于最顶层,分解成故障/维护率、健壮性、可恢复性三个属性。
故障/维护率可以分为故障率和维护率,采用中断源指标(Outage Source Index)来衡量健壮性分为故障类和维护类,采用中断恢复能力指标来衡量(Outage Resilience Index)可恢复性分为l类故障&维护和2类故障&维护,采用中断期限指标(Outage Duration Index)来衡量这些指标都可以通过测试得到1.2 Fault/Maintenance Rate从健壮性角度,故障可以分为三类:不可恢复故障(Non-recoverable Fault),发生了不可恢复的故障,系统将一直不可用,直到被修复可恢复故障(Recoverable Fault),发生了可恢复的故障,系统将有一定的中断,但是系统仍然可以服务透明故障(Transparent Fault),此种故障对系统不会产生中断同样地维护也分为三类:不可恢复维护(Non-recoverableMaintenance),此种维护需要系统完全停止服务,例如更换主要硬件可恢复维护(Recoverable Maintenance),此种维护需要系统停止一部分服务能力,系统有一定的中断透明维护(Transparent Maintenance):此种维护对系统不会产生中断,例如热插拔硬件的更换。
故障率(Fault Rate)不是一个新概念,包括硬件故障率和软件故障率公司比较常用的可靠性验证测试(ReliabilityDemonstration Test)中就有测量硬件故障率的方法,在给定时问给定环境下(如特定温度、湿度)测试硬件故障次数软件故障率也可以用类似的方法测得对于故障率的测试很多公司都有自己的标准,由于商业利益但都是不公开的,现在也没有统一的基准Sun公司将故障率定义为给定时间内发生故障事件的次数,以此作为衡量维护率(Maintenance Rate)分为相应的两部分:故障产生的维护率(Fault Induced Maintenance Rate)和非故障产生的维护率(Non-fault induced Maintenance Rate)aF/M Rate的计算公式为:其中:OSI为中断源指标,Fr为故障率,Mr为维护率,FIMr为故障产生的维护率,NFMr为非故障产生的维护率1.3健壮性1.4可恢复性A:系统的可用性F:系统的宕机率F-l-Af:在一个集群中,可能引起系统宕机的节点的组合方式数目n:系统的节点数a:单个节点的可用性s:系统的冗[来自www.lw5u.CoM]余节点(spare node)个数。
双节点,含一个冗余节点由于存在一个冗余节点,只有当两个节点全部都失效的情况下,系统才停止工作一个节点的宕机率为l-a,因此系统的宕机率为F=(1.a)2即系统的可用性:A=1一F=l一(1一a)2假设a=0.99,F=O.01此情况下A-0.9999,即“四个9”多个节点,含一个冗余节点,与第一种情况类似,当第一个节点失效的时候,冗余节点进行替换工作,系统此时处于UP状态,只有当第二个节点接连失效的情况下,系统才会处于DOWN状态第一个节点失效的可能方式为n(即n个节点中选择一个节点失效),第二个节点失效的可能方式则为n—l,那么两个节点同时失效的方式,即系统宕机的方式为(除于2是因为这是一个组合问题,而非排序问题):在R-Cubed框架中,ODI描述了平均中断事件时间间隔根据定义,ODI是总中断时间与中断时间总数之商如公式: ODI= Total Outage Time/Number of Outage Incidents 在分层框架中,可以在不同层次衡量恢复速度可以是所有事件产生系统平均停机时间,也可以是某一种类型时间产生的系统平均停机时间有的中断是可自动恢复的,而有的则需要人为干涉使系统重新工作。
如果人为操作比较复杂,这会增加测量恢复时间的难度2 Software RAID可用性测试2.1 测试环境测试环境包含三个条件:模拟故障、实际的工作负载、数据收集模拟故障可以使用一种称为故障插入(FaultInjection)的技术,如:模拟磁盘读取错误、拔除内存、杀死进程、断电、断网等加上实际的工作负载后才能进行测试首先要测试的是正常工作负载下系统的反应然后测试错误工作负载下系统的反应错误负载可以是:负载的急剧增大、负载中包含错误的输入等错误负载又分为单一错误负载和多错误负载单一错误负载用于测试孤立系统片段中未考虑到的系统设计缺陷和错误多错误负载用于评估新系统,鉴别系统的弱点2.2 可用性测试首先确定可用性的度量方法最原始的可用性度量方法是二进制的,只有可用和不可用两种状态延伸的可用性度要计算系统的健壮性,先定义两个指标:故障恢复能力指标(Fault Resilience Index)和维护恢复能力指标(MaintenanceResilience Index)前者用于衡量系统对故障事件的健壮性,后者用于衡量系统对维护事件的健壮性对每种故障类型赋予一个故障类型因子(Fault Class Factor),用于描述系统针对此种故障的健壮性,值越大表示系统越健壮。
测试出每种故障类型所占的比例PFC对每种维护类型赋予一个维护类型因子(Maintenance Class Factor),表示此种维护类型的权重再测试出每种维护事件所占比例PMC这样可以得到健壮性计算公式:量是系统平均无故障率,即系统正常运行时间所占的比率在Berkeley大学针对Software Raid的可用性测试中,将可用性的衡量标准定义为服务质量(QoS)随时间的变化服务质量是根据不同的系统进行选择,常用的服务质量有性能和容错度如果一个系统在一定时间内需要非常大的计算量,在退化模式(degraded mode)下将降低精确度,这样可以选择精确度作为服务质量RAID-5允许一个磁盘错误而无数据丢失当发生一个错误时,系统将进入退化模式继续提供服务发生第二个错误时,系统将会产生数据丢失对RAID盘硬件错误是主要的测试中通过软件模拟一个磁盘,这样可以方便通过软件插入磁盘故障测试中使用了6类测试案例:(1)可更正的介质读写错误:模拟磁头因磨损而变得不稳定的情况2)不可更正的介质读写错误:模拟磁盘扇区产生了不可恢复的损坏3)硬件SCSI命令错误:模拟系统固件或主板错误4) SCSI命令级的奇偶校验错误:模拟SCSI总线错误。
5)电源故障:模拟在SCSI命令阶段,磁盘停止工作6)磁盘挂起:模拟SCSI命令阶段的固件故障所有的错误可以是在瞬态植入,或是持续植入在实际应用中,RAID产生的错误都是瞬态的,没有缓慢失效的过程,所以瞬态植入错误更有意义Berkeley大学对一台Web服务器进行了测试整个测试分别在Linux、Windows、Solaris下进行,测量的指标是每秒命中率采用两分钟为作为测量间隔,测试每两分钟中内的平均性能使用的负载发生器是SPECWeb99首先测试正常负载下系统性能,到系统稳定后,再配置SPECWeb99使之生成各种错误类型的工作负载,再对系统性能进行测试3 不同冗余度的可用性计算3.1 单冗余的可用性计算用由Sombers Associates公司出版发行的AvailabilityDigest杂志,四十年来一直致力于系统高可用性和可靠性的研究,曾发表过可用性64条准则在对我国自行研制的海量存储服务器进行可用性测试时,进行系统分析的同时,可以先利用可用性的相关准则,对海量存储服务器的可用性进行定量分析按照系统的冗余度,可以定量对系统的可用性进行建模系统可用性可以用如下公式阐述:假设n=6,s=2,a=0.99(即在第二种情况下增加一个冗余节点),此情况下A=0.99998,接近于“五个9”,初步可以得出结论,增加冗余节点对系统的可用性的提高有显著的作用。
系统的可用性评定准则中比较重要的方面就是讨论在Active/active模式下的系统的节点个数,以及这些节点的使用情况;系统中的后台备份情况;还包括了整个系统的人员管理的方面,涉及的十分全面,在研究海量存储系统可用性时,可以使用这些原则先进行定量的分析,以供在实地测试时提供一些数据和方案的依据4总结系统的可用性测试先要明确可用性的基准最常见的是平均故障间隔时间MTBL和平均修复时间MTTR来计算,可用性为A:MTBF/MTBF+MTTRSun公司的R-Cubed可用性基准框架采用分层结构更具体的描述了系统的可用性(F/MRate,健壮性,可恢复性)以及在Software RAID的测试中使用服务质量随时间的变化来衡量可用性在Kevin M.Greenan的博士论文中提出平均时间是没有意义的,提出应使用规格化数据丢失量(NOrmalized Magnitude of DataLoss)但一个好的标准必须满足四点要求:(1)具有可计算性,可以通过软件模拟仿真或是运用数学公式计算;(2)计算结果具有实际意。
