zoukankan      html  css  js  c++  java
  • 系统可靠性的技术设计

    系统故障模型

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

    可靠性技术设计

    防错技术

    (1)降低复杂度设计

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

    (2)冗余设计

    (3)日志定期定量清理

    (4)备份恢复设计

    (5)日志云端保存

    (6)监控报警

    查错技术

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

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

    实现方式

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

    处理方式

    (1)仅发送日志

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

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

    容错技术

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

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

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

    1.结构冗余

    (1)静态冗余

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

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

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

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

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

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

    2.冗余设计

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

    3.防卫式程序设计 

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

    4. 双机容错

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

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

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

    5. 信息冗余 (校验码)

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

  • 相关阅读:
    解析网页源码方式
    vue踩坑--细节决定成败
    fallowing-travelvue
    学会不怕
    eslint代码规范检测
    三次握手+四次挥手
    小白的学习笔记
    es6数组
    css知识整理
    JavaScript之事件循环,宏任务与微任务
  • 原文地址:https://www.cnblogs.com/leslie12956/p/11522240.html
Copyright © 2011-2022 走看看