首页  ·  知识 ·  基础设施
Linux的双机热备系统的实现技术
刘晓洁 黄永佳  本站原创  数据中心  编辑:dezai  图片来源:网络
摘要:提供关键业务的不间断服务,目前的解决办法是采用双机热备或者集群技术,采用基于开源LinuxHA项目下的免费软件Heartbeat作为双机热备方案无疑是极具性价比
摘要:提供关键业务的不间断服务,目前的解决办法是采用双机热备或者集群技术,采用基于开源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高可用性软件,搭建一套完整的双机热备平台。
  Heartbeat实现了HA功能中的核心功能——心跳,将Heartbeat软件同时安装在两台服务器上,用于监视系统的状态,协调主从服务器的工作,维护系统的可用性。它能侦测服务器应用级系统软件、硬件发生的故障,及时地进行错误隔绝、恢复;通过系统监控、服务监控、IP自动迁移等技术实现在整个应用中无单点故障,简单、经济地确保重要的服务持续高可用性。
  
  2Heartbeat双机热备系统架构
  
  本文中的系统采用免费开源的基于LinuxHA项目下的Heartbeat搭建了一个纯软件模式的双机热备平台, 其工作模式为主从方式(Active/Standby),即主服务器工作,从服务器处于监控准备状态。当Heartbeat检测到主机宕机时,从服务器接管主服务器的工作,待主服务器恢复正常后,系统能自动将服务切换到主服务器上运行。 系统采用两台PC机(都配备有双网卡)作为主从服务器,两台机器的Eth0网卡接入外部网络,供客户端访问;两台机器的Eth1网卡通过一根RJ45交叉网线直接互连,配置内部IP,供心跳使用;一根串口直连线缆作为心跳线连接在两台机器的串口之间。这样做的目的是为了避免不必要的失效切换,故建立了两条独立的物理路径作为通信路径了解对方的运行情况。
  
本文原文
  此方案容错功能实现的关键是在主服务器宕机进行切换时,对客户端来说主服务器是透明的,即主机的切换在工作端看来没有变化,所有基于主机的应用都正常。Heartbeat采用了虚拟IP地址映射技术来实现此功能,本系统采用了如图1所示的系统体系架构及表1的网络配置。
  通过下面的小实验,以Web服务为例看Heartbeat是如何提供双机热备功能的。首先在Heartbeat的一个配置文件/etc/ha.d/haresources中设置虚拟IP地址并用域名hyjj.3322.org绑定这个IP地址,以便提供对外Web服务;同时设置需同步的服务,本实验中设置的是Httpdf服务。两台机器同时通过/etc/init.d/heartbeat start把Heartbeat进程运行起来,Heartbeat会把本地的Apache服务启动起来。通过访问这个虚拟的IP地址或域名可以访问到Web页面,实际访问到的真实页面是主服务器上的页面。当手动把主服务器宕掉后,在访问hyjj.3322.org时会出现打不开页面的情况,因为此时hyjj.3322.org映射到的Linuxha1主机已经宕机了,过几秒钟后再访问这个202.115.48.137的IP地址或hyjj.3322.org域名时又可以访问了。这是因为,Heartbeat通过心跳线检测到了主服务器已经宕机,马上激活从服务器,自动将202.115.48.137的IP切换到从服务器上,从服务器接管主服务器的资源,提供对外服务,所以看到了与刚才一样的Web页面。由此可以看到当系统发生出现故障进行切换时,对用户来说服务器是透明的,系统提供了不间断的网络服务。
  
  3Heartbeat管理系统的实现
  
  Linux下的大多数服务类软件都是通过在Shell下直接配置、操作的,Heartbeat也不例外。但是对于一个Linux新手,直接修改复杂的配置文件、手动地启动服务无疑是一个困难的事情。鉴于此,本文设计了Heartbeat管理系统——Linux HA Web管理系统来完成配置、启动等工作。该系统基于B/S结构,管理员通过浏览器(可远程访问)经身份认证后进入该管理系统,通过一个Web图形界面来对Heartbeat进行管理,类似于phpMyAdmin对MySQL那样的图形管理界面。其拓扑结构如图2所示。
  Heartbeat共有三个配置文件,分别是/etc/ha.d/目录下的Ha.cf,Haresources和Authkeys。其中,Ha.cf是主要配置文件,Haresources是资源配置文件,Authkeys是认证信息配置文件。Linux HA Web管理系统使用户可以直接通过浏览器的图形界面选择采用系统预设好的缺省配置或自行客户化配置来设置这些配置文件,重启Heartbeat服务,避免了直接在Linux下修改复杂的配置文件。
  整个Heartbeat Web管理系统采用JSP编写,后台采用Tomcat作解析。这里以其中一个核心的应用——/etc/ha.d/ha.cf配置文件的读写功能为例,给出了图形化配置/etc/ha.d/ha.cf的代码片断。
  
  4结束语
  
  本文运用开源的HighAvailability Linux Project的Heartbeat软件包,开发实现了一个具有友好的Web图形配置面的双机热备系统。经初步测试,该系统可用于小型有高可用性需求的应用。
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文 本文作者:刘晓洁 黄永佳 来源:本站原创
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的