ubuntu下基于HeartBeat的双机热备
- 格式:doc
- 大小:150.00 KB
- 文档页数:6
双机保障(热备)实现系统高可用性1.背景随着当前网络的快速发展,很多传统的服务已经转移到网络环境中实施,例如数据存储、金融交易、企业管理、通信传输等,当前大部分服务都是采用中心服务器的模式。
网络环境的脆弱性,导致中心服务器出现故障的几率比较大。
因为在网络环境下,导致服务器故障的原因是错综复杂,无法预测的,例如网络攻击、电缆断线、操作系统故障、软件故障、设备故障等。
一旦服务器出现故障,那么所提供的服务就会被中断一段较长的时间。
一般地讲,在技术人员在现场的情况下,恢复服务器正常可能需要10分钟、几小时甚至几天。
从实际经验上看,除非是简单地重启服务器(可能隐患仍然存在),否则往往需要几个小时以上。
而如果技术人员不在现场,则恢复服务的时间就更长了。
因此,服务器提供服务的持续性是得不到保证的。
但是,对于一些企业级应用来说,用户是很难忍受这样长时间的服务中断的,保证系统能够持续地、稳定地提供服务至关重要。
对于某些执行关键使命的系统,甚至要求系统能够具备365×24不停顿运行的能力。
因此,出现了高可用性的需求和方案。
HIFN实验室在研究UTM(统一威胁管理)平台时,采用了一种“双机热备”的技术方案保证UTM系统的高可用性。
该UTM平台采用了HIFN HPM模式匹配算法来完成内容过滤和病毒扫描,并使用了HIFN FlowThrogh IPSec加速卡来实现VPN。
以下笔者将会结合该UTM平台详细介绍这种“双机热备”式的高可用性技术方案。
2.概述双机热备技术,概括地说,就是使用两台服务器,通过即时备份数据的方式,实现系统的高可用性。
其基本原理是这两台服务器,一台处于active状态,称为主服务器,一台处于standby状态,称为备用服务器。
在正常情况下,由处于active状态的主服务器提供服务,当主服务器出现故障时,处于standby状态的备用服务器被激活,接替主服务器继续提供服务。
而整个过程无需人工干预,在短时间内自动完成服务接管。
双机热备安装部署方案(heartbeat 3.x +pacemaker)by——商胜前言双击热备用一句通俗易懂的话来说就是避免服务器因临时故障而导致服务中断的一种备份技术,这也就是所谓的高可用性。
本文主要是用heartbeat来针对resin下的服务做服务热备。
例如,在resin下现有三个服务server1 、server2 、server3 以及访问这三个服务的虚拟ip——vip:10.3.255.36 。
现在的需求是要保证这三个服务的高可用性,即当三个服务中的任何一个宕掉了以后,heartbeat首先要做的是判断这些服务是否有故障的,如果存在有故障的服务,heartbeat首先会在本机重启该故障服务,一旦该服务无法启动,则停止本机的server1、server2 、server3,切换虚拟ip到从机并在从机上启动这三个服务。
一.测试环境搭建测试环境说明:操作系统:Red Hat Enterprise Linux Server release 5.4 (Tikanga) 64位操作系统Heartbeat版本:heartbeat-3.0.3-2 附录中有heartbeat简介以及版本说明操作系统配置主服务器备用服务器主机名HB_Node01 HB_Node02Ip Eth0: 10.3.43.99Eth1: 192.168.254.12 Eth0: 10.3.43.99Eth1: 192.168.254.12vip 10.3.43.101(由heartbeat中生成)添加用户、用户组添加用户:hacluster useradd -M hacluster添加用户组:haclient groupadd haclient并且hacluster 属于用户组haclient usermod -G haclient hacluster主机名配置方式:设置主机名[root@localhost ~]# hostname HB_Node01[root@localhost ~]# vi /etc/hosts[root@localhost ~]# vi /etc/sysconfig/networkIp配置方式配置ip[root@HB_Node01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 [root@HB_Node01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1(这里给出的是命令行配置方式,也可以进入图形界面进行配置)注意的问题:配置外网ip时配置默认网关,但在配置heartbeat1之间通信的ip时网关不要配置,因为这里再配置网关则会覆盖之前配置的默认网关导致通信异常。
/thread-3689681-1-1.html我们下面来实现一个架构,heartbeat+drbd+nfs实现mysql和网站数据的同步,keepalived 实现nginx的高可用,而用nginx和dns轮询实现负载均衡。
架构说明目录规划/usr/local/src/lnmp:用来存放源码工具等等/data:用来存放所有数据和NFS以及DRBD的挂载/data/shell:用来存放所有管理脚本/data/mysql:用来挂载DRBD的mysql资源,以供mysql存放数据库/data/wwwnfs:用来挂载DRBD生成的www资源,以供两个节点挂载到各个节点的/data/www 目录,以供论坛等程序数据使用/data/www:用来挂载NFS资源,用来存放论坛(网站)等程序数据拓扑工作原理内网:1,DRBD网络存储创建出两个资源,一个mysql给mysql数据库同步用,一个www给web(论坛)数据NFS共享挂载用,虚拟出两个虚拟IP,一个是 192.168.1.100,用来连接数据库,一个是192.168.1.200,用来给节点挂载NFS注意:NFS底下挂载了三次:DRBD挂载一次,文件系统挂载一次,客户端挂载一次2,Heartbeat来实现DRBD的HA,同时虚拟出两个内网IP,并管理NFS,MySQL的启动和关闭外网:1,两个节点都用Nginx做均衡器,通过内网调度负载两个节点,实现内部均衡2,DNS配置双IP对应一个域名的方式来实现DNS轮询,实现外网均衡3,Keepalived使用双主(master)配置虚拟出两个虚拟IP:节点一 12.12.12.100和节点二12.12.12.200,同时共外网访问,两个节点互为主从关系,当某个节点挂掉的时候,另外一个节点将同时是两个资源的master,同时拥有两个虚拟IP,实现资源转移。
我们知道DNS的缺点就是生效慢,分配资源不合理,理论上有可能把所有的请求都发送给同一节点,导致均衡不合理导致所有资源不可用,这里我们由于有了NGINX内部负载,就不怕DNS轮询不均衡了,因为NGINX内部有严谨的调度方式,不管那台请求有多少,在内部都能实现理想的调度,这样就能把 DNS负载均衡和NGINX完美结合,是硬件资源得到合理的利用,然后利用keepalive保证了每个节点的可靠性,几乎完美!拓扑图如下:架构实现LNMP架构配置配置LNMp架构需要注意两点:注意一:这里MYSQL都不要初始化,不要启动!后面有专门的配置的注意二:nginx所有端口都改成 8080,因为一会还要安装nginx来做均衡器并对外提供服务,所以不要用默认的80注意三、nginx和php-fpm运行的用户都是www。
双机热备解决方案简介双机热备是一种常见的高可用性解决方案,通过在两台服务器之间进行数据同步和状态同步,实现在主服务器故障时快速切换到备服务器,从而确保系统的持续可用性。
在本文档中,将介绍双机热备的原理、实施步骤和常见问题解决方案。
原理双机热备的原理是将主服务器和备服务器通过网络连接起来,通过定期同步数据和状态,以便备服务器能够准确地为主服务器提供备份服务。
当主服务器出现故障时,备服务器将立即接管主服务器的工作,并提供相同的服务,以保证系统的可用性。
具体的原理如下: 1. 主服务器和备服务器通过一个交换机或路由器进行网络连接。
2. 定期将主服务器的数据和状态同步到备服务器上,可以使用文件同步工具、数据库复制等技术实现。
3. 备服务器处于待命状态,随时可以接管主服务器的服务。
4. 当主服务器出现故障时,备服务器立即接管主服务器的服务,并通知管理员进行处理。
实施步骤要实施双机热备解决方案,需要进行以下步骤:步骤一:选取适合的硬件设备为了实现双机热备,首先需要选取适合的硬件设备,例如服务器、网络交换机等。
这些硬件设备应具备高可靠性和性能。
步骤二:配置网络环境在选取合适的硬件设备后,需要配置网络环境。
主服务器和备服务器应通过可靠的网络连接起来,并保证网络延迟较低和带宽较大,以确保数据和状态的快速同步。
步骤三:选择并配置数据同步及状态同步方式选择和配置合适的数据同步和状态同步方式是双机热备的关键。
可以根据具体需求选择文件同步工具、数据库复制等技术来实现数据和状态的同步。
步骤四:验证双机热备方案在配置完数据同步和状态同步后,需要进行验证双机热备方案是否生效。
可以通过模拟主服务器故障的方式来验证备服务器是否能够成功接管主服务器的服务。
步骤五:监控和管理备服务器在双机热备方案生效后,需要对备服务器进行监控和管理。
通过实时监控备服务器的状态和性能,及时发现和解决问题,确保备服务器的可靠性和可用性。
常见问题解决方案在实施双机热备方案过程中,可能会遇到一些常见的问题。
Linux系统双机热备的⽅案Linux系统双机热备的⽅案⽬前,双机和集群采⽤的操作系统主要有UNIX、Linux、BSD及微软公司的Windows NT/2000。
随着Linux的迅速发展,稳定性、安全性及功能的不断增强,⼈们对Linux的使⽤越来越⼴泛,Linux已成为服务器市场中的⼀个重要操作系统,基于Linux的双机和集群系统也越来越多。
Linux集群的主要优点有:⾼可靠性、⾼性能、低成本等等。
1.1 概述1.1.1 实现⽬的双机热备份(Hot Standby)是⼀种软硬件相结合的⾼可靠性应⽤⽅案。
双机热备系统由两台独⽴的服务器以及相应的控制软件构成,两台服务器在⽹络中表现为单⼀的系统,对外表现为⼀个独⽴的⽹络IP,并以单⼀系统的模式进⾏控制和管理。
该系统将两台服务器的数据和运⾏状态(包括硬盘数据和内存数据)进⾏镜像,可以实现两台服务器之间的热备份,并能够做到⽆缝切换,从⽽对外提供稳定可靠的服务,实现双机系统的⾼可⽤性解决⽅案。
1.1.2 功能概述双机热备份系统由相应的应⽤软件进⾏控制,操作系统和应⽤程序安装在两台服务器的系统盘上。
每⼀台服务器分配⼀个固定的IP地址,此外还指定了⼀个独⽴IP地址作为集群IP(cluster IP),该IP是双机系统对外提供服务的接⼝。
两台服务器⼀台成为主节点(Primary Server),另⼀台成为从节点(Standby Server),主节点与从节点之间保持固定时间间隔的⼼跳信号,通过⼼跳信号实现两个对等系统之间的周期性的握⼿,从⽽能够监视对⽅的运⾏状态,进⾏主机及⽹络的故障检测。
在系统正常情况下,主节点占⽤系统资源并运⾏所有的服务,为信息系统提供⽀持,从节点通过⼼跳信号监视主节点的运⾏情况。
⼀旦主节点发⽣故障(如主机故障,⽹络故障,软件故障等),从节点就会⾃动接管(Take Over)主节点的资源和服务,继续⽀持信息的运营,从⽽保证整个双机系统能够不间断的运⾏(Non-Stop)。
双机热备原理
双机热备原理是指在计算机系统中,通过两台服务器实现热备份,以保证系统在一台服务器发生故障时能够快速切换到另一台服务器,从而保证系统的高可用性和可靠性。
首先,双机热备系统需要两台服务器,它们之间通过网络连接,实现数据同步和通讯。
在正常情况下,两台服务器同时工作,共同承担系统的负载。
其中一台服务器充当主服务器,负责处理用户的请求和数据操作,另一台服务器则作为备用服务器,实时接收主服务器的数据同步,并保持与主服务器的数据一致性。
其次,双机热备系统中的关键技术是心跳检测和自动切换。
心跳检测是指主备服务器之间定时发送心跳信号,用于检测对方的状态。
一旦主服务器发生故障,备用服务器能够通过心跳检测感知到主服务器的异常,并立即接管主服务器的工作,实现自动切换,从而保证系统的连续性和稳定性。
另外,双机热备系统还需要具备数据同步和故障恢复的能力。
数据同步是指备用服务器需要实时接收主服务器的数据更新,以保证数据的一致性。
而在主服务器发生故障时,备用服务器需要快速接管主服务器的工作,同时保证数据的完整性和准确性,从而实现系统的快速恢复。
总的来说,双机热备原理通过两台服务器之间的数据同步和自动切换实现了系统的高可用性和可靠性。
它能够有效地避免单点故障,提高系统的容错能力,保证用户的正常使用。
因此,在大型企业和关键系统中,双机热备系统被广泛应用,成为保障系统稳定运行的重要手段之一。
服务器双机热备解决方案服务器双机热备解决方案是一种为服务器提供高可用性和容错能力的解决方案。
通过使用两台服务器进行镜像备份和故障切换,可以实现在主服务器故障时无缝地切换到备份服务器,确保系统的连续可用性。
以下是一个详细的服务器双机热备解决方案。
1. 硬件配置:首先,选择两台具备相同规格和配置的服务器作为主备服务器,确保它们具备相同的处理能力、存储容量和网络连接性能。
在服务器之间建立高速互联通道,如双机网卡冗余链接(Multiple Network Interface Redundancy)或光纤通道(Fibre Channel),确保数据传输的稳定和可靠性。
2.系统镜像备份:在主服务器上完成系统的安装和配置后,制作主服务器的系统镜像,并定期更新备份服务器的系统镜像。
可以使用备份软件或快照工具来实现系统镜像的制作和恢复。
3. 数据同步:使用数据复制技术实现主备服务器之间数据的实时同步。
常用的数据同步方式包括同步复制(Synchronous Replication)和异步复制(Asynchronous Replication)。
在同步复制中,主服务器将数据写入备份服务器之前,需要确认数据已经被写入备份服务器。
而在异步复制中,主服务器将数据写入备份服务器后马上返回,不等待备份服务器的确认。
根据需求和实际情况选择适当的数据同步方式。
4. 心跳检测:为了监测主备服务器的状态并确保高可用性,需要在主备服务器之间建立心跳检测机制。
心跳检测可以通过心跳包(Heartbeat)或集群管理软件实现。
当主服务器发生故障时,备份服务器可以通过接收不到心跳信号来判断主服务器的故障,并开始服务切换过程。
5. 故障切换:主服务器发生故障后,备份服务器需要尽快接管主服务器的工作。
在故障切换过程中,需要确保数据的一致性和完整性。
可以通过一些技术手段来实现故障切换,如虚拟IP(Virtual IP)、磁盘共享(Shared Disk)或共享文件系统(Shared File System)等。
Nginx+keepalived+heartbeat双机热备份配置手册正文目录1 双机热备简介 (3)2 双机热备安装与配置 (4)2.1 安装环境和软件版本说明 (4)2.2 系统安装 (4)2.3 JDK环境安装配置 (4)2.4 MYSQL安装配置 (6)2.4.1 基本安装配置 (6)2.4.2 数据库双机互备 (7)2.5 反向代理服务器NGINX的安装配置 (9)2.6 KEEPALIVED安装配置 (13)2.7 HEARTBEAT的安装配置 (15)2.8 APACHE-TOMCAT安装配置 (18)3 CENTOS下安装配置的改动 (20)3.1 NGINX (20)3.2 KEEPALIVED (23)3.3 HEARTBEAT (26)3.4 添加SHELL脚本 (29)1 双机热备简介双机热备及负载均衡配置图如下所示2 双机热备安装与配置2.1 安装环境和软件版本说明系统:Linux Ubuntu 10.10JDK环境:jdk-6u31-linux-i586方向代理服务器Nginx:nginx-0.7.67探测服务器状态软件Keepalived:keepalived-1.1.17Web服务器:Apache-tomcat:apache-tomcat-6.0.35数据库MySQL:mysql-5.1.612.2 系统安装2.3 JDK环境安装配置1 、安装jdk 程序最新版本jdk: jdk-6u31-linux-i586.bin进入usr 目录: cd /usr在当前目录创建目录java : mkdir java将jdk 安装文件复制到java 目录下:cp /usr/software/ jdk-6u31-linux-i586.bin /usr/java给安装程序赋予权限:chmod +x jdk-6u31-linux-i586.bin 执行安装命令:./ jdk-6u31-linux-i586.bin安装成功后,在java 目录下会出现jdk1.6.0_31 的目录。
服务器双机热备方案
在现代社会,服务器作为信息存储和传输的重要设备,其稳定性和可靠性显得
尤为重要。
为了确保服务器在遇到故障时能够实现快速切换和备份,双机热备方案应运而生。
双机热备方案是指在服务器集群中,两台服务器同时工作,一台作为主服务器,另一台作为备份服务器。
主服务器负责正常的数据处理和服务提供,备份服务器则时刻与主服务器保持同步,一旦主服务器出现故障,备份服务器可以立即接管工作,实现快速切换,保证系统的连续性和稳定性。
双机热备方案的实现需要借助专业的硬件设备和软件技术。
首先,硬件方面需
要两台服务器具有相同的配置和性能,以及高可靠性的存储设备和网络设备。
其次,软件方面需要利用专业的双机热备软件,实现数据的实时同步和故障的快速切换。
另外,还需要配备专业的监控系统,及时发现故障并进行处理。
在实际应用中,双机热备方案可以应用于各种对系统稳定性要求较高的场景,
比如金融交易系统、电信运营系统、医疗信息系统等。
通过双机热备方案,可以最大程度地提高系统的可用性和稳定性,保证用户的正常使用和数据的安全性。
总的来说,双机热备方案是一种高可用性的服务器备份方案,可以在主服务器
故障时实现快速切换,保证系统的连续性和稳定性。
通过合理的硬件配置和专业的软件技术,双机热备方案可以在各种对系统稳定性要求较高的场景中得到应用,为用户提供更加可靠的服务和保障。
双机热备方案1. 介绍双机热备方案(Dual Server Hot Standby Solution)是一种常见的容灾技术,用于确保系统的高可用性和可靠性。
通过使用两台服务器,当其中一台服务器发生故障时,另一台服务器能够立即接管该服务器的工作,并保持服务的连续性。
在这种方案中,一台服务器处于主机状态,负责处理所有的工作请求,而另一台服务器则处于备机状态,等待接管主机的工作。
2. 实施原理双机热备方案的实施基于以下原理:•心跳机制:主机和备机之间会定期发送心跳信号以保持通信连接。
当主机无法正常发送心跳信号时,备机会假设主机发生故障,并迅速接管主机的工作。
•实时数据同步:主机和备机之间进行实时数据同步,确保备机上的数据与主机保持一致。
这样当主机发生故障时,备机可以无缝切换并继续处理客户端请求。
•故障检测和切换机制:备机会监测主机的运行状态,一旦检测到主机发生故障,备机会立即接管主机的工作,继续提供服务,并通知管理员进行相关处理。
3. 部署步骤以下是一个基本的双机热备方案的部署步骤:步骤1:选择硬件设备选择两台具有相同配置的服务器作为主机和备机。
确保服务器具备足够的处理能力和存储容量来处理和存储系统的数据。
步骤2:安装操作系统在主机和备机上安装相同版本的操作系统。
推荐使用稳定且可靠的操作系统,如Linux。
步骤3:安装服务软件安装所需的服务软件,如Web服务器、数据库服务器等。
确保主机和备机上的软件版本一致。
步骤4:配置双机热备方案配置主机和备机之间的心跳连接和数据同步。
使用专门的软件工具设置心跳连接,并确保主机上的数据能够实时同步到备机上。
步骤5:测试和验证进行测试和验证,确保主机和备机之间的切换过程可以顺利进行,并且系统能够正常工作。
测试过程中应模拟主机故障和切换,以验证备机能否正常接管主机的工作。
步骤6:监控和维护建立监控系统,实时监测主机和备机的运行状态。
定期进行维护和更新工作,以确保系统的可用性和稳定性。
用DRBD和Heartbeat实现人行前置机双机热备1前提Linux下可以用开源软件DRBD和Heartbeat实现廉价的双机热备,这种方案不需要存储和光纤交换机,适合于共享存储不是特别大的场合,比较廉价。
人行的网银前置机就可以采用这种方式。
建议使用Suse Linux Enterprise Server 10、11或Suse Linux HA Extension版本,Suse企业版和HA扩展版中已经包含了DRBD和Heartbeat。
如果采用Open Suse或其他版本Linux,可能需要自行安装DRBD和Heartbeat,因为其中涉及很多软件包,安装比较麻烦。
(本文并不提供详细的安装说明)1.1 DRBDDRBD是一个磁盘镜像软件,类似于一个网络RAID-1功能。
当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上,以相同的形式记录在一个文件系统中。
本地(主节点)与远程主机(备节点)的数据可以保证实时同步。
当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用。
DRBD包含一个用户程序和一个内核模块,在Linux内核2.6.33后已经含有了drbd的内核模块,不需要再安装drbd内核。
目前DRBD的最新版本是8.3.8.1。
1.2 HeartbeatHeartbeat是Linux下的HA软件,用来实现高可靠性集群服务。
目前Heartbeat最新版本是3.0。
1.3 示例系统下面用2台虚拟机上的的双机热备来说明DRBD和Heartbeat的配置和启动。
主机A(双网卡):操作系统:Open Suse Linux Server 11.1DRBD版本:8.2.7Heartbeat版本:2.1.3内核:Linux suse11 2.6.27.19-5-pae #1 SMP 2009-02-28 04:40:21 +0100 i686 i686 i386 GNU/Linux心跳IP:10.1.1.228(eth0)固定IP:192.168.253.101(eth1)浮动IP:192.168.253.205(eth1:0,由Heartbeat自动获得)主机名:suse11空磁盘分区:/dev/sda5备机B(双网卡)操作系统:Open Suse Linux Server 11.1DRBD版本:8.2.7Heartbeat版本:2.1.3内核:Linux ibps-mbfe 2.6.27.19-5-pae #1 SMP 2009-02-28 04:40:21 +0100 i686 i686 i386 GNU/Linux心跳IP:10.1.1.229(eth0)固定IP:192.168.253.202(eth1)浮动IP:192.168.253.205(eth1:0,由Heartbeat自动获得)主机名:ibps-mbfe空磁盘分区:/dev/sda5说明:浮动IP是对外公开的IP地址,主机挂掉,由备机自动获得此IP。
单服务器升级至双机热备实例摘要:介绍了基于网络的双机热备系统的设计思路以及通过在主备服务器中配置脚本程序,将阅文站服务器升级至双机热备系统的过程。
关键词:双机热备,心跳监测,同步Abstract: This paper introduce a design method of network based hot standby service system as well as the procedure of upgrade from single document server to hot standby service system by configuring script files on both active and standby server.Keyword: hot standby service, heartbeat monitor, synchronization1 :升级方案建立的起因目前的内部文件阅读服务器由于使用年代较长,经常出现无响应甚至死机的状况。
由于内部文件阅读服务器是我台员工了解并获取规章制度内容和近期活动消息的一个重要途径,所以该服务器的稳定性显得十分重要。
就目前的管理情况而言,除了定期的检查之外,一般都是通过阅读者的通报获知服务器处于无响应的状况,很难做到及时发现并处理。
单纯通过增加检查次数的方法很难收到理想的效果。
一来即便达到一天十次检查的量,对于服务器而言仍然是小时单位的数量级,而且只能在工作时间内施行;再者,由于没有配套的同步备份方案,即便发现服务器崩溃,恢复重建所消耗的时间依然相当可观。
长时间停机导致信息传达的滞后将直接影响到工作的开展,试想如果这种情况发生在关键性服务器如新闻文稿系统上的话,将造成不可估量的严重后果。
2 :网络双机热备的思路所要采用的采用双机热备的办法,双机热备即是目前通常所说的active/standby 方式。
当active 服务器出现故障的时候,通过软件诊测(一般是通过心跳诊断)将standby 机器激活,保证应用在短时间内完全恢复正常使用。
双机热备软件方案双机热备软件方案指的是利用两台服务器进行热备份,以实现系统的高可用性。
在这个方案中,一台服务器作为主服务器,负责正常的业务运行,而另一台服务器则作为备份服务器,实时复制主服务器上的数据和状态,并在主服务器发生故障时接管主服务器的运行。
下面是一个示例的双机热备软件方案:1.硬件要求:-两台性能相近的服务器,建议使用服务器级硬件。
-硬盘容量足够大以容纳主服务器上的所有数据。
-网络带宽足够大以支持实时数据复制。
2.操作系统要求:-主服务器和备份服务器上安装相同的操作系统,以保证软件兼容性。
- 操作系统应该支持实时数据复制和热备份功能,如Linux中的DRBD(Distributed Replicated Block Device)。
3.数据同步方案:-配置DRBD,使用它的实时数据复制功能,将主服务器上的数据实时同步到备份服务器上。
-DRBD将主服务器上的数据块按照指定的规则复制到备份服务器上的相应位置,以保证主备服务器上的数据一致性。
-使用DRBD提供的工具和命令,配置数据同步的策略,如同步频率、数据压缩等。
4.状态同步方案:-主服务器上的应用程序状态也需要实时同步到备份服务器上,以确保备份服务器能够准确接管主服务器的运行。
-在应用程序中,可以使用心跳机制或者主备切换的通知机制,将主服务器上的状态发送到备份服务器上。
-备份服务器需要能够及时响应主服务器发送的状态请求,并且能够正确接收和处理状态信息。
5.故障切换方案:-当主服务器发生故障时,备份服务器需要能够自动接管主服务器的运行。
-在服务器之间建立自动故障检测机制,一旦主服务器发生故障,备份服务器将自动接管。
-主备服务器之间可以使用心跳机制或者广播通知,以检测主服务器的状态。
-一旦备份服务器接管主服务器的运行,它需要能够自动更新服务端口、地址等必要的参数,以确保客户端能够无缝切换到备份服务器上。
6.故障恢复方案:-当主服务器发生故障后,必须进行故障恢复操作,将主服务器正常运行。
实现Linux防火墙系统双机热备的方法第34卷(2006)第3期计算机与数字工程77实现Linux防火墙系统双机热备的方法李胜广张其善(北京航空航天大学电子信息工程学院北京100083)摘要:防火墙是位于网络边界防范网络攻击的屏障,是与不可信网络进行联络的唯一纽带.防火墙系统的可靠性直接关系着整个受保护网络的可用性,所以必须利用相关技术为它提供数据通道的冗余.利用开源的高可用集群软件Heart—beat或者UCARP软件可以实现防火墙系统的双机热备,提供多节点冗余.关键词:双机热备心跳防火墙高可用性中图分类号:I1】393.o8 UsingHeartbeattoImplementtheHotStandbyTechniqueonFirewallSystem LiShmggum~zlmgOslm (SchoolofElectronicandInformationEngineering,BeihangUniversity,Beijing100083) A;bt:Firewallisft.barrieratthenetworkbordertop~ventnetworkattacks,andistheonlylinkt Ounauthenticnetwork.Because thereliabilityofFirewallsysteminfluencestileabilityofthewh0leprotectednetwork,sonlete dmologiesshouldbegiventoprovidethere—dundancyofdatachannels.Onemethodisusinghighavailabilitytool—Heartbeattosetupahotstandbysystem.Keywords:HotStandby,Heartbeat,Firewall,HighAvailabilityaa鹤number:I93.O81引言越来越多的局域网通过各种方式接人国际互联网.安全.1生问题越来越受到重视.防火墙技术是实现网络安全的一个重要组成部分,它根据用户的安全策略监控网络信息的存取和传递,对网络数据包进行过滤,保护内部网的安全.但是防火墙也正是整个网络最薄弱环节,如果防火墙被黑客攻击当机,会给用户带来极大的不便或者损失,所以必须使得防火墙具有双机及多机热备份能力,降低单节点防火墙的当机危险性.Linux—HA高可用项目开始于1998年,主要开发开放源码的集群软件,该项目提供的软件包称为Heartbeat.利用iptables和Heartbeat打造一个安全,高可用,廉价的双机热备防火墙系统是非常方便高效的.通常使用VRRP(VirtualRouterRedundancyPro, tocol虚拟路由器冗余协议)来实现路由器的双机冗余,但是它是有版权的,所以OpenBSD开发了开放协议CARP(CommonAddressRedundancyProtocol 收到本文时间:2005年6月6日通用地址冗余协议),而UCARP(UserlandCARP)协图1防火墙系统结构图议则是CARP的Linux版本.WwfirW.11.网站提供开放源码同名软件.本文分别给出了利用Heartbeat软件和Ucarp软件实现两种双机热备的方法,并且给出了具体的实现.这两种方法稍加修改即可用于其他需要提供节点冗余的服务器应用,比如web服务器,邮件服务器等,提高系统的可用性.2双机热备原理双机热备实现的关键是两台工作机之间能够发送某种类型的信号,以表明自己的工作状态,这78实现LintLx防火墙系统双机热备的方法第34卷种信号通常称为"心跳信号".心跳信号可以通过串行线或以太网监控节点的运行状况.每个节点运行一个守护程序进程.作为Linux2.4内核下的新一代防火墙,Netfilter比以前任何一版Linux内核的防火墙子系统都要完善强大,iptables是Netfiher框架下的用户层工具,主要进行防火墙规则的制定和状态的查看.下面分别利用Hearbeat和Ucarp实现两台防火墙机的双机热备,其中里面的防火墙服务就是利用ipta—bles配置规则的服务.3利用Heartbeat实现双机热备Heartbeat软件原理:主守护进程派生出读和写每个心跳介质的子进程,以及状态进程.当检测到某个节点发生故障时,Heartbeat运行shell脚本来启动或停止辅助节点上的服务.并接管地址,继续维持整个网络连接的连续性.利用Heartbeat处理防火墙服务,从而提高防火墙系统的可用性.3.1Heartbeat安装和配置首先,因为本文防火墙系统使用的操作系统是RedHat9.0,所以直接用相应版本的rpm包来安装.从网站h~:/download/heartbeat/1.0.4/rodhat一9/下载heartbeat一1.0.4版本的rpm安装包和支持包,主要安装软件包有以下4个:heartbeat一1.0.4—2.rh.9.i386.rpmheart.at—ldirectord一1.0.4—2.rh.9.i386.rlml heartbeat—Pds一1.0.4—2.rh.9.i386.rpm heartbeat—stonith一1.0.4—2.rh.9.i386.rpm主要软件包还需依赖下面的支持包:ipvsadm-1.21—1.rh.9.um.1.i386.rpmlibnet一1.1.0-1.rh.9.Bm.1.i386.rpmped—Authen—SASL-2.03—1.rh.9.u/n.1.noareh.rpm ped—Convert—ASN1—0.16—2.rh.9.uin.1.noareh.rpm ped—10一Socket—SSL一0.92—1.rh.9.u/n.1.noarch.rpm ped—ldap一0.2701—1.rh.9.u/n.1.noarch.rpmpea—Mall—IⅣLPClient一2.2.7—1.rh.9.uln.1.noarch.rpm ped—Net—SSLeay一1.23—1.rh.9.uln.1.i386.rpm ped—XML—NamespaeeSupport一1.08—1.rl1.9.BIB.1.noarch. rpm'perl—XML—SAX一0.12—1.rh.9.u/n.1.noa.reh.rpm顺序安装完毕后,在/etc/init.d目录中,将有一个名为heartbeat的服务脚本.该脚本应该用于启动,停止,重新启动或检查heartbeat的状态.该脚本的语法如下:heartbeat}startIstopIstatusIrestartt在启动heartbeat之前,必须创建三个配置文件并将它们放在/etc/ha.d目录中.这三个配置文件是:ha.d主要配置文件haresources资源配置文件authkeys认证信息文件下面是对ha.cf的相关解释:nodefirewall—Mnodefirewall—S该参数告诉heartheat使用哪些主机.节点名的正确性是非常重要的.节点名应与命令uname—n所显示的名称一致.keePalivel该参数指定两次heartbeat之问的秒数.deadtime5该参数指定等待声明主机死机的时问.heartbeat将在节点停止响应5秒之后启动故障转移.initdead60该参数指定heartbeat首次启动时deadtime应该为多久.因为当heartbeat在引导时启动时,还需要给网络启动留出时间,所以这个时间要设得长一些.udpport694该参数指定heartbeat发送UDP包时所使用的端口. napeth2该参数指定在哪个接口上发送heartbeat.serial/dev/ttySO该参数指定在心跳线接在哪一个串口上.baud19200该参数串口通讯的波特率.hRresol1.~文件解释:fimw~l172.16.1.254192.168.1.254BH一一Shell}?aesou瞅文件中该行的语法是: node—nBllleresotmeelresotmee2…resoureeN.在本方案中,节点名是fimw~一M,这指定fire—wall—M节点是主节点.只要右rewau—M是活动的,它就将控制在该配置文件中指定的任一资源.参数172.16.1.254,192.168.1.254表示防火墙对内网和外网的地址,脚本BH一一Shell启动或者停止防火墙.当IP地址被指定为群集资源时.heartbeat提供节点之间的IP地址接管.不能在haresources中指定的任何II)地址配置为任一节点上任何适配器的IP地址.当启动Heartbeat应用程序时,它将故障转移IP地址分配给适当的节点.对外部网和对内部网,防火墙始终有相同的II)地址.最后一个Heartbeat配置文件是authkeys.该配置文件用于确定将在节点之间使用什么类型的认证和认证密钥.Heartbeat认证算法有三种:cre,md5和shal,加密强度依次增高.authkeys文件的格式是:auth<number><nt~nber><authenticationmethod>[<authkey>] 然后将其权限没为600,以提高安全性.第34卷(2o06)第3期计算机与数字工程79chmod60oauthkeys3.2创建防火墙服务和测试haresources文件中指定BH一一Shell为¨n.ux防火墙服务,在/etc/init.d中创建防火墙服务脚本BH一一Shell,然后将其链接~lJ/etc/ha.d/re—source.dEt录中.利用iptables编写防火墙脚本可以参考iptables的man手册或者iptables—Howto.本文的BH一硎一Shell脚本代码如下:#!/bin/sh##scriptofBH一}w—SHELL#TostartFirewallService#Author:LiSheng—guang#Date:2004~7—20群./etc/init.d/functlonsease"当1"instart)启动防火墙脚本/mot/firewallstart echo—n"firewallstartdone"Stleeess#不换行显示echo;;stop)#停止防火墙脚本/mot/firewall—endecho—n''tirewallenddone"SUCCeSSecho;;restartIreload)#重新执行防火墙脚本$Ostop#先停止服务$Ostart#重新启动echo—n''firewallrestartdone''言UCCeSSecho;;status)#显示状态iptables—n—LJgmp'C}minFORWARD'>/tmp/fw—ImpreadISDROP</Imp/fw—unp1"111一f/tmp/fw—Imp#利用策略是否DROP判断防火墙状态case"$ISDRoP"in"ChainFORWARD(policyDROP)") echo"FirewaUisnmnlng.'';;*)#防火墙没有运行echo"Firewallisnotnmnlng.''exit0esac;;*)#参数错误时显示echo"Usage:$O{stm-tlstoplstatus}}".exit1esac#{}#end#替替启动heartbeat服务后,进行系统切换测试.用一台客户机ping外网服务器,当主机故意关机,或者停掉主机的heartbeat服务时,备用机切换到工作状态,客户端与外网的ping操作中断5秒,然后网络恢复通畅.并且在备用机上查看进程和iptables规则都正常.这说明heartbeat服务已经起到双机热备的作用.4利用UCARP软件实现双机热备4.1基于策略的路由原理目前在计算机网络中使用的传统路由算法都是根据IP包目的地址进行路由选择.然而在现实应用中经常有这样的需求:进行路由选择时不仅仅根据数据报的目的地址,而且根据数据报的其他一些特性如:源地址,IP协议,传输层端口,甚至是数据包的负载部分内容,这种类型的路由选择被称作基于策略的路由.在Linux中,从2.1版本的内核开始就实现了对基于策略的路由的支持,它是通过使用路由策略数据库(RPDB,mutingpolicydatabase)替代传统的,基于目的地址的路由表来实现的.RPDB通过包含的一些规则来选定合适的路由.这些规则可能会包含很多各种不同类型的健值(key),因此这些规则没有默认的特定次序,规则查找次序或规则优先级都是由网络或系统管理员设定的.Linux的RPDB是一个由数字优先级值进行排序的线性规则列表.RPDB能匹配数据报源地址,目的地址,TOS,进入接和fwmark值等.每个路由策略规则由一个选择器和一个动作指示组成.RPDB按照优先级递增的顺序被扫描,RPDB包含的每条规则的选择器被应用于数据报的源地址,目的地址,进入接口,TOS和fwmark值.若数据报匹配该规则对应于该规则的动作被执行.若动作成功返回,则规则输出将是一个有效的路由或是路由查找失败指示; 否则查找RPDB的下一条规则.Linux提供ip工具来实现所有的功能,该工具在/sbin中.例如:/sbin/ ipaddradd192.168.0.2.54/~devethO该命令将添加II)地址192.168.0.254/~到eth0网卡上.更详细的使用说明可以参见ip的man手册.Ucarp软件就利用Linux的ip工具来完成虚拟路由的启动和管理.4.2Ucarp安装与配置安装和配置Ucarp可以分成以下八步:(1)在hnp://E下载Ucarp的软件压缩包Ucarp—1.1.far.gz(2)将其解压~/usr/local/下,具体命令:80实现Linux防火墙系统双机热备的方法第34卷gzip—ducarp一1.1.tar.gztar—vxfucarp一1.1.tar或者tarzxvfucarp一1.1.tar.gz(3)进入/usr/local/目录,执行./configure(4)makeinstall—strip,这样软件已经被安装~1]/usr/local/sbin,可以利用ucarp—h查看帮助(5)确定网络结构和虚拟IP地址(6)在/etc目录下编辑启动虚拟IP地址的脚本文件vip—up.sh和关闭虚拟IP地址的脚本文件rip—down.sh一一一一一一一一一一一vip—up.sh一一一一一一一一一撑!/rsh/sbin/ipaddradd192.168.0.254,/24deveth0/sbin/ipaddradd172.16.0.254,/24devethl/sbin/ipmuteadddefaultvia192.168.0.2一一一一一一一一一vip—down.sh一~一一一一一一一撑!/birsh/sbin/ipaddrdel192.168.0.254/24deveth0/sbin/ipaddrdel172.16.0.254/24devethl/sbin/ipmutedeldefadtvia192.168.O.2并且将这两个脚本文件属性设置成可执行程序. chnlod+x/ere/,rip—up.sh/etc/vlp—down.sh(7)编写ucarp脚本命令/root/myucarp#!/bin/sh/usr/local/sbin/ucarp—iethl—s172.16.1.254一v1一P lisg—a172.16.0.254一u/etc/vip一叩.sl1一d/ete/vip—down.sh& echo"UCSl'ptanningOK"(8)改写/etc/rc.1ocal脚本文件,添~H/root/myamarp执行语句,使ucarp一开机就运行.touch/var/lock/subsys/localecho1'>/prec/sys/net/ipv4/ip—forward/sbin/modprobeipt—MASQUERADE/sbin/iptables—tnat—APOSTROUTING—s172.16.0.0/24 一jMASQUERADE/root/myuearp当主机网络服务停止或者死机时,从机的u.CARP接收不到主机的心跳广播信号,此时从机启动虚拟IP地址服务,将工作状态转换成主机,使防火墙机工作持续进行.4.3Ucarp使用测试在使用Ucarp的过程中,作者碰到这样的故障并且给出了解决方法,以飨读者解决同样类似的问题.(1)故障:FW1和2切换不正常,都显示为Master机.原因:FW2的vip—ip脚本有错误,eth0的realip没有配置正确(2)故障:按默认规则运行UCARP,FW1和FW2切换正常,则主机可以ping通私有网络的机子,但是私网中客户无法ping通主机的外网卡.原因:主机缺少内网卡对外网卡的路由:ip routeadddefauhvia192.168.0.2(3)故障:当主机切换时,私网内客户机开始ping不通主机,但是如果主机ping一次客户机,则客户机就能ping通主机的任何网卡.原因:因为客户机原来是通过Hub和一台主机连接,当主机出现故障时切换到从机时,客户依然连接的是原来的主机.而当新主机主动ping客户机后,客户机才能和新主机建立新的线路连接. 解决方法:将外网卡绑定改成内网卡绑定,问题解决.5结束语日益严重的网络安全促使防火墙技术不断发展.提供安全性的防火墙技术再辅以高可用性的双机热备功能,使得整个系统的可靠性很大提高, 更加适用于关键业务.本文的方法不仅适用于防火墙,同样也适用于其他需要提供多节点冗余的Linux服务器应用.双机热备技术均已应用于实际工程中,运行良好.参考文献[1]gh—AvailabilityLinuxProject.hnp://www.1inux—ha.org/[EB/OL]2(}04.10.[2jSericolaB.Dependabilityanalysisofrepairablecomputersys- ternsandstationarydetection[J].IEEETransactionsonCorn. puters,1999,48(11):1166—1172[3]KeithE.Strassberg等着,李昂等译.防火墙技术大全[M],北京:机械工业出版社,2003.3[4]谢斌,高扬.Linux高可用集群心跳机制研究[J].计算机工程与应用,21)04,1:6567[5]Networkfailoverstrategies,http://www.1inux—ha.ors/ failover/[EB/OL].2004.10[6]UCARP—CommonAddressRedundancyProtocol,hnp:// www.ucarp.ors/2004.10。
SCAP热备实施方案一、环境描述SCAP双机热备,基本的软件架构为(heartbeat+ drbd+ mysql + tomcat + monit )。
系统采用CentOS6.6,按照客户要求提供两台服务器做热备,意味着软件层数据库、文档库、WEB服务器都部署在同一台服务器上。
heartbeat是一款优秀的HA的软件,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换(failover)。
DRBD的全称为:Distributed ReplicatedBlock Device(DRBD)分布式块设备复制,主要用作热备双机的数据备份,相当与网络RAID1.软件列表:软件版本备注关闭防火墙和SelinuxOS环境CentOS 6.5 x86_64 或CentOS 6.6x86_64DRBD (6.5)drbd-8.4.3-2.x86_64(centos6.5)(6.6)drbd-8.4.3-2.el6.x86_64(centos6.6)MySQL MySQL 5.1.73HA heartbeat-2.1.4.el6.x86_64 scap_master: 192.168.8.191scap_backup: 192.168.8.192drbd_vip:192.168.8.190 JRE server-jre-8u92-linux-x64.tar.gzTomcat apache-tomcat-8.0.35.tar.gz二、系统设置1、关闭防火墙和SELInux/etc/init.d/iptables status #会得到一系列信息,说明防火墙开着。
/etc/init.d/iptables stop #临时关闭chkconfig iptables off#永久关闭SELinux查看当前SELinux状态:/usr/bin/setstatus -v编辑/etc/selinux/config,找到SELINUX 行修改成为:SELINUX=disabled: # This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of these two values:# targeted - Only targeted network daemons are protected.# strict - Full SELinux protection.SELINUXTYPE=targeted2、设置HOSTNAME需要对192.168.8.191和192.168.8.192分别设置hostname为scap_master和scap_backup,设置方法如下:vi /etc/sysconfig/network修改HOSTNAME为scap_mastervi /etc/hosts填入:192.168.1.101 scap_master192.168.1.103 scap_backup使scap_master hostnmae临时生效3、配置IP地址(文件备份和keepalived不要采用同一个端口)使用命令vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改该文件内容如下DEVICE="eth0"BOOTPROTO="static" 这里改为使用静态ipHWADDR="08:00:27:0C:33:8F"NM_CONTROLLED="yes"ONBOOT="yes" 设置为自动启动TYPE="Ethernet"UUID="f4adafbc-322d-4dc8-b549-4291f1c04f01"IPADDR=192.168.8.191 #设置该虚拟机的ip地址,要与宿主机在一个网段,但是不能重名NETMASK=255.255.255.0 # 设置子网掩码GATEWAY=192.168.8.1 #设置网关,也就是PEERDNS=yes #表示允许从DHCP获得的DNS覆盖本地的DNS。
服务器双机热备教程服务器双机热备是一种提高服务器可用性和可靠性的技术手段,也被称为高可用性集群。
本文将详细介绍服务器双机热备的原理、配置步骤和注意事项。
一、原理介绍服务器双机热备的原理是将两台服务器配置为主备关系,主服务器负责处理用户请求,备服务器处于待机状态。
当主服务器发生故障或不可用时,备服务器会自动接管主服务器的工作,并继续提供服务,从而实现服务器的高可用性。
主备服务器之间通过心跳检测来监测对方的状态,常用的心跳检测方式有互ping和RS-232串口心跳。
当主服务器的心跳检测失败时,备服务器会发起切换请求,使其自己成为主服务器继续提供服务。
二、配置步骤1. 硬件准备:购买两台相同配置的服务器,确保服务器的硬件能够支持双机热备功能。
2. 系统安装:安装相同的操作系统和服务程序,并对操作系统进行适当的优化和调整。
3. 安装双机热备软件:选择适合的双机热备软件并进行安装配置。
常用的双机热备软件有Heartbeat、Keepalived等。
4. 配置主备服务器间的网络连接:可以通过专用网络线缆连接主备服务器的网口,实现高速、可靠的通信。
5. 配置双机热备软件:根据双机热备软件的要求进行配置,包括指定主服务器和备服务器,设置心跳检测方式和间隔时间等。
6. 测试和监控:进行功能测试,确保主备服务器间的切换正常可靠。
同时,配备监控系统,实时监控服务器的状态和性能。
三、注意事项1. 选择合适的双机热备软件:不同的双机热备软件有不同的特点和适用场景,需要根据自身需求选择适合的软件。
2. 确保硬件可靠性:服务器双机热备技术可以提高服务器的可用性,但如果硬件故障,双机热备也无法起到作用。
因此,选择可靠的服务器硬件非常重要。
3. 定期测试和演练:定期进行主备服务器间的切换测试,以确保切换过程的可靠性和服务的连续性。
同时,定期进行双机热备的演练,提高操作的熟练度。
4. 注意数据同步和一致性:主备服务器之间需要进行数据同步,以保证切换过程中数据的一致性。
双机热备技术原理双机热备技术又称为双机热备份技术,其基本原理是在两台或多台计算机系统之间实现实时备份和故障转移,当一台系统发生故障时,备用系统会立即接管原系统的任务,保证系统的连续性和高可用性。
在这种技术方案中,主机和备用机之间通过网络或其他通信方式实时同步数据,当主机发生故障时,备用机可以快速自动切换到主机的位置,以实现对部署的应用程序和服务的无缝保障。
本文将介绍双机热备技术的相关原理和技术实现。
双机热备技术主要基于两个原理:实时复制和心跳检测。
1. 实时复制双机热备技术能快速实现系统故障的切换,主要得益于实时复制技术。
实时复制是指备用机可以实时复制主机上的全部数据和应用程序,以保证备用机上的数据与主机上的数据处于一致的状态,并且可以在主机发生故障时快速顶替主机,从而实现故障转移。
2. 心跳检测双机热备技术的另一个原理是心跳检测技术,它是在主机和备用机之间建立连接并保持通信的一种方式。
由于备用机通常不直接使用主机的硬件和外设,因此并不能像主机一样直接检测主机的状态。
心跳检测技术应运而生。
心跳检测是指在主机和备用机之间建立一个保持通信的链接(如TCP),主机和备用机通过这个链接进行数据的交互,判断主机是否正常运行,如果主机无法正常运行,则备用机会认为主机已经发生故障,并将备用机上的任务立即启动,以保证系统的连续性和高可用性。
(1)心跳检测间隔时间短,可在毫秒级别内完成。
(2)心跳检测保持同步,确保主机和备用机之间的数据处于一致的状态。
(3)心跳检测具有高可靠性,在主机发生故障时能快速发现并进行处理。
二、双机热备技术的实现双机热备技术的实现主要包括硬件和软件两个方面。
1. 硬件方面的实现(1) CPU、内存、硬盘和其他外设类型和配置必须完全相同。
(2)服务器之间必须具备可靠的通信接口设备,以确保在主机发生故障时备用机可以快速接管主机任务。
(3)服务器之间必须具备高速网络通信设备,以实现实时复制技术。
Ubuntu下基于HeartBeat的双机热备
1. 步骤
1.1 准备实验环境
在VMware WorkStation 上安装两个操作系统为Ubuntu 10.10的双网卡主机,主机硬件配置如下图1.1:
图1.1 主机配置
其中需要注意的是其中Network Adapter为“桥接”模式(Bridged),Network Adapter 2为自定义模式(Custom),接在VMNET2 上,如图1.2:
图1.2 Network Adapter 2设置
逻辑拓朴:
Ubuntu1
eth0网卡对应外网ip 192.168.0.128 255.255.255.0 192.168.0.1
eth1网卡对应内网ip 192.168.1.2 255.255.255.0 192.168.1.1
Ubuntu2
eth0网卡对应外网ip 192.168.0.130 255.255.255.0 192.168.0.1
eth1网卡对应内网ip 192.168.1.3 255.255.255.0 192.168.1.1
cluster
虚拟集群ip 192.168.0.129
其中集群IP 不能和LAN(包括本机)的IP 冲突,并且不能在除/etc/ha.d/haresources文件以外的任何地方配置
1.2 HeartBeat 的配置
HeartBeat的安装命令为
# apt-get install heartbeat
安装后在/usr/share/doc/heartbeat目录里找到ha.cf、haresources、authkeys三个文件并放到/etc/ha.d 目录下。
另外建议安装apache2
# apt-get install apache2
1.2.1 Authkeys 文件配置
修改配置文件如下:
auth 3
3 md5 Hello! #其中Hello!为密钥
这个配置文件非常简单,就是在auth 选择一个值。
每个值对应一种算法,这个算法用于主节点和从节点间数据校验
这个配置文件权限必须是0600。
# chmod 0600 authkeys
1.2.2 ha.cf 文件配置
修改配置文件如下:
#日志文件位置
logfile /var/log/ha-log
#采用eth1 的udp 广播用来发送心跳信息
bcast eth1
auto_failback on /off #设置主服务器从故障中恢复时,是自动把服务从备份服务器中切换过来(on),还是继续由备份服务器提供服务直到手动干预(off)
# 多长时间判定节点死亡,默认30秒
deadtime 10
#节点名称,先后顺序不重要,但是名称必须与uname -n 保持一致
node Ubuntu1
node Ubuntu2
想修改主机名的话要修改/etc/hostname文件并重启
1.2.3 haresources 文件配置
此文件用于配置集群的IP 和使用集群的服务
#配置方式一(HA 服务启动时将集群IP 自动配置到主节点上)
Ubuntu1 192.168.0.129/24/eth0
#配置方式二(让apache 服务和集群ip地址绑定)
Ubuntu1 192.168.0.129/24/eth0 apache2
其中Ubuntu1为主机名,可以通过uname –n查看;192.168.0.129为集群ip,24为掩码
本实验采取配置方式二,即把apache2 服务与集群绑定。
1.2.4 其他可选配置
heartbeat 的三个配置文件中还有一些其它可配置项,请自行参考官方文档。
启动heartbeat服务
#service heartbeat start
如图2.1可以看到集群IP 自动配置到主节点Ubuntu1上了,而ubuntu2则没有(图2.2),并且集群ip已经可以访问(图2.3)
图2.1 Ubuntu1的eth0网卡信息
图2.2 Ubuntu2的eth0网卡信息
图2.3 访问集群ip效果
模拟Ubuntu1宕机,我们可以停止heartbeat服务
#service heartbeat stop
查看日志文件(/var/log/ha-log)
Nov 24 23:19:52 Ubuntu2 heartbeat: [1620]: WARN: node ubuntu1: is dead
mach_down[2020]: 2010/11/24_23:19:52 info: Taking over resource group 192.168.0.129/24/eth0
ResourceManager[2045]: 2010/11/24_23:19:52 info: Acquiring resource group: Ubuntu1 192.168.0.129/24/eth0 apache2
IPaddr[2072]: 2010/11/24_23:19:53 INFO: Resource is stopped
ResourceManager[2045]: 2010/11/24_23:19:53 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.129/24/eth0 start
IPaddr[2154]: 2010/11/24_23:19:53 INFO: Using calculated netmask for 192.168.0.129: 255.255.255.0
IPaddr[2154]: 2010/11/24_23:19:53 INFO: eval ifconfig eth0:0 192.168.0.129 netmask 255.255.255.0 broadcast 192.168.0.255
IPaddr[2130]: 2010/11/24_23:19:53 INFO: Success
mach_down[2020]: 2010/11/24_23:19:53 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
可以看到,节点2发现节点1异常,然后自动将集群IP配置给自己,并向全网发送广播,于是集群ip依然能够访问
3.体会
一开始的时候按照参考资料《利用VMware 实验基于heartbeat 的Debian Linux 高可用性集群服务v1.0》把haresources文件
配置成Ubuntu1 192.168.0.129 apache2
结果两个节点ifconfig eth0:0输出中都没有看到集群虚拟IP地址192.168.0.129,也打不开网页http://192.168.0.129
通过查看日志文件可以发现执行IPaddr 192.168.0.129 start的时候出错了
ResourceManager[2799]: 2010/11/24_05:05:59 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.129 start
IPaddr[2884]: 2010/11/24_05:05:59 ERROR: /usr/lib/heartbeat/findif failed [rc=1].
IPaddr[2872]: 2010/11/24_05:05:59 ERROR: Generic error
ResourceManager[2799]: 2010/11/24_05:05:59 ERROR: Return code 1 from /etc/ha.d/resource.d/IPaddr
ResourceManager[2799]: 2010/11/24_05:05:59 CRIT: Giving up resources due to failure of 192.168.0.129
ResourceManager[2799]: 2010/11/24_05:05:59 info: Releasing resource group: Ubuntu1 192.168.0.129
ResourceManager[2799]: 2010/11/24_05:05:59 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.129 stop
IPaddr[2957]: 2010/11/24_05:05:59 INFO: Success
通过网上搜索该错误,终于发现是ipaddr去绑定IP地址时,用/usr/lib/heartbeat/findif找网络接口时失败了,解决方法如下:
haresources文件配置成Ubuntu1 192.168.0.129/24/eth0 apache2。