zoukankan      html  css  js  c++  java
  • 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[1125]: ip address associated with VRID not present in received packet : 192.168.51.230
    Feb 20 23:21:52 localhost Keepalived_vrrp[1125]: one or more VIP associated with VRID mismatch actual MASTER advert
    Feb 20 23:21:52 localhost Keepalived_vrrp[1125]: 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 

  • 相关阅读:
    JavaScript 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome)
    一个程序员的梦想
    无刷新分页控件(原创)(jQuery+json+ashx)(Ajax)
    Ajax无刷新分页(jQuery+Json)
    飞信 .net接口
    STL学习小记起因
    C++山寨CSharp事件
    在win8上花了一上午的闲暇做的贪吃蛇sample, 顺便移植到了WPF...
    STL学习小记顺序容器
    最近做的一个store app音乐箱
  • 原文地址:https://www.cnblogs.com/gqdw/p/3558706.html
Copyright © 2011-2022 走看看