我们经常听见客户说他们需要,双机又是需要热备,又是集群的情况。这个时候,可以根据客户不同的业务进行区分。到底客户需要的是什么。比如票务网站,可能客户需要的是高可用的HA,双机互备,或者双机热备以实现零宕机。如果业务数据库很庞大,单台服务器完全不能满足需要,需要性能分布集群。这个时候又需要负载均衡的集群,比如Oracle的RAC类似的东西。这片文章主要是阐释双机热备和集群服务器的区别。
先上两个图:
如上图是一个双机热备的环境。
下图展示一个双节点的RAC集群:
图片都来自互联网。
1. 客户的需求是什么?
双机方式还是多点集群?
或者是目前使用双机、以后可能升级到集群?
在应用双机热备时,有多种应用模式,典型的包括主从、互备、多点集群。
三大类:主从模式是最标准、最简单的双机热备,即是目前通常所说的active/standby方式。它使用两台服务器,一台作为主服务器(Active),运行应用系统来提供服务。另一台作为备机,安装完全一样的应用系统,但处于待机状态(Standby)。当active服务器出现故障的时候,通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
双机互备,在双机热备的基础上,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。这种方式实际上是双机热备的一种应用。它避免了两个应用使用四台服务器分别实现双机热备。
但双机互备存在着性能瓶颈,即如果进行切换后,在一台服务器上就有同时运行两个应用,有可能负载过大。并且,有些情况下会有不止两台服务器对外提供服务。
在这种情况上,多点集群就显示出了其必要性。
多点集群:可以理解为双机热备在技术上的提升。多机服务器可以组成一个集群。根据应用的实际情况,可以灵活地在这些服务器上进行部署,同时可以灵活地设置接管策略。
比如,可以由一台服务器作为其他所有服务器的备机,也可以设置多重的接管关系,等等。这样,就可以充分地利用服务器的资源,同时保证系统的高可用性。
如果是双机,是采用共享的存储设备,还是采用基于镜像的纯软件方式?
双机热备有两种实现模式,一种是基于共享的存储设备的方式,另一种是没有共享的存储设备的方式,一般称为纯软件方式。
基于存储共享的双机热备是双机热备的最标准方案。对于这种方式,采用两台(或多台,参见:双机与集群的异同)服务器,使用共享的存储设备(磁盘阵列柜或存储区域网SAN)。
两台服务器可以采用互备、主从、并行等不同的方式。在工作过程中,两台服务器将以一个虚拟的IP地址对外提供服务,依工作方式的不同,将服务请求发送给其中一台服务器承担。
同时,服务器通过心跳线(目前往往采用建立私有网络的方式)侦测另一台服务器的工作状况。
当一台服务器出现故障时,另一台服务器根据心跳侦测的情况做出判断,并进行切换,接管服务。对于用户而言,这一过程是全自动的,在很短时间内完成,从而对业务不会造成影响。
由于使用共享的存储设备,因此两台服务器使用的实际上是一样的数据,由双机或集群软件对其进行管理。
对于纯软件的方式,则是通过支持镜像的双机软件,将数据可以实时复制到另一台服务器上,这样同样的数据就在两台服务器上各存在一份,如果一台服务器出现故障,可以及时切换到另一台服务器。
对于这种方式的深入分析,请参见:纯软件方式的双机热备方案深入分析纯软件方式。
还有另外一种情况,即服务器只是提供应用服务,而并不保存数据(比如只进行某些计算,做为应用服务器使用)。
这种情况下同样也不需要使用共享的存储设备,而可以直接使用双机或集群软件即可。但这种情况其实与镜像无关,只不过是标准的双机热备的一种小的变化。
2. 了解清楚应用环境:
使用什么操作系统?
运行什么应用?(比如,数据库的版本)
使用什么服务器?
使用什么存储设备?
如果考虑纯软件方式,则还有了解清楚:数据量的大小、数据写入的频率、应用的关键性与重要性(相关内容:纯软件方式的双机热备方案深入分析)
3. 在此基础上,考虑以下因素,选择相应的软件产品:
产品是否能支持所要求的应用方式?
产品是否能支持所使用的应用环境?
产品的其他特性:
是否支持远程监控?(可以使你不用非要经常跑到机房,才知道是否一台服务器宕机了)界面语言。
(对双机软件,中文界面并不是非常重要,但也是一个因素。同时,是否有中文手册等则可能非常重要)
安装的难易程度
是买贵的、买性价比高的、还是买最便宜的?
是否存在合法的供货渠道?(直接关系到产品是否能得到长期可靠的服务!!!)
是否需要安装服务? 需要什么样的售后服务? 服务要求是否有保障?
如果可能会运行特别的应用系统(比如使用面较少的操作系统、数据库、自己开发的应用软件等),是否能得到原厂商在开发与调试一级的支持。