您的位置:首页 > 其它

软件容错设计——软件工程师需要考虑的问题

2012-01-05 13:21 309 查看
分布式处理器的有效性能及交互操作性对计算机设计每个部件的影响日渐增强时,软件容错问题和硬件容错同样不可忽视。对软件容错的需求日益广泛,如服务器、集群、磁盘阵列、相连的台式机和移动设备、网络交换机和路由器、嵌入式系统的多处理器以及片上嵌入式系统的多内容。

目前很多主流的容错措施主要集中在硬件上:如何避免故障,如何让故障迅速恢复到有效状态,如何让软件达到这些目的。

而软件的容错却尚无统一的方法,在嵌入式设计中,有的利用已有的机制预测故障,也有的采取防范性措施或者预先处理潜在问题。

现在一致公认的是如出现故障时,需要采取更强有力的软件措施。操作系统和应用软件需要返回原始状态,而且不丢失关于系统活动、对话及存储器、寄存器内容的信息。

Eternal系统公司的产品开发副总裁介绍说,这不仅是降低系统的中断,或者保证系统的可靠性达到99.999%或99.9999%,而是要使系统在故障发生后能恢复到故障发生时的状态。

Enea嵌入式技术公司的产品营销主管Michael Christofferson认为,合适的软件环境可以在故障发生时,能将系统恢复到处理被中断时的状态。

经过多年发展,各种容错技术层出不穷,其中包括存储器分区、状态检查、被动复制和更多先进的完全有效复制。他们在有效性及使用的广泛程度上千差万别。

大多数台式机、主流大型服务器及很多嵌入式联网设备都采用分区和存储器分割的方法来对抗病毒和有危害的小程序,这种方法被广泛运用,可使系统在发生故障时不会造成严重后果,即使不能回到正常操作状态,也能恢复最起码的所需操作。


包括实时操作系统(RTOS)在内的很多操作系统都嵌入了状态检查机制。这些机制通过镜像应用程序及资源和相应的事务状态信息来跟踪应用程序的状态。

应用程序管理器定期收集缓存数据、各种表及正在进行的进程等信息。如果应用程序出现故障是,可启动保存有检查点信息的冗余应用程序。

检查点对系统的影响取决于其使用的广度和频率,可能会显著增加程序大小,并影响系统性能和响应时间。如果每次应用程序运行时都进行检查点操作并启动一个新进程,会导致系统中断。因此,需要确定这项技术的使用频率以及何时使用。

Eternal Logic的Ratner称在企业级计算和按需进行效用计算的产品中,系统设计师们正致力于设计采用检查点和更复杂的基于复制的系统,在这样的系统中,每个应用程序都有一个以上与原状态一致的拷贝。

他们利用系统的内部进程间通讯(IPC)向应用程序和活动广播所有信息。为了确保应用程序不间断并保持产生的信息,每个复制的信息必须镜像应用程序的活动。如果系统出现故障,如果希望系统不中断或状态信息不丢失的话,仅需改变最新的备份即可。

PolyCore软件公司董事长兼CEO Sven Brehmer认为,在备份和状态检查中,有效的IPC都是非常重要的,因为在这样的系统中应用程序和系统信息拷备之间的通讯需要使用IPC的信息传递。

但IPC还向所有事务提供通用网关或接口,用于与应用程序及当前状态相互通讯。每个拷贝都采用完全相同的方法接收应用程序的信息和事务,并作出反应。


Objective Interface系统公司高级副总裁Joseph Jacob说,成本也是一方面因素。在大型企业及网络和互联网的分布系统中,这涉及到成本与需要保存信息的价值及所发生事务的重要程度的关系。但对大多数应用程度而言,这不仅是经济问题,也会影响系统性能。在嵌入式系统中,即使很少用这个技术,代价也是不菲的。

软件故障的可恢复性对自动的按需效用计算是非常重要的,可靠性和正常运行时间甚至超过99.99%或99.999%,从而推动Uxcomm和Eternal等软件公司和EMC、惠普及Sun等硬件公司将基于复制的架构与各种技术结合起来,实现自我管理和自我监视、自我诊断及自我修复。

QNX软件公司操作系统开发组主管Sebastian Marineau认为,向分布式计算系统的全面推进具有深远的影响,无论是大型企业或网络系统,还是仅数平方毫米的片上系统,不仅需要广泛使用这些技术,而且必须考虑如何改进实时及确定性响应的有效性。

Eternal Logic的Ratner认为现在需要的是与操作系统及硬件平台无关的软件可恢复性架构,以及软件的可升级性。

尽管采用XML/Java代理方法的Uxcomm及基于复制/检查点的Duration架构的Eternal公司都致力于高端Linux、Unix和Windows服务器集群程序,他们都准备升级到更复杂的刀片式服务器阵列和很多嵌入式联网产品。

Ratner说我们基本按照市场的导向发展,现在嵌入式产品对这种容错恢复框架要求最大,服务器产品也有类似的需求。

Object Management集团(OMG)颁布的FT Corba标准是一种可升级的通用平台。它指定了一套接口用于容错对象和基本复制、保持分布计算环境中复制一致性的记录和恢复机制。

尽管UC Santa Barbara和卡内基梅隆等研究所的研究人员已经开发了FT Corba插件用于分布制造控制系统的实时应用,OMG仍然需要努力将这些机制推向标准化轨道。在传统IT领域以外对这种可升级的软件容错恢复系统也有需求,OMG的成员正在朝这个方向努力。

据Quadros系统公司的Barrett称,嵌入式系统的这种框架在很多RTOS的进程间通讯协议间不是自上而下的,而是自下而上的。像采用Element的QNX和Enea及使用PloyMessenger的Polycore已经将这种平台的实现通用化,可作为通用应用程序编程接口(API)框架,适合在多内核和多进程环境下使用。这些也将应用于容错恢复。

Polycore的Brehmer看法一致,他认为在很多分布嵌入式系统和多内核设计中,一个性能足够稳定的IPC信息传输框架可增强软件故障容错性。

Barrett称可成为这样软件容错性的标准是透明进程间开放源协议。TIPC已经成为分布式Linux系统间进程交互的标准机制。Wind River系统还使用该机制作为其VxWorks RTOS和分布式网络的中间件IPC机制。

但是Barrett提醒说,目前尚不清楚它能否用于路由器处理器板间或主板处理器间。我们在将之用于通用软件容错恢复框架之前,挑选出该层会出现的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐