系统可靠性指系统不出故障的能力;可用性指系统出故障后是否能很快恢复服务的能力。
系统可靠性是系统分析、设计和实施过程中采用一定的技术措施才能获得的。可靠性分析与设计的重要内容是建立可靠性模型,以及可靠性指标的预计与分配。在系统分析与设计过程中,我们要反复地进行可靠性预计和分配,并不断深化,以选择合适的方案,预测系统可靠性水平,找出薄弱环节,逐步地将可靠性指标分配到系统各个层次中。这是一个迭代的过程。
一、系统可靠性概述
系统可靠性包括4个子特性:
1)成熟性
是指系统避免因错误的发生而导致失效的能力
2)容错性
系统发生故障或违反指定接口的情况下,系统维持规定的性能级别的能力
3)易恢复性
系统发生失效的情况下,重建规定的性能级别并恢复受直接影响的数据的能力
4)可靠性的依从性
系统依附于与可靠性相关的标准、约定或规定的能力
1、系统故障模型
一般来说,故障模型建立的级别越低,进行故障处理的代价也就越低,但故障模型覆盖的故障也就越少。级别由低到高:
【逻辑级的故障】
硬件逻辑出现的故障
【数据结构级的故障】
【软件故障和软件差错】
软件故障指软件设计与设计说明不一致。软件故障只与设计有关。
软件故障在数据结构或程序输出中的表现称为软件差错。
【系统级的故障】
系统输出与系统设计说明不一致。
2、系统可靠性指标
1)平均无故障时间
MTTF(Mean Time To Failure)
2)平均故障修复时间
MTTR
3)平均故障间隔时间
MTBF=MTTF + MTTR
4)系统可用性
系统可用性是指在某个时间点上系统能够按照需求执行的概率。
可用性 = MTTF/(MTTF + MTTR) * 100%
3、系统可靠性模型
【时间模型】
时间模型基于一个假设:系统中的故障数目在某一时刻为常数。随着故障被纠正,故障数目逐渐减少。在此假设下,经过一段时间调试后剩余故障的数目可用公式估算。
【故障植入模型】
以系统中的错误数作为衡量可靠性的标准。
【数据模型】
系统n次连续运行中系统完成指定任务的概率。
二、系统可靠性分析
计算机系统十分复杂,影响可靠性的因素很多,很难直接进行可靠性分析。但是,通过建立适当的数学模型,把大系统分割成若干子系统,可以简化分析过程。其中,分析组合模型是分析系统可靠性最常用的方法。
1、串联系统
3、模冗余系统
三、冗余技术
提高系统可靠性的技术可以分为避错(排错)技术和容错技术。
【避错】
通过技术评审、系统测试和正确性证明等技术,在系统正式运行之前避免、发现和改正错误。
【容错】
指系统在运行过程中发生一定的硬件故障或软件错误时,仍能保持正常工作而不影响正确结果的一种性能或措施。容错技术主要采用冗余方法来消除故障的影响。
1、冗余技术的分类
1)结构冗余
静态冗余、动态冗余、混合冗余
【静态冗余】
又叫屏蔽冗余或被动冗余,常用的有三模冗余和多模冗余。静态冗余通过表决和比较来屏蔽错误。
【动态冗余】
又称为主动冗余。通过故障检测、故障定位及故障恢复等手段达到容错目的。主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。各备用模块在待机时,可与主模块一起工作(热备份系统、双重系统),也可不工作(冷备份系统、双工系统、双份系统)。
【混合冗余】
先使用静态冗余中的故障屏蔽技术,使系统免受某些可以被屏蔽的故障的影响;而对那些无法屏蔽的故障,则采用主动冗余中的故障检测、故障定位和故障恢复等技术,并且对系统可以作重新配置。
2)信息冗余
在实现正常功能所需要的信息外,再添加一些信息,以保证运行结果正确性的方法。如检错码、纠错码。
信息冗余的主要任务在于研究出一套理想的编码和译码技术来提高信息冗余的效率。目前应用最广泛的是奇偶校验码、海明校验码和循环冗余校验码。
3)时间冗余
以时间(即降低系统运行速度)为代价以减少硬件冗余和信息冗余的开销,来达到提高可靠性的目的。
实现时间冗余的基本思想是重复执行,然后将每次结果存放起来比较。但这种方法只能检测瞬时性故障而不宜检测永久性的故障。
4)冗余附加
是指为实现上述冗余技术所需的资源和技术,包括程序、指令、数据,以及存放和调用它们的空间等。
2、冗余系统
1)故障检测
2)故障屏蔽
3)故障限制
4)复执
5)故障诊断
6)系统重配置
7)系统恢复
8)系统重新启动
9)修复
10)系统重组合
四、软件容错技术
软件容错的基本思想是从硬件容错中引申而来,利用软件设计的冗余和多样化来达到屏蔽错误的影响,提高系统可靠性的目的。软件容错的主要方法是提供足够的冗余信息和算法程序,使系统在实际运行时能够及时发现程序设计错误,采取补救措施,以提高系统可靠性,保证整个系统的正常运行。
软件容错技术主要有N版本程序设计、恢复块方法和防卫式程序设计等;也可以从计算机平台环境、软件工程和构造异常处理模块等不同方面达到;还可以利用高级语言本身的容错特性,如try catch语句。
1、N版本程序设计
一种静态的故障屏蔽技术,采用前向恢复的策略。设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人(小组)独立设计,使用不同的方法、不同的设计语言、不同的开发环境和工具来实现,目的是减少N个版本的程序在表决点上出错的概率。
程序设计时,应保证实现主块和后备块之间的独立性,避免错误相互影响。
3、防卫式程序设计
N版本程序设计和恢复块方法都是基于设计冗余的思想,增加了许多额外的工作,结构本身也会带来一些问题和困难。
防卫式程序设计的基本思想是通过在程序包含错误检查代码和错误恢复代码,一旦发生错误,程序就能撤销错误状态,恢复到一个已知的正确状态中去。实现策略包括错误检测、破坏估计和错误恢复三个方面。
五、双机容错技术
双机容错技术是一种软硬件结合的容错应用方案。该方案由两台服务器和一个外接共享磁盘阵列及相应的双机软件组成。
5、负载均衡技术
集群的最大特征是多个节点的并行和共同工作,如何让所有节点承受的负荷平均,不出现局部过大负载或过轻负载的情况,是负载均衡的重要目的。如果局部过大,必然导致硬件承压,老化和损坏的概率增加;局部过轻,设备资源浪费,不符合成本最低原则。
负载均衡有两方面的含义。首先,大量的并发访问或数据流量分担到多个节点上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多个节点上做并行处理,每个节点处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅提升。
1)调度算法
轮转、加权、最小连接数、哈希、随机等等。
2)技术实现
(1)基于特定软件的负载均衡
(2)基于DNS的负载均衡
DNS服务器中为同一个域名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询按记录的IP顺序返回不同的解析结果,将客户端的访问引导到不同节点,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
DNS负载均衡的优点是经济、简单易行,并且节点可以位于互联 上的任意位置。但DNS需要经常刷新,容易造成额外的 络流量;DNS修改后不会立即生效;DNS负载均衡采用的是简单的轮转算法,不能区分节点之间的差异,不能反映节点的当前运行状态。另外,每个节点需要对应一个IP地址,占用过多IP地址。
(3)基于NAT的负载均衡
将一个外部IP地址映射为多个内部IP地址,对连接请求动态地转换为1个内部节点的地址,将连接请求引导到该节点,从而达到负载均衡的目的。
NAT负载均衡通过软硬件都可以实现。软件方式往往受到带宽和系统本身处理能力的限制;硬件一般是处于内部节点到外部 络之间的 关位置,如路由器、防火墙、四层交换机、专用负载均衡器等,均衡算法也较灵活。
(4)反向代理负载均衡
将来自互联 的连接请求以反向代理的方式动态地转发给内部 络上的多个节点进行处理,从而达到负载均衡的目的。
反向代理均衡也是可以通过软硬件都能实现;可以将负载均衡与高速缓存技术相结合,提升静态资源的访问速度,改善系统性能。同时,由于外部 络用户不能直接访问真实的节点计算机,具备额外的安全性(同理NAT也有此优点)。
缺点是反向代理处于应用层,必须为每种应用服务专门开发一个反向代理服务器,限制了反向负载均衡技术的应用范围,现在一般用做WEB服务器的负载均衡;其次,每次代理,代理服务器都需要打开2个连接,一个对外,一个对内,并发连接数量非常大的时候,容易成为瓶颈;容易出现单点故障。
(5)混合型负载均衡
6、进程迁移技术
进程迁移是指当进程运行时,在(集群内)源节点和目标节点之间转移进程的行为。由于这个过程中转移的是活跃进程,因此又称为抢占式进程迁移。

进程迁移是支持负载均衡和高容错性的一种非常有效的手段,是实现负载均衡的基础。集群系统进行任务调度的主要方法是进程迁移技术。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!