首页 >> 通信新闻 >> 滚动新闻 >> 正文
 
软件架构的可靠性设计
http://www.cww.net.cn   2011年1月14日 10:32    通信世界网    
作 者:H3C 王飓

在网络设备软件功能越来越复杂的今天,软件架构的可靠性占有非常重要的地位。没有一个可靠的软件架构,设备的可靠性将无从谈起。本文以H3CComware V7软件平台为例,介绍其采用的软件架构可靠性设计方法。

故障隔离和自愈

软件和Bug是一对伴生的兄弟。在一个庞大的软件系统中,即使是经验再丰富的程序员也无法保证没有任何Bug。硬件设备工作再稳定,如果不幸遇到软件Bug,也会引起异常,设备将无法正常工作。因此,故障隔离和自愈是软件设计中必须要考虑的问题。

故障隔离

故障隔离指在软件发生故障的时候,把故障造成的危害限制在最小范围内。为了达到此目标,Comware V7系统采用了Linux操作系统架构,绝大部分程序都是用户态程序。在Linux系统中,每个用户态程序拥有独立的进程空间,这样,一旦某个程序崩溃,并不会对其他的程序产生影响。我们称这种进程空间独立的架构设计为真正的模块化设计。

举例来说,路由协议中,OSPF是一个独立的用户态程序,IS-IS也是一个独立的用户态程序。运行期间,在某个极其特殊的情况下,OSPF走入某个代码异常分支处理流程,而在这里有一个Bug,运行到这就会引起整个OSPF进程崩溃。但IS-IS作为一个独立的路由协议,拥有独立的进程空间,它的运行不受任何影响,还可以正常运行。

故障自愈

故障自愈是让系统从故障中恢复到正常的工作状态。想要做到自愈,首先要发现错误。Comware V7系统有一套完整的进程运行状态监控机制,可以及时发现某个用户态程序“异常”。其基本工作原理如下

1. 所有的用户态程序都是系统初始化进程SCM(Service Control Manager)的子进程,SCM可以感知所有子进程的状态,一旦发现某个用户态程序崩溃,会主动回收它的资源,然后重新启动一个相同的用户态程序,接替崩溃的程序继续工作。

2. 有时一个用户态程序出了问题,无法正常工作,但还没有达到崩溃的地步,这时Comware系统中另外一套主动检测机制则起作用,过程如图1所示。

图1 进程故障发现与自愈过程

这个特殊的监控程序——Monitor,会周期性的检查各个用户态程序,主动向其他的用户态程序发送查询消息。其他的用户态程序在收到Monitor发来的这个消息后,会进行自检,并将自身的情况回应给Monitor,Monitor根据回复的消息得知某个用户态程序异常。在更为严重的异常情况下,用户态程序无法处理Monitor发来的消息,无法应答,Monitor在一段时间内没有收到应答,则判断这个用户态程序“异常”。

[1]  [2]  [3]  
相关新闻
编 辑:石美君    联系电话:010-67110006-818
分享到新浪微博 分享到搜狐微博 分享到网易微博 分享到139说客 分享到校内人人网 分享到开心网 分享到QQ空间 分享到豆瓣 分享到QQ书签       收藏   打印  进入论坛   推荐给朋友
文章评论查看评论()
昵称:  验证码:
 
重要新闻
通信技术
企业黄页
会议活动