从不同应用出发 看硬件系统可靠性设计

随着云计算蓬勃发展,系统硬件似乎变得不重要。应用构建在云基础之上,不用更多关注具体硬件产品和型号,云计算屏蔽了硬件系统的复杂性。真的是这样吗?

对于某些互联网应用是这样的,如网站等,这些应用多采用分布式部署,用户访问被随机分配给后台的服务器资源,但其中的一组服务器或者一台服务器产生硬件故障时,并不影响用户的访问。但对于有些应用而言,就不适用,如网络游戏,如果某一服承担帐号注册信息的服务器产生硬件故障,就会影响这一服的用户访问,降低游戏体验。即便构建在云计算基础上,采用虚拟机,也没有办法在硬件宕机的情况下进行热迁移。针对这类故障,就只有采用虚拟机HA或者容错技术。

对于关键业务应用而言,双机冗余是一种被普遍采用的技术,目的就是为了提高可靠性。云计算技术发展,并没有改变这种格局,不过是从物理机方案变为虚拟机方案。双机冗余技术的核心是通过HA软件对系统进行监控,对故障进行切换。切换就存在着成功和不成功的可能,就是切换成功,也需要一定的业务时间,意味着业务存在中断。理论上,双机系统可靠性只有4个9的水平。

对于很多关键业务应用而言,99.99%的可靠性是不够的。系统需要更高的可靠性。与双机方案相比,容错系统具有更高的可靠性,可以达到了6个9的水平。与双机方案相比,容错是一台机器,由两台独立的硬件系统构成,每台独立的硬件相当于一台服务器,所不同的是,两台独立的硬件受一套时钟锁步系统控制,在相同的指令周期内同时执行同一条指令(参见图)。这也就是时钟锁步 (Lockstep)技术。

容错系统特有的ASIC故障检测系统将对CPU、 内存、 芯片组、磁盘、 I/O 等部件的处理结果进行比对,相同执行下一步,不相同则从新计算。当其中的任何部件出现硬件故障时。系统失去容错能力,降低为一套系统硬件的可靠性,更换后,系统恢复容错能力。

容错系统具有冗余的硬件,但在时钟锁步技术控制下,始终还是一台机器,所需要的软件,如操作系统、数据库、中间件等,只需要一套授权。因此相比于双机冗余方案,硬件成本上,容错系统稍高,如果考虑软件的因素,容错系统整体上胜出,且具有更高的可靠性。

从市场表现看,容错系统不如双机方案,一来与市场推广有关,二来受商业利益影响,得不到软件企业地积极响应。