系统可靠性分析与设计
...约 1273 字大约 4 分钟
可靠性相关基本概念
可靠性与可用性
- 系统可靠性:是系统再规定的时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率
- 系统可用性:是指在某个给定时间点上系统能够按照需求执行的概率
- 论文一般偏向可靠性,案例一般偏向可用性
- 提高可靠性需要强调减少系统中断(故障)的次数,提高可用性需要强调减少从灾难中恢复的时间
软件可靠性与硬件可靠性的差异
软件可靠性 ≠ 硬件可靠性
- 复杂性:软件复杂性比硬件高,大部分失效来自于软件失效
- 物理退化:硬件失效主要是物理退化所致,软件不存在物理退化
- 唯一性:软件是唯一的,每个 Copy 版本都一样,而两个硬件不可能完全一样
- 版本更新周期:硬件较慢,软件较快
系统可靠性分析
可靠性指标
- 平均无故障时间(MTTF):MTTF = 1/λ,λ 为失效率
- 平均故障修复时间(MTTR):MTTR = 1/μ,μ 为修复率
- 平均故障间隔时间(MTBF):MTBF = MTTR + MTTF
- 系统可用性:平均无故障时间/平均故障间隔时间 x100%,即 MTTF/(MTTR + MTTF)x100%
在实际应用中,一般 MTTR 很小,所以通常认为 MTBF≈MTTF
串联系统与并联系统
混合系统
系统可靠性设计
处理故障的步骤
- 故障检测
- 故障屏蔽
- 故障限制
- 复执故障诊断
- 系统重配置
- 系统恢复
前向恢复
:使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况- 前向恢复适用于可预见的易定义的错误
- 前向恢复将对一些变量的状态进行修改和处理,且这个恢复过程将由程序设计者设计
后向恢复
:系统恢复到前一个正确状态,继续执行- 后向恢复可屏蔽不可预见的错误
- 后向恢复简单地把变量恢复到检查点的取值
- 系统重新启动
- 修复系统重组合
软件容错
N 版本程序设计
- 与通常软件开发过程不同的是,N 版本程序设计增加了三个新的阶段:相异成份规范评审、相异性确认、背对背测试
- N 版本程序的同步、N 版本程序之间的通信、表决算法(全等表决、非精确表决、Cosmetie 表决、一致比较问题、数据相异性)
恢复块方法
- 设计时应保证实现主块和后备块之间的独立性,避免相关错误的产生,使主块和备份快之间的共性错误降低到最低程度
- 必须保证验证测试程序的正确性
N 版本程序设计与恢复块方法的区别
恢复块方法 | N 版本程序设计 | |
---|---|---|
硬件运行环境 | 单机 | 多机 |
错误检测方法 | 验证测试程序 | 表决 |
恢复策略 | 后向恢复 | 前向恢复 |
实时性 | 差 | 好 |
防卫式程序设计
- 对于程序中存在的错误和不一致性,通过在程序中包含错误检查代码和错误回府代码,使得一旦错误发生,程序能撤销错误状态,恢复到一个已知的正确状态中去
- 实现策略:错误检测、破坏估计、错误恢复
双机容错
- 双机热备模式:主系统运行、备用系统停机,心跳连接
- 双机互备模式:同时提供不同的服务、心不跳则接管
- 双机双工模式:同时提供相同的服务,集群的一种
集群技术
集群系统对比高性能主机系统的优点:
- 可伸缩性
- 高可用性
- 可管理性
- 高性价比
- 高透明性
Powered by Waline v3.2.2