分类: 服务器与存储
2008-06-07 18:48:08
摘要:提供关键业务的不间断服务,目前的解决办法是采用双机热备或者集群技术,采用基于开源Linux?HA项目下的免费软件Heartbeat作为双机热备方案无疑是极具性价比的选择。讨论了Heartbeat的基本原理,提出了一种基于Linux的双机热备系统,并基于B/S架构建立了该系统的管理模式。 关键词:双机热备;高可用性;Heartbeat 中图分类号:TP31文献标志码:A 文章编号:1001-3695(2007)04-0255-03 近年来,接入Internet的用户数目急剧增加,同时企业也加速了传统的商业模式到电子商务的改革。电子商务中,作为运行企业关键业务的服务器是保障商业运作有效、安全,实现企业利润最大化的保证,但是在信息系统建设中充满安全危机,服务器一个小小的软硬件故障或误操作都有可能造成关键业务出现中断或瘫痪,使企业蒙受损失。因此,系统的高可用性是关键。所谓高可用性包括一切避免系统服务中断的技术,它有多种解决方案,如双机热备、集群,高端容错主机等。其中高端容错主机是完全基于硬件的容错,价格昂贵,仅用于对容错有极高要求的应用。集群技术是指一组相互独立的服务器,在网络中表现为单一的系统,并以单一系统的模式加以管理以提供高可用性的服务。集群技术偏重于解决负载均衡、科学计算等问题,投资大、安装使用复杂,一般只适用于大型系统。双机热备系统投资小、配置简单,对于运行关键业务的中小型系统,双机热备方案无疑是更具性价比的选择。? 本文中的系统采用免费开源的基于Linux?HA(Linux高可用性)项目下的Heartbeat搭建了一个纯软件模式的双机热备平台,并编写了一个基于B/S结构的、友好图形界面的Linux HA Web管理系统。采用本系统即使是Linux新手也能较快速方便地建立一个双机热备系统,可胜任中小企业的电子商务、ERP、MIS、CRM、IDC等关键业务应用。? 1双机热备系统? 双机热备系统就是对于重要的服务,使用两台服务器共同执行同一服务,在运行的过程中实时互相备份,以冗余提高系统的可靠性。当一台服务器出现故障时,另一台可以立即发现故障并接管那台服务器以承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。更具体地说,双机热备常见的形式是基于Active/Standby方式的服务器热备。两个服务器数据同时使用一个共享的存储设备,或者不使用共享存储设备,通过软件实时保持两台机器的同步。在同一时间内只有一台服务器保持Active状态,另一台备份服务器(从机)处于监控准备状态。当其中保持Active状态的一台服务器出现故障无法启动时,备份服务器会通过软件诊测(一般是通过心跳诊断)将Standby机器激活,保证应用在短时间内完全恢复正常使用。? 1.1双机热备的实现模式? (1)基于共享的存储设备的方式? 基于存储共享的双机热备是采用两台服务器,使用共享的存储设备(磁盘阵列柜或存储区域网SAN)。两台服务器可以采用互备、主从、并行等不同的方式。在工作过程中,两台服务器将以一个虚拟的IP地址对外提供服务,依照工作方式的不同将服务请求发送给其中一台服务器承担;同时,服务器通过心跳线侦测另一台服务器的工作状况。当一台服务器出现故障时,另一台服务器根据心跳侦测的情况作出判断,并进行资源切换、接管服务。由于使用共享的存储设备,两台服务器使用的实际上是一样的数据,由双机热备软件对其进行管理。但在基于存储共享的双机热备系统中,存在共享的存储设备单点故障问题。若要解决该问题,用户还需花大价钱建立异地存储子系统。? (2)没有共享的存储设备的纯软件方式? 纯软件的方式则是通过镜像软件,将数据实时复制到另一台服务器上,这样同样的数据就在两台服务器上各存在一份。如果一台服务器出现故障,可以及时切换到另一台服务器。纯软件方式还有另外一种情况,即服务器只是提供应用服务,并不保存数据(如只进行某些计算,作为应用服务器使用)。这种情况下同样也不需要使用共享的存储设备,直接使用双机热备软件即可。纯软件方式无须专门购买昂贵的磁盘阵列柜或存储区域网SAN,费用低、易搭建、配置简单,十分适合于中、小企业的关键应用。下面谈到的双机热备系统均指该种方式。? 1.2双机热备软件——HA Heartbeat系统? 目前,市场上主要的基于Windows和Linux平台的商业双机热备软件包括HACMP、LifeKeeper、 RosaHA、LanderCluster、NEC ExpressCluster、Plus Well等,都具备心跳监测和资源接管的功能。但是随之而来的便是昂贵的费用,这让很多小企业望而却步。? 正因为如此,需要寻找一个开源免费的软件来实现HA功能,这就是High?Availability Linux Project(Linux下的高可用性项目)。它是一个Linux下的开源项目, High?Availability Linux 开源项目的目标就是通过社区开发,努力提供一个提升 Linux 可靠性(Reliability)、可用性(Availability)和可服务性(Serviceability)(RAS)的群集解决方案。Linux?HA 项目得到了广泛的应用,是很多高可用性解决方案的重要组成部分。? Heartbeat是High?Availability Linux Project的产物,是一套提供防止业务主机因不可避免的意外性或计划性宕机问题的高可用性软件。Heartbeat 是可以从 Linux?HA 项目 Web 站点公开获得的软件包,它提供了所有 HA(高可用性)系统所需要的基本功能,如启动和停止资源、监测群集中系统的可用性、在群集中的节点间转移共享 IP 地址的所有者等。它通过串行线、以太网接口或同时使用两者来监测特定服务(或多个服务)的运行状况。众所周知Linux是一个开源的操作系统,建立于Linux之上的Heartbeat同样也是开源免费的,可以根据各种需求对Heartbeat进行必要的改进、二次开发,以便更适合每个人的需要,同时也为该开源项目添砖加瓦。这样就可以得到一个最适合自己的HA高可用性软件,搭建一套完整的双机热备平台。? |