LVS+Keepalived負載均衡高可用如此簡單?

     今天簡單寫下lvs+keepalive實現負載均衡和高可用的功能,僅供參考!關於它們的詳細介紹這裏就不描述了,你們能夠自行搜索下!php

     lvs+keepalived網絡拓撲圖:html

 wKioL1Un12mgfRrzAAFP3nO056I924.jpg

1、準備一個vip和4臺虛擬機:linux

 

vip:192.168.1.100 向外提供服務的ip,通常是綁定域名的
192.168.1.10 LB1_master調度器IP
192.168.1.13  LB2_slave調度器IP
192.168.1.11 nginx服務器IP
192.168.1.12  apache服務器IP

 

2、安裝準備工做nginx

lsmod|grep ip_vs
cat /etc/redhat-release
uname –rm
ln –s /usr/src/kernels/內核版本  /usr/src/linux
ln -s /usr/src/kernels/2.6.32-504.12.2.el6.x86_64/ /usr/src/linux
#若tab沒有內核版本號出來,安裝kernel-devel
yum install kernel-devel  libnl* popt* –y

#ipvsadm下載地址(注意版本)算法

http://www.linuxvirtualserver.org/software/ipvs.htmlapache

#安裝LVS命令後端

tar zxvf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26
make && make install
#將ipvsadm加入內核模塊的方法有如下兩種
modprobe ip_vs
/sbin/ipvsadm
#查看下是否加載成功,如有如下內容表示安裝成功
[root@php ipvsadm-1.26]# lsmod |grep ip_vs
ip_vs                 125694  0 
libcrc32c               1246  1 ip_vs
ipv6                  334932  25 ip_vs

3、LB添加LVS轉發bash

1.若是有域名的話,將域名解析到公網IP服務器

2.配置LVS虛擬IP,就是咱們所謂的VIP
cookie

ifconfig eth0:0 192.168.1.100/24 up
route add -host 192.168.1.100 dev eth0

3.檢查結果

ifconfig
eth0:0    Link encap:Ethernet  HWaddr 08:00:27:03:F9:0D  
inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

4.配置添加LVS服務並添加RS

  在這裏,有必要介紹下添加集羣服務的規則:

  格式: ipvsadm -A|E -t|u|f service-address [-s scheduler]

  參數:

[-p [timeout]] [-M netmask]

-A:                  表示添加一個新的集羣服務(add)

-E:                  編輯一個集羣服務(edit)

-t:                  表示tcp協議(tcp)

-u:                  表示udp協議(udp)

-f:                  表示firewall-Mark,防火牆標記(firewall)

service-address:     集羣服務的IP地址,即VIP

-s                    指定調度算法

-p                    持久鏈接時長,如#ipvsadm -Lcn ,查看持久鏈接狀態

-M                    定義掩碼(netmask)

ipvsadm -D -t|u|f service-address      刪除一個集羣服務(delete)

ipvsadm -C                             清空全部的規則(clean)

ipvsadm -R                             從新載入規則(reload)

ipvsadm -S [-n]                        保存規則(save)

 

 

向集羣服務添加RealServer規則:

  添加RealServer規則

  格式:ipvsadm -a|e -t|u|f service-address -r server-address

  參數:

  [-g|i|m] [-w weight]

-a                 添加一個新的realserver規則

-e                 編輯realserver規則

-t                 tcp協議

-u                 udp協議

-f                 firewall-Mark,防火牆標記

service-address    realserver的IP地址(真實服務器的IP)

-g                表示定義爲LVS-DR模型

-i                 表示定義爲LVS-TUN模型

-m               表示定義爲LVS-NAT模型

-w                定義權重,後面跟具體的權值

ipvsadm -d -t|u|f service-address -r server-address          --刪除一個realserver

 

#設置超時(可選)
ipvsadm --set 30 5 60
#添加一個實例(相似虛擬主機)用-A
ipvsadm -A -t 192.168.1.100:80 -s wrr –p 20
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.11 -g -w 1
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.12 -g -w 1

5.檢查結果

ipvsadm -L

4、LB刪除LVS方法

#刪除virtual server用ipvsadm –D
ipvsadm –D –t 192.168.1.10 –s wrr
#刪除節點用ipvsadm -d
ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.12:80

5、RS配置lo,而且綁定vip

ifconfig lo:0 192.168.1.100/32 up
route add –host 192.168.1.100 dev lo

 1.RS端抑制arp廣播

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

 

6、KeepAlived服務高可用

安裝方法一:
yum install openssl* -y
yum install kernel-devel  libnl* popt* –y
ln -s /usr/src/kernels/2.6.32-504.8.1.el6.x86_64/ /usr/src/linux
tar zxvf keepalived-1.1.19.tar.gz
cd keepalived-1.1.19
./configure
make && make install

 

安裝方法二:
tar zxvf keepalived-1.1.19.tar.gz
cd keepalived-1.1.19
./configure \
--mandir=/usr/loacl/share/man \
--with-kernel-dir=/usr/src/kernels/2.6.32-504.8.1.el6.x86_64/
make && make install

操做命令:

/bin/cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
/bin/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived –p
/bin/cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
/bin/cp /usr/local/sbin/keepalived /usr/sbin/
/etc/init.d/keepalived start
[root@apache ~]# /etc/init.d/keepalived start
Starting keepalived:                                       [  OK  ]
[root@apache ~]#ps -ef|grep keep
root      2864     1  0 07:58 ?        00:00:00 keepalived -D
root      2866  2864  0 07:58 ?        00:00:00 keepalived -D
root      2867  2864  0 07:58 ?        00:00:00 keepalived -D
root      2871  1101  0 07:58 pts/0    00:00:00 grep keep
[root@apache ~]# /etc/init.d/keepalived stop  =è成功後中止keepalived服務
Stopping keepalived:                                       [  OK  ]

7、在主(master)keepalived配置keepalived.conf配置文件

 

! Configuration File for keepalived
 
global_defs {
   notification_email {
   291406980@qq.com
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 10.0.0.1
   smtp_connect_timeout 30
   router_id LVS_7
}
 
vrrp_instance VI_1 {
    state MASTER  #由於這裏是主,因此選用MASTER                    
    interface eth0
    virtual_router_id 55
    priority 150  #這個值必定要比從(slave)的大
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress { 
        192.168.1.100/24  #vip
    }
}

8、在從(slave)的keepalived配置keepalived.conf文件

 

! Configuration File for keepalived
global_defs {
   notification_email {
   291406980@qq.com
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 10.0.0.1
   smtp_connect_timeout 30
   router_id LVS_2
}
vrrp_instance VI_1 {
    state BACKUP     #這裏是從(slave),選用BACKUP
    interface eth0
    virtual_router_id 55
    priority 100     #這個值小於主(master)的150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24  #vip
    }
}

 9、最後主從都需重啓keepalived

/etc/init.d/keepalived start

    我這裏分別是兩個站點:apache和nginx!在輸入192.168.1.100這個vip的時候,會調度到不一樣的站點上面!如下是截圖:

wKiom1UnzEjzqkK9AADknV7FK9Q689.jpg

 

wKioL1UnzZXgOT5aAAFv9N1HcDw622.jpg

10、LVS集羣分發請求RS負載不均的問題

主要有如下幾點:

  1.會話保持的緣由,儘可能不要在負載均衡器上作會話保持

  2.LVS自身的會話保持參數設置問題,要優化,儘可能用cookies或者session替代

  3.LVS調度算法設置問題,例如rr wrr wlc lc 算法

  4.後端RS節點的會話保持參數,例如apache的keealive參數

  5.訪問量少的狀況,不均衡的現象比較明顯

  6.用戶發送的請求時間長短,和請求資源多少有關

相關文章
相關標籤/搜索