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服务已接管成功!!!
转载于:https://blog.51cto.com/zhilong/1693167