系统架构设计师教程 第9章 9.4 软件可靠性设计 笔记

9.4 软件可靠性设计 ★★★★★

软件可靠性设计技术主要有容错设计、检错设计和降低复杂度设计等技术。

9.4.1 容错设计技术

常用的软件容错技术主要有恢复块设计、N 版本程序设计和冗余设计3种方法。
1)恢复块设计
一个恢复块包含有若干个功能相同、设计差异的程序块文本,每一时刻有一个文本处于运 行状态。一旦该文本出现故障,则用备份文本加以替换,从而构成“动态冗余”。软件容错的恢 复块方法就是使软件包含有一系列恢复块。
2 ) N版本程序设计
N 版本程序的核心是通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操 作结果,实行多数表决,防止其中某一软件模块/版本的故障提供错误的服务,以实现软件容 错。为使此种容错技术具有良好的结果,必须注意以下两个方面。
(1)使软件的需求说明具有完全性和精确性。
(2)设计全过程的不相关性。它要求各个不同的软件设计人员彼此不交流,程序设计使用 不同的算法、不同的编程语言、不同的编译程序、不同的设计工具、不同的实现方法和不同的 测试方法。
3)冗余设计
实现的原理是在一套完整的软件系统之外, 设计一种不同路径、不同算法或不同实现方法的模块或系统作为备份,在出现故障时可以使用 冗余的部分进行替换,从而维持软件系统的正常运行。
冗余技术设计软件额外费用低,但运行时空间、时间会有所增加。

9.4.2 检错技术

采用检错设计技术要着重考虑几个要素:检测对象、检测延时、实现方式和处理方式。
(1)检测对象:包含两个层次,即检测点和检测内容。在设计时应考虑把检测点放 在容易出错的地方和出错对软件系统影响较大的地方;检测内容选取那些有代表性的、易于判 断的指标。
(2)检测延时:从软件发生故障到被自检出来是有一定延时的,这段延时的长短对故障的处理是非常重要的。因此,在软件检错设计时要充分考虑到检测延时。
(3)实现方式:最直接的实现方式是判断返回结果,如果返回结果超出正常范围,则 进行异常处理。计算运行时间也是一种常用的技术,如果某个模块或函数运行超过预期的时间, 可以判断出现故障。另外,还有置状态标志位等多种方法,自检的实现方式要根据实际情况来 选用。
(4)处理方式:大多数检错采用“查出故障一停止软件系统运行一报警”的处理方式,但 也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。

9.4.3 降低复杂度设计

降低复杂度设计的思想就是在保证实现软件功能的基础上,简化软件结构,缩短程序代码长度,优化软件数据流向,降低软件复杂度,从而提高软件可靠性。

9.4.4 系统配置技术

通常在系统配置中可以采用相应的容错技术,通过系统的整体来提供相应的可靠性,主要有双机热备技术和服务器集群技术。
1)双机热备技术
一种软硬件结合的较高容错应用方案。该方案是由两台服务器系统和一个外接共享磁盘阵列柜和相应的双机热备份软件组成。
操作系统和应用程序安装在两台服务器的本地系统盘上,整个网络系统的数据是通过磁盘阵列集中管理和数据备份的。用户的数据存放在外接共享磁盘阵列中,在一台服务器出现故障时,备机主动替代主机工作,保证网络服务不间断。
双机热备系统采用“心跳”方法保证主系统与备用系统的联系。所谓“心跳”,指的是主从 系统之间相互按照一定的时间间隔发送通信信号,表明各自系统当前的运行状态。一旦“心跳” 信号表明主机系统发生故障,或者备用系统无法收到主机系统的“心跳”信号,则系统的高可 用性管理软件认为主机系统发生故障,立即将系统资源转移到备用系统上,备用系统替代主机 工作,以保证系统正常运行和网络服务不间断。

双机热备方案中,根据两台服务器的工作方式可以有3种不同的工作模式,即:双机热备模式、双机互备模式和双机双工模式。
(1)双机热备模式,即常说的Active/Standby方式, Active 服务器处于工作状态;而 Standby服务器处于监控准备状态,服务器数据包括数据库数据同时往两台或多台服务器写入 (通常各服务器采用 RAID磁盘阵列卡),保证数据的即时同步。当 Active 服务器出现故障的时 候,通过软件诊测或手工方式将 Standby机器激活,保证应用在短时间内完全恢复正常使用。 这是目前采用较多的一种模式,但由于另外一台服务器长期处于后备的状态,就存在一定的计 算资源浪费。
(2)双机互备模式,是两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当 某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而 保证了应用的持续性,但对服务器的性能要求比较高。
(3)双机双工模式是集群的一种形式,两台服务器均处于活动状态,同时运行相同的应用,以保证整体系统的性能,也实现了负载均衡和互为备份,通常使用磁盘柜存储技术。Web服务器或FTP服务器等用此种方式比较多。

2)服务器集群技术
集群技术是指一组相互独立的服务器在网络中组合成为单一的系统工作,并以单一系统的模式加以管理,为客户提供高可靠性的服务。
集群内各结点服务器通过内部局域网相互通信,当某结点服务器发生故障时,其上所运行的应用程序将在另一结点服务器上被自动接管。当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。当以上的任一故障发生时,客户都将能很快连接到其他应用服务器上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值