yanglgzh 发表于 2015-9-4 09:22:01

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]
查看完整版本: keepalived的一些。。