linux lvs

作用:負載、高可用、經濟(相比硬件負載)、擴展收縮方便


基於tcp/udp四層協議負載


LVS的三種轉發模式:

LVS-NAT:網絡地址轉換 Network address translation

LVS-DR:直接路由 Direct routing

LVS-TUN:IP隧道 IP tunneling


LVS的常用調度算法:

WRR:Weighted round-robin:加權輪循-按照性能分配,爲其計算出權重

WLC:Weighted least connection:加權最少連接-overhead/weight,考慮到real serverd的性能,默認集羣算法


-------------------------------------


準備:


關閉防火牆:

service iptables stop

setenforce 0

chkconfig iptables off

chkconfig selinux off


網卡配置:

/bin/cat > /etc/sysconfig/network-scripts/ifcfg-eth2<< EOF

DEVICE=eth2

IPADDR=192.168.2.30

NETMASK=255.255.255.0

GATEWAY=192.168.2.2

ONBOOT=yes

EOF

service network restart


主機名、dns配置:

/bin/cat > /etc/sysconfig/network << EOF

NETWORKING=yes

HOSTNAME=drbd_02

EOF

echo "nameserver 114.114.114.114" > /etc/resolv.conf


網絡yum源配置:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

yum makecache


------------------------------------------


LVS負載服務器配置:


利用網絡yum安裝lvs軟件包:

yum -y install keepalived

/etc/init.d/keepalived restart

ps -ef |grep keepalived


編輯主配置文件:

vi /etc/keepalived/keepalived.conf


global_defs {  

   notification_email {  

         [email protected]  

   }  

   notification_email_from [email protected]  

   smtp_server 127.0.0.1 

   smtp_connection_timeout 30

   router_id LVS_DEVEL

}  

vrrp_instance VI_1 {  

    state MASTER

    interface eth4

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {  

        auth_type PASS  

        auth_pass zhong

    }  

    virtual_ipaddress {  

        192.168.2.25

    }  

}  

virtual_server 192.168.2.25 80 {  

    delay_loop 6                    

    lb_algo wrr                  

    lb_kind DR 

    nat_mask 255.255.255.0                

    persistence_timeout 0          

    protocol TCP

#                 

    real_server 192.168.2.20 80 {

        weight 3           

        TCP_CHECK {  

        connect_timeout 10         

        nb_get_retry 3  

        delay_before_retry 3  

        connect_port 80  

        }  

    }

#

    real_server 192.168.2.21 80 {

        weight 3

        TCP_CHECK {  

        connect_timeout 10  

        nb_get_retry 3  

        delay_before_retry 3  

        connect_port 80  

        }  

     }

#  


----------------------------------------------


real server應用服務器配置:


vi /etc/init.d/realserver

/etc/init.d/realserver restart

#--------------

SNS_VIP=192.168.2.25

/etc/rc.d/init.d/functions

case "$1" in

start)

       ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP

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

       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

       route del $SNS_VIP >/dev/null 2>&1

       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
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章