主服务器:
eth0:192.168.1.135
eth1:192.168.0.135
从服务器:
eth0:192.168.1.113
eth1:192.168.0.113
虚拟IP:
192.168.1.114
主从服务器,都修改/etc/hosts
192.168.1.135 node1
192.168.1.113 node2
主服务器配置:
/etc/ha.d/ha.cf
debugfile /var/log/ha/ha-debug
logfile /var/log/ha/ha-log #指名heartbeat的日志存放位置
logfacility local0
keepalive 2 #指定心跳间隔时间为2秒(即每两秒钟在eth1上发送一次广播)
deadtime 30 #指定备用节点在30秒内没有收到主节点的心跳信号后,则立即接管主节点的服务资源。
initdead 60 #在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍。
udpport 694 #设置广播通信使用的端口,694为默认使用的端口号。
bcast eth1 #指明心跳使用以太网广播方式,并且是在eth1接口上进行广播。
ucast eth1 192.168.0.113 #采用网卡eth1的udp单播来组织心跳,后面跟的IP地址应为双机对方的IP地址。
auto_failback on #用来定义当主节点恢复后,是否将服务自动切回
node node1 #主节点主机名,可以通过命令“uanme –n”查看。
node node2 #备用节点主机名。
ping 192.168.1.252 #选择固定的路由器作为ping节点
compression bz2
compression_threshold 2
/etc/ha.d/haresources
node1 192.168.1.114/24/eth0/ httpd
从服务器配置:
/etc/ha.d/ha.cf
debugfile /var/log/ha/ha-debug
logfile /var/log/ha/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 60
udpport 694
bcast eth1
ucast eth1 192.168.0.135
auto_failback on
node node1
node node2
ping 192.168.1.252
compression bz2
compression_threshold 2
/etc/ha.d/haresources
node1 192.168.1.114/24/eth0/ httpd
该文件主要是为你部署的集群配置资源或者服务,它的每一有效行的格式如下:
node-name resource1 resource2 ... resourceN
其中node-name即为集群中某一节点的名称,必须与uname –n相同,
后面的资源组resource1 resource2 …resourceN中每一个资源都是一个shell脚本,它们的搜索路径为/etc/init.d/和/usr/local/etc/ha.d/resource.d(该路径根据你所安装heartbeat的路径有所不同),heartbeat为我们提供了一个非常好的资源扩展框架,如果我们需要控制一种自己的资源,只需要实现一个支持start和stop参数的shell脚本就可以了,目前heartbeat所支持的资源脚本可以在我提供的上述路径中去查看。
还要执行
chmod 777 /etc/init.d/autoDo
可能出现的问题:
ERROR: Message hist queue is filling up (500 messages in queue)
1.检查 ucast eth1所指向的IP是否正确
2.关闭iptables测试下,如果关闭后,可以正常,说明是防火墙的问题,则进行一下配置
vi /etc/sysconfig/iptables
#在主服务器上
-A INPUT -m state --state NEW -m udp -p udp --dport 649 -d 192.168.0.113 -j ACCEPT
#在从服务器上
-A INPUT -m state --state NEW -m udp -p udp --dport 649 -d 192.168.0.135 -j ACCEPT