什么是容错
所谓容错,就是允许系统出现某些特定的硬件故障或软件错误,而系统仍然能够执行规定的一组程序。
容错的分类
容错基本技术本质上是冗余及其管理、故障检测与诊断和系统状态的维护与恢复。按故障处理方式不同可分为:故障检测、故障屏蔽和动态冗余。按形式可分为硬件容错和软件容错。
1.故障检测技术
故障检测是检测故障和定位故障的技术。衡量检测技术的主要指标是检测覆盖率,即任意一个故障检测到的概率。检测技术也包括了诊断,衡量诊断技术的指标是诊断分辨率,即故障定位的精确程度。
2.故障屏蔽
故障屏蔽的基本思想是利用多个部件或系统以固定的结构和运行方式同时执行相同的功能,利用多个一致的结果来屏蔽某些故障。
3.动态冗余
故障检测技术是提供了故障警告和故障定位的一种手段,但是它不能改进系统的可靠性。故障屏蔽技术允许系统在发生故障的情况下能够正确运行从而提高了系统的可用性,但故障屏蔽受到本身静态配置的限制,当故障积累到使故障屏蔽能力饱和时,整个系统就会失效。
增加系统可靠性的另一种方法是按动态方式利用冗余。动态冗余的基本思想是:系统不仅能保证故障的屏蔽,而且还要进行故障定位并自动切换故障子系统或改变系统的结构,不让故障部分的积累造成系统的误动作。动态冗余以高覆盖率,快速响应的故障检测与诊断技术为基础,它不仅使系统的可靠性大大提高,而且极大地缩短了故障部分的修复时间,使系统的可用性也大大提高,所以动态冗余是容错计算技术中最主要和常用的技术,也是最复杂的技术。
4.硬件容错的特点
全部容错功能由硬件实现,软件设计者不必为排错而在自己的程序中设置检查点及其它额外开销,大大简化了软件设计工作,提高了效率,而且硬件设计采用模块化设计,具有可扩充性、可维护性。对建立在硬件基础上的容错计算机系统来说,在故障发生后,负荷调整并不重要。应用系统内逻辑上可用元件数目不变,由于硬件重复,无故障硬件继续工作,服务无需中断。其缺点是成本较高。
5.软件容错的特点
建立在软件基础上的容错计算机,在硬件上强调模块化简单化,只提供冗余的资源,全部容错技术由专门软件实现并由操作系统进行管理。在故障发生后,一般要进行负荷调整,应用系统需要在剩余的硬件上重新分配,这种负荷调整必须根据发生故障后剩下的可用硬件进行,而当坏的部件修复后,系统同样需要负荷调整利用软件实现调整,速度往往鞍慢。另外还要设置检查点以及其它额外开销,所以一旦容错系统出现故障,其性能必然要降低但是,由于硬件的迅速发展,性能不断提高,可以在一定程度上弥补这些缺陷,同时软件容错具有不依赖硬件,灵活性、可移植性好。