你的系统可用性 5 个 9 了吗?

2020-08-22  本文已影响0人  雇个城管打天下

如上图所示,两个组件 X 和 Y,如果有一个出问题导致整个组合都不可用,就认为 X 和 Y 这两个组件是串联的。只有组件 X 和组件 Y 同时可用时,整个组合才可用。由此可见,组合的可用性是这两部分的乘积,公式如下:
A = Ax Ay
从上面的等式我们看出,串联系统中,整体组合的可用性,总是低于单个组件的可用性。
对于上面 X 和 Y 两个串联组件,可用性如下:


从上面的表中,我们看到,即使使用了非常高可用性的组件 Y,但组合系统仍然受组件 X 的影响,会降低好多,和「木桶原理」一致,都受最短板的影响。

并行可用性

如上图所示,如果两个组件都失败时,整个系统会失败的话,这两个组件会被认为是并行的。任一组件可用时,整个系统都是可用的。整体可用性是 1- (两个组件都不可用),公式如下:
A = 1-(1-Ax )2
从上面我们能看出,两个组件并行的系统,整体可用性要任一单独的组件可用性高。如上图假设是组件 X 的两个部分,可用性如下:

我们看到,即使一个可用性低的组件 X,组合后的系统可用性也很高。

X 个 9

说完了可用性的计算后,总算是回到本文的重点了,有个衡量其可靠性的标准——X 个 9,X 个 9 表示在系统 1 年时间的使用过程中,系统可以正常使用时间与总时间(1 年)之比,我们通过下面的计算来感受下 X 个 9 在不同级别的可靠性差异。

那么 X 个 9 里的 X 只代表数字 3~5,为什么没有 1~2,也没有大于 6 的呢?我们接着往下计算:

可以看到 1 个 9 和、2 个 9 分别表示一年时间内业务可能中断的时间是 36.5 天、3.65 天,这种级别的可靠性或许还不配使用“可靠性”这个词;而 6 个 9 则表示一年内业务中断时间最多是 31 秒,那么这个级别的可靠性并非实现不了,而是要做到从“5 个 9” 到“6 个 9”的可靠性提升的话,后者需要付出比前者几倍的成本。

可用性 A X 个 9 停机时间(分钟) 适用产品
0.999 3 个 9 500 电脑或服务器
0.9999 4 个 9 50 企业级设备
0.99999 5 个 9 5 一般电信级设备
0.999999 6 个 9 0.5 更高要求电信级设备

怎么做到更多的 9?

每个公司对几个 9 的定义都不一样,好多的互联网公司要求都是 99.99。像一些事业单位网站,办事网站等,经常故障服务不可用,估计最高也就到 99.9。
而我们经常用到所谓 4 个 9 或者 5 个 9,也就是 99.99%与 99.999%。虽然这两者的差距是 0.009%,还不到 0.01%。但对于系统而言,恰恰是这不到 0.01%的差距,决定了系统完全不在一个档次上。
我们知道一个系统的可靠性并不完全取决于硬件,而由软件和硬件共同来决定,如果是软件问题,就需要监控自己的服务,在服务出现异常或者宕机的时候,能及时恢复。增加冗余,防止出现问题。
但是要提高系统的可靠性,除软件外,还有硬件的部分,包括网络、服务器以及存储设备等。其中,网络可以借助多运营商接入来解决,存储有 RAID、快照等应对技术,通过备份来提高数据安全性。对于服务器来说,我们可以选择集群的方式保证高可用。


上一篇 下一篇

猜你喜欢

热点阅读