keepalived的安装

keepalived也是为了支持服务器高可用性而存在的,多和lvs配套使用,但是这种基于共享ip的方式当然可以推广应用到很多方面了。

 

 

Version 1.1.20 安装的这个版本。

 

下载安装就不说了,特别注意参考一下官方的http://www.keepalived.org/documentation.html,Keepalived User Guide

 

默认会装到/usr/loca/下,建议安装到./configure --prefix=/ 会省很多路径找不到的问题,自定义安装注意一下相关的起动脚本的位置,网上搜来的文档这方面强调的不够,我按照文档一步步搞下来就是没有效果。后来发现是启动脚本中的配置文件没有在默认位置,而keepalived不会相应改变的。

 

配置文件:

 

 

    vrrp_script chk_haproxy {           # Requires keepalived-1.1.13

        script "killall -0 haproxy"     # cheaper than pidof

        interval 2                      # check every 2 seconds

        weight 2                        # add 2 points of prio if OK

    }

 

    vrrp_instance VI_1 {

        interface eth0

        state MASTER                 # BACKUP

        virtual_router_id 51

        priority  101                   # 101 on master, 100 on backup

        virtual_ipaddress {

            192.168.1.100

        }

        track_script {

            chk_haproxy

        }

    }

 

 

然后检查状态:sudo /etc/rc.d/init.d/keepalived status

启动:sudo /etc/rc.d/init.d/keepalived start

 

sudo tail -f /var/log/messages 看log输出

 

有以下输出就表示ok了,启动master:

 

 

Nov  4 18:02:21 dev2 Keepalived: Starting Keepalived v1.1.20 (11/04,2010) 

Nov  4 18:02:21 dev2 Keepalived: Starting VRRP child process, pid=7012

Nov  4 18:02:21 dev2 Keepalived_vrrp: Registering Kernel netlink reflector

Nov  4 18:02:21 dev2 Keepalived_vrrp: Registering Kernel netlink command channel

Nov  4 18:02:21 dev2 Keepalived_vrrp: Registering gratutious ARP shared channel

Nov  4 18:02:21 dev2 Keepalived_vrrp: Opening file '/etc/keepalived/keepalived.conf'. 

Nov  4 18:02:21 dev2 Keepalived_vrrp: Configuration is using : 63920 Bytes

Nov  4 18:02:21 dev2 Keepalived_vrrp: Using LinkWatch kernel netlink reflector...

Nov  4 18:02:21 dev2 Keepalived_vrrp: VRRP_Script(chk_haproxy) succeeded

Nov  4 18:02:22 dev2 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE

Nov  4 18:02:22 dev2 Keepalived_vrrp: VRRP_Instance(VI_1) Received higher prio advert

Nov  4 18:02:22 dev2 Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE

Nov  4 18:02:23 dev2 Keepalived_vrrp: VRRP_Instance(VI_1) forcing a new MASTER election

Nov  4 18:02:24 dev2 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE

Nov  4 18:02:25 dev2 Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE

Nov  4 18:02:25 dev2 avahi-daemon[2799]: Registering new address record for 192.168.1.100 on eth0.

 

 

 

 

192.168.1.100是要虚拟的ip。

 

如果不是类似的情况,请检查是否没有加载配置文件。

 

启动slave,sudo /etc/rc.d/init.d/keepalived start:

 

 

 

Nov  4 18:03:34 tester Keepalived: Starting Keepalived v1.1.20 (11/03,2010) 

Nov  4 18:03:34 tester Keepalived_vrrp: Registering Kernel netlink reflector

Nov  4 18:03:34 tester Keepalived_vrrp: Registering Kernel netlink command channel

Nov  4 18:03:34 tester Keepalived_vrrp: Registering gratutious ARP shared channel

Nov  4 18:03:34 tester Keepalived_vrrp: Opening file '/etc/keepalived/keepalived.conf'. 

Nov  4 18:03:34 tester Keepalived: Starting VRRP child process, pid=30185

Nov  4 18:03:34 tester Keepalived_vrrp: Configuration is using : 63818 Bytes

Nov  4 18:03:34 tester Keepalived_vrrp: Using LinkWatch kernel netlink reflector...

Nov  4 18:03:34 tester Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE

Nov  4 18:03:34 tester Keepalived_vrrp: VRRP_Script(chk_haproxy) succeeded

 

 

 

 

定掉master测试,sudo /etc/rc.d/init.d/keepalived stop:

 

 

Nov  4 18:05:22 dev2 Keepalived: Terminating on signal

Nov  4 18:05:22 dev2 Keepalived: Stopping Keepalived v1.1.20 (11/04,2010) 

Nov  4 18:05:22 dev2 Keepalived_vrrp: Terminating VRRP child process on signal

Nov  4 18:05:22 dev2 avahi-daemon[2799]: Withdrawing address record for 192.168.1.100 on eth0.

 

 

slave上的日志输出:

 

 

Nov  4 18:04:33 tester Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE

Nov  4 18:04:33 tester avahi-daemon[2601]: Registering new address record for 192.168.1.100 on eth0.

 

 

表示已经接管ip了。

 

 

有一些需要注意的地方:

 

virtual_router_id 在一个网段内(比如内网,外网)不能重复,否则会报:

 

Mar  9 07:32:52 keepalivet2 Keepalived_vrrp: VRRP_Instance(VI_1) Dropping received VRRP packet…
Mar  9 07:32:53 keepalivet2 Keepalived_vrrp: ip address associated with VRID not present in received packet : 1992032266
Mar  9 07:32:53 keepalivet2 Keepalived_vrrp: one or more VIP associated with VRID mismatch actual MASTER advert
Mar  9 07:32:53 keepalivet2 Keepalived_vrrp: bogus VRRP packet received on eth0 !!!

 

 

关于iptable也是一样,如果开启的话,每台机器都会找不到对方而强制启动成master,这时候会访问到后启动的那台上,关于iptable相关的设置我也尝试了很久,可以用以下抓包监控:

 

tcpdump -v -i eth0 host 224.0.0.18
tcpdump -vvv -n -i eth0 host 224.0.0.18

 

看到这个网段内所有进行监听的机器,主要必须是双向的,有去有回才对。

 

iptable以下规则可以搞定:

 

# /sbin/iptables -I INPUT -i eth0 -d 224.0.0.0/8 -j ACCEPT
# /sbin/iptables -A INPUT -p 112 -i eth0 -j ACCEPT
# /sbin/iptables -A OUTPUT -p 112 -o eth0 -j ACCEPT
# /sbin/service iptables save

 

注意网卡eth0是内网还是外网。然后重启iptables,keepalived。

 

再检查日志看master和backup是否正确进入各自的状态了。

 

http://www.cyberciti.biz/faq/linux-unix-verify-keepalived-working-or-not/#comment-50616

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值