Chinaunix
标题:
keepalived环境中备机服务停止后不能自动重启的问题
[打印本页]
作者:
sjzwyb
时间:
2014-05-05 11:08
标题:
keepalived环境中备机服务停止后不能自动重启的问题
正在测试keepalived,环境如下:
主备双机,虚拟出一个IP地址,正常情况下:主机占用虚拟IP,服务(vsftpd)在主机运行,备机服务停止。若主机出问题,VIP迁移至备机,备机服务启动,主机服务停止;测试过程中发现:若在主机运行,服务(vsftp)手动停止的话,会被keepalived及脚本自动重启。但若在备机运行(VIP及vsftpd均在备机),手动停止vsftp,则不会被启动,以下为keepalived及脚本,请高手指点:
keepalived.conf:
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MY_KEEPALIVED
}
vrrp_script chk_alive {
script "/usr/local/keepalived/etc/keepalived/chk_alive.sh"
interval 1
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
preempt
authentication {
auth_type PASS
auth_pass 1111
}
track_interface {
eth0
eth1
}
virtual_ipaddress {
10.215.54.33
}
track_script {
chk_alive
}
notify_master "/usr/local/keepalived/etc/keepalived/notify.sh master"
notify_backup "/usr/local/keepalived/etc/keepalived/notify.sh backup"
notify_fault "/usr/local/keepalived/etc/keepalived/notify.sh fault"
}
chk_alive.sh:
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/loacl/bin:/usr/local/sbin:~/bin
export PATH
VIP=10.215.54.33
FindVIP=`ip addr | grep $VIP | wc -l`
Serhealth=`pgrep vsftpd | wc -l `
if [ "$FindVIP" -eq 1 -a "$Serhealth" -eq 0 ] ; then
service vsftpd start
sleep 10
elif [ "$FindVIP" -eq 0 -a "$Serhealth" -ge 1 ] ; then
service vsftpd stop
sleep 10
else
exit 0
fi
notify.sh:
#!/bin/bash
VIP=10.215.54.33
CONTACT='root@localhost'
THISIP=`ifconfig eth0 | awk '/inet addr:/{print $2}' | awk -F: '{print $2}'`
Notify() {
mailsubject="$THISIP is to bi $VIP master"
mailbody="vrrp transaction,$VIP floated to $THISIP"
echo $mailbody | mail -s "$mailsubject" $CONTACT
}
case "$1" in
master)
/etc/init.d/keepalived start
service vsftpd start
sleep 10
exit 0
;;
backup)
service vsftpd stop
sleep 10
exit 0
;;
fault)
service vsftpd stop
sleep
exit 0
;;
*)
echo 'Usage:`basename $0` {master|backup|fault}'
exit 1
;;
esac
作者:
sjzwyb
时间:
2014-05-05 11:30
我靠,找到原因了,备机的脚本有问题;问题解决,谢谢各位!
作者:
q1208c
时间:
2014-05-05 13:26
我不是很明白, 楼主为啥用 keepalived 来处理应用层的切换呢?
作者:
sjzwyb
时间:
2014-05-05 16:07
这样只要安装keepalived就可以解决硬件(网络)和软件(应用)双机了,比较方便可靠,不然还有什么其它方便且稳定的方法吗?请指点!
作者:
q1208c
时间:
2014-05-06 08:26
回复
4#
sjzwyb
个人以为, keepalived 是为 lvs 设计的 四层的 HA 架构, 而且, 是基于VRRP协议的. 对于应用层的监听处理, 没有特别的优势. 更多的需要自己写相应的脚本来处理.
对于应用层的HA, 还是应该使用7层的HA软件比较好. 开源的 Pacemaker, OpenAIS 还是什么的, 都可以参考一下.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2