高可靠性设备设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
水木清华 -- 文章阅读 [讨论区: Circuit]
发信人: yueyar (强身健体....), 信区: Circuit
标 题: 如何设计高可靠性的设备(转载)
发信站: BBS 水木清华站 (Tue Sep 3 16:07:16 2002), 站内信件
转自ednc。
如何设计高可靠性的设备
作者:Warren Webb,技术编辑
由于用户开始放心地让电子设备去收集关键信息和进行实时事务处理,对超可
靠系统的需求正在从企业级扩展到整个嵌入系统领域。
随着当今嵌入设计中应用日益复杂,容错和可用性高业已成为标准的系统要求
。最可靠设备的典型技术规范要求正常运行时间达到99.999%,航天、医疗、汽车
和电信领域的有些用户认为这样的性能水平也是不能接受的。嵌入系统设计师认为
,尽管因故障而停机会付出高昂的代价,甚至可能威胁人的生命安全,但是所有系
统随时都会出现故障。高可用性系统设计的高明之处在于经济地处置不可避免的故
障,从而确保不中断基本的嵌入功能或服务,或者将这种中断减至最少程度。
虽然任何一个嵌入系统都是旨在完成某一项任务或为用户提供某一种服务而设
计的,但是高可用性系统被称为对任务、对收益或对安全起关键作用的系统,以表
明其可靠性的重要意义。一个系统的可用性通常用它所提供的服务来表述;你中断
这些服务,可能有种种原因,例如:硬件故障;操作系统故障;应用软件故障;操
作员出错;外部影响,如断电;以及计划中的维修。高可用性系统采用了各种内置
技术,以便在这些硬件或软件发生故障时仍然能够连续地提供服务。
可用性是系统可靠性和恢复运行所需要时间的函数。换一种说法,可用性就是
某种服务或系统随时可以使用的概率。可靠性是系统的连续正常运行时间的测度,
通常以平均无故障工作时间(MTBF)来表示。硬件制造商根据某一产品或系统中所
用部件的统计故障率来推导出MTBF的理论计算值。MIL-HDBK-217 和 Bellcore
TR-332是人们公认的用来进行硬件可靠性预测的标准中的两种。可用性的第2个要
素是在发生故障后使一个系统恢复正常运行所需要的时间。这一修复时间又称平均
修复时间(MTTR)。即使一个系统频繁地出故障,只要你能够快速地使它恢复工作
,该系统仍然具有很高的可用性。可用性的表达式为:
可用性 = 平均无故障工作时间 / (平均无故障工作时间+平均修复时间)
。
即 可用性=MTBF/(MTBF+MTTR)。
如果系统能够在99.999 % 时间里提供不间断的服务,则一般称该系统为高可
用性系统。99.999%,常常称为“五个9”,相当于每年的停机时间大约5分钟。有
些
新的通信交换设备规范则要求“六个9”,即99.9999 %,也就是说每年的停机时
间约30秒钟。
延长平均无故障工作时间
提高可靠性的最基本方法之一是审查你的系统中各个电路的设计。只要保证你
的设计中所有的元器件在其规定的工作范围内正常工作,就能消除许多故障。改进
可靠性的另一种方法是用牢固的固态器件取代故障率较高的器件,如旋转式存储器
。你可以在设计交付生产之前使用电路仿真工具来发现未被怀疑的高应力元件。另
外,你也可以通过改善电路的冷却方法和加大空气流量来帮助散热,从而延长平均
无故障工作时间。在将系统投入运行之前,通过极端温度、湿度和震动等形式的环
境应力试验筛选,也可以发现早期的故障。
除了认真仔细地设计电路以外,你可以采用容错技术,以便你的系统存在故障
时仍可继续工作。对于硬件来说,只要给系统增加备份元件就可实现容错。备份的
最基本方法就是给系统增加一个部件。所增加的部件到主部件出故障时才工作,这
种方法被称作“备用”或“带电备份”。这种系统需要一个电路或软件来确定哪些
部件在工作,哪些部件是备用的。负载共享是备用系统的延伸,它使用冗余硬件来
提供部分服务。采用此方式时,如果所有部件都正常工作,则系统提供某一等级的
服务;如果其中一个冗余部件出现故障,则系统提供较低等级但仍然令人满意的服
务。实现高可用性的另一种经典方法,是利用两个或3个同样的电路,并用最后检
查的办法来比较每个电路的结果。如采用两个电路,则要识别出故障;如采用3个
电路,则只要使用两个电路的相一致的结果,就可以继续运行。
在设计冗余部件时,你必须考虑故障的范围,以保证一个故障不会导致备用部
件也无法工作。有几种故障会影响多块电路板,因为与背板信号直接有关的任何故
障可能会中断所有的数据传输。基于总线的系统中出现的故障,就是这几种故障的
主要实例。系统供应商采用两块背板和自动切换装置来解决总线类型的故障。譬如
,SBS技术公司出产的Cascade II 高可用性电信系统使用了两台单板计算机、一个
看门狗报警模块、可热插拔的备份电源以及两条独立的64位、33 MHz Compact PCI
总线(图1)。
群集计算
如果你的高可用性系统恰好是一个完整的计算机系统,如一个提供信息交付服
务的服务器,你就可以将多个系统组合成一个群集器,由此来提高可靠性。群集器
也可以通过将计算负载分配给多个节点,来提高一个系统的性能。管理软件自动地
将出现故障的节点从群集
器中撤除,并将计算任务转交给另一个节点。这样,整个
群集器继续提供所需要的服务,但是其性能水平有所降低。这种群集器方式的一个
优点是,单个计算机系统可以是低成本的现成设备,并成为整个群集器中的各个节
点。虽然现在有许许多多商用群集软件产品,但你也可以通过Linux高可用性工程
() 获得建立一个低成本高可靠性群集服务器所需要的每一步指
令。这个开放性软件工程提供Heartbeat,这是一个Linux附件,用于在群集系统中
进行自动资源分配、系统监控和IP地址管理等任务。
编码方案是提高数据处理系统可靠性的另一种重要方法。奇偶校验位和循环冗
余码校验(CRC)字节都给数据流增加冗余信息,以检测字或块的差错。这样,通
信系统可以增加基于时间的冗余度,亦即接收机检测到一个差错,发射机就重发某
个消息。高可靠性系统也可以采用自纠错编码,即给数据流增加足够的冗余信息,
一旦在传输过程中丢失信息,接收机就可以恢复原数据。
当一个系统发生故障时,你的第一个念头是寻找硬件故障。然而,由于当今的
系统很复杂,问题很可能就是软件故障。实际上,在设计高可用性系统时,你在分
析软件可能出现故障上所花费的时间应当与分析硬件故障上花费的时间一样多。软
件可靠性与硬件可靠性的不同之处在于软件可靠性不会随时间的推移而降低。事实
上,软件通常随时间的推移而更加可靠,因为程序错误会被人们所识别并得到改正
。与硬件故障不同,软件故障基本上都是设计错误,更难发现和改正。
如果你能用多种方法来实现软件的各个组成部分,那你也可以使用冗余技术来
实现容错。因为大多数软件错误只在某些定时或加载的条件下出现,而这些错误在
验证测试时并没有显露出来,因此,高可用性软件开发单位有时会指派两个或两个
以上的独立设计小组去实现同一代码。形式多样的容错技术,尽管有五花八门的名
称,如恢复程序块、N版本编程和N自检验编程,但都试图利用设计的多样性来达到
对软件的完全容错性。
最广泛使用的软件容错方法是将计算负载分配给联网或群集的多台机器。分布
式应用软件程序依赖于中间件(例如Object Management Group公司供应的CORBA)
来实现位置的独立性。CORBA这一缩略语代表一种开放的、与厂商无关的体系结构
和基础设施,各种应用软件可以利用它在网络上协同工作。一个基于CORBA的程序
,不管是由哪个供应商提供,在何种计算机上运行,使用何种操作系统和编程语言
,都可以通过网络与任何供应商提供的、在
另一台使用标准协议的计算机上运行的
一个同样基于CORBA的程序互操作。
容错技术的另一个考虑因素是切换到备用系统并继续工作所需要的等待时间。
许多在线设备和电话设备规定恢复时间小于100 ms。如果每个分系统都是容错的,
那就比较容易研制出故障恢复和等待时间要求最为严格的系统。譬如,一些较新型
的系统在采用容错技术的同时使用了InfiniBand交换组织体系结构来连接单个分系
统(附文:《InfiniBand:一种自癒式系统互联组织》)。
启用中间件
大多数高可用性系统还使用中间件软件来进行故障管理。设计师使用硬件或软
件性能监控技术(如数据范围检查、校验和、冗余电路比较和看门狗超时等),来
检测高可用性系统中的故障。发现故障后,诊断阶段将某个分系统的故障隔离开来
,之后你可以将该分系统关掉或更换。有多少个设计师,就有多少种故障排除技术
,但是几种较常用的方法是故障接替(failover)、负载平衡,软件更换和重新引
导。就硬件故障而言,故障管理的最后一步是更换出故障的部件,把故障排除从而
系统修复。Go-Ahead软件公司的SelfReliant 2.0软件是现成的商用软件产品的一
个实例,它可用来提高嵌入级和企业级系统的可靠性(图2)。该产品是在一个操
作系统上面的中间件层,能对关键性硬件、操作系统、其它中间件、应用软件和群
集器进行管理,以保证容错性和高可用性。SelfReliant能自动检测故障,完成预
先规定的动作,使系统的正常工作时间达到或超过99.999%并保持服务的连续性。
嵌入式实时操作系统也已开始引入高可用性功能,用于调度和资源控制。Wind
River Systems公司业已为其产品VxWorks实时操作系统提供Foundation HA的扩展
版,该软件提供故障通知以及一个设备管理系统,使你能够在系统运行时增加设备
部件、撤除设备部件和重新配置设备(图3)。硬件管理功能包括“热插拔”和“
中央处理器故障接替”,前者让你在其它输入/输出卡继续工作的情况下撤除和更
换背板中的外设;而后者可以支持在不重新启动系统的情况下从出故障的中央处理
器带电切换到备用中央处理器(图4)。
许多高可用性系统太大太复杂,一家厂商生产不了。这些系统往往是由多家厂
商提供的部件组成。若干行业组织正在其成员公司内部推广高可用性系统和服务,
并将其标准化。高可用性论坛旨在实现高可用性部件的接口和功能的标准化(参考
文献1)。该论坛的成员包括英特尔公司、惠普公司、摩托罗拉公司和RadiSys公司
。服务可用性论坛()正在设法促使业
界采用开放式接口规范。当
完全不同的、专用的部件在基于分组的多服务网络中互连时,这些规范可为软件、
硬件和服务供应商带来诸多好处。
那么,在高可用性系统中下一个目标是什么呢?支持CompactPCI的组织PICMG
正在为制造下一代高端电信级设备制定一系列新规范,这套规范将可靠性提高到“
六个9”。被称作AdvancedTCA的新体系结构是面向交换结构技术,而不是面向普通
的并行总线结构的设备。该规范将允许电路板、背板和机壳制造商独立地为明天的
高可用性系统研制可以互操作的产品。
图1
SBS技术公司的Cascade II高可用性系统有两条CompactPCI背板总线,可用作
通电备用或全冗余选件。
图2
Go-Ahead软件公司的SelfReliant 2.0是一个中间件层,它为高可用性系统用
于管理硬件、操作系统、应用软件和群集器。
图3
Wind River Systems公司的VxWorks实时操作系统的Foundation HA的扩展版,
支持对数据和服务至关重要的嵌入式产品。
图4
One Stop Systems公司生产的系统监控热插拔CompactPCI板,能实时地监控系
统温度、电源和风扇的变化,价格约为995美元。
技术纵横__2002年08月30日
--
缘来缘往,缘起缘灭。
其实,从大处看来,缘是不来不往,不起不灭。
缘总在我们四周,我们也总在缘的里面。 [刘墉]
※ 来源:·BBS 水木清华站 ·[FROM: 166.111.61.133]
[分类讨论区][全部讨论区][上一篇][本讨论区][下一篇][同主题阅读]