微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 分析高可用性系统的硬件和软件设计模式

分析高可用性系统的硬件和软件设计模式

时间:02-03 来源:互联网 点击:

嵌入式系统设计人员经常需要实现那些能在99.999%的业务时间内可靠运行的系统,这意味着一天内系统故障的时间将少于一秒。这些系统称为高可用性系统。高可用性系统的设计通过对冗余硬件和软件进行组合,无需人为干预即可管理故障检测和纠错。本文首先简要回顾了与高可用性系统和故障管理相关的一些概念,然后研究了容错系统的一些硬件和软件设计模式。

故障与失效

在设计高可用性系统时,需要重点关注“故障”和“失效”。为了更好地说明,这里将“失效”定义为系统提供的业务与设计规范不符的情况。故障则是与系统相互作用的一种错误,它是人们通常所指的不期望发生事件的可能原因。因此,故障可能是系统的子系统失效、器件失效、外部系统失效或程序错误。

故障可以是瞬时故障、永久故障或周期性故障。故障一旦发生,将导致系统或子系统的状态出错,而这些错误将引发系统失效。故障处理主要有以下四种主要方法:


1. 故障预测;


2. 故障避免;


3. 故障消除;


4. 容错。

故障预测利用数学模型和试验提供故障及其后果的预估。例如,实际中采用的一种故障预测技术就是在系统中插入故障,研究可能出现的各种系统失效。

故障避免和消除则通过严格的系统、硬件和软件开发工艺及正式规范和验证技术加以实现。

容错通过采用各种冗余系统实现,从而避免了故障影响。“失效弱化”是实现容错的一种方法:即便该方法难以提供整体系统性能,也能提供切合实际的部分功能。“失效保护(fail safe)或失效即停(fail stop)”则是另一种容错方法:当故障发生时,该方法在一个安全状态终止系统,而不让系统继续执行。

容错涉及的主要概念是冗余。容错基于这样的思想(或愿望):多个独立的故障不会同时攻击系统。容错系统应能规避单点失效,换言之,如果系统的某部分可能出现故障,那么系统中应当存在解决该故障的冗余部分,从而避免失效。

冗余具有很多种形式:

1. 硬件冗余(低端、高端或两者兼有);

2. 软件冗余;


3. 时间冗余;

4. 信息冗余。

飞机内的自校验逻辑电路及多台飞行计算机即为典型的硬件冗余。软件冗余可采用两种完全不同的算法,得到的结果也完全相同。时间冗余可以利用通信重传实现,而信息冗余则可采用备份、校验及纠错代码实现。

冗余可以是动态的,也可以是静态的,两者均需复制系统的基本要素。在静态冗余中,同一时刻所有的复制要素均保持激活。如果一个复制“抛出”故障,系统能够马上使用另一复制,并继续正确的操作。在动态冗余中,只有一个复制保持激活,而其余复制则不激活。如果被激活的复制产生故障,先前未被激活的一个复制将被激活并接管临界操作。

那么上述各种方法是如何实现高可用性的呢?首先,必须对高可用性进行定义。高可用性表征系统容错并根据规范继续提供业务的能力。系统可以采用本文给出的所有概念和方法实现高可用性。

可用性通常采用“可用度”或“每年故障时间”进行量度。常规的容错系统可以达到99.99%的可靠度,即相当于每年故障1小时(每天故障10秒钟)。但高可用性系统则有望实现高达99.999%的可用度,即每年故障少于5分钟(简单地说,即每天故障1秒钟)。这意味着当故障出现时,系统必须能自动处理,因为操作人员难以在很短的时间内移除或掩盖任何故障。

硬件冗余

与采用极可用器件构建单个极可用模块的硬件设计相比,使用由常规商业级质量的器件构成的常规商业级质量硬件进行冗余复制模块设计,无疑具有更高的成本效益。

每个复制通常都要求具有“快速失效”或“失效即停”特性,这极大地简化了故障管理决策。每次失效都使硬件在运行中停止,而不是试图勉强执行下去并要求管理人员指出模块中哪些输出发生故障,哪些则一切正常。

对于采用静态冗余的容错,每个复制模块都具有常规的商用可用性。采用双重复制的模式称为配对或双路复用(duplexing)。如果采用了N个复制,则称为N路复用(N-plexing)。

图1显示了3路复用或3重冗余硬件设计,这三重复制均位于方框图的底端附近。这些复制向“表决器”提交输出,表决器决定了子系统的最终实际输出。在N路复用设计中,当N ≥ 3时,表决器通常采用多数决策策略。但是,这需要占不失效复制的绝大多数,而不仅仅是占复制总数(失效和不失效复制)的简单多数。

然而,表决器的硬件和软件不是类似于系统中的任何其他模块,也会失效吗?实际上,确实如此;而且一旦失效,还会给系统带来灾难性的影响。但表决器通常极为简单,因此可以通过设计和测试保证其鲁棒性。此外,还可以设计复杂表决

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top