对于一个信息系统,特别是关键业务系统而言,可靠性非常重要。有数据统计显示,金融信息系统每小时的停机代价是250万美元,制造业最少也要2.8万美元。这还仅仅是2000年的统计结果,如今企业对信息系统的依赖程度更高,停机所造成的损失也就更大。
对信息系统可靠性产生影响的因素有很多,有人为因素、过程处理和技术因素。其中,人的因素可以通过培训、认证来提高管理水平,减少因为经验缺乏导致的错误。对于处理过程中的偶然错误,这就需要系统具有足够的技术能力。
在技术因素方面,导致系统失效的原因也有很多,例如硬件故障,设备驱动、操作系统和应用软件的故障。其中,随着硬件制造工艺水平的提升,可靠性大大提高,与之相比,软件故障的影响因素更为突出一些。那么在这种情况下,提高系统硬件的可靠性还有没有意义?
答案是显而易见的,特别对于关键业务系统,很多用户采用集群的方式来提升可靠性。集群的方式是通过双机或者更多的机器,借助集群软件来提升系统的可靠性。但其中一台机器设备发生故障时,由另外一台设备来接替故障设备的工作。最理想的状况,是无缝切换,但在实际工作中往往做不到,有各种原因会导致系统切换不成功。此外,有时候也会导致在不该切换时候的误切换,这都会降低系统的可靠性。
较之集群,容错具有更高的可靠性级别。容错系统从整体上可视为一台机器,由两套独立硬件系统构成,受时钟锁步系统控制,在相同指令周期内执行同一条指令(参见图)。
容错系统特有的ASIC故障检测系统将对CPU、 内存、 芯片组、磁盘、 I/O 等部件的处理结果进行比对,相同执行下一步,不相同则从新计算。容错系统不仅可有效应对硬件故障,还可以避免各种不可预知的因素,如电磁干扰、尖峰脉冲等对可靠性的影响,避免潜在的计算错误所导致的风险。因此对于关键业务应用,应该选择具有更高可靠性的系统。
至于软件故障对系统可靠性的影响,唯一的办法就是升级软件包,打补丁。但是无论如何,硬件系统的高可靠性基础,是不可或缺的条件。所谓皮之不存,毛之焉附?