天天看點

配置ipvsadm服務

LVS的三種包轉發方式

      LVS提供了三種包轉發方式:NAT(網絡位址映射)、IP Tunneling(IP隧道)、Direct Routing(直接路由)

     不同的轉發模式決定了不同的cluster的網絡結構,下面對三種轉發方式分别介始:

1、NAT(網絡位址映射):

     NAT方式可支援任何的作業系統,以及私有網絡,并且隻需一個Internet IP位址,但是整個系統的性能受到限制。因為執行NAT每次需要重寫包

     有一定的延遲;另外,大部分應用有80%的資料是從伺服器流向客戶機,也就是使用者的請求非常短,而伺服器的回應非常大,對負載均衡器形成很大壓力,成為了新的瓶頸。

2、IP Tunneling(IP隧道):

     director配置設定請求到不同的real server。real server處理請求後直接回應給使用者,這樣director負載均衡器僅處理客戶機與伺服器的一半連接配接

    IP Tunneling技術極大地提高了director的排程處理能力,同時也極大地提高了系統能容納的最大節點數,可以超過100個節點

    real server可以在任何LAN或WAN上運作,這意味着允許地理上的分布,這在災難恢複中有重要意義。伺服器必須擁有正式的IP位址用于與客戶機直接通信

    并且所有伺服器必須支援IP隧道協定。

3、Direct Routing(直接路由):

     與IP Tunneling類似,負載均衡器僅處理一半的連接配接,避免了新的性能瓶頸,同樣增加了系統的可伸縮性。Direct Routing與IP Tunneling相比

    沒有IP封裝的開銷,但由于采用實體層(修改MAC位址)技術,所有伺服器都必須在一個實體網段。

LVS的八種排程算法:

     * rr   輪叫(Round Robin)

      排程器通過"輪叫"排程算法将外部請求按順序輪流配置設定到叢集中的真實伺服器上,它均等地對待每一台伺服器,而不管伺服器上實際的連接配接數和系統負載。

    * wrr   權重輪叫(Weighted Round Robin)

      排程器通過"權重輪叫"排程算法根據真實伺服器的不同處理能力來排程通路請求。這樣可以保證處理能力強的伺服器處理更多的通路流量。排程器可以自動問詢真實伺服器的負載情況,并動态地調整其權值。

    * lc   最少連結(Least Connections)

      排程器通過"最少連接配接"排程算法動态地将網絡請求排程到已建立的連結數最少的伺服器上。如果叢集系統的真實伺服器具有相近的系統性能,采用"最小連接配接"排程算法可以較好地均衡負載。

    * wlc   權重最少連結(Weighted Least Connections)

      在叢集系統中的伺服器性能差異較大的情況下,排程器采用"權重最少連結"排程算法優化負載均衡性能,具有較高權值的伺服器将承受較大比例的活動連接配接負載。排程器可以自動問詢真實伺服器的負載情況,并動态地調整其權值。

    * lblc   基于局部性的最少連結(Locality-Based Least Connections)

      "基于局部性的最少連結" 排程算法是針對目标IP位址的負載均衡,目前主要用于Cache叢集系統。該算法根據請求的目标IP位址找出該目标IP位址最近使用的伺服器,若該伺服器是可用的且沒有超載,将請求發送到該伺服器;若伺服器不存在,或者該伺服器超載且有伺服器處于一半的工作負載,則用"最少連結"的原則選出一個可用的伺服器,将請求發送到該伺服器。

    * lblcr   帶複制的基于局部性最少連結(Locality-Based Least Connections with Replication)

      " 帶複制的基于局部性最少連結"排程算法也是針對目标IP位址的負載均衡,目前主要用于Cache叢集系統。它與LBLC算法的不同之處是它要維護從一個目标IP位址到一組伺服器的映射,而LBLC算法維護從一個目标IP位址到一台伺服器的映射。該算法根據請求的目标IP位址找出該目标IP位址對應的伺服器組,按"最小連接配接"原則從伺服器組中選出一台伺服器,若伺服器沒有超載,将請求發送到該伺服器,若伺服器超載;則按"最小連接配接"原則從這個叢集中選出一台伺服器,将該伺服器加入到伺服器組中,将請求發送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,将最忙的伺服器從伺服器組中删除,以降低複制的程度。

    * dh   目标位址散列(Destination Hashing)

      "目标位址散列"排程算法根據請求的目标IP位址,作為散列鍵(Hash Key)從靜态配置設定的散清單找出對應的伺服器,若該伺服器是可用的且未超載,将請求發送到該伺服器,否則傳回空。

    * sh   源位址散列(Source Hashing)

      "源位址散列"排程算法根據請求的源IP位址,作為散列鍵(Hash Key)從靜态配置設定的散清單找出對應的伺服器,若該伺服器是可用的且未超載,将請求發送到該伺服器,否則傳回空。 

配置ipvsadm服務

      備注:以下步驟分别按照LVS的三種包轉發方式進行配置

     實驗環境如下:

     lvsserver            192.168.1.49(eht0)     vip: 192.168.1.40 8.8.8.8(nat模式下)

     serverA             192.168.1.46(eth0)

     serverB             192.168.1.47(eth0)

1、vs/nat模式下各伺服器的配置

lvsserver配置如下:

ifconfig eht0 192.168.1.49 netmsk 255.255.255.0 

ifconfig eht1 8.8.8.8 netmask 255.255.255.0

(注:由于nat模式需要兩塊真實網卡,是以又額外加了一塊網卡  ,此網卡的IP位址同時也是VIP的位址)

vi ipvsadm.sh (建立腳本檔案)

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

#!/bin/bash

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

#(開啟路由功能)

ipvsadm -C      

#(清除之前的轉換表)

ipvsadm -At 8.8.8.8:80 -s rr   

#(指定帶有排程算法轉換的伺服器)

ipvsadm -at 8.8.8.8:80 -r 192.168.1.46:80 -m  

#(增加一台真實伺服器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)

ipvsadm -at 8.8.8.8:80 -r 192.168.1.47:80 -m

#chmod u+x ipvsadm.sh  (增加可執行權限)

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

serverA配置如下:

ifconfig eth0 192.168.1.46 netmask 255.255.255.0

route add default gw 192.168.1.49

(注:此網關是lvsserver的eth0的IP位址)

service httpd start    (開啟測試用的web服務)

echo '192.168.1.46' > /var/www/html/index.html     (制作測試用的html網頁)

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

serverB配置如下:

ifconfig eth0 192.168.1.47 netmask 255.255.255.0

route add default gw 192.168.1.49

(注:此網關是lvsserver的eth0的IP位址)

service httpd start    (開啟測試用的web伺服器

echo '192.168.1.47' > /var/www/html/index.html     (制作測試用的html網頁)

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

2、vs/tun模式下各伺服器的配置 

lvsserver配置如下:

ifconfig eht0 192.168.1.49 netmsk 255.255.255.0

(注:tun 模式下隻需要一塊實體網卡,可将eth1網卡禁用)

ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up

(注:tunlo接口配置的位址為vip位址)     

route add -host 192.168.1.40 dev tunlo    

vi ipvsadm.sh (建立腳本檔案)

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

#!/bin/bash

ipvsadm -C      

#(清除之前的轉換表)

ipvsadm -At 192.168.1.40:80 -s rr   

#(指定帶有排程算法轉換的伺服器)

ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -i  

#(增加一台真實伺服器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)

ipvsadm -at 192.168.1.40:80 -r 192.168.1.47:80 -i

#chmod u+x ipvsadm.sh  (增加可執行權限)    

#./ipvsadm.sh

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

serverA配置如下:

ifconfig eth0 192.168.1.46 netmask 255.255.255.0

ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up  

route add -host 192.168.1.40 dev tunlo     

vi arp.sh (建立腳本檔案)   

#!/bin/bash

echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

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

serverB配置同severA一樣

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

3、vs/dr模式下各伺服器的配置 

lvsserver配置如下:

ifconfig eht0 192.168.1.49 netmsk 255.255.255.0

(注:dr 模式下隻需要一塊實體網卡,可将eth1網卡禁用)

ifconfig eth0:0 192.168.1.40 netmask 255.255.255.255 up

(注:eth0:0接口配置的位址為vip位址)     

route add -host 192.168.1.40 dev eth0:0

vi ipvsadm.sh (建立腳本檔案)

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

#!/bin/bash

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

#(開啟路由功能)

ipvsadm -C      

#(清除之前的轉換表)

ipvsadm -At 192.168.1.40:80 -s rr   

#(指定帶有排程算法轉換的伺服器)

ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -g 

#(增加一台真實伺服器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)

ipvsadm -at 192.168.1.40:80 -r 192.168.1.47:80 -g

#chmod u+x ipvsadm.sh  (增加可執行權限) 

./ipvsadm.sh

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

serverA配置如下:

 ifconfig eth0 192.168.1.46 netmask 255.255.255.0

ifconfig lo:0 192.168.1.40 netmask 255.255.255.255 up  (在lo接口上增加vip位址)

 route add -host 192.168.1.40 dev lo:0 (增加到環回接口的路由)

 vi arp.sh (建立腳本檔案)   

#!/bin/bash

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     

#chmod u+x arp.sh  (增加可執行權限) 

#./arp.sh 

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

serverB配置和serverA一樣

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

  測試:1、顯示LVS 目前的連接配接 

             如:ipvsadm -L -c    ipvsadm -L --stats   

          2、将46和47的WEB服務啟用。直接輸入vip的位址不停的重新整理你将會看到不同頁面的切換    

IPVSADM 服務配置

ipvsadm配置

#cat > /etc/sysconfig/ipvsadm

輸入内容如下:

ipvsadm -A -t 172.16.4.200:80 -s rr

ipvsadm -a -t 172.16.4.200:80 -r 172.16.4.188:80 -m

ipvsadm -a -t 172.16.4.200:80 -r 172.16.4.198:80 -m

注意:service ipvsadm start服務啟動的時候會讀取/etc/sysconfig/ipvsadm裡面的内容,并且逐行執行,使用vi編輯/etc/sysconfig/ipvsadm的時候會出現字元編碼的問題執行不了,建議用cat編輯。

172.16.4.200為虛拟IP位址,172.16.4.188和172.16.4.198為真實IP位址。

儲存退出,測試:

#ipvsadm-restore < /etc/sysconfig/ipvsadm

#ipvsadm -L

參數介紹:

arp_announce

0  可以在任意接口向外發送所有IP的免費ARP

1  盡量避免發送所在接口之外IP的免費ARP

2  隻向外發送所在接口的IP的免費ARP

arp_ignore

0  可以響應所有配置的IP的ARP封包

1  隻響應從入接口IP的ARP封包

8        不響應任何ARP請求

繼續閱讀