天天看點

Linux搭建負載均衡叢集,使用LVS的DR模式1.LVS2.基于LVS搭建 LB Linux Cluster

Linux Cluster

LB(負載均衡叢集)

負載均衡叢集,通常有兩種實作方式,基于硬體或基于軟體。

基于硬體:BIP

基于軟體:

基于OSI第四層傳輸層:LVS(Linux Virtual Server)

基于OSI第期層傳輸層:nginx

1.LVS

1.1認識LVS

LVS,全稱Linux Virtual Server,由國人章文嵩博士提出并實作。
LVS有三種工作模式:DR直接路由模式、NAT位址轉換模式、TUN隧道模式
在實際環境中若是搭建負載均衡叢集直接使用DR模式。
           

2.基于LVS搭建 LB Linux Cluster

2.1 LVS的DR模式實作

2.1.1 實驗拓撲圖

Linux搭建負載均衡叢集,使用LVS的DR模式1.LVS2.基于LVS搭建 LB Linux Cluster

2.1.2 實驗簡介

Director有一張網卡,與realserver連接配接在同一個交換機上,并能互相通信,配置一個網絡别名作為VIP,
在每個realserver上綁定一個虛拟網卡ip位址lo:0,該虛拟ip位址為director的ip位址,
用于realserver處理完director分給的使用者請求後,直接使用director的ip作為源ip傳回給使用者。
在綁定虛拟網卡ip前,需要先調整director的arptable(對arp請求的通告級别、回應級别調整)。
arp_ignore:隻對什麼級别的arp請求進行響應,當arp廣播請求的目标ip不在同一個接口上就不予響應。
    預設為0,能通告就通告。
        0:隻要本地配置的有相應位址,就給予響應;
        1:僅在請求的目标位址配置請求到達的接口上的時候,才給予響應;
arp_announce:向外主動通告自己的通告級别。
    預設為0,能通告就通告。
        0:将本地任何接口上的任何位址向外通告;
        1:試圖僅向目标網絡通告與其網絡比對的位址;
        2:僅向與本地接口上位址比對的網絡進行通告
在realserver上配置一條獨特的路由條目,才能将處理好的使用者請求使用director的IP位址傳回結果給使用者
           

2.1.3 實驗準備

實體機上安裝virtualbox軟體上建立一台centos5.5,最小化安裝即可,作為Director。
桌面可裝可不裝,使用6.X,7.X也是可以的,這裡使用centos5.5是因為my computer才8G記憶體
virtualbox的虛拟媒體管理,複制2台剛才安裝好的centos5.5硬碟,明明為realserver1,realserver2
建立虛拟機作為realserver時,選擇存儲媒體選擇現有的磁盤,路徑指向剛才複制的centos5.5
           

2.1.4 實驗步驟

0).ipvs在2.6.X版本後的核心中預設安裝有,我們需要安裝ipvsadm進行管理,注意:ipvsadm與iptables不能同時使用,實驗前需關閉iptables與selinux
1).Director隻需一張網卡選擇橋接模式,啟動
2).為Director安裝ipvsadm
    yum -y install ipvsadm
    檢查是否安裝成功隻需輸入ipvsadm,無輸出則未安裝有,若已安裝則輸出如下字樣
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
       -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
3).配置測試網頁
   為每台realserver安裝http,并啟動httpd服務
   yum install http
   service httpd start
   echo "this is realserver1 test web" > /var/www/html/index.html
   echo "this is realserver2 test web" > /var/www/html/index.html
   echo "this is realserver3 test web" > /var/www/html/index.html
   #分别建立測試頁
   curl http://ipaddress    #通路測試頁
4).配置director
   配置VIP
   配置網絡别名DIP
   ifconfig eth0:0 192.168.8.30/24
5).配置realserver的RIP
   realserver1:192.168.8.32
   realserver2:192.168.8.33
6).分别配置realserver的arp_ignore、arp_announce
    realserver1:
        echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    realserver2:
        echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
7).分别在realserver1、2上配置的網絡别名VIP與靜态路由
    ifconfig lo:0 192.168.8.30 broadcast 192.168.8.30 netmask 255.255.255.255 up
    route add -host 192.168.8.30 dev lo:0
    在director上也需要配置靜态路由
    route add -host 192.168.8.30 dev eth0:0
8).在director上測試能否正常通路realserver的測試頁
9).配置ipvsadm規則
   在director上配置
    [[email protected] ~]# ipvsadm -C    #清空之前的ipvsadm規則
    [[email protected] ~]# ipvsadm -A -t 192.168.8.30:80 -s wlc
    [[email protected] ~]# ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.32 -g -w 2  #-g表示DR模式 -w表示權重
    [[email protected] ~]# ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.33 -g -w 1
    [[email protected] ~]# ipvsadm -l -n
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.8.30:80 wlc
      -> 192.168.8.33:80              Route   1      0          0         
      -> 192.168.8.32:80              Route   2      0          0         

10).測試
使用實體機的浏覽器輸入http://director的ip位址
不斷重新整理即可看到效果   
           

繼續閱讀