標籤:ipvsadm web負載平衡
Ubuntu 上ipvsadm負載平衡(DR模式,以80連接埠為例)
說明:3台伺服器,ip分別為:10.0.1.2 10.0.1.3 10.0.1.4 虛擬ip:10.0.1.10
ipvsadm伺服器(10.0.1.2)
$ sudo apt-get install ipvsadm
$ sudo ifconfig eth0:0 10.0.1.10 netmask 255.255.255.255 broadcast 10.0.1.10
$ sudo ip a (查看設定是否生效)
$ sudo route add -host 10.0.1.10 dev eth0:0
$ sudo route -n (查看設定是否生效)
$ sudo ipvsadm -A -t 10.0.1.10:80 -s rr (注rr為輪詢模式)
$ sudo ipvsadm -a -t 10.0.1.10:80 -r 10.0.1.3:80 -g
$ sudo ipvsadm -a -t 10.0.1.10:80 -r 10.0.1.4:80 -g
$ sudo ipvsadm --save (儲存ipvsadm設定)
$ sudo ipvsadm -l (查看ipvsadm設定)
$ sudo ipvsadm -C (清除ipvsadm設定)
$ sudo ipvsadm -a (增加real伺服器,如:$ sudo ipvsadm -a -t 10.0.1.10:80 -r 10.0.1.3:80 -g)
$ sudo ipvsadm -d (刪除real伺服器,如:$ sudo ipvsadm -d -t 10.0.1.10:80 -r 10.0.1.3:80)
設定開機自啟動:
$ sudo vi /etc/rc.local (在exit 0上面)
按a或i進入編輯模式
ipvsadm -A -t 10.0.1.10:80 -s rr (注rr為輪詢模式)
ipvsadm -a -t 10.0.1.10:80 -r 10.0.1.3:80 -g
ipvsadm -a -t 10.0.1.10:80 -r 10.0.1.4:80 -g
ipvsadm --save
按Esc鍵退出編輯模式
:wq (儲存並退出)
ipvsadm用戶端(10.0.1.3)
$ sudo ifconfig lo:0 10.0.1.10 netmask 255.255.255.255 broadcast 10.0.1.10
$ sudo ip a (查看設定是否生效)
$ sudo route add -host 10.0.1.10 dev lo:0
$ sudo route -n (查看設定是否生效)
$ sudo echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
$ sudo echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
$ sudo echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
$ sudo echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
設定開機自啟動:
$ sudo vi /etc/rc.local (在exit 0上面)
按a或i進入編輯模式
ifconfig lo:0 10.0.1.10 netmask 255.255.255.255 broadcast 10.0.1.10
按Esc鍵退出編輯模式
:wq (儲存並退出)
ipvsadm用戶端(10.0.1.4)
$ sudo ifconfig lo:0 10.0.1.10 netmask 255.255.255.255 broadcast 10.0.1.10
$ sudo ip a (查看設定是否生效)
$ sudo route add -host 10.0.1.10 dev lo:0
$ sudo route -n (查看設定是否生效)
$ sudo echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
$ sudo echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
$ sudo echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
$ sudo echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
設定開機自啟動:
$ sudo vi /etc/rc.local (在exit 0上面)
按a或i進入編輯模式
ifconfig lo:0 10.0.1.10 netmask 255.255.255.255 broadcast 10.0.1.10
按Esc鍵退出編輯模式
:wq (儲存並退出)
驗證:
在2主機上分別建2個頁面1.html 內容寫各自主機ip
http://10.0.1.10/1.html
第一次會顯示10.0.1.3
第二次會顯示10.0.1.4
ipvsadm調度演算法:
一、輪叫調度(Round-Robin Scheduling) rr
輪叫調度(Round Robin Scheduling)演算法就是以輪叫的方式依次將請求調度不同的伺服器,即每次調度執行i = (i + 1) mod n,並選出第i台伺服器。演算法的優點是其簡潔性,它無需記錄當前所有串連的狀態,所以它是一種無狀態調度。
二、加權輪叫調度(Weighted Round-Robin Scheduling) wrr
加權輪叫調度(Weighted Round-Robin Scheduling)演算法可以解決伺服器間效能不一的情況,它用相應的權值表示伺服器的處理效能,伺服器的預設權值為1。假設伺服器A的權值為1,B的權值為2,則表示伺服器B的處理效能是A的兩倍。加權輪叫調度演算法是按權值的高低和輪叫方式分配請求到各伺服器。權值高的伺服器先收到的串連,權值高的伺服器比權值低的伺服器處理更多的串連,相同權值的伺服器處理相同數目的串連數。
三、最小串連調度(Least-Connection Scheduling) lc
最小串連調度(Least-Connection Scheduling)演算法是把新的串連請求分配到當前串連數最小的伺服器。最小串連調度是一種動態調度演算法,它通過伺服器當前所活躍的串連數來估計伺服器的負載情況。調度器需要記錄各個伺服器已建立串連的數目,當一個請求被調度到某台伺服器,其串連數加1;當串連中止或逾時,其串連數減一。
四、加權最小串連調度(Weighted Least-Connection Scheduling)wlc
加權最小串連調度(Weighted Least-Connection Scheduling)演算法是最小串連調度的超集,這個是ipvsadm的預設演算法。各個伺服器用相應的權值表示其處理效能。伺服器的預設權值為1,系統管理員可以動態地設定伺服器的權值。加權最小串連調度在調度新串連時儘可能使伺服器的已建立串連數和其權值成比例。
本文出自 “linux” 部落格,謝絕轉載!
Web負載平衡(ipvsadm,DR模式)