Heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。


测试环境:

OS:CentOS6.6_64

master-ip:10.0.0.16

slave-ip: 10.0.0.17

vip-ip:10.0.0.100


一、Master安装配置

[root@master ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

[root@master ~]# yum install heartbeat libnet -y

1、基础配置:

[root@master ~]# cat /etc/hosts

10.0.0.16       master

10.0.0.17       slave

[root@master ~]# ifconfig eth1:0 10.0.0.100 netmask 255.255.255.0 up

[root@master ~]# cd /usr/share/doc/heartbeat-3.0.4/

[root@master heartbeat-3.0.4]# cp authkeys ha.cf haresources /etc/ha.d/

2、修改以上三个配置文件,内容如下:

[root@master ~]# egrep -v "#|^$" /etc/ha.d/authkeys 

auth 3

3 md5 Hello!

[root@master ~]# chmod 600 /etc/ha.d/authkeys


[root@master ~]# egrep -v "#|^$" /etc/ha.d/haresources

master  10.0.0.100/24/eth1:0 nginx


[root@master ~]# egrep -v "#|^$" /etc/ha.d/ha.cf

debugfile /var/log/ha-debug

logfile /var/log/ha-log

logfacility     local0

keepalive 2

deadtime 30

warntime 10

initdead 60

udpport 694

ucast eth1 10.0.0.17

auto_failback on

node    master

node    slave

ping 10.0.0.2 ###仲裁ip

respawn hacluster /usr/lib64/heartbeat/ipfail

3、安装nginx服务

[root@master ~]# yum install nginx 

[root@master ~]# echo "www.master.com" >/usr/share/nginx/html/index.html


二、Slave安装配置

[root@slave ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

[root@slave ~]# yum install heartbeat libnet -y

1、基础配置

[root@slave ~]# cat /etc/hosts

10.0.0.16       master

10.0.0.17       slave

2、复制配置文件及修改

[root@master ha.d]# scp ha.cf haresources authkeys slave:/etc/ha.d/

只需要修改ha.cf文件,其它两个配置都一样

[root@slave ~]# egrep -v "#|^$" /etc/ha.d/ha.cf

debugfile /var/log/ha-debug

logfile /var/log/ha-log

logfacility     local0

keepalive 2

deadtime 30

warntime 10

initdead 60

udpport 694

ucast eth1 10.0.0.16

auto_failback on

node    master

node    slave

ping 10.0.0.2

respawn hacluster /usr/lib64/heartbeat/ipfail

3、安装nginx服务

[root@slave ~]# yum install nginx 

[root@slave ~]# echo "www.slave.com" >/usr/share/nginx/html/index.html


三、启动Heartbeat

必须先启动master上面的heartbeat

[root@master ~]# /etc/init.d/heartbeat start

nginx不用手动启动,heartbeat会启动它的

[root@slave ~]# /etc/init.d/heartbeat start


四、测试功能

在客户端直接访问10.0.0.100会显示“www.master.com”

把master上面的停用了,或者直接关机,再次访问10.0.0.100会显示“www.slave.com”,说明nginx服务已接管成功!!!