读书人

centos5.4上的heartbeat双机实现

发布时间: 2012-09-25 09:55:58 作者: rapoo

centos5.4下的heartbeat双机实现

系统:centos5.4

软件:apache, heartbeat

主机名:ha1 ha2

主机ha1 IP:192.168.1.101心跳IP:10.0.0.101

主机ha2 IP:192.168.1.102心跳IP:10.0.0.102

浮动IP:192.168.1.200

一、环境搭建

centos5.4最小化安装

#yum update

#vi /etc/sysconfig/selinux

SELINUX=disabled

关闭iptables防火墙

#chkconfig --level 3 iptables off

#chkconfig --level 3 ip6tables off

安装heartbeat以及相关软件

#yum install heartbeat* which httpd

重启

#reboot

修改主机1的hosts文件

#vi /etc/hosts

127.0.0.1??????localhost.localdomain localhost

192.168.1.101??ha1 h1

192.168.1.102??ha2

10.0.0.101?????h1

10.0.0.102?????h2

修改主机2的hosts文件

#vi /etc/hosts

127.0.0.1??????localhost.localdomain localhost

192.168.1.101??ha1

192.168.1.102??ha2 h2

10.0.0.101?????h1

10.0.0.102?????h2

二、配置heartbeat

#cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/

#cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/

#cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/

#cd /etc/ha.d/

#vi authkeys

auth 1

1 crc

#2 sha1 HI!

#3 md5 Hello!?#1,2,3表示认证算法选择,这里选择了crc算法

必须将authkeys文件权限设置为600

#chmod 600 authkeys

?

#vi haresources

ha1 IPaddr::192.168.1.200 httpd

#第一列为默认主机,第二列为配置的浮动ip,第三列为需要实现高可用性的服务(启动脚本在/etc/init.d内),如果没有服务则默认全部已运行服务,ha指定服务在备机接管之前是不会启动的

?

#vi ha.cf

debugfile /var/log/ha-debug

logfile /var/log/ha-log???#两个日志文件

logfacility????local0???#登陆/调试日志同时记录给syslog

keepalive 2????#每2秒检测一次

deadtime 30????#30秒后切换

warntime 10????#警告时间10秒

initdead 120???#重启网络时间(deadtime两倍以上)

udpport 694????#心跳端口

#bcast eth1????#采用eth1的udp广播用来发送心跳信息,建议在副节点不只一台时使用

ucast eth1 10.0.0.102?????#采用网卡eth1的udp单播来通知心跳,ip应为对方IP,在主机2上设置为ucast eth1 10.0.0.101

#mcast eth0 225.0.0.1 694 1 0??????#采用udp多播播来通知心跳,建议在副节点不只一台时使用,广播,单播,多播,以上三种任选其一即可

auto_failback on?#on=主备机模式,off=非切换模式(就是谁接手谁是主机直到他自己故障)

node???ha1

node???ha2?????#节点名(一定要和uname -n的结果一致)

ping 192.168.1.1?#用来验证外网线连通的ip(推荐上级路由器,还有ping_group,hbaping等类似配置可选)

respawn hacluster /usr/lib/heartbeat/ipfail

apiauth ipfail gid=haclient uid=hacluster?????#网络检测补救插件,用来实现auto_failback功能的

三、测试

1、分别在两台主机的apache中设置不同的页面

2、启动主机1的apache服务

3、启动主机1的heartbeat服务,并查看是否配置上了浮动IP

4、启动主机2的heartbeat服务

5、在ie中访问192.168.1.200(也就是前面设置的浮动ip),关闭主机的heartbeat服务,刷新页面确认访问的是主机2的页面,在重新把主机的heartbeat服务启动,确实是否切换回主机1的页面。

6、将heartbeat服务添加到服务器开机启动,并将主机1的httpd服务设置为开机启动

chkconfig --add heartbeat

chkconfig --level 3 httpd on

chkconfig list

7、重启后在从1到5步测试下

?

参考文档:http://blog.chinaunix.net/u1/51878/showart_1171351.html

读书人网 >操作系统

热点推荐