系统可靠性的技术设计

系统故障模型

逻辑级的故障模型,数据结构级的故障,软件故障和软件差错,系统级的故障

 

可靠性技术设计

防错技术

(1)降低复杂度设计

保证实现软件功能的基础上,简化软件结构

(2)冗余设计

(3)日志定期定量清理

(4)备份恢复设计

(5)日志云端保存

(6)监控报警

 

查错技术

采用“查出故障,停止软件运行,报警”的实现方式,根据故障的不同情况,采用不停止或部分停止软件系统运行。

检错技术实现的代价低于容错技术,但缺点是不能自动解决故障,需要人工干预。一般公司都会把差错和容错一起进行。

实现方式

判断返回结果;计算运行时间;自检法(置状态标志位)

处理方式

(1)仅发送日志

(2)发送日志和告警,停止运行,需人工干预

(3)发送日志和告警,自动恢复到某一状态,继续运行,不需人工干预

 

容错技术

处理故障的步骤:故障检测,故障屏蔽,故障限制,复执,故障诊断,系统重配置,系统恢复,系统重新启动,修复,系统重组合

前向恢复:使当前的计算继续下去,把系统恢复成连贯的继续状态,弥补当前状态的不连贯情况。将对一些变量的状态进行修改和处理,且这个恢复过程将由程序设计者设计,适用于可预见的易定义的错误。

后向恢复:系统恢复到前一个正确状态,继续执行。简单的把变量恢复到检查点的取值,适用于可屏蔽的不可预见的错误。

1.结构冗余

(1)静态冗余

N版本程序设计 - 通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果进行多数表决。

其中N版本的程序由不同的人独立设计,使用不同的方法,设计语言,开发环境和工具来实现。

(2)动态冗余 (主动冗余)

恢复快设计方法 - 选择一组操作作为容错设计单元,从而把普通的程序块变为恢复块。一个恢复块包含若干功能相同,设计差异的程序块,每一时刻有一个程序块处于运行状态,一旦某程序块出现故障,则用备份程序块予以替换。

设计时应保证主备间的独立性,避免相关错误的产生,使主备间的共性错误降到最低

按照备用模块在待机时是否与主模块一起工作分为热备份系统(双重系统),冷备份系统(双工系统,双份系统)。

2.冗余设计

采用多种不同路径,不同算法,不同实现方法的模块或系统作为备份,在出现故障时进行替换,维持系统的正常运行。

3.防卫式程序设计 

通过程序中包含错误检查代码和错误恢复代码,使得一旦错误发生,程序能撤销错误状态,恢复到一个已知的正确状态中去。

4. 双机容错

双机热备模式:主系统,备系统

双机互备模式:同时提供不同的服务,主故障,则接管

双机双工模式:同时提供相同的服务,集群的一种

5. 信息冗余 (校验码)

6. 时间冗余 (重复多次相同的计算)

posted on   公元12956  阅读(548)  评论(0编辑  收藏  举报

编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示