这一章主要有6个小节的内容
一、系统故障模型
分类:失效、故障、错误。
表现形式:永久性、间歇性、瞬时性。
逻辑级的故障模型:短路故障、开路故障、桥接故障。
数据结构级的故障:独立差错、算术差错、单向差错。
软件故障和软件差错:非法转移、误转移、死循环、空间溢出、数据执行、无理数据。
系统级的故障模型
二、可靠性指标
平均无故障时间(MTTF):
M T T F = 1 / λ MTTF=1/ \lambda
MTTF=1/λ
平均故障修复时间(MTTR):
M T T R = 1 / μ MTTR = 1/\mu
MTTR=1/μ
平均故障间隔时间(MTBF):
M T B F = M T T R + M T T F MTBF = MTTR + MTTF
MTBF=MTTR+MTTF
系统可用性:
M T T F / ( M T T R + M T T F ) × 100 % MTTF/(MTTR+MTTF)\times 100\%
MTTF/(MTTR+MTTF)×100%
系统可靠性:指系统在规定的时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。
系统可用性:指在某个给定时间点上系统能够按照需求执行的概率。
区别:提高可靠性需要强调减少系统中断(故障)的次数,提高可用性需要强调减少从灾难中恢复的时间。
三、串联系统与并联系统可靠度计算
类似于物理学的电路串联和并联。
串联系统:任何一个子系统的失效就使整个系统失效,可靠度等于各子系统可靠度的乘积。
并联系统:只要有一个子系统正常工作,系统就能正常工作。
四、系统容错技术
避错技术
容错技术:
1)结构冗余(硬件冗余、软件冗余):静态冗余(屏蔽冗余、被动冗余;模冗余系统);动态冗余(主动冗余;备份系统、集群系统);混合冗余
2)信息冗余(校验码)
3)时间冗余(重复多次进行相同的计算)
4)冗余附加(为实现上述冗余技术所需的资源和技术)
前向恢复:使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况。
后向恢复:系统恢复到前一个正确状态,继续执行。
五、N版本程序设计、恢复块方法、防卫式程序设计
N版本程序设计:
1)与通常软件开发过程不同的是,N版本程序设计增加了三个新的阶段:相异成份规范评审、相异性确认、背对背测试。
2)N版本程序的同步、N版本程序之间的通信、表决算法(全等表决、非精确表决、Cosmetie表决)、一致比较问题、数据相异性。
恢复块方法:
1)设计时应保证实现主块和后备块之间的独立性,避免相关错误的产生,使主块和备份块之间的共性错误降到最低程度。
2)必须保证验证测试程序的正确性。
防卫式程序设计:
1)对于程序中存在的错误和不一致性,通过在程序中包含错误检查代码和错误恢复代码,使得一旦错误发生,程序能撤销错误状态,恢复到一个已知的正确状态中去。
2)实现策略:错误检测、破坏估计、错误恢复。
六、双机容错与集群技术
双机热备模式(主系统、备用系统)
双机互备模式(同时提供不同的服务,心不跳则接管)
双机双工模式(同时提供相同的服务,集群的一种)
集群系统:可伸缩性、高可用性、可管理性、高性价比、高透明性。
集群分类:高性能计算集群、负载均衡集群、高可用性集群。
负载均衡:基于特定软件的负载均衡、基于DNS的负载均衡、基于NAT的负载均衡、反向代理负载均衡、混合型负载均衡。
均衡算法:
1)静态算法:轮转算法、加权轮转算法、最小连接数算法、加权最小连接数算法、源地址哈希散列算法、目标地址哈希散列算法、随机算法。
2)动态算法:加权百分比算法。