keepalived的一些。。
继续采坑。。有些坑,踩了才知道。1.文件位置不能错。
首先是安装, 源码编译,--prefix=/usr/local/keepalive
然后用 sbin/keepalive -f...conf
那就发现根本生成不了vip ,虚拟ip ,因为你的配置文件没有放在 /etc/keepalived/keepalived.conf ,不生效的。。即使你指定了-f 。
解决方案是
$ cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
$ cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
$ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
$ mkdir -p /etc/keepalived/
$ cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
或者干脆用yum 安装,centos 里面有包。能省不少麻烦。
2.virtual_router_id
如果猛报错,像这种
VRRP_Instance(VI_1) Dropping received VRRP packet...
Feb 20 23:21:52 localhost Keepalived_vrrp: ip address associated with VRID not present in received packet : 192.168.51.230
Feb 20 23:21:52 localhost Keepalived_vrrp: one or more VIP associated with VRID mismatch actual MASTER advert
Feb 20 23:21:52 localhost Keepalived_vrrp: bogus VRRP packet received on eth0 !!!
说明网段内的机器有keepalive 了。需要修改。
3.weight
好像有好多种设置方法。实践下来,都设置成master ,然后安装优先级来抢占vip 。
vrrp_script chk_http_port {
script "/opt/chk.sh"
interval 2
weight -2
}
假设这台机器是优先级比较高的master ,脚本执行失败,也就是返回非0 ,就优先级-2 。然后另外的机器就抢到vip 了。自动切为backup
然后 chk.sh里面可以这样写,比如检测 httpd 进程的
num=`pgrep httpd|wc -l `
if [ $num -eq "0" ] ;
then #没有进程,让脚本返回1
exit 1
else#有进程,脚本返回0 ,正常
exit 0
fi
里面也可以加上 killall keepalived ,把自己杀了,就不会再切回来。
我的配置文件是
! Configuration File for keepalived
global_defs {
# notification_email {
# acassen@firewall.loc
# failover@firewall.loc
# sysadmin@firewall.loc
# }
# notification_email_from Alexandre.Cassen@firewall.loc
# smtp_server 192.168.200.1
# smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/opt/chk.sh"
interval 2
weight -2 这里是负数。
}
vrrp_instance VI_1 {
state MASTER 都是master
interface eth0
virtual_router_id 52这个保持一致。
priority 100 两者不要差太多。
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
# 192.168.200.16
# 192.168.200.17
# 192.168.200.18
192.168.51.230 vip
}
track_script {注意有个空格。中间。
chk_http_port
}
}
实验起来很简单,就开个httpd ,然后主页改下不同,访问vip ,关httpd ,看keepalived 能不能切到 另一台机器上去。如果能的话,网页会显示会不同。网上文章还不少!
如果是虚拟机,virtual box 的配置环境,可以参看之前的文章。http://www.cnblogs.com/gqdw/p/3556072.html
页:
[1]