一个9的差距

服务器
说到关键业务系统的可靠性,经常用到所谓4个9或者5个9,也就是99.99%与99.999%。那么,4个9或者5个9的差距有多大,差距是0.009%,还不到0.01%。但对于系统而言,恰恰是这不到0.01%的差距,决定了系统完全不在一个档次上。

说到关键业务系统的可靠性,经常用到所谓4个9或者5个9,也就是99.99%与99.999%。那么,4个9或者5个9的差距有多大,差距是0.009%,还不到0.01%。但对于系统而言,恰恰是这不到0.01%的差距,决定了系统完全不在一个档次上。

所谓5个9的系统,一年内不能正常工作的时间少于5分15秒。对应4个9的系统是不超过52分36秒。这些都是理论上的数据,在实际工作中有些故障导致的宕机时间远超过5分钟,即使采用大型主机,也有宕机4个多小时的惨痛教训。问题出在哪里?

一个系统的可靠性并不完全取决于硬件,而由软件和硬件共同来决定,如果是软件问题,***的解决办法就是打补丁、升级,再好的硬件也没有办法解决软件的问题。要提高系统的可靠性,软件是没有太好办法的,只有依靠厂商服务来解决问题。用户可以选择的只有硬件,其中,包括网络、服务器以及存储设备。其中,网络可以借助多运营商接入来解决,存储有RAID、快照等应对技术,通过备份来提高数据安全性。但对于服务器来说,更多用户的选择是采用双机集群的方法。

采用双机集群的方案是达不到5个9的要求的。原因很简单,双机集群是通过集群软件来构建方案的,当其中的一台服务器产生故障的时候,切换到备份主机继续工作,保持业务连续性。设备之间也可以依靠心跳线连接对故障进行判定。对于集群而言,故障切换是有严格要求的,要求主机、备用机的环境是一致的。在应用实践中,要求管理要到位,例如同步升级、升级,打补丁。如果管理不到位,很有可能会导致切换失败。这也是为什么,系统可以在演示环境下成功切换,但现实中往往做不到的原因。

即便是管理到位,双机集群也没有办法做到无缝切换,也就是业务不停顿的切换。因为备用主机没有办法同步主机内存、I/O中的数据,一旦主机突发故障,这些数据没有办法在备机中同步,因此也没有办法实现不停机的切换。因此,双机系统切换是需要时间的。

对于用户而言,双机系统的价值在于及时恢复系统,重建应用。一旦切换不成功,系统恢复需要较长的时间;如果是集群软件的原因,就需要集群软件厂商的技术人员来解决问题。因此,双机集群方案对于用户的管理水平和技术水平有很高的要求。

要实现故障的无缝切换,容错服务器几乎是惟一的方案。容错服务器不能够解决软件的问题,但可以解决硬件系统的问题,因为处理器、内存、I/O在每一个计算机时钟周期内的每一个操作,全部是同步的,也就是通过“锁步技术”来保持一致性,对结果进行比对,比对一致才会判定成功,否则需要从新计算。但其中一部分硬件产生故障时,系统失去容错,进入单机运行状态,待更换故障部件之后,重新进入容错流程。因此,采用容错可以彻底克服突发性硬件故障,避免业务中断。

与小型机、大型机等具有高可靠性的产品相比,采用容错方案构建的系统,其高可靠性不是来自容错服务器产品,不是来自产品不出错,而是通过特殊的体系架构应对故障的发生。对于小型机、大型机而言,如果也采用容错结构,那么系统的可靠性要跨上一个新的台阶,但成本代价不是一般用户可以承受的。目前,Stratus公司的ftServer容错服务器是基于X86架构的,成本代价大幅度降低,已经可以被用户广为接受。
 

责任编辑:常疆 来源: 51CTO.com
相关推荐

2011-03-16 09:23:21

TweakIE9

2016-09-26 17:26:20

2012-07-20 15:47:23

诺基亚Nokia

2011-12-26 09:56:57

数据中心服务器宕机

2021-08-01 22:41:07

微信功能技巧

2018-06-20 15:50:38

JDK9JVMJDK10

2023-01-03 12:30:25

架构CPUGPU

2014-10-14 15:50:19

UIAndroid

2019-04-15 11:00:46

框架Node.JS开发

2021-06-18 11:02:43

微服务软件架构

2022-04-28 09:05:41

网络爬虫Python

2014-10-14 10:01:10

UIAndroid

2021-09-13 09:47:03

TIOBE编程语言Python

2023-01-12 08:47:26

二项式杨辉斐波那契

2016-03-01 14:37:47

华为

2018-08-12 23:15:04

iOS Android 操作系统

2015-10-10 11:09:48

NFVNFVI网络虚拟化

2020-02-22 21:51:43

程序员Microsoft SServerSQL

2020-11-13 07:08:51

Spring Boot应用Spring

2018-09-13 14:18:20

C语言Java程序员
点赞
收藏

51CTO技术栈公众号