构建高可靠、容错的系统架构
产品在规定的条件下和规定的时间内完成规定功能的能力,即系统无故障运行的概率。
MTTF = 1/失效率
MTTR = 1/修复率
MTBF = MTTR + MTTF
系统不能执行要求的功能
导致失效的异常条件
可能导致故障的系统状态
持续存在的故障
时有时无的故障
短暂出现的故障
电路元器件出问题
二进制位出问题
软件设计出错
功能错误
使用额外的硬件组件
使用多个软件版本
添加额外的信息位
重复执行操作
多模冗余,通过表决掩盖故障
主动冗余,检测故障后切换
结合静态和动态冗余
系统自我诊断能力
重复线路/备份线路
主系统坏了,备用系统上
平时各自提供不同服务
同时提供相同服务
静态故障屏蔽技术,用N个相同功能的程序同时执行,结果通过多数表决选择
属于前向恢复技术
在程序运行的某时刻,将数据或程序进行备份,发现异常时恢复
属于后向(反向)恢复技术
在程序中加入错误检测和处理代码,提高程序的健壮性
广泛应用于现代编程语言
数据量不大,对恢复速度要求高
需要完全备份+所有增量备份
只需完全备份+最新差异备份
| 备份类型 | 备份时间 | 存储空间 | 恢复时间 | 恢复复杂度 |
|---|---|---|---|---|
| 完全备份 | 长 | 大 | 短 | 简单 |
| 增量备份 | 短 | 小 | 长 | 复杂 |
| 差异备份 | 中 | 中 | 中 | 中等 |
实时同步,立即切换
定期同步,快速切换
离线备份,手动恢复
磁带/光盘存储
任何一个部件失效,整个系统就失效
R(t) = R₁(t) × R₂(t) × ... × Rₙ(t)
系统可靠性 = 各部件可靠性的乘积
λ(t) = λ₁(t) + λ₂(t) + ... + λₙ(t)
所有部件都失效,系统才失效
R(t) = 1 - [1-R₁(t)] × [1-R₂(t)] × ... × [1-Rₙ(t)]
系统可靠性 = 1 - 各部件不可靠性的乘积
当各部件可靠性相同时:R(t) = 1 - [1-R(t)]ⁿ
工作原理: