可用性模式
有两种支持高可用性的模式: 故障切换(fail-over)和复制(replication)。
工作到备用切换(Active-passive)
Section titled “工作到备用切换(Active-passive)”关于工作到备用的故障切换流程是,工作服务器发送周期信号给待机中的备用服务器。如果周期信号中断,备用服务器切换成工作服务器的 IP 地址并恢复服务。
宕机时间取决于备用服务器处于“热”待机状态还是需要从“冷”待机状态进行启动。只有工作服务器处理流量。
工作到备用的故障切换也被称为主从切换。
双工作切换(Active-active)
Section titled “双工作切换(Active-active)”在双工作切换中,双方都在管控流量,在它们之间分散负载。
如果是外网服务器,DNS 将需要对两方都了解。如果是内网服务器,应用程序逻辑将需要对两方都了解。
双工作切换也可以称为主主切换。
缺陷:故障切换
Section titled “缺陷:故障切换”- 故障切换需要添加额外硬件并增加复杂性。
- 如果新写入数据在能被复制到备用系统之前,工作系统出现了故障,则有可能会丢失数据。
主─从复制和主─主复制
Section titled “主─从复制和主─主复制”这个主题进一步探讨了数据库部分:
可用率的量化
Section titled “可用率的量化”依据英文版补译:以下内容补齐中文原文缺失的可用率计算。
可用率通常表示服务正常运行时间占总时间的比例,也可以从停机时间计算。它常用“几个 9”来描述,例如 99.99% 就是“四个 9”。
99.9% 可用率:三个 9
Section titled “99.9% 可用率:三个 9”| 统计周期 | 允许的停机时间 |
|---|---|
| 每年 | 8 小时 45 分 57 秒 |
| 每月 | 43 分 49.7 秒 |
| 每周 | 10 分 4.8 秒 |
| 每天 | 1 分 26.4 秒 |
99.99% 可用率:四个 9
Section titled “99.99% 可用率:四个 9”| 统计周期 | 允许的停机时间 |
|---|---|
| 每年 | 52 分 35.7 秒 |
| 每月 | 4 分 23 秒 |
| 每周 | 1 分 0.48 秒 |
| 每天 | 约 8.6 秒 |
本站校注:年、月保留英文表的近似统计口径。英文表将四个 9 的每周停机时间写成了 1m 5s;按 7 天计算应为 7 × 24 × 3600 × (1 - 0.9999) = 60.48 秒,此处已更正。
串联与并联组件的可用率
Section titled “串联与并联组件的可用率”一个服务由多个可能失效的组件组成时,总体可用率取决于这些组件的依赖关系。
串联:每个组件都必须正常。 当两个组件的可用率都低于 100% 时,串联后的总体可用率会下降:
总可用率 = A 的可用率 × B 的可用率如果 A 和 B 的可用率都是 99.9%,串联后为 0.999 × 0.999 = 0.998001,约为 99.8%。
并联:至少一个组件正常即可提供服务。 两个组件并联可以提高总体可用率:
总可用率 = 1 - (1 - A 的可用率) × (1 - B 的可用率)如果 A 和 B 的可用率都是 99.9%,并联后为 1 - 0.001 × 0.001 = 0.999999,即 99.9999%。
本站校注:上述乘法模型假设组件故障相互独立;并联还要求任一存活组件能够接管服务。共同依赖同一电源、网络或数据库时,不能直接用该公式宣称冗余后的可用率。