目录
系统可靠性是指系统在规定的时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。
-
规定时间
我们一般用系统的执行时间来算,这样比较准确。
-
规定的条件
规定条件,一般是指软件的运行环境。在不同的环境下,软件的可靠性是不同的。有了明确的环境条件,我们就可以有效的判断软件系统是否失效,责任方是在用户方还是开发方。
-
所要求的的功能
要求的功能不一样,软件的运行情况会有所区别,其可靠性也不同。所以要准确度量软件系统的准确性,必须先明确它的任务和功能。
1. 系统故障模式
系统故障时只由于部件失效、环境的物理干扰、操作错误、不正确的设计引起的硬件或软件中的错误状态。表现形式有:
永久性、间歇性、瞬时性 。
对故障的表现进行建模,可以建立4个级别的故障模型:
-
逻辑级的故障模型:固定性故障、短路故障、开路故障、桥接故障。
-
数据结构级的故障:故障在数据结构上表现为差错。常见的差错:独立差错、算数差错、单向差错。
-
软件故障和软件差错:软件故障指软件设计过程造成的与设计说明不一致,软件故障在数据结构或程序输出中的表现成为软件差错。
-
系统级的故障模型:在系统级上表现为功能错误,即系统输出与系统设计说明的不一致。
2. 系统可靠性模型
与系统故障模型对应的就是系统可靠性模型,常见有3种
-
时间模型
-
故障植入模型
-
数据模型
3. 可靠性指标与评估
3.1 可靠性指标
-
平均无故障时间
-
平均故障修复时间
-
平均故障间隔时间
3.2 可靠性计算
-
串联系统
假设一个系统由n个子系统组成,当且仅当所有子系统都能正常工作,系统能正常工作。
设系统中各个子系统的可靠性分别用R1,R2,...,Rn表示,各个子系统的失效率分别为L1,L2,L3,...,Ln。
可靠性:R = R1 * R2 * R3 * ... * Rn
失效率:L = L1 + L2 + ... + Ln
-
并联系统
在一个由 n 个模块(部件)构成的系统中,只要有一个模块可运行, 系统就可运行。
可靠性:R = 1 - (1 - R1)* (1 - R2) * (1 - R3) * ... * (1 - Rn)
-
模冗余系统
4. 可靠性设计
提高计算机可靠性的技术有避错技术、容错技术 。避错是预防和避免系统在运行中出错,例如:软件测试就是一种避错技术;容错是指系统在某一组件故障存在的情况下不失效,仍能够正常工作的特性,例如:冗余组件设计。
4.1 冗余技术
-
结构冗余
-
静态冗余:三模冗余、多模冗余
-
动态冗余:多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用模块替换它重新运行。
-
混合冗余:兼有静态冗余和动态冗余的好处。
-
-
信息冗余
实现正常功能所需要的信息外,再添加一些信息,以保证运行结果的正确的方法。例如:纠错码。
-
时间冗余:使用附加一定时间的方法来完成系统功能,这些附加时间主要用在故障检测、复查、故障屏蔽上。
-
冗余附加技术
为实现上述冗余所需要的资源和技术,包括程序、指令、数据、存放和调用他们的空间和通道等。
系统一旦发生故障,就需要采用某种方法进行恢复。故障的恢复策略一般有前向恢复和后向恢复。前向恢复时指当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况,这需要有错误的详细说明;后向恢复时指系统恢复到前一个正确状态,继续执行,这种方法显然不适合实时处理场合。
4.2 软件容错
软件容错的主要目的是提供足够的冗余信息和算法程序,使系统在实际运行时能够及时发现程序设计错误,采取补救措施。
-
恢复块程序
恢复块方法是一种动态的故障屏蔽技术 ,采用向后恢复策略 。提供具有相同功能的主块和几个后备块,一个块就是一个执行完整的程序段,主块首先投入运行,结束后进行验证测试,如果没有通过验证测试,系统经现场恢复后由一后备块运行,直到可以耗尽所有后备块。
设计时应保证实现主块和后备块之间的独立性,避免相关错误的产生,使主块和后备块之间的共性错误降到最低。
-
N版本程序设计
一种静态的故障屏蔽技术 ,采用向前恢复策略 。其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N份程序必须由不同的人独立设计,使用不同的方法,不同的设计语言,不同的开发环境和工具来实现。
-
防卫式程序设计
一种不采用任何一种传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计的基本思想是通过在程序中包含错误检查代码 和错误恢复代码 ,使得一旦发生错误,程序能撤销错误状态,恢复到一个已知的正确状态。其实现策略有错误检测、破坏估计、错误恢复 3个方法。典型的防卫式程序设计:try {} catch {}
-
其它技术:限流,熔断,服务降级
4.3 集群技术
利用多台服务器,提供更稳定的服务。包括负载均衡集群等。
-
集群分类
-
高性能计算科学集群
-
负载均衡集群
-
高可用集群
-
-
集群硬件配置
-
镜像服务器双机
-
双机与磁盘阵列柜
-
光纤通道双机双控集群系统
-
参考
-
《系统架构设计师》
关于作者:
犇叔,浙江大学计算机科学与技术专业,研究生毕业,而立有余。先后在华为、阿里巴巴和字节跳动,从事技术研发工作,资深研发专家。主要研究领域包括虚拟化、分布式技术和存储系统(包括CPU与计算、GPU异构计算、分布式块存储、分布式数据库等领域)、高性能RDMA网络协议和数据中心应用、Linux内核等方向。
专业方向爱好:数学、科学技术应用
关注犇叔,期望为您带来更多科研领域的知识和产业应用。
内容坚持原创,坚持干货有料。坚持长期创作,关注犇叔不迷路