可用性研究

1 概念

可用性分类(Availability Taxonomy)

 

AFaults, Failures and Outages

 

错误(Faults:从概念上说,一个错误可以描述为一个系统中不期望发生的行为,可以分为可再现和不可再现两类。Conceptually, a fault can be described as an unexpected behavior of a system and can be classified as reproducible or non-reproducible

 

故障(Failures:故障是指可被终端用户看得见的错误。引起的原因包括:设计错误,系统负载过重,过度使用,事先定义好的行为等等,其他的原因有:竞争条件,分布式死锁,网络传输错误,灾难性事件(飓风,恐怖袭击)。a failure is a fault that is externally visible to the end user (design errors, system overloadingWearing down, Preemptive)Other causes: race conditions distributed deadlocksnetwork transmission errors, catastrophic events(tornado, terrorist attack)

 

中断(Outages:中断这个术语用于描述任何的指定系统行为的偏差错误,不管它是期望发生还是不期望发生的。所有的错误和故障都可以归结为未计划中断,而对特定系统功能的有意防备,比如:执行维护操作,软件更新等,都属于计划中断。

The term outage is used to describe any kind of deviation from specified system behavior, whether it is expected or unexpected. All faults and failures can be categorized as unplanned outages, while intentional prevention of delivering specified system functionality, such as to perform maintenance operations, software upgrades, etc., are planned outages.

 

B 可用性定义及组态(Availability Domains and Configurations

 

1. 基本可用性(Basic Availability):若一个系统使用足够的组件(包括硬件、软件和procedures)来设计与实现,且能够满足它的最基本的功能需求,不考虑更多的需求。称这个系统具有基本可用性。只要没有错误发生或者维护操作,它就可以正确运行,否则系统会被中断。

 

2. 高可用性(High Availability:若一个系统有额外的冗余组件(硬件,软件和procedures)来屏蔽定义好的一些故障 (defined failures ),如果一个组件发生故障,系统能够用冗余组件继续运行,称这个系统具有高可用性。描述高可用性有三个术语“sufficient”, “mask”, and “certain”

 

足够性(sufficient)能够反映系统对故障容忍度要求程度。对于计算系统来说,这表明要保证一个特殊质量的服务需要特殊级别的硬件与软件冗余。

确定性(certain)重申了一个事实,并非所有的故障一定或者需要被屏蔽。典型的情况是,高可用性方案要屏蔽那些最可能发生的故障.然而,重要的任务系统(军队,银行,电信)可能要屏蔽甚至是灾难性的故障。

 

屏蔽性(Masking), 屏蔽一个故障意味着遮挡了外部的观察,阻止了故障的发生。因为错误(faluts)被定义为特定行为的不期望的偏差(deviation),屏蔽一个错误意味着特定行为的偏差不可能发生。这通过一定复制机制来完成,即冗余策略.当一个组件失败后,冗余组件将要替换它。替换有不同的配置方案。(后文将会提到)

 

3.持续可用性(Continuous Availability

若一个系统具备高可用性的属性, 同时将高可用性应用于计划的中断故障(outages),则这个系统具备持续可用性。持续可用性意味着屏蔽策略要屏蔽计划内的中断,例如系统维护。更重要的是,在高可用方案中引进的服务中断是一个计划中断,这也需要进行一定的处理。总而言之,持续可用性要求对系统运行中出现的所有中断故障进行屏蔽。

 

 

C 可用性度量(Availability Metrics

系统的可用性可用01来描述(或者是0%100%),0表示没有可用性,例如系统是不可操作的,1意味着持续可用性,例如,系统没有任何中断。可用性,以最简单的形式来说,描述了一个系统在线(uptime tup)和下线时间 (downtime tdown)的比例:

       A=tup/(tup+tdown)  1

当仅仅考虑未计划的中断,基于一个系统的失效前平均时间(MTTFmean time to failure)和平均恢复时间(MTTRmean time to recovery, 可用性可以计算出来(等式2)。MTTF指的是一个系统在故障发生前运行的平均时间间隔,而MTTR指的是需要修复,恢复它的服务的平均时间。但是MTTFMTBFmean time between failures)是不同的,后者指的是平均间隔时间,在间隔时间内任意故障可能再一次发生,它是系统故障频率的倒数。一个系统的MTBF包括MTTFMTTR (等式3).  以小时为单位,一个系统的每年下线时间(tdown)可以由它的可用性计算出来(等式4)。为了适应满足一个系统的MTTFMTTR,计划的中断可能需要考虑。

 

A=MTTF/(MTTF+MTTR)    (2)

MTBF=MTTF+MTTR       (3)

Tdown=8760*(1-A)           (4)

 

因为一个组件可被描述为一个系统,一个系统的可用性依赖它各个组件的可用性。系统的组件可悲分解为串行的,例如,组件1依赖组件2;或者并行的,组件3是组件4的冗余组件。串行和并行组件的可用性可按如下计算:

一个系统拥有越多的独立组件(串行),它提供的可用性就越差。一个系统拥有越多的冗余组件(并行),它提供的可用性就越高。高可用性系统基于添加冗余组件来提高整个系统的可用性。

 

 

 

D 失败-停止(fail-stop

 

Fail-stop 模型认为系统组件,如个别服务,节点,通信连接等,是通过简单的停止而失败的。部署的故障检测机制仅仅对硬件错误或者灾难性的软件错误做出反应。如果一个失败的系统组件因软件错误或者系统设计错误产生了错误的输出而侵犯了这种假定,那么基于这种模型的冗余方案不能够保证正确性。

 

E 高可用性模型

可用性是基于系统组件冗余的,如果一个组件失败,系统能够通过使用一个冗余组件继续运行。高可用性的级别依赖它的高可用性模型及复制策略。设计高可用性,意味着系统的恢复时间将会大大降低,系统与应用的状态的损失也会相当程度的减少,单点故障与单点控制也可以被消除。

 

有两种高可用模型,active/standby active/activeActive/standby模型是指用一个active组件,至少一个冗余standby组件,active/active模型是基于多个冗余的active组件。冗余有硬件冗余与软件冗余,软件冗余提供更高级别的高可用性。

 

Active/Standby

这种高可用模型是一种失败接管模型(fail-over)。万一活动的组件有故障发生(active),闲置的冗余组件(standby)接管失败的组件,从而使系统继续运行。高可用性程度决定于对组件状态的复制策略。

1 Manual Mask

失败发生后,人工干预启动备用组件,接替失败组件的工作;这种模式因需要人工参与,恢复时间通常较长,计算机系统中基本不使用

2 Cold Standby

失败发生后,失败组件的服务中断,用户丢失所有进行中工作的信息,系统使用自动失败检测及修复机制自动发现故障的发生,并唤起备用组件,备用组件完成硬件准备及软件初始化后加入系统,接管失败组件的工作。 Cold Standby高可用组织模式通常仅提供硬件环境的冗余,而软件环境的初始化往往需要一定时间,计算机系统中通常也不使用这种模式.

3 Warm Standby

失败发生后,失败组件的服务中断,用户丢失部分进行中工作的信息。系统通过自动失败检测及修复机制自动发现故障的发生,并通知备用组件进行失败接管。备用组件预先已经在运行,且完成部分初始化,并可能与失败组件共享部分信息。WarmStandby高可用解决方案通常提供硬件环境的冗余及部分软件环境的冗余。

4 Hot Standby

失败发生后,失败组件的服务中断,但用户不会丢失任何工作中的信息。系统通过自动失败检测及修复机制自动发现故障的发生,并通知备用组件进行失败接管。备用组件预先已经在正常运行,且与失败组件完全共享服务中的信息。 Hot Standby高可用解决方案通常需要提供完整的软、硬件环境冗余。

 

active/active

高可用系统中冗余多个功能相同的组件,其中两个或多个组件处于活动状态,任一活动组件的失败不会影响组件所提供的整体服务,这种组件高可用模式为active/active模式该模式又可分为以下两类:

1)非对称 active/active模式

系统中的多个活动组件组成一个工作组,对用户提供相同的服务,但相互之间不进行协作若某一组件发生失败,用户仍可以通过其余组件获取所需要的服务;同时该模式也可以使用一个或多个备用组件接替失败组件该模式在提供高可用性的同时也提供较高的吞吐率,但它仅适用于无状态的系统组件,通常在通信领域使用较为广泛

2)对称 active/active模式

系统中的多个活动组件组成一个工作组,对用户提供相同的服务,相互之间通过状态机复制、虚拟同步分、分布式控制等机制进行协作,共享服务的状态。若某一组件发生失败,工作组内其余组件可立即接管,用户基本不会感觉到故障的发生,不会对进行中的工作产生影响

F 模式比较

 

所有上述高可用组织模式在进行失败接管时都有相似的行为方式:它们都需要将失败的发生通知相关的客户端及其它服务组件,同时系统往往会使用一种底层的自适应框架,以记录活动服务组件的状态、检测失败的发生、启动失败接管过程并进行消息复制和响应未应答的请求,从而使失败对上层用户透明

 

在内部算法上,active/hot-standby与对称 active/active方法相同,都是按序向所有活动及备用节点传递消息然而,active/hot-standby高可用模式的时间开销更小,因为其仅有一个节点处于活动状态,于此同时却也浪费了冗余节点的大量资源。

在普遍使用的高可用模式中,active/warm-standby模式提供了最小的时间开销和最大的失败影响;与之相反,对称 active/active模式提供了最小的失败影响,但也需要最大的时间开销。

 

H 高可用方案

实际应用中的方案和高可用模式是相匹配的, 但针对于active/standby 模式,有两种实际应用的方案:使用共享存储的Active/standby模式(active/standby with shared storage )和不适用共享存储的active/standby模式.

1: active/standby with shared storage

 

如图1所示,服务状态保存在共享存储设备上,如果活动服务器失败,则备服务器(standby)进行接管。备用服务器需要使用心跳机制监视主服务器的活动状态,且要初始化接管任务的相关程序。这种技术的一个扩展方案是在非对称的active/active方式上使用交叉的热备冗余方案(hot standby,每个active都有一个standby服务作为冗余。这两种情形,MTTR都决定于心跳的间隔。尽管共享存储设备可能是典型的RAID结构(高可用的),但是它有单点故障问题。一旦共享存储设备发生故障,系统服务就会终止,造成不可估计的损失。针对于大多说共享存储方案,因为缺乏提交协议(保证数据一致性)正确性和服务器质量难以保证。

4 active/standby

 

如图4active/standby不采用共享存储设备的方式,而是采用状态提交协议的方法相互通信,保持数据的同步性与一致性。采用这种方式的系统,其MTTR同样依赖于心跳的间隔,接管时间开销,以及需要回复到以前状态的作业数量等。

两外的两种模式,对称active/active模式与非对称active/active模式都采用的是不共享存储方式,各个节点独立管理自己的存储。这能够避免共享存储设备可能发生的单点故障问题。

 

 

 

参考文献

[1] Christian Engelmann. Symmetric Active/Active High Availability for High-Performance Computing System Services[D]. The University of READING. 2008.

[2] C. Engelmann and S. L. Scott, “Concepts for high availability in scientific high-end computing,” in Proceedings of High Availability and Performance Workshop (HAPCW) 2005, Santa Fe, NM, USA, Oct. 11, 2005.

[3] 战科宇,分布式文件系统元数据服务器高可用设计与实现,上海交通大学[硕士毕业论文]2012.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值