常识解析:究竟有没有不坏的服务器?


  世界没有从来不坏的服务器,这是可以肯定的。但对于业务应用而言,“Uptime”,“Allthetime”也就是系统的永续运行是最基本的需求。要求信息系统能够提供7×24×365的永不间断服务。如果用99.999%可靠性要求,一年累计的宕机时间不能够超过5分钟。业务对可靠性的近似苛刻要求也有其不得已的苦衷。根据统计,金融企业每次宕机损失平均为1000万美元,所造成的无形资产损失更是无法估量。
  
  如何处理业务需求永续运行和服务器宕机之间的矛盾?有一点可以肯定,我们需要的不是永不宕机的服务器,而是永不宕机的系统。
  
  如果我们构建一个7×24×365稳定运行的系统,对于永续运行构成威胁的故障,一个是来自硬件,一是来自软件。无论硬件还是软件都会造成系统故障。从经验看,软件的故障率远远高于硬件。这是不是意味着硬件的高可靠性失去了意义呢?
  
  硬件的高可靠性并不因为软件高故障率而有所削弱。硬件的高可靠性不能够解决应用软件的故障。对此,专家指出,软件错误属于应用逻辑问题,硬件不能够修复逻辑的错误。解决软件故障需要通过软件升级和打补丁来解决,但这不意味着硬件高可靠性没有意义。在任何时候,我们都需要构建一个稳定可靠的硬件基础平台。硬件不可靠将直接导致系统崩溃。
  
  我们没有一个永不宕机的服务器。为了保障系统不中断,很多用户采用了HA(高可用性)解决方案,通过双机冗余的方式来解决问题。目前,双机方案普遍被采用,但是非常遗憾,系统中断仍然时有发生。远的不说,亚马逊云计算宕机事件仍然历历在目。
  
  专家指出,问题就出在双机方案。从根本上,设计双机冗余并能够解决系统不中断的问题。双机只保障了在系统发生故障时的,系统可以恢复运行的问题。至于恢复的时间,也就是解决了MTTR(平均修复时间)的问题。鉴于目前系统日益复杂,交易量和交易规模庞大,任何一个系统要想进行全面恢复,其MTTR一定不会断,5分钟基本是不可能的。
  
  如果双机冗余的方案行不通,就只有继续在硬件层面需求答案。容错服务器就是惟一的答案。道理很简单,从处理器、内存、I/O通道,容错服务器都采用了双系统,通过锁步技术确保计算的可靠性和可信性。说白了,就是2个一样的系统计算同一个应用,当答案一致,就认为计算结果可信。否则推倒重来。以往,业内对容错服务器的认知多集中在可信计算上。但人们也忽略了,双系统对可靠性的贡献。双系统同时发生故障的概率非常低,当其中一个部件,例如CPU出现硬件故障时,容错服务器失去锁步,也就是失去可信计算的功能。但系统服务不会中断,管理人员拥有充裕的时间对故障部件进行更换,恢复可信计算。