欢迎来到天天文库
浏览记录
ID:59224224
大小:16.52 KB
页数:7页
时间:2020-09-09
《利用Heartbeat实现Linux上的双机热备份系统.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、利用Heartbeat实现Linux上的双机热备份系统申志冰罗字(国防科技大学,长沙410073)E—mail:szb263@263.net摘要该文简要介绍了Heartbeat双机热备份软件的原理、使用以及对其的改进,为在Linux平台上实现高可靠性系统提供了一个性价比很高的解决方案。关键词LinuxHeartbeat双机热备份文章编号1002—8331一(2002)19—0126—03文献标识码A中图分类号TP316UsingHeartbeattoImplementDynamicStandbySystemonLinuxShenZhibingLuoNing(Nation
2、alUniversityofDefenceTechnology,Changsha410073)Abstract:ThispaperintroducestheprincipleandusageofHeartbeatdynamicstandbysystemsoftware.Inordertomakethehostalivedetectionmorepreciseinthissystem,theauthorsimprovethedetectmethod,andgetanappliedsolution.Keywords:Linux,Heartbeat,Dynamicstandb
3、ysysteml前言linux自问世以来,就一直受到人们的关注,并得到了迅猛的发展。特别是近年来.1inux已经发展为一个高性能,稳定可靠的操作系统,已经可以与各种传统的商业操作系统分庭抗礼,占据了一定的市场份额。更由于Linux可以免费获得,并开放源代码,使得它在中小型服务器领域成为性价比最高的选择,有越来越多的用户选择Linux构建Web、Mail、Proxy等各种应用服务器。对于应用服务器来说,能否保证服务的可靠性和持续性,是一个极为重要的问题.特别是对于关键业务。采用高可靠性的硬件设备可以在一定程度上解决这个问题,但是只要系统中存在单点故障点,这个问题就仍然存在
4、。目前,对于这个问题,一般是采用双机热备份或群集技术。群集技术偏重于解决负载均衡问题,投资大、安装使用复杂,一般多用于大型系统,但是对于采用集中式分发器的集群结构来说,分发器仍然要使用热备份技术。对于中小系统来说,一般是采用双机热备份方案。在双机热备份方案中,两台服务器都处于热机状态,备份机实时地监测主服务器的状态,如果主服务器故障了,备份机可以将所有的业务接管过来。双机热备份通常有两种方式,一种是Online方式,两台服务器都在工作,分别担负不同的任务,均衡负载。另一种是Standby方式,备份机不工作,只是监测作业机的工作状况。这两种方式各有利弊。Online方式机
5、器利用率高,但管理上存在一定难度;而Standby管理简单,但备份机大多数时间都在闲置,提高了成本。在Windows和Unix平台上,已经有许多成熟的双机热备份软件,但在Linux平台上,目前还没有很成熟的双机热备份软件。Heartbeat是Linux—HA项目小组(http://www.1inux-ha.org)~发的,专用于双机热备份的软件,很多Linux厂商都使用了这个软件,作为整体解决方案的一部分。Heartbeat软件可以在多种Linux和Unix平台上使用,安装配置简单,并遵循GPL规范,可以免费使用,并可以获得源代码,利于修改和二次开发。2Heartbea
6、t介绍2.1Heartbeat的工作原理主服务器上的Heartbeat程序周期性地发送状态消息,以表示本机的当前状态。备份服务器上的Heartbeat程序会实时地监听主服务器发送的状态消息。当主服务器故障时,备份服务器在设定的时间间隔内没有收到主服务器的状态消息,就认为主服务器已经失效,它会自动接管主服务器的IP地址和服务程序,继续提供服务。主服务器从故障中恢复后,会重新发送状态消息,并要求接管IP地址和服务程序,备份服务器收到该消息后,会自动放弃IP地址和服务程序,以便主服务器接管。Heartbeat软件支持三种服务器间通信方式:串口通信、PPP协议通信、UDP通信。
7、系统结构如图1。图l2.2Heartbeat的软件结构Heartbeat软件的总体结构如图2。图2Heartbeat软件主要由图中所示的4个进程和服务程序监控脚本、资源管理脚本等部分组成,本机的进程间通过管道发送消息,并由读写进程进行机器间状态消息的传递。其各部分说明如下:(1)命令处理进程(control_process函数):接受管理员的命令,转换为消息写入管道。(2)消息处理进程(master_status_process函数):周期性地发送状态消息,监控服务程序和其他机器的状态,当服务程序或其他机器发生故障时,发送状态消息,并调用
此文档下载收益归作者所有