当192.168.100.55下线后所有的图片都没了,说以不能只有一台静态服务器
haproxy的警告
[root@zqy keepalived]#
Message from syslogd@localhost at Apr 21 19:01:45 ...
haproxy[4929]: backend static has no server available!
#
vip=192.168.100.20
contact='root@localhost'
notify() {
mailsubject="`hostname` to be $1: $vip floating"
mailbody="`date '+%F %H:%M:%S'`: vrrp transition, `hostname` changed to be $1"
echo $mailbody | mail -s "$mailsubject" $contact
}
case "$1" in
master)
notify master
/etc/rc.d/init.d/haproxy start
exit 0
;;
backup)
notify backup
/etc/rc.d/init.d/haproxy stop
exit 0
;;
fault)
notify fault
/etc/rc.d/init.d/haproxy stop
exit 0
;;
*)
echo 'Usage: `basename $0` {master|backup|fault}'
exit 1
;;
esac
测试
在主的上停止haproxy
[root@node1 keepalived]# service haproxy stop
Stopping haproxy: [ OK ]
主的日志
May 1 06:45:09 node1 Keepalived_vrrp[5363]: VRRP_Script(haproxy) failed
May 1 06:45:10 node1 Keepalived_vrrp[5363]: VRRP_Instance(VI_1) Received higher prio advert
May 1 06:45:10 node1 Keepalived_vrrp[5363]: VRRP_Instance(VI_1) Entering BACKUP STATE
May 1 06:45:10 node1 Keepalived_vrrp[5363]: VRRP_Instance(VI_1) removing protocol VIPs.
May 1 06:45:10 node1 Keepalived_healthcheckers[5362]: Netlink reflector reports IP 192.168.100.16 removed
从的日志
May 1 14:43:41 node2 Keepalived_vrrp[37067]: VRRP_Instance(VI_1) forcing a new MASTER election
May 1 14:43:42 node2 Keepalived_vrrp[37067]: VRRP_Instance(VI_1) Transition to MASTER STATE
May 1 14:43:43 node2 Keepalived_vrrp[37067]: VRRP_Instance(VI_1) Entering MASTER STATE
May 1 14:43:43 node2 Keepalived_vrrp[37067]: VRRP_Instance(VI_1) setting protocol VIPs.
May 1 14:43:43 node2 Keepalived_vrrp[37067]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.100.16
May 1 14:43:43 node2 Keepalived_healthcheckers[37066]: Netlink reflector reports IP 192.168.100.16 added
May 1 14:43:48 node2 Keepalived_vrrp[37067]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.100.16
查看服务是否启动
[root@node2 keepalived]# ss -anlp|grep haproxy
LISTEN 0 128 *:80 *:* users:(("haproxy",37270,4))
LISTEN 0 128 *:443 *:* users:(("haproxy",37270,5))
LISTEN 0 128 *:8009 *:* users:(("haproxy",37270,7))
当主的haproxy重新上线时
[root@node1 keepalived]# service haproxy start
Starting haproxy: [ OK ]
主的日志
May 1 06:46:56 node1 Keepalived_vrrp[5363]: VRRP_Script(haproxy) succeeded
May 1 06:46:58 node1 Keepalived_vrrp[5363]: VRRP_Instance(VI_1) forcing a new MASTER election
May 1 06:46:59 node1 Keepalived_vrrp[5363]: VRRP_Instance(VI_1) Transition to MASTER STATE
May 1 06:47:00 node1 Keepalived_vrrp[5363]: VRRP_Instance(VI_1) Entering MASTER STATE
May 1 06:47:00 node1 Keepalived_vrrp[5363]: VRRP_Instance(VI_1) setting protocol VIPs.
May 1 06:47:00 node1 Keepalived_healthcheckers[5362]: Netlink reflector reports IP 192.168.100.16 added
May 1 06:47:00 node1 Keepalived_vrrp[5363]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.100.16
May 1 06:47:05 node1 Keepalived_vrrp[5363]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.100.16
从的日志
May 1 14:49:00 node2 Keepalived_vrrp[37067]: VRRP_Instance(VI_1) Received higher prio advert
May 1 14:49:00 node2 Keepalived_vrrp[37067]: VRRP_Instance(VI_1) Entering BACKUP STATE
May 1 14:49:00 node2 Keepalived_vrrp[37067]: VRRP_Instance(VI_1) removing protocol VIPs.
May 1 14:49:00 node2 Keepalived_healthcheckers[37066]: Netlink reflector reports IP 192.168.100.16 removed
keepalived drbd
script "killall -0 mysqld"
[mysqld]
datadir=/mnt/drbd/mysql
#!/bin/bash
vip=192.168.100.108
contact='root@localhost'
notify() {
mailsubject="`hostname` to be $1: $vip floating"
mailbody="`date '+%F %H:%M:%S'`: vrrp transition, `hostname` changed to be $1"
echo $mailbody | mail -s "$mailsubject" $contact
}
case "$1" in
master)
ip addr add 192.168.100.108/24 dev eth0
hostname=`hostname |head -1`
if [ $hostname == node3.xy.com ];then
ssh node4 "sh /etc/keepalived/notify.sh backup"
elif [ $hostname == node4.xy.com ];then
ssh node3 "sh /etc/keepalived/notify.sh backup"
fi
notify master
drbdadm primary r0
mount /dev/drbd0 /mnt/drbd
service mysqld start
exit 0
;;
backup)
notify backup
ip addr del 192.168.100.108/24 dev eth0
service mysqld stop
lsof /mnt/drbd|awk '{print $2}'|xargs kill
umount /mnt/drbd
drbdadm secondary r0
exit 0
;;
fault)
notify fault
service mysqld stop
lsof /mnt/drbd|awk '{print $2}'|xargs kill
umount /mnt/drbd
drbdadm secondary r0
exit 0
;;
*)
echo 'Usage: `basename $0` {master|backup|fault}'
exit 1
;;
esac