有些时候,明明一台服务器就可以搞定的,可是却非要用2台服务器,也就是所谓“双机冗余”方案,有时候,甚至不惜采用服务器集群。
为什么需要采用双机冗余方案?道理很简单,该系统不容丝毫闪失,需要系统7×24小时不中断服务,追求系统的高可靠性。
这样的应用非常多,金融、电信、民航、交通、电力、制造等行业有大量的这样的应用,现在的问题是,用户花费双倍的投入,有没有得到所需要的高可靠性呢?答案是否定的,原因并不来自服务器,而是来自管理控制的软件。双机冗余也好,集群也好,本质上是通过软件进行控制的,软件的可靠性并不高。另外,当系统需要切换的时候,一来需要时间;二来应用系统未必可以顺利切换,特别是系统运行一段时间时候,两台机器在同步性上难免有差异,即使运行管理到位,系统是否可以顺利切换,都是一个未知数。多数情况下,就是一个心理上的安慰。
双机冗余方案或者集群方案给硬件厂商和软件厂商都带来的巨大商业利益,生意额瞬间翻番,因此厂商有热情推动发案的销售。对于用户来说,双机冗余或者集群的确具有高于单机的效果,尽管有些无奈,也不得不接受这样的方案。
就没有更理想的方案吗?以Stratus为首的容错服务器是一个更加理想的方案。
容错方案的本质是像一台x86 服务器一样进行管理,它的设计目的是实现标准服务器无法达到的保护运行时间,适合数据中心和远程现场关键应程序使用。它通过一个被称为“双模修复 (DMR) Lockstep 设计”的技术,让2台服务器工作在相同时钟周期下,确保计算指令同步运行。两个系统运行结果一致,计算进入下一步,结果不一致,返回重新计算,避免错误的产生。其中,不仅CPU工作在双模修复状态下,内存、PCI和外部I/O全部工作在这个模式下。
如果硬件损坏,有故障的模块退出服务,该模块失去容错,进入单机工作状态,可靠性虽然降低,但系统仍然保持运行。由于模块支持热插拔,更换之后,重新投入容错工作状态。对于容错服务器而言,当且仅当相同模块同时损坏,才会导致系统的宕机,这种概率是非常低的,远远低于单台服务器的故障率。对于这种极限情况,更有效的手段是容灾,而不是在系统上做文章。
容错服务器是用户关键业务应有的理想选择。一台容错服务器的售价高于两台独立的服务器。但从系统的角度,容错是一台设备,所需要的操作系统、数据库、中间件的软件授权是一台,而不是两台。因此,在系统的TCO(总体拥有成本)上优势明显。但对软件商家而言,肯定不会推荐这样的系统。为此,有评论指出:双机是商家的选择,而容错则是用户的选择。
从市场表现看,容错处于下风,这说明,用户远没有商家精明。这不是悲哀!这种现象的背后,折射出的是商家与用户在信息技术上的不对等。另外一个原因就是Stratus等容错厂商,重视技术,不会进行市场推广,而这也恰恰Stratus的特点。