软件系统可靠性的几个9解释

转自            http://blog.csdn.net/yqq__00/article/details/51441228


--------------------------------------------


在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。

  • 3个9(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。
  • 4个9(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。
  • 5个9(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。

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

  • 1个9:(1-90%)*365=36.5天
  • 2个9:(1-99%)*365=3.65天
  • 6个9:(1-99.9999%)*365*24*60*60=31秒

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


高可用是IT世界中的一个重要领域,不过,对大多少IT公司或组织来说,高可用性达到99.999%是没必要的。

一个公司或组织是否需要99.999%的可靠性,依赖许多因素:软件成本,公司财力能否承担等。
“当你的设备处理人命关天的事情,或业务中断一分钟就会损失百万美刀,那么你可以考虑99.99%的可靠性。”Robertson(Linux高可用项目开发者)如是说。

权衡高可用的付出与得到
实现高可用系统的成本,不论是99.99%还是99.999%,都包含了软件成本,硬件成本,人力成本,还有培训支出。当一个公司打算要做高可用系统之前,最好先权衡,构建高可用系统的成本,与系统业务中断所带来的损失,哪个付出更多。若不想付出太多的资金在构建高可用系统上,那么就得分析你的系统,什么时候会出现业务中断,控制住业务中断所带来得损失,以及构建快速恢复的能力。
实际上,关乎每分钟有百万美刀的系统,也可以不用做5个9的高可用系统,只要能够控制到有计划地中断业务(也可以说是中断业务可控制),如在交易时候业务不中断业务即可。
根据爱默生对41家数据中心的统计数据报告发现:非计划的业务中断是导致公司业绩损失的主要因素”。报告中还指出:“业务中断后的故障定位,分析与解决,也需要耗费不少财力”

如果一个公司的业务承诺的可靠性是99.99%,那么每年只允许业务中断8.76小时。如果业务中断导致的损失是每小时100万,那么一年的损失是876万。
但是,如果这个公司承诺的可靠性是99.999%,那么每年只允许业务中断不超过1个小时,如果业务中断导致的损失是每小时100万,那么一年的损失小于100万。
我们可以算到,可靠性从99.99%提升到99.999%,可以挽回大概700万的损失。那么这种情况下是值得的。
但是如果你提升可靠性到99.999%上面的花费,超过了700万,那保持99.99%的可靠性也是一种选择。

任何产品都需要考虑投入与产出比,那么你允许的业务中断时间是多少?

99.99%的可靠性对大多数业务来说是足够的,对于一些离线业务,99.9%可靠性大部分场景下也够用了。

实现99.99%的可靠性
在一些领域,99.999%可靠性是必须的,如运输行业。假如火车控制系统故障了,那么可能成千上万的旅客就会被滞留。(天朝的7.23事故大家都知道)
这种场景下,实现99.999%可靠性通常使用容错处理,包含软件的容错和硬件的容错。常见的软件容错有负载均衡,就是多个实例同时提供服务。当软件容错不起作用时候,就需要用到硬件容错,硬件容错一半是做硬件冗余,如两个服务器做主备。


猜你喜欢

转载自blog.csdn.net/hu19930613/article/details/79593081