linux上的 heartbeat 双机热备服务架设
- 格式:doc
- 大小:50.00 KB
- 文档页数:5
linux双机热备:在linux系统用heartbeat实现双机热备疯狂代码 / ĵ:http://Linux/Article27835.html; ; ; :安装两个(rh4.5-32位)系统并关闭,se设置为disable每台电脑需要配置两块网卡两台电脑分别为node1和node2; ; ; node1ip地址分别为:; ; ; eth0:192.168.0.65; ; ; eth1:10.0.0.3 (心跳地址); ; ; node2ip地址分别为:; ; ; eth0:192.168.0.66; ; ; eth1:10.0.0.4 (心跳地址); ; ; 192.168.0.30(虚拟ip地址); ; ; 注意:保证两台电脑每块网卡能够ping通; ; ; 2:保证两台电脑以下文件必须相同; ; ; /etc/hosts; ; ; /etc/host.conf; ; ; /etc/resolv.conf; ; ; #vi /etc/hosts; ; ; node1hosts内容如下:; ; ; ip地址 域名 机器名; ; ; 192.168.0.65 node1; ; ; 10.0.0.3 node1; ; ; 192.168.0.66 node2; ; ; 10.0.0.4 node2; ; ; (保证机器名和参数uname -n输出致); ; ; #vi /etc/host.conf; ; ; order hosts,bind; ; ; #vi /etc/resolv.conf; ; ; nameserver 202.96.209.133(DNS地址如果为空可以根据当地dns输入); ; ; node2hosts内容如下:; ; ; ip地址 域名 机器名; ; ; 192.168.0.65 node1; ; ; 10.0.0.3 node1; ; ; 192.168.0.66 node2; ; ; 10.0.0.4 node2; ; ; (保证机器名和参数uname -n输出致); ; ; #vi /etc/host.conf; ; ; order hosts,bind; ; ; #vi /etc/resolv.conf; ; ; nameserver 202.96.209.133(DNS地址如果为空可以根据当地dns输入); ; ; 3:在两台电脑上分别安装heartbeat软件Software包; ; ; 按如下顺序; ; ; 1:heartbeat-gui-2.1.2-2.el4.centos.i386.rpm; ; ; 2:heartbeat-pils-2.1.2-2.el4.centos.i386.rpm; ; ; 3:heartbeat-stonith-2.1.2-2.el4.centos.i386.rpm; ; ; 4:heartbeat-2.1.2-2.el4.centos.i386.rpm; ; ; 4:配置文件; ; ; 进入目录/usr/share/doc/heartbeat-2.1.2/目录复制authkeys、ha.cf 和 haresources到/etc/ha.d/目录进行配置; ; ; (这 3个文件在两台电脑里必须致)配置如下:; ; ; 配置心跳加密方式:authkeys; ; ; #vi /etc/ha.d/authkeys; ; ; 使用双机对联线(网线为交叉线)配置如下:; ; ; #vi /etc/hc.d/authkeys; ; ; auth 1; ; ; 1 crc; ; ; 存盘退出然后; ; ; #chmod 600 authkeys; ; ; 修改文件权限(必须); ; ; 配置心跳配置文件:ha.cf; ; ; #vi /etc/ha.d/ha.cf; ; ; logfile /var/log/ha-log (ha日志文件记录位置如没有该目录则需要手动添加); ; ; bcast eth1; ; ; keepalive 2 (设定心跳(监测)时间为2秒); ; ; warntime 10 (超出该时间间隔未收到对方节点心跳则发出警告并记录到日志中); ; ; deadtime 30 (超出该时间间隔未收到对方节点心跳则认为对方已经死亡); ; ; initdead 120; ; ; (在某些系统上系统启动或重启的后需要经过段时间网络才能正常工作该选项用于解决这种情况产生时间间隔取值至少为deadtime两倍); ; ; udpport 694 (使用udp端口694 进行心跳监测); ; ; auto_failback off; ; ; nice_failback on; ; ; (nice_failback 这选项在此版本heartbeat里没有如果没有可以根据需要手工添加heartbeat两台主机分别为主节点和从节点主节点在正常情况下占用资源并运行所有服务遇到故障时把资源交给从节点并由从节点运行服务个参数auto_failback off再加上1:当auto_failback选项为on时旦主节点恢复运行则自动恢复资源2:当auto_failback选项为off旦主节点恢复运行则不会自动恢复资源此设置为第 2种情况; ; ; node node1 (节点1必须要和 uname -n 指令得到结果致.); ; ; node node2 (节点2); ; ; 配置心跳资源:haresources; ; ; #vi /etc/ha.d/haresources; ; ; node1 192.168.0.30 httpd mysql(先启动httpd再启动mysql关闭时先关闭mysql再关闭httpd)指定node1启动httpd和mysql服务系统附加个虚拟IP 192.168.0.30给eth0:0这里如果node1宕机后node2可以自动启动httpd和mysql服务并新分配IP 192.168.0.30给node2eth0:0.web服务监听地址要设置为虚拟ip地址; ; ; 5:设置heartbeat自动启动(启动系统时启动); ; ; cd /etc/rc.d/rc0.d; ; ; ln -s /etc/init.d/heartbeat K05heartbeat; ; ; cd /etc/rc.d/rc3.d; ; ; ln -s /etc/init.d/heartbeat S75heartbeat; ; ; cd /etc/rc.d/rc5.d; ; ; ln -s /etc/init.d/heartbeat S75heartbeat; ; ; cd /etc/rc.d/rc6.d; ; ; ln -s /etc/init.d/heartbeat K05heartbeat ; ; ; (字母S和K为大写)2009-2-12 4:20:21疯狂代码 /。
双机热备安装部署方案(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时网关不要配置,因为这里再配置网关则会覆盖之前配置的默认网关导致通信异常。
linux双机热备方案在现代信息技术高速发展的背景下,高可用性和数据安全性成为企业日常运营中非常重要的课题。
特别是对于采用Linux操作系统的企业来说,实施一个可靠的双机热备方案是至关重要的。
本文将介绍一种基于Linux操作系统的双机热备方案,以帮助企业实现高可用性和数据容灾。
一、方案概述双机热备方案是通过利用两台运行相同应用和环境的服务器,以实现故障转移和数据灾备的目的。
在该方案中,主服务器负责处理正常的业务请求,而备用服务器则实时复制主服务器上的数据和配置信息,并保持与主服务器的高度同步。
一旦主服务器发生故障,备用服务器将自动接管业务,并在最短的时间内实现故障恢复。
二、硬件要求在部署Linux双机热备方案之前,首先需要确保服务器硬件满足要求。
这包括两个方面:1. 服务器性能要求:主服务器和备用服务器的硬件性能应该相当,以确保业务在两台服务器之间的切换时不会出现性能瓶颈。
服务器应具备足够的处理能力和内存容量,以支持所运行的应用和服务。
2. 存储设备要求:为了实现数据的高可用性和容灾备份,主服务器和备用服务器应采用相同的存储设备。
这可以保证数据在主备服务器之间的实时同步和复制。
三、软件配置在Linux双机热备方案中,需要配置一系列软件来实现主备服务器之间的数据同步和故障转移。
以下是必要的软件配置内容:1. Heartbeat软件:Heartbeat是一种开源软件工具,用于检测主服务器的可用性。
它会定期发送心跳信号给备用服务器,以确认主服务器的正常运行。
一旦主服务器发生故障,备用服务器将接收到心跳信号的中断,并立即启动故障切换操作。
2. DRBD软件:DRBD是一种分布式块设备复制工具,在主备服务器之间实现数据的实时同步。
通过配置DRBD,主服务器上的数据将实时复制到备用服务器上,从而保持数据的高可用性和一致性。
3. Cluster软件:Cluster软件用于管理和控制主备服务器之间的故障转移。
它可以自动监测主服务器的状态,并在主服务器发生故障时触发备用服务器的接管操作,以实现业务的持续运行。
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)。
Heartbeat双机互备可行方案一、文档说明本文档,设计了heartbeat提供对外的VIP(虚拟IP),当主服务器down机后,从服务器通过心跳检测到主服务器down机后,会启动本机的heartbeat服务,VIP将会自己转移到从服务器,当主服务器处理好后,通过从心跳监测,自动把VIP移回到主服务器。
二、网络拓朴Matesr Slave注释:公网接入:主从服务器通过公网通信心跳连线:主从服务器通过专用网络通信,专用网络可用以太网的交叉线连接,也可用串口连接监测。
VIP:集群通过VIP与公网通信,主从通过公网网卡上邦定虚拟地址(VIP)实现。
三、Heartbeat工作原理Heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。
(一)用户与主服务器正常通信(二)主从服务器通过心跳专线监测彼此是否正常(三)如果主服务器的公网失效或服务器DOWN机,从服务器通过心跳监测后,启动设定服务并接管主服务器对外的网络资源(VIP)(四)用户与从服务器通信(从机在几秒或几十秒内接管主服务器)(五)主服务器恢复后(重起或修复等)可以重新接管网络资源。
四、安装配置及调试Heartbeat集群(一)安装前环境设定两台主机硬件环境(不必完全一致)(二)安装前网络环境设定node1: 主机名:Master ( HAM )eth0: 10.0.0.5 //对外通信IP地址eth1: 172.16.0.5 //心跳使用地址node2: 主机名:Slave ( HAS )eth0: 10.0.0.6 //对外通信IP地址eth1: 172.16.0.6 //心跳使用地址VIP:10.0.0.7 //集群对外提供服务的地址,浮动IP注意要检查以下几个文件:/etc/hosts/etc/host.conf/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth1#vi /etc/hostsnode1与node2的hosts内容相同如下(hosts文件的修改必需在heartbeat安装前):127.0.0.1 localhost.localdomain localhost10.0.0.5 Master172.16.0.5 HAM172.16.0.6 HAS10.0.0.6 Slave#cat /etc/host.conforder hosts,bind#cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=Master //主机名GATEWAY="10.0.0.1" //网关GATEWAY="eth0" //网关使用网卡ONBOOT=YES //启动时加载FORWARD_IPV4="yes" //只允许IPV4#cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0ONBOOT=yesBOOTPROTO=staticIPADDR=10.0.0.5NETMASK=255.0.0.0GATEWAY=10.0.0.1TYPE=Ethernet#cat /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1ONBOOT=yesIPADDR=172.16.0.5NETMASK=255.255.0.0TYPE=Ethernet[node1] 与[node2] 在上面的配置中,除了/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth1要各自修改外,其他一致。
用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。
Linux 实现双机热备Linux的HA又称“双机热备”,是两台机器装上同样的系统,配好后通过“心跳线”互相监测,数据存放在共享阵列库中,当主服务器出现问题时,从服务器会接管主服务器上的所有服务,而当主服务器恢复正常后,从服务器再交出所有服务。
这主要通过Linux系统下双机HA的配置来实现的。
下面我们介绍Heartbeat双机的做法一、软件及安装说明我们使用的是Heartbeat 2.0.2版本,软件以及参考的文档都是来自网站:/。
通过安装该Linux-HA软件,可以实现Linux双机系统的高可用性解决方案,实现双机系统的热备份,并能够做到双机之间的无缝切换,从而对外提供稳定可靠的服务,最终实现系统高性能RAS(reliability, availability, and serviceability)。
实现双机系统的两台主机不要求完全一致,但应该尽量做到硬件匹配。
双机的连接可以使用串口线,也可以通过以太网Enthernet进行连接,还可以采用并存的多种连接方式实现两台主机的多重互连。
两台主机应该安装相同的操作系统,推荐使用RHAS4 Linux。
进行网络配置,为每一台主机分配一个固定IP地址,另外需要选择一个虚拟的IP 地址作为集群IP(cluster IP),该IP是集群系统对外提供服务的接口。
注意:主机IP地址与集群IP地址一定不能重复。
硬件条件和环境:两台计算机(两个节点),一个共享SCSI硬盘盒(用于存储共享)。
每个节点都安装支持共享总线的SCSI卡;每个节点有自己的系统磁盘;每个分别带有两块以太网卡,(其中一块用于网络通讯,另一块用于心跳功能。
)。
两个节点的网络设置如下:节点1:主机名为:,第一块网卡(eth0)的IP地址:192.168.100.7 (用于网络通讯) 。
第二块网卡(eth1)的IP地址:10.0.0.1 (用于心跳通讯) 。
节点2:主机名为:,第一块网卡(eth0)的IP地址:192.168.100.8 (用于网络通讯) 。
实现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。
linux上的 heartbeat 双机热备服务架设2009-11-14 12:19【一】安装前环境设定==========================================================两台主机硬件环境(不必完全一致):CPU: Xeon 3G *2 (EM64T)MEM: 2GNIC: Intel 1G *2eth0: 对外IPeth1: 对内IP(HA专用)两台主机的eht1使用双机对联线直接连接。
分区方式:Filesystem 容量挂载点/dev/sda2 9.7G //dev/sda6 45G /Datas/dev/sda1 99M /bootnone2.0G /dev/shm/dev/sda3 9.7G /opt另外每台主机应预留500M的raw空间或者更多来作为共用空间被HA使用。
操作系统:RedHat Enterprise 4 Update2 (2.6.9-22 EL)预安装软件:@ X Window System@ GNOME Desktop Environment@ KDE Desktop Environment@ Editors@ Engineering and Scientific@ Graphical Internet@ Text-based Internet@ Authoring and Publishing@ Server Configuration Tools@ Development Tools@ Kernel Development@ X Software Development@ GNOME Software Development@ KDE Software Development@ Administration Tools@ System Tools【二】安装前网络环境设定:========================================================node1: 主机名:servers201 ( HA01 )eth0: 192.168.10.201 //对外IP地址eth1: 10.0.0.201 //HA心跳使用地址node2: 主机名:servers202 ( HA02 )eth0: 192.168.10.202 //对外IP地址eth1: 10.0.0.202 //HA心跳使用地址特别注意要检查以下几个文件:/etc/hosts/etc/host.conf/etc/resolv.conf/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth1/etc/nsswitch.conf#vi /etc/hostsnode1的hosts内容如下:127.0.0.1 localhost.localdomain localhost 192.168.10.201 servers201 HA0110.0.0.201 HA0110.0.0.202 HA02192.168.10.202 server202node2的hosts内容如下:127.0.0.1 localhost.localdomain localhost 192.168.10.202 servers202 HA0210.0.0.202 HA0210.0.0.201 HA01192.168.10.201 server201#cat /etc/host.conforder hosts,bind#cat /etc/resolv.confnameserver 61.139.2.69 //DNS地址#cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=servers201 //主机名GATEWAY="192.168.10.1" //网关GATEWAY="eth0" //网关使用网卡ONBOOT=YES //启动时加载FORWARD_IPV4="yes" //只允许IPV4#cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.10.201NETMASK=255.255.255.0GATEWAY=192.168.10.1TYPE=EthernetIPV6INIT=no#cat /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1ONBOOT=yesBOOTPROTO=noneIPADDR=10.0.0.201NETMASK=255.255.255.0TYPE=Ethernet[node1] 与 [node2] 在上面的配置中,除了/etc/hosts/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth1要各自修改外,其他一致。
配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通: /root#ping HA02PING HA02 (10.0.0.202) 56(84) bytes of data.64 bytes from HA02 (10.0.0.202): icmp_seq=0 ttl=64 time=0.198 ms 64 bytes from HA02 (10.0.0.202): icmp_seq=1 ttl=64 time=0.266 ms 64 bytes from HA02 (10.0.0.202): icmp_seq=2 ttl=64 time=0.148 ms --- HA02 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 0.148/0.204/0.266/0.048 ms, pipe 2【三】安装HA 与HA依赖包===========================================================rpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm //可以不装rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpmrpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpmrpm -Uvh heartbeat-2.0.4-1.el4.i386.rpmrpm -Uvh ipvsadm-1.24-5.i386.rpm【四】配置 HA的各配置文件============================================================---------------------------配置心跳的加密方式:authkeys---------------------------#vi /etc/ha.d/authkeys如果使用双机对联线(双绞线),可以配置如下:#vi /etc/hc.d/authkeysauth 11 crc存盘退出,然后#chmod 600 authkeys---------------------------配置心跳的监控:haresources---------------------------#vi /etc/ha.d/haresources各主机这部分应完全相同。
server201 IPaddr::192.168.10.200 ipvsadm httpd指定 server201调用ipvsadm启动http服务,系统附加一个虚拟IP192.168.10.200 给eth0:0这里如果server201宕机后,server202可以自动启动http服务,并新分配IP 192.168.10.200给server202的eth0:0---------------------------配置心跳的配置文件:ha.cf---------------------------#vi /etc/ha.d/ha.cflogfile /var/log/ha_log/ha-log.log ## ha的日志文件记录位置。
如没有该目录,则需要手动添加bcast eth1 ##使用eht1做心跳监测keepalive 2 ##设定心跳(监测)时间时间为2秒warntime 10deadtime 30initdead 120hopfudge 1udpport 694 ##使用udp端口694 进行心跳监测auto_failback onnode server201 ##节点1,必须要与 uname -n 指令得到的结果一致。
node server202 ##节点2ping 192.168.10.1 ##通过ping 网关来监测心跳是否正常。
respawn hacluster /usr/lib64/heartbeat/ipfailapiauth ipfail gid=root uid=rootdebugfile /Datas/logs/ha_log/ha-debug.log---------------------------设置ipvsadm的巡回监测---------------------------ipvsadm -A -t 192.168.10.200:80 -s rripvsadm -a -t 192.168.10.200:80 -r 192.168.10.201:80 -mipvsadm -a -t 192.168.10.200:80 -r 192.168.10.202:80 -m执行后进行监测:#ipvsadm --list如果返回结果与下相同,则设置正确。
IP Virtual Server version 1.2.0 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.10.200:http rr-> server202:http Local 1 0 0-> server201:http Masq 1 0 0【五】 HA服务的启动、关闭以及测试=================================================启动HA: service heartbeat start关闭HA; service heartbeat stop系统在启动时已经自动把heartbeat 加载了。