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安装配置
[[email protected] ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
[[email protected] ~]# yum install heartbeat libnet -y
1、基础配置:
[[email protected] ~]# cat /etc/hosts
10.0.0.16 master
10.0.0.17 slave
[[email protected] ~]# ifconfig eth1:0 10.0.0.100 netmask 255.255.255.0 up
[[email protected] ~]# cd /usr/share/doc/heartbeat-3.0.4/
[[email protected] heartbeat-3.0.4]# cp authkeys ha.cf haresources /etc/ha.d/
2、修改以上三个配置文件,内容如下:
[[email protected] ~]# egrep -v "#|^$" /etc/ha.d/authkeys
auth 3
3 md5 Hello!
[[email protected] ~]# chmod 600 /etc/ha.d/authkeys
[[email protected] ~]# egrep -v "#|^$" /etc/ha.d/haresources
master 10.0.0.100/24/eth1:0 nginx
[[email protected] ~]# 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服务
[[email protected] ~]# yum install nginx
[[email protected] ~]# echo "www.master.com" >/usr/share/nginx/html/index.html
二、Slave安装配置
[[email protected] ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
[[email protected] ~]# yum install heartbeat libnet -y
1、基础配置
[[email protected] ~]# cat /etc/hosts
10.0.0.16 master
10.0.0.17 slave
2、复制配置文件及修改
[[email protected] ha.d]# scp ha.cf haresources authkeys slave:/etc/ha.d/
只需要修改ha.cf文件,其它两个配置都一样
[[email protected] ~]# 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服务
[[email protected] ~]# yum install nginx
[[email protected] ~]# echo "www.slave.com" >/usr/share/nginx/html/index.html
三、启动Heartbeat
必须先启动master上面的heartbeat
[[email protected] ~]# /etc/init.d/heartbeat start
nginx不用手动启动,heartbeat会启动它的
[[email protected] ~]# /etc/init.d/heartbeat start
四、测试功能:
在客户端直接访问10.0.0.100会显示“www.master.com”
把master上面的停用了,或者直接关机,再次访问10.0.0.100会显示“www.slave.com”,说明nginx服务已接管成功!!!