说到关键业务系统的可靠性,经常用到所谓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在每一个计算机时钟周期内的每一个操作,全部是同步的,也就是通过“锁步技术”来保持一致性,对结果进行比对,比对一致才会判定成功,否则需要从新计算。但其中一部分硬件产生故障时,系统失去容错,进入单机运行状态,待更换故障部件之后,重新进入容错流程。因此,采用容错可以彻底克服突发性硬件故障,避免业务中断。
与小型机、大型机等具有高可靠性的产品相比,采用容错方案构建的系统,其高可靠性不是来自容错
服务器产品,不是来自产品不出错,而是通过特殊的体系架构应对故障的发生。对于小型机、大型机而言,如果也采用容错结构,那么系统的可靠性要跨上一个新的台阶,但成本代价不是一般用户可以承受的