项目5:安装heartbeat部署虚拟IP并实现haproxy调度器高可用。主备haproxy都停止,通过heartbeat管理haproxy服务启停,vip漂移到哪台机器,那台机器对应的haproxy服务启动,haproxy服务跟随vip而动。(防止列脑最有效方法是:haproxy服务先都不要手动先启动,要用heartbeat的启停来带动要控制的haproxy服务启停)
机器1:(主节点)
eth0 :192.168.1.5 桥接、联网,配网关(和真机一样),配DNS1(和真机一样)
eth1:192.168.10.5 (心跳线) vmnet 2
[root@localhost 桌面]# ifconfig eth0 |head -2
eth0 Link encap:Ethernet HWaddr 00:0C:29:05:B7:5D
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
[root@localhost 桌面]# ifconfig eth1 |head -2
eth1 Link encap:Ethernet HWaddr 00:0C:29:05:B7:67
inet addr:192.168.10.5 Bcast:192.168.10.255 Mask:255.255.255.0
[root@localhost 桌面]# hostname data-1-1
[root@localhost 桌面]# sed -i 's#HOSTNAME=localhost.localdomain#HOSTNAME=data-1-1#g' /etc/sysconfig/network
[root@data-1-1 桌面]# uname -n //机器名必须要以用uname -n后查看的为准
data-1-1
[root@data-1-1 桌面]# vim /etc/hosts
192.168.1.5 data-1-1
192.168.1.205 data-1-2
wq
[root@data-1-1 桌面]# ping data-1-2
PING data-1-2 (192.168.1.205) 56(84) bytes of data.
64 bytes from data-1-2 (192.168.1.205): icmp_seq=1 ttl=64 time=1.25 ms
64 bytes from data-1-2 (192.168.1.205): icmp_seq=2 ttl=64 time=0.988 ms
添加心跳路由:
[root@data-1-1 桌面]# /sbin/route add -host 192.168.10.205 dev eth1 //去对方的心跳线通过eth1出去
[root@data-1-1 桌面]# echo "/sbin/route add -host 192.168.10.205 dev eth1" >> /etc/rc.local
安装heartbeat的依赖包:epel-release-6-8.noarch.rpm
[root@data-1-1 桌面]# ls
epel-release-6-8.noarch.rpm
[root@data-1-1 桌面]# rpm -ivh epel-release-6-8.noarch.rpm
warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]
安装heartbeat
[root@data-1-1 桌面]# yum -y install heartbeat 或者yum -y install heartbeat* 此时用的是163网络yum源
[root@data-1-1 桌面]# ls /etc/ha.d/ //heartbeat默认安装后地点
harc rc.d README.config resource.d shellfuncs
[root@data-1-1 桌面]# ls /etc/ha.d/resource.d/ //资源目录,里面都是脚本。
apache Filesystem IPaddr LinuxSCSI portblock WAS
AudibleAlarm hto-mapfuncs IPaddr2 LVM Raid1 WinPopup
db2 ICP IPsrcaddr MailTo SendArp Xinetd
Delay ids IPv6addr OCF ServeRAID
[root@data-1-1 桌面]# ls /usr/share/doc/heartbeat-3.0.4/ //默认模板配置文件位置
apphbd.cf AUTHORS COPYING ha.cf README
authkeys ChangeLog COPYING.LGPL haresources
[root@data-1-1 桌面]# cd /usr/share/doc/heartbeat-3.0.4/
[root@data-1-1 heartbeat-3.0.4]# cp ha.cf haresources authkeys /etc/ha.d/ //cp配置、资源、认证文件
[root@data-1-1 heartbeat-3.0.4]# vim /etc/ha.d/ha.cf
debugfile /var/log/ha-debug //释放,调试日志存放位置
logfile /var/log/ha-log //释放,日志存放位置
logfacility local1 //修改为local1,默认是local0
keepalive 2 //释放,心跳间隔时间为2秒,默认2秒
deadtime 30 //释放,备节点30s内没有收到主节点心跳信号后则立即接管主节点资源。
warntime 10 //释放,10s内备节点没有收到主节点心跳信号时会往日志里写警告信息。
initdead 60 //释放并修改,默认是120,首次运行后,需要等待60s判断对方节点死后才接管资源
mcast eth1 225.0.0.1 694 1 0 //释放,设置广播通信使用端口,694为默认端口,多播用心跳网卡最好,局域网不要冲突
auto_failback on //默认就开着,主节点恢复后是否切回。
node data-1-1 //添加
node data-1-2 //添加
crm no //添加,是否开启集群资源管理。
wq
[root@data-1-1 heartbeat-3.0.4]# vim /etc/ha.d/authkeys
auth 1 //释放
1 sha1 HI! //修改成1,模式是 2,HI是随便写的,也可写多一些,只要两边一样即可。
wq
[root@data-1-1 heartbeat-3.0.4]# chmod 600 /etc/ha.d/authkeys
[root@data-1-1 heartbeat-3.0.4]# vim /etc/ha.d/haresources
data-1-1 IPaddr::192.168.1.6/24/eth0 haproxy //添加,在节点1的eth0网卡上绑定vip并控制服务启停
wq
[root@data-1-1 heartbeat-3.0.4]# /etc/init.d/heartbeat stop
[root@data-1-1 heartbeat-3.0.4]# chkconfig heartbeat off //先不启heartbeat服务,防止带着服务启动裂脑。
安装haproxy:
[root@data-1-1 桌面]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
wq
[root@data-1-1 桌面]# sysctl -p
[root@data-1-1 桌面]# yum -y install gcc gcc-c++
[root@data-1-1 桌面]# ls
epel-release-6-8.noarch.rpm haproxy-1.4.24.tar.gz
[root@data-1-1 桌面]# tar -zxf haproxy-1.4.24.tar.gz
[root@data-1-1 桌面]# ls
epel-release-6-8.noarch.rpm haproxy-1.4.24 haproxy-1.4.24.tar.gz
[root@data-1-1 桌面]# cd haproxy-1.4.24
[root@data-1-1 haproxy-1.4.24]# ls
CHANGELOG ebtree LICENSE Makefile.osx src TODO
contrib examples Makefile README SUBVERS VERDATE
doc include Makefile.bsd ROADMAP tests VERSION
[root@data-1-1 haproxy-1.4.24]# make TARGET=linux2628 ARCH=x86_64 //编译,target指定内核,架构选择
[root@data-1-1 haproxy-1.4.24]# make PREFIX=/usr/local/haproxy install
[root@data-1-1 haproxy-1.4.24]# ls /usr/local/haproxy/
doc logs sbin share
[root@data-1-1 haproxy-1.4.24]# mkdir /usr/local/haproxy/conf /优化目录结构,也可不做,根据需要
[root@data-1-1 haproxy-1.4.24]# mkdir /usr/local/haproxy/var/run -p
[root@data-1-1 haproxy-1.4.24]# mkdir /usr/local/haproxy/var/chroot -p
[root@data-1-1 haproxy-1.4.24]# ls /usr/local/haproxy/
conf doc logs sbin share var
安装后链接变量路径和cp配置文件和启动脚本:
[root@data-1-1 haproxy-1.4.24]# ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/
[root@data-1-1 haproxy-1.4.24]# mkdir /etc/haproxy
[root@data-1-1 haproxy-1.4.24]# cp /root/桌面/haproxy-1.4.24/examples/haproxy.cfg /etc/haproxy/
[root@data-1-1 haproxy-1.4.24]# cp /root/桌面/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
[root@data-1-1 haproxy-1.4.24]# chmod +x /etc/init.d/haproxy
[root@data-1-1 haproxy-1.4.24]# vim /etc/haproxy/haproxy.cfg #原来内容可都删除,修改成如下内容:
global
log 127.0.0.1:514 local0 warning
log 127.0.0.1 local1 notice
chroot /usr/local/haproxy/var/chroot
pidfile /usr/local/haproxy/var/run/haproxy.pid
maxconn 20480
nbproc 8
daemon
group haproxy
user haproxy
spread-checks 3
defaults
log global
mode http
option httplog
option dontlognull
retries 3
redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen test
bind 192.168.1.6:80
mode http
stats enable
stats uri /admin?stats //web界面的uri,访问时格式:http://调度IP或域名/admin?stats
stats hide-version
stats auth admin:123456
balance roundrobin
option forwardfor //在web网站配置日志中能够看到客户端真实的IP,不好演示,做一个说明即可。
timeout server 15s
timeout connect 15s
option httpclose
cookie SERVERID rewrite
server web1 192.168.1.100:80 cookie A maxconn 2048 weight 1 check port 80 inter 2000 rise 2 fall 5
server web2 192.168.1.200:80 cookie B maxconn 4096 weight 1 check port 80 inter 2000 rise 2 fall 5
wq
[root@data-1-1 haproxy-1.4.24]# useradd -s /sbin/nologin haproxy -M
利用rsyslog配置haproxy记录日志功能: //当看/usr/local/haproxy/logs/haproxy.log可看haproxy日志,只做下说明
[root@data-1-1 haproxy-1.4.24]# echo "local0.* /usr/local/haproxy/logs/haproxy.log" >> /etc/rsyslog.conf
[root@data-1-1 haproxy-1.4.24]# tail -1 /etc/rsyslog.conf
local0.* /usr/local/haproxy/logs/haproxy.log //因为haproxy.cfg中是local0,用这个设备写日志
[root@data-1-1 haproxy-1.4.24]# tail -1 /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-c 5" //6.0版以上不用动,5.8版应写为:SYSLOGD_OPTIONS="-c 2 -m 0 -r -x",兼容2版本
[root@data-1-1 haproxy-1.4.24]# /etc/init.d/rsyslog restart //启动记录haproxy日志服务,6.4版启动无端口
[root@data-1-1 haproxy-1.4.24]# vim /etc/rsyslog.conf
$ModLoad imudp //注释取消
$UDPServerRun 514 //注释取消
wq
root@data-1-1 haproxy-1.4.24]# /etc/init.d/rsyslog restart
[root@data-1-1 haproxy-1.4.24]# netstat -anptu |grep 514
udp 0 0 0.0.0.0:514 0.0.0.0:* 38637/rsyslogd
udp 0 0 :::514 :::* 38637/rsyslogd
[root@data-1-1 haproxy-1.4.24]# /etc/init.d/haproxy stop //此时有vip能启动服务,但先不启动,防止裂脑
[root@data-1-1 haproxy-1.4.24]# chkconfig haproxy off
当haproxy配置文件中没有绑定vip时,不能启动haproxy服务,解决方法如下:
[root@data-1-1 haproxy-1.4.24]# echo "net.ipv4.ip_nonlocal_bind=1" >> /etc/sysctl.conf
[root@data-1-1 haproxy-1.4.24]# sysctl -p
机器2:(备节点)
eth0 :192.168.1.205 桥接、联网,配网关(和真机一样),配DNS1(和真机一样)
eth1:192.168.10.205 (心跳线) vmnet 2
[root@localhost 桌面]# ifconfig eth0 |head -2
eth0 Link encap:Ethernet HWaddr 00:0C:29:B0:12:FA
inet addr:192.168.1.205 Bcast:192.168.1.255 Mask:255.255.255.0
[root@localhost 桌面]# ifconfig eth1 |head -2
eth1 Link encap:Ethernet HWaddr 00:0C:29:B0:12:04
inet addr:192.168.10.205 Bcast:192.168.10.255 Mask:255.255.255.0
[root@localhost 桌面]# hostname data-1-2
[root@localhost 桌面]# sed -i 's#HOSTNAME=localhost.localdomain#HOSTNAME=data-1-2#g' /etc/sysconfig/network
[root@data-1-2 桌面]# uname -n //机器名必须要以用uname -n后查看的为准
data-1-2
[root@data-1-2 桌面]# vim /etc/hosts
192.168.1.5 data-1-1
192.168.1.205 data-1-2
wq
[root@data-1-2 桌面]# ping data-1-1
PING data-1-1 (192.168.1.5) 56(84) bytes of data.
64 bytes from data-1-1 (192.168.1.5): icmp_seq=1 ttl=64 time=0.535 ms
64 bytes from data-1-1 (192.168.1.5): icmp_seq=2 ttl=64 time=0.462 ms
添加心跳路由:
[root@data-1-2 桌面]# /sbin/route add -host 192.168.10.5 dev eth1 //去对方的心跳线通过eth1出去
[root@data-1-2 桌面]# echo "/sbin/route add -host 192.168.10.5 dev eth1" >> /etc/rc.local
安装heartbeat的依赖包:epel-release-6-8.noarch.rpm
[root@data-1-2 桌面]# ls
epel-release-6-8.noarch.rpm
[root@data-1-2 桌面]# rpm -ivh epel-release-6-8.noarch.rpm
warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]
安装heartbeat
[root@data-1-2 桌面]# yum -y install heartbeat //或者yum -y install heartbeat* 此时用的是163网络yum源
[root@data-1-2 桌面]# ls /etc/ha.d/ //heartbeat默认安装后地点
harc rc.d README.config resource.d shellfuncs
[root@data-1-2 桌面]# ls /etc/ha.d/resource.d/ //资源目录,里面都是脚本。
apache Filesystem IPaddr LinuxSCSI portblock WAS
AudibleAlarm hto-mapfuncs IPaddr2 LVM Raid1 WinPopup
db2 ICP IPsrcaddr MailTo SendArp Xinetd
Delay ids IPv6addr OCF ServeRAID
[root@data-1-2 桌面]# ls /usr/share/doc/heartbeat-3.0.4/ //默认模板配置文件
apphbd.cf AUTHORS COPYING ha.cf README
authkeys ChangeLog COPYING.LGPL haresources
[root@data-1-2 桌面]# cd /usr/share/doc/heartbeat-3.0.4/
[root@data-1-2 heartbeat-3.0.4]# cp ha.cf haresources authkeys /etc/ha.d/
[root@data-1-2 heartbeat-3.0.4]# vim /etc/ha.d/ha.cf
debugfile /var/log/ha-debug //释放,调试日志存放位置
logfile /var/log/ha-log //释放,日志存放位置
logfacility local1 //修改为local1,默认是local0
keepalive 2 //释放,心跳间隔时间为2秒,默认2秒
deadtime 30 //释放,备节点30s内没有收到主节点心跳信号后则立即接管主节点资源。
warntime 10 //释放,10s内备节点没有收到主节点心跳信号时会往日志里写警告信息。
initdead 60 //释放并修改,默认是120,首次运行后,需要等待60s判断对方节点死后才接管资源
mcast eth1 225.0.0.1 694 1 0 //释放,设置广播通信使用端口,694为默认端口,多播用心跳网卡最好,局域网不要冲突
auto_failback on //默认就开着,主节点恢复后是否切回。
node data-1-1 //添加
node data-1-2 //添加
crm no //添加,是否开启集群资源管理。
wq
[root@data-1-1 heartbeat-3.0.4]# vim /etc/ha.d/authkeys
auth 1 //释放
1 sha1 HI! //修改成1,默认是2,HI是随便写的,也可写多一些,只要两边一样即可。
wq
[root@data-1-1 heartbeat-3.0.4]# chmod 600 /etc/ha.d/authkeys
[root@data-1-1 heartbeat-3.0.4]# vim /etc/ha.d/haresources
data-1-1 IPaddr::192.168.1.6/24/eth0 haproxy 添加,在节点1的eth0网卡上绑定vip,当节点1挂了才起vip和服务
wq
[root@data-1-2 heartbeat-3.0.4]# /etc/init.d/heartbeat stop
[root@data-1-2 heartbeat-3.0.4]# chkconfig heartbeat off //此时先不启动heartbeat,防止裂脑
安装haproxy:
[root@data-1-2 桌面]# vim /etc/sysctl.conf #路由转发,可开可不开,养成好习惯
net.ipv4.ip_forward = 1
wq
[root@data-1-2 桌面]# sysctl -p
root@data-1-2 桌面]# yum -y install gcc gcc-c++
[root@data-1-2 桌面]# ls
epel-release-6-8.noarch.rpm haproxy-1.4.24.tar.gz
[root@data-1-2 桌面]# tar -zxf haproxy-1.4.24.tar.gz
[root@data-1-2 桌面]# ls
epel-release-6-8.noarch.rpm haproxy-1.4.24 haproxy-1.4.24.tar.gz
[root@data-1-2 桌面]# cd haproxy-1.4.24
[root@data-1-2 haproxy-1.4.24]# ls
CHANGELOG ebtree LICENSE Makefile.osx src TODO
contrib examples Makefile README SUBVERS VERDATE
doc include Makefile.bsd ROADMAP tests VERSION
[root@data-1-2 haproxy-1.4.24]# make TARGET=linux2628 ARCH=x86_64
[root@data-1-2 haproxy-1.4.24]# make PREFIX=/usr/local/haproxy install
[root@data-1-2 haproxy-1.4.24]# ls /usr/local/haproxy/
doc sbin share
[root@data-1-2 haproxy-1.4.24]# mkdir /usr/local/haproxy/logs //优化目录结构,也可不做,根据需要
[root@data-1-2 haproxy-1.4.24]# mkdir /usr/local/haproxy/conf
[root@data-1-2 haproxy-1.4.24]# mkdir /usr/local/haproxy/var/run -p
[root@data-1-2 haproxy-1.4.24]# mkdir /usr/local/haproxy/var/chroot -p
[root@data-1-2 haproxy-1.4.24]# ls /usr/local/haproxy/
conf doc logs sbin share var
安装后链接变量路径和cp配置文件和启动脚本
[root@data-1-2 haproxy-1.4.24]# ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/
[root@data-1-2 haproxy-1.4.24]# mkdir /etc/haproxy
[root@data-1-2 haproxy-1.4.24]# cp /root/桌面/haproxy-1.4.24/examples/haproxy.cfg /etc/haproxy/
[root@data-1-2 haproxy-1.4.24]# cp /root/桌面/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
[root@data-1-2 haproxy-1.4.24]# chmod +x /etc/init.d/haproxy
[root@data-1-2 haproxy-1.4.24]# vim /etc/haproxy/haproxy.cfg #原来内容都可删除,修改成如下内容
global
log 127.0.0.1:514 local0 warning
log 127.0.0.1 local1 notice
chroot /usr/local/haproxy/var/chroot
pidfile /usr/local/haproxy/var/run/haproxy.pid
maxconn 20480
nbproc 8
daemon
group haproxy
user haproxy
spread-checks 3
defaults
log global
mode http
option httplog
option dontlognull
retries 3
redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen test
bind 192.168.1.6:80
mode http
stats enable
stats uri /admin?stats //web界面的uri,访问时格式:http://调度IP或域名/admin?stats
stats hide-version
stats auth admin:123456
balance roundrobin
option forwardfor //在web网站配置日志中能够看到客户端真实的IP,不好演示,做一个说明即可。
timeout server 15s
timeout connect 15s
option httpclose
cookie SERVERID rewrite
server web1 192.168.1.100:80 cookie A maxconn 2048 weight 1 check port 80 inter 2000 rise 2 fall 5
server web2 192.168.1.200:80 cookie B maxconn 4096 weight 1 check port 80 inter 2000 rise 2 fall 5
wq
[root@data-1-2 haproxy-1.4.24]# useradd -s /sbin/nologin haproxy -M
利用rsyslog配置haproxy记录日志功能: //当看/usr/local/haproxy/logs/haproxy.log可看haproxy日志,只做下说明
[root@data-1-2 haproxy-1.4.24]# echo "local0.* /usr/local/haproxy/logs/haproxy.log" >> /etc/rsyslog.conf
[root@data-1-2 haproxy-1.4.24]# tail -1 /etc/rsyslog.conf
local0.* /usr/local/haproxy/logs/haproxy.log //因为haproxy.cfg中是local0,用这个设备写日志
[root@data-1-2 haproxy-1.4.24]# tail -1 /etc/sysconfig/rsyslog //这个不用动
SYSLOGD_OPTIONS="-c 5" //6.0版以上不用动,5.8版应写为:SYSLOGD_OPTIONS="-c 2 -m 0 -r -x",兼容2版本
[root@data-1-2 haproxy-1.4.24]# /etc/init.d/rsyslog restart //启动记录haproxy日志服务,6.4版启动无端口
[root@data-1-2 haproxy-1.4.24]# vim /etc/rsyslog.conf
$ModLoad imudp //注释取消
$UDPServerRun 514 //注释取消
wq
[root@data-1-2 haproxy-1.4.24]# /etc/init.d/rsyslog restart
[root@data-1-2 haproxy-1.4.24]# netstat -anptu |grep 514
udp 0 0 0.0.0.0:514 0.0.0.0:* 38747/rsyslogd
udp 0 0 :::514 :::* 38747/rsyslogd
[root@data-1-2 haproxy-1.4.24]# /etc/init.d/haproxy start 启动失败,因为这端没有vip,不绑定vip启动不了
[root@data-1-2 haproxy-1.4.24]# echo "net.ipv4.ip_nonlocal_bind=1" >> /etc/sysctl.conf //解决方法
[root@data-1-2 haproxy-1.4.24]# sysctl -p
[root@data-1-2 haproxy-1.4.24]# /etc/init.d/haproxy stop //此时能启动成功,但先不启动,防止裂脑
[root@data-1-2 haproxy-1.4.24]# chkconfig haproxy off
后端两台web服务器(192.168.1.100)桥接、联网,配网关(和真机一样),配DNS(和真机一样)
[root@localhost 桌面]# yum -y install httpd //不一定非用网络yum源
[root@localhost 桌面]# /etc/init.d/httpd start
[root@localhost 桌面]# echo test_web1 > /var/www/html/index.html
后端两台web服务器(192.168.1.200)桥接、联网,配网关(和真机一样),配DNS(和真机一样)
[root@localhost 桌面]# yum -y install httpd //不一定非用网络yum源
[root@localhost 桌面]# /etc/init.d/httpd start
[root@localhost 桌面]# echo test_web2 > /var/www/html/index.html
此时:主节点机器1和备节点2上:调度服务停止,heartbeat停止,现在把主备节点的heatbeat服务都启动,会自动管理vip和haproxy服务。
主节点机器1上: //主节点启动heartbeat服务后,vip和haproxy服务同时拥有
[root@data-1-1 haproxy-1.4.24]# /etc/init.d/heartbeat start
[root@data-1-1 haproxy-1.4.24]# ip addr |grep 192.168.1.6
inet 192.168.1.6/24 brd 192.168.1.255 scope global secondary eth0
[root@data-1-1 haproxy-1.4.24]# /etc/init.d/haproxy status
haproxy (pid 42075 42076 42077 42078 42079 42080 42081 42082) 正在运行...
备节点机器2上: //主节点正常,备节点,vip和haproxy服务都不接管。
[root@data-1-2 haproxy-1.4.24]# /etc/init.d/heartbeat start
[root@data-1-2 haproxy-1.4.24]# ip addr |grep 192.168.1.6
为空
[root@data-1-2 haproxy-1.4.24]# /etc/init.d/haproxy status
haproxy 已停
客户端192.168.1.8上://主节点正常时,客户通过主节点调度器,访问web服务
[root@localhost 桌面]# vim /etc/hosts
192.168.1.6 www.qiang.com
wq
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web2
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web2
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web2
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web2
主节点机器1上: //主节点heartbeat服务宕机后,vip和haproxy服务同时失去
[root@data-1-1 haproxy-1.4.24]# /etc/init.d/heartbeat stop
[root@data-1-1 haproxy-1.4.24]# ip addr |grep 192.168.1.6
空
[root@data-1-1 haproxy-1.4.24]# /etc/init.d/haproxy status
haproxy 已停
备节点机器2上: //主节点宕机,备节点,vip和haproxy服务都接管过来。
[root@data-1-2 haproxy-1.4.24]# ip addr |grep 192.168.1.6
inet 192.168.1.6/24 brd 192.168.1.255 scope global secondary eth0
[root@data-1-2 haproxy-1.4.24]# /etc/init.d/haproxy status
haproxy (pid 41873 41874 41875 41876 41877 41878 41879 41880) 正在运行...
客户端192.168.1.8上://主节点宕机时,客户通过备节点调度器,访问web服务
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web2
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web2
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web2
主节点机器1上: //主节点heartbeat服务恢复后,vip和haproxy服务同时接收回来
[root@data-1-1 haproxy-1.4.24]# /etc/init.d/heartbeat start
[root@data-1-1 haproxy-1.4.24]# ip addr |grep 192.168.1.6
inet 192.168.1.6/24 brd 192.168.1.255 scope global secondary eth0
[root@data-1-1 haproxy-1.4.24]# /etc/init.d/haproxy status
haproxy (pid 42800 42801 42802 42803 42804 42805 42806 42807) 正在运行...
备节点机器2上: //主节点恢复,备节点,vip和haproxy服务都释放。
[root@data-1-2 haproxy-1.4.24]# ip addr |grep 192.168.1.6
[root@data-1-2 haproxy-1.4.24]# /etc/init.d/haproxy status
haproxy 已停
客户端192.168.1.8上://主节点恢复时,客户通过主节点调度器,访问web服务
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web2
[root@localhost 桌面]# curl www.qiang.com
test_web2
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web1
[root@localhost 桌面]# curl www.qiang.com
test_web2