目录
1 9 . 3 冗余技术
19.3.1冗余技术的分类
1 . 结构冗余/硬件冗余
2 . 信息冗余(数据冗余)
3 . 时间冗余
4 . 冗余附加
19.3.2 冗余系统与其工作原理
1 9 . 3 冗余技术
提高系统可靠性的技术可以分为避错(排错)技术和容错技术。
避错是通过技术评审、系统测试和正确性证明等技术,在系统正式运行之前避免、发现和改正错误。然而,随着系统规模越来越大,结构越来越复杂,以及避错技术自身存在的复杂性和局限性,
避错己远远不能保证系统的可靠性;//避错只是基础,但终究无法规避所有的错误!!!
避错是理想!!,容错是现实!!即要拥有理想,也有面对现实!!
另一方面,随着信息系统应用进入一些高可靠性要求的领域,对系统可靠性的要求也越来越高,因此,容错成为提高系统可靠性的重要手段。容错是指系统在运行过程中发生一定的硬件故障或软件错误时,仍能保持正常工作而不影响正确结果的一种性能或措施。
容错技术主要是采用冗余方法來消除故障的影响。
冗余是容错的最主要技术手段之一!!!
19.3.1冗余技术的分类
冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息、时间、硬件和软件。
冗余是容错技术的基础,通过冗余资源的加入,可以使系统的可靠性得到较大的提高。
主要的冗余技术有结构冗余(硬件冗余和软件冗余)、信息冗余、时间冗余和冗余附加4 种。
1 . 结构冗余/硬件冗余
结构冗余是常用的冗余技术,按其工作方式,可分为静态冗余、动态冗余和混合冗余三种。
(1) 静态冗余。
静态冗余又称为屏蔽冗余或被动冗余,常用的有三模冗余和多模冗余。
静态冗余通过物理的冗余的多重结构的表决和比较来屏蔽系统中出现的错误。
例如,三模冗余是对三个功能相同 ,但由不同的人采用不同的方法幵发出的模块的运行结果进行表决,以多数结果作为系统的最终结果。即如果模块中有一个出错,这个错误能够被其他模块的正确结果“屏蔽”。由于无需对错误进行特别的测试,也不必进行模块的切换就能实现容错,故称为静态容错。
(2) 动态冗余。
动态冗佘又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。
其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。
各备用模块在其待机时,可与主模块-样工作,也可不工作。
前者叫做热备份系统(双重系统),后者叫做冷备份系统(双工系统、双份系统)。
在热备份系统中,两套系统同时、同步运行,当联机子系统检测到错误时,退出服务进行检修,而由热备份子系统接替工作,备用模块在待机过程中其失效率为0 ;
处于冷备份的子系统平时停机或者运行与联机系统无关的运算,当联机子系统产生故障时,人工或自动进行切换,使冷备份系统成为联机系统。在运行冷备份时,不能保证从系统断点处精确地连续工作,因为备份机不能取得原来的机器上当前运行的全部数据。
(3) 混合冗余。
混合冗佘技术是将静态冗余和动态冗余结合起来,且取二者之长处。
它先使用静态冗余中的故障屏蔽技术,使系统免受某些可以被屏蔽的故障的影响。
而对那些无法屏蔽的故障则采用主动冗余中的故障检测、故障定位和故障恢复等技术,并且对系统可以作重新配置。因此,混合冗余的效果要大大优于静态冗余和动态冗余。然而,由于混合冗余既要有静态冗余的屏蔽功能,又要釘动态冗余的各种检测和定位等功能,它的附加硬件的开销是相当大的,所以混合冗余的成木很高,仅在对可靠性要求极高的场合中采用。
2 . 信息冗余(数据冗余)
信息冗余是在实现正常功能所需要的信息外,再添加一些信息,以保证运行结果正确性的方法。例如,检错码和纠错码就是信息冗余的例子。
这种冗余信息的添加方法是按照一组预定的规则进行的。符合添加规则而形成的带有冗余信息的字称为码字,而那些虽带有冗余信息但不符合添加规则的字则称为非码字。当系统出现故障时,可能会将码字变成非码字,于是在译码过程中会将引起非码字的故障检测出来,这就是检错码的基本思想。
纠错码则不仅可以将错误检测出来,还能将由故障引起的非码字纠正成正确的码字。由此可见,信息冗余的主要任务在于研究出一套理想的编码和译码技术来提高信息冗余的效率。
编码技术中应用最广泛的是奇偶校验码、海明校验码和循环冗余校验码。
3 . 时间冗余
时间冗余是以时间(即降低系统运行速度)为代价以减少硬件冗余和信息冗余的幵销来达到提高可靠性的目的。
在某些实际应用中,硬件冗余和信息冗余的成本、体积、功耗、重量等开销可能过高,而时间并不是太重要的因素时,可以使用时间冗余。
时间冗余的基本概念是重复多次进行相同的计算,或称为重复执行(复执),以达到故障检测的目的。
实现时间冗余的方法很多,但是其基本思想不外乎是对相同的计算任务重复执行多次,然后将每次的运行结果存放起来再进行比较。若每次的结果相同,则认为无故障;若存在不同的结果,则说明检测到了故障。不过,这种方法往往只能检测到瞬时性故障而不宜检测永久性的故障。
4 . 冗余附加
冗余附加是指为实现上述冗余技术所需的资源和技术,包括程序、指令、数据,以及存放和调用它们的空间等。
19.3.2 冗余系统与其工作原理
在实际应用中,各种冗余技术经常是结合起来使用的。将各种冗余技术融合在一个系统中,就称之为冗余系统。
一般來说,一个较为完整的冗余系统,在处理运行中出现的故障时,大致有以下10个步骤:
(1) 故障检测。
故障检测一般可分为两类:联机检测和脱机检测。
前者提供了实时检测的能力,这种检测工作与系统的正常工作同时进行;
后者在进行检测时,系统必须停止正常工作。
( 2 ) 故障屏蔽。
这与故障检测正好相反,它不是将故障检测出来,而是将出现的故障屏蔽起来,使系统不受故障的影响。
( 3 ) 故障限制。
限制故障影响的范围,防止己发生的故障影响到系统的其他部分。
(4) 复执。
这是一种检测瞬时性故障的有效措施,它可以提高系统抗瞬时性故障干扰的能力。
(5) 故障诊断:检测+定位
在故障检测的基础上,对故障进行定位。这对以后的修复、重配置等过程有很重要的意义。
(6) 系统替换与重配置。
若故障一日.被检出并定位,系统应有能力将发生故障的子系统替换下来,或将故障子系统与其他子系统隔离开来。当故障子系统被替换下来后,系统仍应能保持正常运行,只是系统运行速度下降、功能减弱。这一现象称为系统降级使用。
(7) 系统恢复。
当检测出故障,必要时在系统重配置后即吋消除故障引发的差错。这时,系统应能返回到出现故障断点前的情况继续运行。这个过程称为系统恢复。
故障的恢复策略-般有两种,分别是前向恢复和后向恢复。
前向恢复是指使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况,这需要有错误的详细说明;
后向恢复是指系统恢复到前一个正确状态,继续执行。
它们的一个不同点在丁•,后向恢复简单地把变量恢复到检査点的取值,而前向恢复将对一些变景的状态进行修改和处理,且这个恢复过程将由程序设计者设计;
另一个不同在于,前向恢复适用于吋预见的易定义的错误,而后向恢复可屏蔽不可顶见的错误。
(8) 系统重新启动。
如果系统由于出现过多的故障而造成人量的错误,以至破坏了许多无法恢复的信息时,就不能再使用上述的系统恢复的办法,而必须重新启动。
重新启动可分为热启动和冷启动。
前者是在部分信息遭到破坏且还有一部分可以利用的情况时使用,
而后者则是在几乎所有信息均遭破坏的情况下使用。
(9) 修复。
凡是已确定有故障的子系统必须进行修复。
修复可分为脱机修复和联机修复两种。
若要修复的子系统卸下后对系统影响不大,或者修复这些子系统时系统必定会停机,就使用脱机修复。
联机修复是指系统能自动启用备份子系统锊代有故障的子系统,并保持系统继续运行,然后再修复切换下來的故障子系统。
(10) 系统重组合。
当上述各步完成后,系统必须重新组合,以便完全恢复正常运行。