lvs+keepalived實現高可用負載均衡集羣

1、LVS+Keepalived介紹

    1. LVSlinux

        ‍LVSLinux Virtual Server的簡寫,意即Linux虛擬服務器是一個虛擬的服務器集羣系統本項目在19985月由章文嵩博士成立是中國國內最先出現的自由軟件項目之一目前有三種IP負載均衡技術VS/NATVS/TUNVS/DR);八種調度算法rr,wrr,lc,wlc,lblc,lblcr,dh,sh算法

    2. Keepalivedbash

        Keepalived在這裏主要用做RealServer的健康狀態檢查以及LoadBalance主機和BackUP主機之間failover的實現。服務器

 

2、網站負載均衡拓樸圖

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

|                                                                    |                                                                 |負載均衡

|                                                                    |                                                                 |oop

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

192.168.1.202                                                                                              192.168.1.204spa

            

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

 

3、部署步驟

    安裝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‍‍  監聽日誌,查看狀態

相關文章
相關標籤/搜索