系统可靠性分析与设计

总述:这部分内容从系统可靠性定义到如何设定可靠性的数学模型,从模型的指标到怎么去分析系统可靠性,之后是常见的可靠性设计结构,再之后是可靠性方法在硬件和软件中常用的实现技术及案例。

 

1、系统可靠性

答:系统可靠性是系统在规定时间内及规定的环境条件下,完成规定功能的能力,也是系统无故障运行概率。在信息系统中,故障或错误表现为永久性、间歇性、瞬时性这三种形式。故障在系统各个级别上从下到上依次逻辑级故障、数据结构级故障、软件故障和软件差错、系统级故障。

衡量系统可靠性的指标有平均无故障时间、平均故障修复时间、平均故障间隔时间、系统可用性。常用的系统可靠性模型有时间模型、故障植入模型、数据模型。具体模型不在详解基本原理。

 

2、系统可靠性分析

答:组合模型是分析系统可靠性最常用的方法。如果一个系统满足:1、系统只有运行和失效两种状态;2、系统可以划分成若干不重叠的子系统,每个子系统也只有运行和失效两种状态;3、子系统失效是独立的;4、系统状态只依赖于子系统的状态,系统失效当且仅当系统中剩余资源不满足系统运行最低资源要求时。那么这个系统就可以用组合模型来计算可靠性。

在这种组合的情况下,复杂系统会在局部或者整体上呈现出串联、并联的系统结构,还可能存在模冗余的情况。

 

3、冗余技术

答:提高系统可靠性的技术分为避错技术和容错技术。避错技术是通过技术评审、系统测试、正确性证明等技术,在系统运行之前避免、发现、改正错误。容错是系统在运行过程中发生一定的硬件故障或软件错误时,仍可以正常工作。容错技术主要采用冗余方法来消除故障的影响。

常见的冗余技术有结构冗余、信息冗余、时间冗余、冗余附加四种。结构冗余按工作方式分为静态冗余、动态冗余、混合冗余三种。静态冗余也称为屏蔽冗余或被动冗余,通过表决和比较来屏蔽系统中出现的错误;动态冗余也称为主动冗余,通过故障检测、故障定位、故障恢复等手段达到容错的目的,主要方式是多重模块待机储备,通常做热备和冷备;混合冗余可获得静态冗余和动态冗余的优点,对可以屏蔽的错误做静态冗余,无法屏蔽的用动态冗余处理,因为混合冗余的成本太高,只适合对可靠性要求极高的场合中使用。信息冗余主要任务是研究编码译码技术,代表性的是编码技术当中的奇偶校验码、海明码、循环冗余校验码。时间冗余是以事件为代价减少硬件冗余和信息冗余的开销来提高系统的可靠性,常用的是多次重复执行。冗余附加是为了实现结构冗余、信息冗余、时间冗余需要的资源和技术,包括程序、指令、数据、存放和调用空间等。

将各种冗余技术融合在一个系统中,这个系统成为冗余系统。一般来说,一个冗余系统在处理运行中出现的故障时,需要经历的步骤如下:故障检测、故障屏蔽、故障限制、复执、故障诊断、系统重配置、系统恢复、系统重新启动、修复、系统重组合。

软件容错是从硬件容错发展出来的,主要采取N版本程序设计、恢复块方法、防卫式程序设计等技术实现。N版本程序设计类似于结构冗余当中静态冗余,一个版本占据一个分支,通过多个分支的表决来屏蔽错误。N版本程序设计比通常的程序开发过程多了相异成分规范评审、相异性确认、背对背测试,这些主要是保证各版本的差异性和独立性。在具体开发过程中,N版本程序设计除了注意通常软件开发中的问题外,还需要考虑N版本程序同步、N版本程序间通信、表决算法、一致比较、数据相异性等问题的处理。恢复块方法是一种动态的故障屏蔽技术,采用后向恢复策略。防卫式程序设计是通过程序中错误检验代码和错误恢复代码,在错误发生时,程序能撤销错误状态恢复到一个已知的正确状态,其具体实现策略包括错误检查、破坏估计、错误恢复三个方面。防卫式程序设计的错误恢复可以向前恢复,也可以向后恢复,向后恢复比较容易,有两种处理方法:第一种是数据状态的变换在全部程序执行完成并没有错误时才进行变换,比较适合数据库的事务处理;第二种是每隔一段时间做一个检查点,制作安全状态的副本,当错误发生时恢复到最近的检查点,多见于应用程序。

 

4、双机容错技术

答:双机容错技术是一种软硬件结合的容错应用方案,该方案由两台服务器和一个外接共享磁盘阵列及相应的双机软件组成。在双机容错系统中,两台服务器一般区分为主系统和从系统或者两台服务器互认为主从关系。每台服务器最少安装两块网卡,一块网卡连接到网络上,对外提供服务;另外一块网卡连接到另一台服务器上,监测对方的工作状态。两台服务器都连接到共享磁盘阵列上,磁盘阵列存放用户数据,当一台服务器出错的时候,另一台服务器主动替代工作,保证服务不中断。双机容错系统采用心跳方法保证主系统和备用系统的联系。

双机容错系统根据两台服务器工作方式不同,分为三种不同的工作模式:双机热备模式、双机互备模式、双机双工模式。

双机热备模式在正常情况下,主服务器处于工作状态,备用服务器处于监控准备状态,如果没有采用共享磁盘阵列,用户数据同时往两台服务器中写入。当主服务器出现故障时,双机软件将备用系统激活,保证应用在短时间内恢复正常使用,当主服务器恢复正常后可重新接入系统要回自己的应用。双机热备模式是目前采用较多的一种模式,多应用于证券资金服务器或行情服务器等。双机热备模式的缺点是备用服务器的资源利用不充分。

双机互备模式的两台服务器均处于工作状态,在提供服务的同时还检测对方的运行情况。当一台服务器出现故障时,另一台服务器在短时间内将故障服务器的应用接管过来。双机互备模式的缺点是对服务器性能要求较高。

双机双工模式是集群技术的一种形式,两台服务器均处于工作状态,同时提供相同的服务,通过负载均衡来保证集群的整体性能,双机互为备份。

在双机容错系统中,双机软件是必不可少的。在双机容错系统中,一切故障的诊断、服务的切换、硬件的控制都是由双机软件实现的。

 

5、集群技术

答:集群技术是将多台同构或者异构的计算机用集群软件连接在一起,组成一个高度透明的大型计算机群,其中单个计算机系统称为节点。典型的集群系统具有可伸缩性、高可用性、可管理性、高性价比、高透明性的特征。集群系统的性能指标是系统资源利用率,任务调度在集群系统中是关键环节,任务调度的主要方法是进程迁移技术。

按照解决问题的不同,集群系统一般分为高性能计算集群、负载均衡集群、高可用性集群。高性能集群以解决复杂的科学计算问题为目的,主要解决大规模计算问题、存储和处理海量数据问题。负载均衡集群为企业提需求提供更有力的支撑,可有效分摊企业应用的负载。高可用性集群致力于使计算机系统运行速度和响应速度尽可能快。在实际应用过程中,通常这三种类型会发生混合,甚至一些层面上分类并不是严格绝对的。

高性能计算集群相较于传统并行系统,具有系统开发周期短、用户投资风险小、系统价格低、节约系统资源、系统扩展性好、用户编程方便等特点。通信子系统是高性能计算集群系统的中套组成部分,其性能直接影响并行计算的技术比和效率,影响通信子系统的因素有网络带宽、传统TCP/IP协议、通信协议复杂的缓冲管理。负载均衡是高性能计算集群的一个重要问题,这牵扯到集群中节点任务分配问题,特别是在并行环境下还要基于每个节点处理效率的前提下。

负载均衡是处理节点的负载信息通过某代理软件传递给均衡器,均衡器做出决策并对负载进行动态分配,使集群中各处理节点的负载相对趋于平衡。根据负载均衡的位置不同,负载均衡分为客户端负载均衡和服务器负载均衡。客户端负载均衡是指客户端的负载均衡器根据集群的负载及情况,主动选择由集群中的哪台服务器为其提供服务,如提供全球服务的一些银行会有这种负载。服务器端负载均衡根据负载均衡的方式分为集中式负载均衡和分布式负载均衡。在负载均衡集群中,一般将节点分为处理节点和均衡节点两大类,处理节点负责实际的服务处理,均衡节点保证集群的负载平衡。及时、准确把握处理节点的负载情况,并根据处理节点的资源使用情况动态调整负载均衡的流量分布,是负载均衡与调度考虑的关键问题。衡量节点当前负载状态的度量方法和准则称为负载指标。理想的负载指标应满足测量开销低、体现竞争资源的负载、各负载指标在测量和控制上彼此独立等条件。

高可用性集群是一种减少服务中断时间为目标的计算机集群技术,支持7*24小时运行机制。高可用性集群的硬件包括服务器组、对外提供服务的网络、心跳信号通路、数据共享磁盘阵列。

负载均衡有两方面含义:第一种是大量并发访问或数据流量分担到多个节点上分别处理,减少用户等待响应时间;第二种是单个重负载运算分担到多个节点上做并行处理,每个节点处理结束后将结果汇总,返回给用户。负载均衡的调度算法分为静态调度算法和动态调度算法两大类。静态调度算法是指调度算法在调度时不考虑节点当前负载情况,按照不同原则在调度前选择一种均匀调度规则来完成服务请求的调度,典型的有轮转算法、加权轮转算法、最小连接数算法、加权最小连接数算法、源地址哈希散列算法、目标地址哈希散列算法、随机算法等。动态调度算法在进行服务调请求的调度前,先考察节点当前的一些动态指标,根据动态指标来决定服务请求的调度,典型的有加权百分比算法等。加权轮转算法是在轮转算法的基础上考虑了各节点的性能,以性能为加权的指标。最小连接数算法是将新的请求分配给当前活动请求数量最少的节点,在各个节点处理能力相近时比较理想。加权最小连接数算法在最小连接数算法的基础上考虑节点处理能力,以处理能力作为加权的指标。基于局部性的最小连接数算法(LBLC)是在负载基本平衡的情况下,将相同目标IP地址的请求调度到同一个节点上,提高各个节点的访问局部性和主存命中率。带复制的基于局部性的最小连接数(LBLCR)也是针对目标IP地址进行负载均衡调度,它维护一个目标IP地址到一组节点的映射,当对应节点组中同一个节点没有超载是分配到这个节点上,否则分配到另一个比较空闲的节点上。加权百分比算法考虑节点的剩余处理能力,然后根据这个系数进行调度,算法的关键取决于负载指标的好坏。

在实际应用中,常用的负载均衡实现技术有基于特定软件的负载均衡、基于DNS的负载均衡、基于NAT的负载均衡、反向代理负载均衡、混合型负载均衡。基于特定软件的负载均衡大多需要参考网络协议中重定向的功能,基于此功能进行负载均衡,由于网络协议中重定向功能是无法获得目标服务器负载的情况,所以当负载很高的时候容易产生死循环,故此负载均衡方法使用较少。基于DNS的负载均衡是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同节点上,实现负载均衡的目的。基于NAT的负载均衡将一个外部的IP地址映射为多个内部IP地址,对每次连接请求动态地转换为一个内部节点地址,将外部连接请求引到转换得到地址的那个节点上,这样可实现负载均衡的目的。反向代理负载均衡是将来自外部的连接请求以反向代理的方式动态转发给内部网络上的多个节点进行处理,这样可实现负载均衡。基于NAT的负载均衡和反向代理负载均衡都具备额外的安全性,NAT处于网络的底层可集成到硬件设备中,反向代理处于应用层可能在高负载下成为瓶颈。

进程迁移是指当进程运行时,在源节点和目标节点之间转移进程的行为,因这个过程中转移的是活跃进程,又称为抢占式进程迁移。进程迁移是支持负载均衡和高容错性的一种非常有效的手段,是实现负载均衡的基础。在集群系统中,利用进程迁移可以实现负载共享、提高通信性能、可用性、重新配置、使用集群中某些节点的特殊能力。目前进程迁移算法主要有贪婪复制算法、惰性复制算法、预复制算法、基于检查点的迁移算法等。贪婪复制算法是先挂起源节点进程,然后传输进程的全部状态到目的节点后,再启动目的节点进程。惰性复制算法先传输进程在目的节点上重新执行需要的最小相关信息,然后在目的节点上启动进程。预复制算法在进程的部分或全部地址空间从源节点传输到目标节点后,源节点才挂起进程并传输核心数据。进程迁移涉及到迁移过程中的通信管理和迁移后的通信管理。进程迁移中的通信管理一般采用三种方法来处理:1、进程迁移之前发送特殊消息,通知其他进程此进程将要迁移,保证在迁移完成之前不发送任何消息给迁移进程;2、在进程迁移中,其他进程仍可以发送消息给源节点,源节点缓存所有收到的发送给迁移进程的消息,待迁移结束后,转发这些消息;3、在进程迁移过程中,源节点拒绝收发迁移进程的消息,并要求发送者稍后将消息发到目标节点。进程迁移后通信的恢复有三种处理方法:1、消息重定位法,对应进程迁移中通信处理方法的第2种;2、消息丢失保护方法,源节点将目的节点的地址通知其他与迁移进程通信的进程,消息发送到目的节点,对应进程迁移中通信处理方法的第3种;3、消息丢失恢复法,在迁移过程中发送的消息都将丢失,待迁移完毕后重新建立连接并发送信息,对应进程迁移中通信处理方法的第1种。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章