centos搭建keepalived+ipvsadm实现高可用lvs分发

简介:

这文档适合非常简单的不需要任何技术完全照着弄的拥有三台以上机器的情况。


虚ip192.168.200.16

keepalived主192.168.98.11

keepalived备192.168.98.98

realserver一192.168.99.131

realserver二192.168.98.11或192.168.98.98(当11存活时候,就是11当rs,死了就98当rs)


1、keepalived主192.168.98.11进行如下安装配置。

yum install -y wget ipvsadm vim

wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz

tar xf keepalived-1.2.24.tar.gz 

cd keepalived-1.2.24

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

make && make install

find /usr/local/keepalived -name "keepliaved" -type f |while read L;do chmod +x $L;done

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cd /usr/local/keepalived/etc/keepalived/

ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

chkconfig --add keepalived

chkconfig keepalived on

vim /etc/keepalived/keepalived.conf 粘贴下面的。

vrrp_instance ha44 {

    state MASTER

    interface eth0

#virtual_router_id后面的数字相同就是在同一组了,取值0-255,且auth_pass也必须相同。

    virtual_router_id 251

#priority取值范围1-254

    priority 150

#advert_int广播间隔,这值影响master挂多久切换到backup,我实测设置2或者3的话切换间隔较短。

    advert_int 2

    authentication {

        auth_type PASS

        auth_pass 1234

    }

    virtual_ipaddress {

        192.168.200.16

#可以自定义掩码、广播。

#        192.168.200.16/16 brd 192.168.255.255 dev eth0

    }

#可以自定义网关,不过我没这么用过。

#    virtual_routes {

#        192.168.200.0/16 via 192.168.98.1 dev eth0

#    }

}

#如果想用lvs的功能,就添加以下内容,keepalived会自动调用ipvsadm功能。

virtual_server 192.168.200.16 80 {

    delay_loop 3

    lb_algo rr

    lb_kind DR

    persistence_timeout 50

    protocol TCP


    real_server 192.168.98.11 80 {

        weight 20

        TCP_CHECK

        {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

    real_server 192.168.99.131 80 {

        weight 100

        TCP_CHECK

        {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

保存退出

/etc/init.d/keepalived start


2、keepalived备192.168.98.98进行如下安装配置。

yum install -y wget ipvsadm vim

wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz

tar xf keepalived-1.2.24.tar.gz 

cd keepalived-1.2.24

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

make && make install

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cd /usr/local/keepalived/etc/keepalived/

ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

chkconfig --add keepalived

vim /etc/keepalived/keepalived.conf 粘贴下面的。

vrrp_instance ha44 {

    state BACKUP

    interface eth0

#virtual_router_id后面的数字相同就是在同一组了,取值0-255,且auth_pass也必须相同。

    virtual_router_id 251

#priority取值范围1-254

    priority 20

#advert_int广播间隔,这值影响master挂多久切换到backup,我实测设置2或者3的话切换间隔较短。

    advert_int 2

    authentication {

        auth_type PASS

        auth_pass 1234

    }

     virtual_ipaddress {

        192.168.200.16

#可以自定义掩码、广播。

#        192.168.200.16/16 brd 192.168.255.255 dev eth0

    }

#可以自定义网关,不过我没这么用过。

#    virtual_routes {

#        192.168.200.0/16 via 192.168.98.1 dev eth0

#    }

}

#如果想用lvs的功能,就添加以下内容,keepalived会自动调用ipvsadm功能。

virtual_server 192.168.200.16 80 {

    delay_loop 3

    lb_algo rr

    lb_kind DR

    persistence_timeout 50

    protocol TCP


    real_server 192.168.98.98 80 {

        weight 20

        TCP_CHECK

        {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

    real_server 192.168.99.131 80 {

        weight 100

        TCP_CHECK

        {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

保存退出

service keepalived start


3、realserver一192.168.99.131的配置。

yum install -y vim

vim /etc/init.d/lvsrs 粘贴如下内容。

#!/bin/sh

#chkconfig:345 61 61

#description:LVSRS

VIP=192.168.200.16


Usage ()

{

echo "Usage:`basename $0` (start|stop)"

exit 1

}


if [ $# -ne 1 ];then

Usage

fi


case $1 in

start)

echo "configuring vip for Real Server"

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/eth0/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/eth0/arp_announce

if [ $? -eq 0 ]

then

/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 up

/sbin/route add -host $VIP dev lo:0

sleep 5

echo "Real Server started."

else

echo "error occurred!"

fi

;;

stop)

/sbin/ifconfig lo:0 down

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_announce

if [ $? -eq 0 ]

then

sleep 2

echo "Real Server has stopped."

else

echo 'error occurred occurred! Maybe "lo:0" has stopped already.'

fi

;;

*)

Usage

esac

保存退出

chmod +x /etc/init.d/lvsrs

chkconfig --add lvsrs

service lvsrs start


4、realserver二192.168.98.11或192.168.98.98,这俩由于已经配置了keepalived,由keepalived服务代管ipvsadm,所以它俩不需要再配置啥就已经自然成为了realserver了。


备注:

1、以上配置用于这仨机器都提供http服务的情况。

2、如果多台keepalived服务器需要提供更多服务,就复制添加更多virtual_server并修改端口即可。如果不配置virtual_server部分,keepalived就不代管lvs了,那么同一时刻只有一台机器工作而已,这台出了问题,vip才会飘到下一台上。vip在哪台,就是哪台工作,所以通常,lvs和keepalived是配合使用的,是需要配置virtual_server部分的。

3、若配置多个vrrp_instance,每个instance需要拥有独一无二的virtual_router_id,与其他instance相同是不行的。多台机器启动keepalived服务后,就是以virtual_router_id的值来进行配对儿的。

4、keepalived配置文件中的priority优先级的设置大有玄机!设置的不科学就会事与愿违!建议查看一下相关资料儿了解了以后再设置。



本文转自 朱科强 51CTO博客,原文链接:http://blog.51cto.com/zhukeqiang/1868886,如需转载请自行联系原作者

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
5月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
175 0
|
4月前
|
负载均衡 监控 调度
Keepalived+Lvs(dr)调度器主备配置小实验
Keepalived和LVS(Linux Virtual Server)是两个常用的开源软件,通常结合使用以提供高可用性和负载均衡的解决方案。 Keepalived是一种用于实现高可用性的软件,它可以监控服务器的健康状态,并在主服务器出现故障时自动切换到备份服务器。
95 2
|
4月前
|
负载均衡 网络协议 Linux
小白带你学习linux的keepalived+lvs和keepalived双机热备(三十七)
小白带你学习linux的keepalived+lvs和keepalived双机热备(三十七)
75 0
|
5月前
|
负载均衡 算法 网络协议
Keepalived+LVS搭建高可用负载均衡
Keepalived+LVS搭建高可用负载均衡
180 1
|
6月前
|
负载均衡 应用服务中间件 nginx
71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)
71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)
41 0
|
7月前
|
负载均衡 监控 Linux
LVS + keepalived
LVS + keepalived
65 1
|
7月前
|
负载均衡 测试技术
LVS+KeepAlived构建高可用集群
LVS+KeepAlived构建高可用集群
54 0
|
7月前
|
缓存 负载均衡 网络协议
LVS+KeepAlived快速入门2
LVS+KeepAlived快速入门2
91 0
|
6月前
|
负载均衡 应用服务中间件 Linux
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
|
6月前
|
存储 负载均衡 网络协议
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
105 0

热门文章

最新文章