[架构之路-180]-《软考-系统分析师》-19- 系统可靠性分析与设计 -2- 容错最重要的技术手段:冗余技术

2023-10-27

目录

1 9 . 3 冗余技术

19.3.1冗余技术的分类

1 . 结构冗余/硬件冗余

2 . 信息冗余(数据冗余)

3 . 时间冗余

4 . 冗余附加

19.3.2 冗余系统与其工作原理


1 9 . 3 冗余技术

提高系统可靠性的技术可以分为避错(排错)技术和容错技术

避错是通过技术评审、系统测试和正确性证明等技术,在系统正式运行之前避免、发现和改正错误。然而,随着系统规模越来越大,结构越来越复杂,以及避错技术自身存在的复杂性和局限性,
避错己远远不能保证系统的可靠性//避错只是基础,但终究无法规避所有的错误!!!

避错是理想!!,容错是现实!!即要拥有理想,也有面对现实!!

另一方面,随着信息系统应用进入一些高可靠性要求的领域,对系统可靠性的要求也越来越高,因此,容错成为提高系统可靠性的重要手段。容错是指系统在运行过程中发生一定的硬件故障或软件错误时,仍能保持正常工作而不影响正确结果的一种性能或措施。

容错技术主要是采用冗余方法消除故障的影响

冗余是容错的最主要技术手段之一!!!

19.3.1冗余技术的分类

冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息、时间、硬件和软件

冗余是容错技术的基础,通过冗余资源的加入,可以使系统的可靠性得到较大的提高。

主要的冗余技术有结构冗余(硬件冗余和软件冗余)、信息冗余时间冗余冗余附加4 种。

1 . 结构冗余/硬件冗余

结构冗余是常用的冗余技术,按其工作方式,可分为静态冗余动态冗余混合冗余三种。

(1) 静态冗余。

静态冗余又称为屏蔽冗余或被动冗余,常用的有三模冗余和多模冗余。

静态冗余通过物理的冗余的多重结构表决比较来屏蔽系统中出现的错误。

例如,三模冗余是对三个功能相同 ,但由不同的人采用不同的方法幵发出的模块的运行结果进行表决,以多数结果作为系统的最终结果。即如果模块中有一个出错,这个错误能够被其他模块的正确结果“屏蔽”。由于无需对错误进行特别的测试,也不必进行模块的切换就能实现容错,故称为静态容错。

(2) 动态冗余。

动态冗佘又称为主动冗余,它是通过故障检测故障定位故障恢复等手段达到容错的目的。

其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。

各备用模块在其待机时,可与主模块-样工作,也可不工作

前者叫做热备份系统(双重系统),后者叫做冷备份系统(双工系统、双份系统)。

热备份系统中,两套系统同时、同步运行,当联机子系统检测到错误时,退出服务进行检修,而由热备份子系统接替工作,备用模块在待机过程中其失效率为0 ;

处于冷备份的子系统平时停机或者运行与联机系统无关的运算,当联机子系统产生故障时,人工或自动进行切换,使冷备份系统成为联机系统。在运行冷备份时,不能保证从系统断点处精确地连续工作,因为备份机不能取得原来的机器上当前运行的全部数据。

(3) 混合冗余。

混合冗佘技术是将静态冗余和动态冗余结合起来,且取二者之长处。

它先使用静态冗余中的故障屏蔽技术,使系统免受某些可以被屏蔽的故障的影响。

而对那些无法屏蔽的故障则采用主动冗余中的故障检测、故障定位和故障恢复等技术,并且对系统可以作重新配置。因此,混合冗余的效果要大大优于静态冗余和动态冗余。然而,由于混合冗余既要有静态冗余的屏蔽功能,又要釘动态冗余的各种检测和定位等功能,它的附加硬件的开销是相当大的,所以混合冗余的成木很高,仅在对可靠性要求极高的场合中采用。

2 . 信息冗余(数据冗余)

信息冗余是在实现正常功能所需要的信息外,再添加一些信息,以保证运行结果正确性的方法。例如,检错码纠错码就是信息冗余的例子。

这种冗余信息的添加方法是按照一组预定的规则进行的。符合添加规则而形成的带有冗余信息的字称为码字,而那些虽带有冗余信息但不符合添加规则的字则称为非码字。当系统出现故障时,可能会将码字变成非码字,于是在译码过程中会将引起非码字的故障检测出来,这就是检错码的基本思想。

纠错码则不仅可以将错误检测出来,还能将由故障引起的非码字纠正成正确的码字。由此可见,信息冗余的主要任务在于研究出一套理想的编码和译码技术来提高信息冗余的效率。

编码技术中应用最广泛的是奇偶校验码、海明校验码和循环冗余校验码

3 . 时间冗余

时间冗余是以时间(即降低系统运行速度)为代价以减少硬件冗余信息冗余的幵销来达到提高可靠性的目的。

在某些实际应用中,硬件冗余和信息冗余的成本、体积、功耗、重量等开销可能过高,而时间并不是太重要的因素时,可以使用时间冗余

时间冗余的基本概念是重复多次进行相同的计算,或称为重复执行(复执),以达到故障检测的目的。
实现时间冗余的方法很多,但是其基本思想不外乎是对相同的计算任务重复执行多次,然后将每次的运行结果存放起来再进行比较。若每次的结果相同,则认为无故障;若存在不同的结果,则说明检测到了故障。不过,这种方法往往只能检测到瞬时性故障而不宜检测永久性的故障

4 . 冗余附加

冗余附加是指为实现上述冗余技术所需的资源和技术,包括程序、指令、数据,以及存放和调用它们的空间等。

19.3.2 冗余系统与其工作原理

在实际应用中,各种冗余技术经常是结合起来使用的。将各种冗余技术融合在一个系统中,就称之为冗余系统

一般來说,一个较为完整的冗余系统,在处理运行中出现的故障时,大致有以下10个步骤:

(1) 故障检测。

故障检测一般可分为两类:联机检测和脱机检测。

前者提供了实时检测的能力,这种检测工作与系统的正常工作同时进行;

后者在进行检测时,系统必须停止正常工作。

( 2 ) 故障屏蔽。

这与故障检测正好相反,它不是将故障检测出来,而是将出现的故障屏蔽起来,使系统不受故障的影响。

( 3 ) 故障限制。

限制故障影响的范围,防止己发生的故障影响到系统的其他部分。

(4) 复执。

这是一种检测瞬时性故障的有效措施,它可以提高系统抗瞬时性故障干扰的能力。

(5) 故障诊断:检测+定位

在故障检测的基础上,对故障进行定位。这对以后的修复、重配置等过程有很重要的意义。

(6) 系统替换重配置

若故障一日.被检出并定位,系统应有能力将发生故障的子系统替换下来,或将故障子系统与其他子系统隔离开来。当故障子系统被替换下来后,系统仍应能保持正常运行,只是系统运行速度下降、功能减弱。这一现象称为系统降级使用。

(7) 系统恢复。

当检测出故障,必要时在系统重配置后即吋消除故障引发的差错。这时,系统应能返回到出现故障断点前的情况继续运行。这个过程称为系统恢复

故障的恢复策略-般有两种,分别是前向恢复后向恢复

前向恢复是指使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况,这需要有错误的详细说明;

后向恢复是指系统恢复到前一个正确状态,继续执行。

它们的一个不同点在丁•,后向恢复简单地把变量恢复到检査点的取值,而前向恢复将对一些变景的状态进行修改和处理,且这个恢复过程将由程序设计者设计;

另一个不同在于,前向恢复适用于吋预见的易定义的错误,而后向恢复可屏蔽不可顶见的错误。

(8) 系统重新启动。

如果系统由于出现过多的故障而造成人量的错误,以至破坏了许多无法恢复的信息时,就不能再使用上述的系统恢复的办法,而必须重新启动

重新启动可分为热启动冷启动

前者是在部分信息遭到破坏且还有一部分可以利用的情况时使用,

而后者则是在几乎所有信息均遭破坏的情况下使用。

(9) 修复。

凡是已确定有故障的子系统必须进行修复。

修复可分为脱机修复联机修复两种。

若要修复的子系统卸下后对系统影响不大,或者修复这些子系统时系统必定会停机,就使用脱机修复。

联机修复是指系统能自动启用备份子系统锊代有故障的子系统,并保持系统继续运行,然后再修复切换下來的故障子系统。

(10) 系统重组合。

当上述各步完成后,系统必须重新组合,以便完全恢复正常运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[架构之路-180]-《软考-系统分析师》-19- 系统可靠性分析与设计 -2- 容错最重要的技术手段:冗余技术 的相关文章

随机推荐

  • [Ubuntu][网络][教程]端口转发以及端口管理

    1 平台介绍 Ubuntu 20 04 LTS Armv7 2 端口管理 进行端口转发之前 要先对端口进行一系列设置 2 1 安装ufw sudo apt install ufw 2 2 开启22端口 开启ufw之后 默认的22端口不会自动
  • 使用python连接数据库并且进行批量添加数据的操作

    1 搭建python的mysql环境 在cmd中进入C Python34 Scripts文件夹 输入pip install PyMySQL即可安装 python的插件安装基本都可以通过pip这个命令实现 2 写一个简单的脚本进行验证 关于p
  • C++ 膨胀与腐蚀(dilate、erode)

    参考 https blog csdn net poem qianmo article details 23710721 膨胀 函数 一般只需输前三个参数 输入图像 输出图像 卷积内核 void dilate InputArray src O
  • 使用canvas制作一个简单的验证码

    上一篇文章 简单的随机乱码生成 验证码生成 HTML 在上一篇文章中使用了随机乱码生成来制作了一个简单的验证码的功能 但是在上一篇文章中 使用的是将内容给到指定的div元素中 本次将内容给到canvas中 使用canvas绘制文字来做一个不
  • 【剑指Offer40】最小的k个数

    题目描述 2021 3 22 输入整数数组 arr 找出其中最小的 k 个数 例如 输入4 5 1 6 2 7 3 8这8个数字 则最小的4个数字是1 2 3 4 示例1 输入 arr 3 2 1 k 2 输出 1 2 或者 2 1 示例2
  • [ IntelliJ IDEA Java开发配置 : 不断完善中]

    推荐在看本文之前先阅读IntelliJ IDEA 官方文档 https www jetbrains com help idea install and set up intellij idea html 1 IDEA版本选择 版本选择 20
  • 服务器命令行常用的指令

    1 进入服务器 ssh p XXXXX 端口号 XXX 202 119 84 91 用户名 IP地址 2 查看当前所在路径里包含的文件 ls 3 查询绝对路径 pwd 4 编辑一个python文件 1 打开文件 vim demo py 2
  • 使用R语言中的scale_size函数调整数据点的大小范围

    使用R语言中的scale size函数调整数据点的大小范围 在R语言中 我们经常需要对数据进行可视化 其中包括调整数据点的大小以传达更多信息 scale size函数是一个非常有用的函数 可以帮助我们调整数据点的大小的度量范围 本文将介绍如
  • 跟hoowa学做智能路由(五):熟悉OpenWRT

    题记 呦呦鹿鸣 食野之苹 我有嘉宾 鼓瑟吹笙 从本章开始 我们要更多的了解系统的特性 以及不论是智能路由还是智能家居 我们用路由器的处理器到底能做多少事情 系统结构 在上一章我们已经完成了刷机工作 这个时候系统进行了首次启动 并且格式化了它
  • 基于“机器学习”的智能聊天机器人---python实现(1)

    本博文以自己课程设计为依托 介绍如何利用python语言编程实现基于 机器学习 的智能聊天机器人 由于本项目是自己首次接触python以及利用计算机编程实现小型项目 中途遇到诸多问题 自己也在其中收获很多 故想写一篇博文记录一下自己课程设计
  • H3C 查看设备路由表

    转载于 https www cnblogs com fanweisheng p 11156750 html
  • 毕业设计-基于深度学习的视觉多目标跟踪

    目录 前言 课题背景和意义 实现技术思路 一 基于深度学习的视觉多目标跟踪 二 基于深度学习的DBT算法 三 基于深度学习的JDT算法 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做
  • mysql快速导入sql文件_MySQL高效导入多个.sql文件方法详解

    MySQL有多种方法导入多个 sql文件 里面是sql语句 常用的有两个命令 mysql和source 但是这两个命令的导入效率差别很大 具体请看最后的比较 还有sqlimport和LOAD DATA INFILE等导入方法 不过它们主要用
  • FreeRTOS学习---“信号量”篇

    总目录 FreeRTOS学习 任务 篇 FreeRTOS学习 消息队列 篇 FreeRTOS学习 信号量 篇 FreeRTOS学习 事件组 篇 FreeRTOS学习 定时器 篇 在 消息队列 篇中 我们曾经埋下一个伏笔 就是说 FreeRT
  • CMSIS-RTOS 信号量

    信号量Semaphores 和信号类似 信号量也是一种同步多个线程的方式 简单来讲 信号量就是装有一些令牌的容器 当一个线程在执行过程中 就可能遇到一个系统调用来获取信号量令牌 如果这个信号量包含多个令牌 线程就会继续执行 同时信号量令牌的
  • 使用 sklearn 进行数学建模的通用模板

    前言 无论是本科和研究生都会有的数学建模含金量还是很高的 下面将介绍一下进行数学建模的一些基本操作方法 这里主要是利用sklearn 进行建模 包括前期的一些数据预处理以及一些常用的机器学习模型以及一些简单粗暴的通用建模步骤 仅代表我自己意
  • 用背景渐变的透明度设置不同颜色的背景渐变

    项目最近这几天正在做不同主题的颜色配置方案 要根据用户输入的颜色来配置整个主题的颜色 让人头疼的是 其中一个主题所有的列表头部背景色都是2到3组渐变值的线性渐变 也就是说 要根据用户输入的颜色值生成不同的但相似度很近的渐变颜色 我上网查了些
  • mysql中explain用法和结果的含义

    explain select from user explain extended select from user id SELECT识别符 这是SELECT的查询序列号 select type SELECT类型 可以为以下任何一种 SI
  • 【ML】使DBSCAN 变得简单 & 如何使用 Scikit-Learn 进行 Python 教程

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • [架构之路-180]-《软考-系统分析师》-19- 系统可靠性分析与设计 -2- 容错最重要的技术手段:冗余技术

    目录 1 9 3 冗余技术 19 3 1冗余技术的分类 1 结构冗余 硬件冗余 2 信息冗余 数据冗余 3 时间冗余 4 冗余附加 19 3 2 冗余系统与其工作原理 1 9 3 冗余技术 提高系统可靠性的技术可以分为避错 排错 技术和容错