CentOS6.9 配置keepalived 1.4.3 HA双机

记录在CentOS6.9 下配置keepalived 1.4.3 HA双机

主要参考以下文章:

https://blog.youkuaiyun.com/libaineu2004/article/details/79551455

https://www.cnblogs.com/clsn/p/8052649.html#auto_id_17

https://blog.youkuaiyun.com/xyang81/article/details/52556886

http://www.cnblogs.com/kgdxpr/p/3325788.html

首先从官网下载:http://www.keepalived.org/download.html

安装编译依赖包:

sudo yum -y install gcc make kernel-devel

sudo yum -y install curl libnl3-devel iptables-devel libnfnetlink-devel ipset-devel openssl-devel net-snmp-devel

编译安装:

tar -zxf keepalived-1.4.3.tar.gz

cd keepalived-1.4.3

./configure --prefix=/usr/local/keepalived

make

sudo make install

配置keepalived

sudo mkdir /etc/keepalived

sudo cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf

sudo vim /etc/keepalived/keepalived.conf

主服务器:

! Configuration File for keepalived

global_defs {
   router_id WEB_MASTER
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface eth1    #这里一定要确认网卡名称,否则启动一段时间后自动停止,提示:keepalived dead but subsys locked
    virtual_router_id 51
    priority 150
    #mcast_src_ip 172.16.19.171
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.19.179
    }
}

备服务器

! Configuration File for keepalived

global_defs {
   router_id WEB_SLAVE1
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth1    #这里一定要确认网卡名称,否则启动一段时间后自动停止,提示:keepalived dead but subsys locked
    virtual_router_id 51
    priority 100
    #mcast_src_ip 172.16.19.172
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.19.179
    }
}

编辑keepalived启动文件:

cd

cat "" > keepalived

vim keepalived

添加以下内容:

#!/bin/sh   
#   
# keepalived   High Availability monitor built upon LVS and VRRP   
#   
# chkconfig:   - 86 14   
# description: Robust keepalive facility to the Linux Virtual Server project \   
#              with multilayer TCP/IP stack checks.   

### BEGIN INIT INFO   
# Provides: keepalived   
# Required-Start: $local_fs $network $named $syslog   
# Required-Stop: $local_fs $network $named $syslog   
# Should-Start: smtpdaemon httpd   
# Should-Stop: smtpdaemon httpd   
# Default-Start:    
# Default-Stop: 0 1 2 3 4 5 6   
# Short-Description: High Availability monitor built upon LVS and VRRP   
# Description:       Robust keepalive facility to the Linux Virtual Server   
#                    project with multilayer TCP/IP stack checks.   
### END INIT INFO   

# Source function library.   
. /etc/rc.d/init.d/functions

exec="/usr/local/keepalived/sbin/keepalived"
prog="keepalived"
config="/etc/keepalived/keepalived.conf"

[ -e /usr/local/keepalived/etc/sysconfig/$prog ] &&  /usr/local/keepalived/etc/sysconfig/$prog

lockfile=/var/lock/subsys/keepalived

start() {   
    [ -x $exec ] || exit 5  
    [ -e $config ] || exit 6   
    echo -n $"Starting $prog: "   
    daemon $exec $KEEPALIVED_OPTIONS  
    retval=$?   
    echo   
    [ $retval -eq 0 ] && touch $lockfile   
    return $retval   
}   
     
stop() {   
    echo -n $"Stopping $prog: "   
    killproc $prog   
    retval=$?   
    echo   
    [ $retval -eq 0 ] && rm -f $lockfile   
    return $retval   
}   
     
restart() {   
    stop   
    start   
}   
     
reload() {   
    echo -n $"Reloading $prog: "   
    killproc $prog -1   
    retval=$?   
    echo   
    return $retval   
}   
     
force_reload() {   
    restart   
}   
     
rh_status() {   
    status $prog   
}   
     
rh_status_q() {   
    rh_status &>/dev/null   
}   
     
     
case "$1" in   
    start)   
        rh_status_q && exit 0   
        $1   
        ;;   
    stop)   
        rh_status_q || exit 0   
        $1   
        ;;   
    restart)   
        $1   
        ;;   
    reload)   
        rh_status_q || exit 7   
        $1   
        ;;   
    force-reload)   
        force_reload   
        ;;   
    status)   
        rh_status   
        ;;   
    condrestart|try-restart)   
        rh_status_q || exit 0   
        restart   
        ;;   
    *)   
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"   
        exit 2   
esac   
exit $?  

下面内容是根据我的安转路径配置的:

exec="/usr/local/keepalived/sbin/keepalived"
prog="keepalived"
config="/etc/keepalived/keepalived.conf"

[ -e /usr/local/keepalived/etc/sysconfig/$prog ] &&  /usr/local/keepalived/etc/sysconfig/$prog

移动文件:

sudo mv keepalived /etc/init.d/keepalived

sudo chmod a+x /etc/init.d/keepalived

sudo chmod a+x /usr/local/keepalived/sbin/keepalived

sudo chmod a+x /usr/local/keepalived/etc/sysconfig/keepalived 

启动keepalived,并查看状态:

sudo /etc/init.d/keepalived start

sudo /etc/init.d/keepalived status

ps -ef|grep keep|grep -v grep

输出如下:

[taiji@localhost ~]$ sudo /etc/init.d/keepalived start
Starting keepalived:                                       [  OK  ]
[taiji@localhost ~]$ sudo /etc/init.d/keepalived status
keepalived (pid  15074) is running...
[taiji@localhost ~]$ ps -ef|grep keep|grep -v grep
root     15074     1  0 13:22 ?        00:00:00 /usr/local/keepalived/sbin/keepalived
root     15075 15074  0 13:22 ?        00:00:00 /usr/local/keepalived/sbin/keepalived
root     15076 15074  0 13:22 ?        00:00:00 /usr/local/keepalived/sbin/keepalived
[taiji@localhost ~]$ 

若是希望使用sudo service keepalived status,需要重起服务器。

调整广播模式,由于只有主备两台电脑,采用单播模式,keepalived.conf都需要增加下面配置,注意调整IP

    unicast_src_ip  172.16.19.171 #本地IP地址
    unicast_peer {
        172.16.19.172 #对端IP地址,此地址一定不能忘记
    }

测试效果,需要关闭 iptables

sudo service iptables stop

172.16.19.171,172.16.19.172服务器都开启keepalived

首先测试关闭171的服务:

171:


172:

171重起keepalived:


以上默认抢占模式,非抢占模式:

和非抢占模式的配置相比,只改了两个地方: 
1> 在vrrp_instance块下两个节点各增加了nopreempt指令,表示不争抢vip 
2> 节点的state都为BACKUP 

两个keepalived节点都启动后,默认都是BACKUP状态,双方在发送组播信息后,会根据优先级来选举一个MASTER出来。由于两者都配置了nopreempt,所以MASTER从故障中恢复后,不会抢占vip。这样会避免VIP切换可能造成的服务延迟。

配置防火墙:

-A INPUT -p vrrp -d 172.16.19.172 -i eth1 -j ACCEPT 

注意:这里限制了目标地址(可以忽略),制定网卡为 eth1, 不要直接拷贝,否则keepalived 的广播无法穿透防火墙

配置开机启动:

sudo vim /etc/rc.d/rc.local 

在文件最后增加启动脚本

/etc/init.d/keepalived start



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值