文档章节

lvs+keepalived实现高可用负载均衡集群

我心中有猛狗
 我心中有猛狗
发布于 2016/03/24 17:04
字数 949
阅读 109
收藏 16

一、LVS+Keepalived介绍

    1. LVS

        ‍LVSLinux Virtual Server的简写,意即Linux虚拟服务器是一个虚拟的服务器集群系统本项目在19985月由章文嵩博士成立是中国国内最早出现的自由软件项目之一目前有三种IP负载均衡技术VS/NATVS/TUNVS/DR);八种调度算法rr,wrr,lc,wlc,lblc,lblcr,dh,sh

    2. Keepalived

        Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现。

 

二、网站负载均衡拓朴图

+---------------------------------VIP(192.168.1.222)---------------------------------+

|                                                                    |                                                                 |

|                                                                    |                                                                 |

server(MASTER)<--------------------keepalived------------------->server(BACKUP)

192.168.1.202                                                                                              192.168.1.204

            

IP规划:

 

Hostname IP
VIP 192.168.1.222
MASTER 192.168.1.202
BACKUP 192.168.1.204
REALSERVER1 192.168.1.203
REALSERVER2 192.168.1.201

 

三、部署步骤

    安装LVS和Keepalived软件包

    1. 下载相关软件包

        mkdir /usr/local/src/lvs

        cd /usr/local/src/lvs

        wget http://down1.chinaunix.net/distfiles/ipvsadm-1.24.tar.gz

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

    2. 安装LVS和Keepalived     

        lsmod |grep ip_vs                                        #显示已载入系统的ip_vs模块

        uname -r                                                     #显示操作系统的发行版号

        2.6.32-279.el6.x86_64                                  #操作系统的发行版号

        yum install kernel-devel                              #安装与系统内核配套的开发包

        yum -y install popt*

        yum -y install libnl*

        yum -y install openssl*

        ln -s /usr/src/kernels/2.6.32-279.9.1.el6.x86_64/ /usr/src/linux         #建立软连接

        

        tar zxvf ipvsadm-1.24.tar.gz

        cd ipvsadm-1.24

        make && make install

        find / -name ipvsadm  # 查看ipvsadm的位置

        

        tar zxvf keepalived-1.1.15.tar.gz

        cd keepalived-1.1.15

        ./configure  && make && make install

        find / -name keepalived  # 查看keepalived位置                

        

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

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

        mkdir /etc/keepalived

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

        cp /usr/local/sbin/keepalived /usr/sbin/

        service keepalived start|stop     #做成系统启动服务方便管理.

    3. 配置realserver脚本

        在192.168.203(realserver)上配置,脚本我保存在了/opt下

        #!/bin/bash

        #description Config LVS to realserver lo and apply noarp

        #Written by ce

        

        VIP=192.168.1.222

        . /etc/init.d/functions

        

        case "$1" in

                start)

                       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

                       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

                       sysctl -p >/dev/null 2>&1

                       echo "RealServer Start OK"

        

                       ;;

                stop)

                       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 "RealServer Stoped"

                       ;;

                *)

                       echo "Usage: $0 {start|stop}"

                       exit 1

                esac

        

                exit 0

        chmod a+x /opt/realserver.sh                                    #赋予可执行权限

        /opt/realserver.sh start                                               #启动

        之后,通过rsync远程备份到192.168.1.201(另一台realserver上)

        rsync -av /opt/realserver.sh root@192.168.1.201:/root/

        然后,在192.168.1.201上启动realserver脚本。

    4. 利用keepalived实现负载均衡和高可用性

        1. 配置在主负载均衡服务器(192.168.1.202)上配置keepalived.conf

            vi /etc/keepalived/keepalived.conf

            ! Configuration File for keepalived

            global_defs {

               router_id LVS_DEVEL

            }

            vrrp_instance VI_1 {

                state MASTER

                interface eth0

                virtual_router_id 51

                priority 100

                advert_int 1

                authentication {

                    auth_type PASS

                    auth_pass 1111

                }

                virtual_ipaddress {

                    192.168.1.222

                }

            }

            virtual_server 192.168.1.222 80 {

                delay_loop 6

                lb_algo wrr

                lb_kind DR

                persistence_timeout 60

                protocol TCP

                real_server 192.168.1.203 80 {

                    weight 3

                    TCP_CHECK {

                        connect_timeout 10

                        nb_get_retry 3

                        delay_before_retry 3

                        connect_port 80

                    }

                }

                real_server 192.168.1.201 80 {

                    weight 3

                    TCP_CHECK {

                        connect_timeout 10

                        nb_get_retry 3

                        delay_before_retry 3

                        connect_port 80

                    }

                 }

            }

            

    2. 配置在备份负载均衡服务器(192.168.1.204)上配置keepalived.conf

            vi /etc/keepalived/keepalived.conf

            ! Configuration File for keepalived

            global_defs {

               router_id LVS_DEVEL

            }

            vrrp_instance VI_1 {

                state BACKUP

                interface eth0

                virtual_router_id 51

                priority 99

                advert_int 1

                authentication {

                    auth_type PASS

                    auth_pass 1111

                }

                virtual_ipaddress {

                    192.168.1.222

                }

            }

            virtual_server 192.168.1.222 80 {

                delay_loop 6

                lb_algo wrr

                lb_kind DR

                persistence_timeout 60

                protocol TCP

                real_server 192.168.1.203 80 {

                    weight 3

                    TCP_CHECK {

                        connect_timeout 10

                        nb_get_retry 3

                        delay_before_retry 3

                        connect_port 80

                    }

                }

                real_server 192.168.1.201 80 {

                    weight 3

                    TCP_CHECK {

                        connect_timeout 10

                        nb_get_retry 3

                        delay_before_retry 3

                        connect_port 80

                    }

                 }

            }

    3. 启动keepalived

        /etc/init.d/keepalived start(或者service keepalived start)

        启动keepalived 服务keepalived就能利用keepalived.conf 配置文件实现负载均衡和高可用.  整个LVS负均衡HA方案keepalived.conf一个文件即可搞定

    4. 查看lvs服务是否正常

        ipvsadm -ln

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port Scheduler Flags

          -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

        TCP  192.168.1.200:80 wrr persistent 60

           -> 192.168.1.203:80                        Route        3            0
           -> 192.168.1.201:80                        Route        3            0

        tail ‍–f /var/log/message‍‍  监听日志,查看状态

 

 

 

© 著作权归作者所有

共有 人打赏支持
我心中有猛狗
粉丝 3
博文 107
码字总数 37752
作品 0
石家庄
私信 提问
LVS+Keepalived+nginx+单纯keepalived高可用

LVS+Keepalived实现高可用集群 LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群 系统。本项目在1998年5月由章文嵩博士成立,是中国...

---張榮---
2016/01/28
292
0
LVS+keepalived负载均衡

背景: 随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的...

凯文加内特
2015/03/03
0
0
LVS+keepalived负载均衡 ??待续

背景: 随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的...

一枚Sir
2014/07/25
0
0
Centos 6.8 配置Lvs

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。 宗旨:   使用集群技...

chinawxl
2017/12/22
0
0
19个心得 明明白白说Linux下的负载均衡

19个心得 明明白白说Linux下的负载均衡 http://bbs.uchao.net/thread-32910-1-1.html 一、目前网站架构一般分成负载均衡层、web层和数据库层,我其实一般还会多加一层,即文件服务器层,因为...

浩源社区
2012/03/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
3
0
C++网络编程(一)gRPC的编译

Google是真滴烦,整个编译链全是自家产品,在编译之前先来安装一堆东西 安装环境依赖 chocolatey Windows下的包管理系统,没有他就慢慢去下载下面的一堆乱七八糟的东西吧。CMD下执行下面这句...

Pulsar-V
今天
3
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0
手机通过wifi遥控arduino

手机下载Blinker 从Blinker官网下载手机App,安装到手机。 手机连接WiFi。 点击我的设备右上角的"+"添加设备,选择Arduino -> wifi接入,复制密钥以备后续使用。 点击新建的设备,可以在新界...

davidwbnu
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部