大數據學習系列(三)負載均衡--LVS-DR配置及入門使用

一、理論概念

DR模式是將ARP請求通過director報文源和目標MAC地址,發送給RS(real server),RS將響應報文直接發送給client。LVS是

Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集羣系統,

有兩個模塊

         •ipvs : 嵌入到linux的內核

         •ipvsadm:管理應用程序,需要安裝

二、環境搭建

1.準備了三臺虛擬機。

LVS服務器(DS) --eleven-2 DIP:192.168.40.33 VIP:192.168.40.100
真實後端服務器(RS)--eleven-3 RIP:192.168.40.34 VIP:192.168.40.100
真實後端服務器(RS)--eleven-4 RIP:192.168.40.35 VIP:192.168.40.100

2.LVS服務器配置(eleven-2),依次執行。

1.安裝ipvsadm

# 驗證,確保內核加載了lvs模塊
lsmod |grep ip_vs

# 安裝用戶管理工具
yum install -y ipvsadm

2.配置VIP

所有請求報文會發往LVS服務器(DS),然後DS根據指定算法分發到後端服務器(RS)上,因此DS必須配置VIP地址,VIP是與公網client的通信地址,這樣DS才能接受到請求報文進行分發。

# 在LVS服務器上添加一個地址爲VIP的虛擬網卡eth0:0
命令:ifconfig  eth0:0   192.168.40.100 netmask 255.255.255.0

3.配置允許數據包轉發,因爲此時的lvs服務器充當着中間件的角色,接收的請求都會轉發至RS

#配置/proc/sys/net/ipv4/ip_forward,該文件內容爲0,表示禁止數據包轉發,1表示允許,將其修改爲1

echo “1” > /proc/sys/net/ipv4/ip_forward 

3.後端服務器配置

1.配置RS的響應級別和通告級別。(每臺RS都要配置)

       DR模式只是針對源和目標MAC地址做出修改,源和目標IP還是不變;當請求報文由LVS服務器處理後發送到後端服務器RS上,RS拆封報文時會發現目標MAC是自己的MAC地址,但是目標IP是VIP,與本地IP地址不符合,那麼RS就會認爲不是發給自己的報文,所以此時需要在RS上配置VIP,這樣RS就可以接受目標地址爲VIP的請求報文了。

  如果將VIP設置在RS的網卡上,假設有多臺RS並且每臺RS上都配置了VIP,在這個網絡中發出VIP的ARP請求,就有多個RS響應,這樣肯定是不可以;因此就把VIP配置到迴環地址lo網卡上,然後讓lo網卡忽略所有ARP請求,eth0網卡正常響應ARP請求,這樣網絡中就不會收到RS關於VIP的響應;還有一個問題就是當本地網卡響應ARP請求時,也有可能通過lo網卡迴應,然後把VIP作爲ARP請求的源IP通告出去,那麼就必須禁止VIP作爲ARP請求的源IP,這個問題可以通過修改arp_announce參數解決。

  由於客戶端發起的請求報文源IP爲CIP,目標IP爲VIP;所以客戶端收到的響應報文源IP必須爲VIP,目標IP必須爲CIP,因此在RS發送的響應報文必須由VIP的lo網卡發出,這就需要在RS上指定一條路由,目標IP爲VIP的數據包使用lo網卡發出,然後經由eth0轉發到網關再到公網客戶端。

echo 1  > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2  > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 1  > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2  > /proc/sys/net/ipv4/conf/all/arp_announce

2.配置RSVIP(每一臺RS都配),注意要先完成上一步驟,避免配置好了RS的vip後被通告出去

# 添加IP地址爲VIP的虛擬網卡lo:8
ifconfig lo:8 192.168.40.100 netmask 255.255.255.255

4.配置負載ipvs規則

1.管理集羣服務

ipvsadm   -[A/E/D] -[t|u|f]  IP:port  -s 規則
-A:新增
-E:修改
-D:刪除
-C:清空ipvs規則
-S:保存規則至某路徑,供下次用時加載。
    # ipvsadm -S > /path/to/somefile
-R:加載保存的規則
    # ipvsadm -R < /path/form/somefile


    -t:TCP協議的集羣 
    -u:UDP協議的集羣
    -f:防火牆標誌

-s: 生命負載分發的算法
    rr:輪詢算法

 2.管理集羣服務中的RS

 
規則:ipvsadm  -[a/d/e]  -[t/u] LVS服務IP:端口  -r  RS的IP:端口  -g

-a:新增RS
-d:刪除RS
-e:修改RS

-r:配置RS
-g:配置權重,默認爲1

3.實操:

添加集羣服務
ipvsadm -A -t 192.168.40.100:80 -s rr

添加負載的RS服務
ipvsadm -a -t 192.168.40.100:80 -r 192.168.40.34 –g

ipvsadm -a -t 192.168.40.100:80 -r 192.168.40.35 –g


4.測試

兩臺RS上安裝httpd,新建index文件

yum install httpd -y
進入到此文件夾
    /var/www/html

新建文件index.html
    vi index.html  
        輸入內容
            from  34:80/35:80

重啓httpd服務
service httpd start


客戶端瀏覽器請求測試
http://192.168.40.100:80

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