您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 分布式系统与WEB服务(4)
南京理工大学计算机学院分布式系统与WEB服务第七章容错与实时系统南京理工大学计算机学院分布式系统与WEB服务属性:•可用性•可靠性•保险性•可信任性•完整性•可维护性后果:•失灵•错误•故障策略:•防止故障•故障容错•故障恢复•故障预报什么是“可依赖的系统”?如何区分各种故障?如何处理故障?南京理工大学计算机学院分布式系统与WEB服务容错与实时系统是分布式系统的两大领域.一般而言,容错服务是允许系统出错的,但它可以在故障后恢复,而不丢失数据。大多数容错应用有两种形式,一种叫做基于事务的容错;二种叫做进程控制的容错,二者的主要区别在于恢复时间。容错具有两个方面,一是故障特征的描述,二是故障屏蔽,故障屏蔽的方法有层次式屏蔽和成组屏蔽两种.本章中将讨论相关设计中的主要问题包括协议、调度策略和设计依据等。南京理工大学计算机学院分布式系统与WEB服务7.1事务的故障模型利用事务处理服务的概念起源于数据库管理,最初的目的是提供原子性协议,用于处理消息的丢失。原子提交协议接受这样一个模型:机器在故障时,将不能做任何事情;而在故障前均能正确地做任何事。对于事务的处理,要考虑磁盘出错,服务器故障及通信不畅等出错问题,这样便需要一个故障模型,在该模型中,事务处理算法可以在可预测的故障下正常工作(含利用恢复技术),但不保证在出现不可预测的灾难性故障下也能恢复正常工作。南京理工大学计算机学院分布式系统与WEB服务故障模型描述如下:1.写永久存储器时可能出错,可能未写人,也可能写错例如在出现灾难性故障.2.服务器随时可能出现故障。3.消息传递延迟可能是无限制的。消息可能丢失、重复或受损。接收消息的服务器应该能够检测消息损坏情况。所有出错或未检测出的受损消息都会引起严重故障。南京理工大学计算机学院分布式系统与WEB服务以上故障模型的特点有:(1)原子提交协议不能保证在有限的时间内完成,因为通信消息的延迟可能无限大;(2)分布式事务的恢复时间可能要比预料的时间长;(3)原子提交协议认为,服务器总能正确执行并能检测故障;(4)原子提交协议认为,永久性存储器上的受损消息和出错数据是可检测的。南京理工大学计算机学院分布式系统与WEB服务以上故障模型是设计稳定存储器的基础,稳定存储器要在写操作出现故障时、或在进程故障时提供原子写操作。通信故障可以通过可靠的RPC协议缓解。下面先讨论稳定存储器,尔后更详尽地讨论容错概念与技术。南京理工大学计算机学院分布式系统与WEB服务7.2稳定存储服务器(特别是文件服务器)的重要特性就在于其可恢复性,特别是文件映射表和文件索引的恢复。文件访问一般有这样几种出错情况:读块时出错、写块时出错、数据传输时出错及存储介质本身出错。因此,需要一种检测错误的方法,一般采用计算并记录校验和的方法来解决,这一方法步骤如下:南京理工大学计算机学院分布式系统与WEB服务(1)写块时,计算数据的校验和并记录下来;写块后,一般要读出一次,进行校验和比较,若不同则再写;同样,经过一定次数的重写后,若读出的校验和仍与写入的校验和不同,则记下“坏块”,并向客户机报错,从而保证写时的正确性。(2)读块时,计算读出数据的校验和并与原记录的校验和比较,若不同,则重新读块。经过一定次数的重读后,若校验和仍然不同,则向客户机报错。这样,保证避免产生读块时的错误。南京理工大学计算机学院分布式系统与WEB服务上述方法叫做精心块传输(CBT,CarefulBlockTransfer)方法,但是这种方法并不保证其可恢复性,因为若在写索引时出现错误,则所有文件块均将访问不到,如果在写文件映射表时出错,则无法再访问文件。针对这两种情况,文件映射表和文件索引一般要备份存储,当系统出现故障后,读操作发现校验和不一致时,则服务器可利用备份进行恢复。这种备份一般采用两种存储结构,以减少两备份同时出现错误的可能性,一种常用的结构就是文件映射表和文件索引。南京理工大学计算机学院分布式系统与WEB服务另一种结构用一个柱面映射表完成文件页到物理块的映射,柱面映射表的每一行由分配状态,UFID,索引中的位置,块指针组成。显然,柱面映射表的大小决定于磁盘的柱面数。以上措施都假设在存储器可能出错的情况下,存储故障对于程序是不透明的,至少程序员认为存储器不是十分可靠的。下面讨论的稳定存储(StableStorage)则是通过一定的手段使程序员感到所使用的存储器是非常可靠的,从而增加存储系统的故障透明性。南京理工大学计算机学院分布式系统与WEB服务稳定存储其实是一种在不可靠介质上建立可靠信息存储系统的方法,它可以保证服务器系统可以从硬件或软件故障中得到恢复。稳定存储一般采用冗余备份的方法。由于稳定存储的空间冗余太大,故一般仅用于文件的关键信息,如前述的文件映射表和文件索引等。当然,它也用于对数据安全性要求甚高的应用中,如银行业务等。南京理工大学计算机学院分布式系统与WEB服务实现稳定存储的主要原则有以下三个:1)一般用两个相距较远的磁盘块形成一个稳定存储块,尽可能减少发生两块同时出错的可能性;2)要同时保持以下不变性:①至少有一个块是好块;②若两块都是好块,则内容应当一致,若在操作过程中,可以有暂时的不同。3)稳定块指针由两个正常的块指针提供.南京理工大学计算机学院分布式系统与WEB服务7.3容错7.3.1基本概念一、部件故障故障通常可分为暂时性、间歇性和永久性故障.暂时性故障只发生一次,如果重复操作,故障可能不会再现。一只鸟在穿过微波波束时会引起无线网络上的信息丢失,这就是暂时性故障,如果下一步重传,它可能正常工作。间歇性故障发生后消失,过一段时间后又出现。一个连接器中若结合不紧(如插座未插牢或虚焊等),会引起间歇性故障。这种错误很难诊断,但一旦被找到故障点,系统很容易恢复。南京理工大学计算机学院分布式系统与WEB服务永久性故障在故障修复之前一直存在。如烧坏的芯片、软件中的错误、磁头故障都会引起这种故障。并不是所有的部件故障都会引起系统失败,但计算机系统的确会因某些部件故障而工作失败。设计和构造容错系统的目标是保证系统能够在部件故障出现时继续正常工作。这个目标与要求单个部件的高度可靠性是不同的。南京理工大学计算机学院分布式系统与WEB服务二.系统故障在分布式系统中,我们最感兴趣的是系统在部件出错时能否继续工作。由于分布式系统中有大量部件,出错概率高,因此对系统的可靠性要求很高。下面我们来看处理机故障.处理机故障分为两类:(1)悄然停(Fail-silent,或fai1-stop)故障;(2)拜占庭(Byzantine)故障。南京理工大学计算机学院分布式系统与WEB服务在悄然停故障中,出错的处理机停止运行,除了声明它停止运行外,不对后续输入产生反应也不产生输出.而拜占庭故障则是,虽出故障,但仍继续运行,对于后续输入继续处理给出错误结果,给人一种仍在正常工作的假象。没有检测出的软件错误常常属于拜占庭故障。通常处理拜占庭故障比处理悄然停故障更困难。南京理工大学计算机学院分布式系统与WEB服务三、同步/异步系统如果一个系统总能在有限时间内对消息做出反应,那么就称它为同步系统;反之,就称为异步系统。异步系统比同步系统更复杂。如果一个处理机发出一条消息,并且知道在T秒内没有回答就意味着接收失败,它就可采取相应的正确行动;如果没有反应时间的限制,就很难判断是否发生故障。南京理工大学计算机学院分布式系统与WEB服务四、冗余配置常用的容错方法是冗余配置。它有信息冗余、时回冗余、物理冗余三种形式。信息冗余就是,增加额外的信息位使错误信息可以得到纠正。例如海明码是存储器设计中的重要冗余配置技术,它可以用于检测和恢复传输错误。时间冗余就是,执行一个操作,如果需要就再次执行。前面讲到的原子事务,就属于这种冗余.如果事务取消,它对系统无影响,可以再做。时间冗余对于解决暂时性故障和间歇性故障非常有效。南京理工大学计算机学院分布式系统与WEB服务物理冗余就是增加额外的设备使系统可以承受某个部件的故障。例如给系统增加额外处理机,如果某台处理机出错,系统可以马上切换到正常的处理机上继续执行。组织额外处理机有两种方法,一种是活动备份(ActiveReplicate)法,一种是主副(PrimaryandBackup)结构法,比如对一个服务器,如果使用活动备份法,则所有的处理机都象服务器那样同时并行工作,来达到屏蔽故障。主副结构法则是使用一台处理机做工作,当它出现故障时,再用备份机来替代它.南京理工大学计算机学院分布式系统与WEB服务采用哪种办法,主要取决于应用对于以下几点的基本需求:(1)所需的备份(冗余)程度;(2)有故障时的平均和最坏性能;(3)无故障时的平均和最坏性能。南京理工大学计算机学院分布式系统与WEB服务7.3.2活动备份技术活动备份是一种典型的技术,它的特点就是使用物理冗余.人类生活和工程中许多都用到了这种技术,如哺乳动物有两只眼、两个耳朵、两个肺等;飞机一般要用多个发动机(波音747则有4台发动机);体育比赛中要有多个裁判等等。南京理工大学计算机学院分布式系统与WEB服务在电子线路中也经常采用活动备份技术。典型设计称TMR(三模件冗余)技术。冗余能够屏蔽故障.但需要多少个副本才合适呢?这主要依赖于应用要求的容错能力。如果一个系统被称为K级容错,那就意味着它可以容忍K个同样部件的错误。如果K个处理机出现的是悄然停故障。那么用K+1个处理机就可以实现K级容错。这样,在K个处理机停止工作后,还有一个处理机在运行。南京理工大学计算机学院分布式系统与WEB服务(a)原始电路(b)模三冗余电路:三是实施“少数服从多数”原则的最少选举人数。模三冗余TMR南京理工大学计算机学院分布式系统与WEB服务如果处理机出现拜占庭故障,那么就必须使用至少2K+1个相同的处理机来处理。这样,在最坏情况下,即K个处理机给出了错误结果,但还有K+1个处理机会给出正确答案,仍可屏蔽错误。在实际应用中,由于环境的复杂性,很难保证只有K个处理机出问题,另外K+1个不出问题。因此,在容错系统的设计中,还需要依据统计分析结果来设置冗余备份的数量。总之,活动备份方法并不是非常困难的问题。南京理工大学计算机学院分布式系统与WEB服务7.3.3主副容错技术这个方法的基本思想就是,在任一时刻,有一台机器是主服务器,完成所有的工作。一旦这个主服务器出现故障,那么副服务器就接替工作。理想情况下,切换应当干脆利落,并且只能被客户机操作系统感知,对应用程序是透明的。这个方法同活动备份一样,也是源自日常工作和生活中的常用方法。如国家设副主席、政府设副总理、一般单位都设副职,在汽车上也都配有备用轮胎等。南京理工大学计算机学院分布式系统与WEB服务主副容错方法比活动备份有两大优点。首先是简单,因为在正常操作中,消息仅仅送到主服务器而不是整个服务器组;第二,实际用的机器也较少,任意时刻只需一台副服务器备份即可。当一个副服务器成为主服务器时,马上要加入一台新的副服务器。它的缺点是一般很难处理拜占庭故障,另外在主服务器故障后需要很复杂并且时间较长的恢复过程,同时如何选择切换时间也是需解决的问题南京理工大学计算机学院分布式系统与WEB服务7.3.4容错系统的协调在许多分布式系统中,经常需要让进程就某事件达成一致的协议。前面讨论的分布事务就涉及到许多这种协调活动,例如选举管理员,决定是否提交一个事务等等。当通信系统和处理机郡正常时;达成一致协议是很简单的。但若认为处理机和通信设施都可能出故障,要达成一致协议就麻烦多了。分布式协调算法的总目标是让所有无错处理机在有限时间和操作步内,就某个问题达成一致协议。根据不同的系统情况会要求不同的处理办法。南京理工大学计算机学院分布式系统与WEB服务(1)消息是否可靠传输?(2)进程是否会发生故障?如果出现故障,是悄然停故障?还是拜占庭故障?(3)系统是同步的还是异步的?算法证明:在一个有M个故障处理机的系统中,仅能在还有2M+1个正常工作的处理机时,才能达成一致协议。而在一个异步的无传输延迟限制的分布式系统,即使只有一个处理出现故障也不能达成
本文标题:分布式系统与WEB服务(4)
链接地址:https://www.777doc.com/doc-1586201 .html