歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux搭建負載均衡集群,使用LVS的DR模式

Linux搭建負載均衡集群,使用LVS的DR模式,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 實驗拓撲圖

這裡寫圖片描述

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與靜態路由
    ifconconfig 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上配置
    [root@director ~]# ipvsadm -C    #清空之前的ipvsadm規則
    [root@director ~]# ipvsadm -A -t 192.168.8.30:80 -s wlc
    [root@director ~]# ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.32 -g -w 2  #-g表示DR模式 -w表示權重
    [root@director ~]# ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.33 -g -w 1
    [root@director ~]# 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地址
不斷刷新即可看到效果   
Copyright © Linux教程網 All Rights Reserved