OpenStack 高可用 (HA)

高可用性是指提供在本地系统单个组件故障情况下,能继续访问应用的能力,无论这个故障是业务流程、物理设施、IT软/硬件的故障。最好的可用性, 就是你的一台机器宕机了,但是使用你的服务的用户完全感觉不到。你的机器宕机了,在该机器上运行的服务肯定得做故障切换 (failover) ,切换有两个维度的成本: RTO (Recovery Time Objective) 和 RPO (Recovery Point Objective) 。RTO 是服务恢复的时间,最佳的情况是 0,这意味着服务立即恢复;最坏是无穷大意味着服务永远恢复不了;RPO 是切换时向前恢复的数据的时间长度,0 意味着使用同步的数据,大于 0 意味着有数据丢失,比如 " RPO = 1 天” 意味着恢复时使用一天前的数据,那么一天之内的数据就丢失了。因此,恢复的最佳结果是 RTO = RPO = 0

对 HA 来说,往往使用共享存储,这样的话,RPO =0 ;同时往往使用 Active/Active (双活集群) HA 模式来使得 RTO 几乎0,如果使用 Active/Passive 模式的 HA 的话,则需要将 RTO 减少到最小限度。HA 的计算公式是[ 1 - (宕机时间)/ (宕机时间 + 运行时间) ],我们常常用几个 9 表示可用性:

2 个9: 99% = 1% * 365 = 3.65 * 24 小时/年 = 87.6 小时/年的宕机时间

4 个9: 99.99% = 0.01% * 365 * 24 * 60 = 52.56 分钟/年

5 个9: 99.999% = 0.001% * 365 = 5.265 分钟/年的宕机时间,也就意味着每次停机时间在一到两分钟。

11 个 9: 几乎就是几年才宕机几分钟。 据说 AWS S3 的设计高可用性就是 11 个 9。

https://www.cnblogs.com/sammyliu/p/4741967.html

作者 刘世民 (Sammy Liu) http://www.cnblogs.com/sammyliu/