輕便式 LVS 集群架設攻略(原創)
很多人在架設LVS Load Balancing 都要重新編譯內核,打補丁,十分麻煩而且容易出錯.我在這里給出一個十分簡易的方法去架設LVS.這里以直接路由DR方式為例子.
在負責調度的主機LB上安裝一個內核版本2.6.10或以上的Linux發行版,這里我用的是Mandriva2006.由於2.6.10以上的內核已經集成IPVS,預設編譯為module,所以不需重新編譯內核.我們可以用modprobe -l 命令查看系統中有哪些module可用.IPVS module在 /lib/modules/2.6.12-12mdksmp/kernel/net/ipv4/ipvs中.
如果我們要手動掛載IPVS,只需要用modprobe
命令就可以,不過我們無須手動掛載.下載ipvsadm管里程序,安裝.在安裝ipvsadm后會自動加入到系統的啟動服務項目中,到系統服務中查看ipvsadm是否已經加入. 點擊啟動后,ipvsadm會自動掛載IPVS module,可以用lsmod查看系統當前所有掛載的module.
設置VIP,然後設置調度演演算法,演演算法模塊也會自動加載.加入所有真實服務器IP.以下是我用的腳本(假設用內網IP):
#!/bin/bash
VIP=192.168.0.100
RIP1=192.168.0.11
RIP2=192.168.0.12
RIP3=192.168.0.13
GW=192.168.0.1
# set the Virtual IP Address
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
#Clear IPVS table
/sbin/ipvsadm –C
#set LVS
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g
#Run LVS
/sbin/ipvsadm
#end
有多少台真實服務器主機請自行添加, 並且要安裝web服務器.使用哪種調度算請按情況配置.所有真實服務器主機都要忽略ARP回應,做法是直接修改內核參數,以下是真實服務器上運行的腳本:
#!/bin/bash
VIP=192.168.0.100
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
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
sysctl -p
#end
現在可以測試LVS.找幾台電腦用瀏灠器訪問VIP,看看所出的主頁是否正常.如果用一台電腦訪問的話,訪問完后要清除緩存.先把主頁都做到不同式樣,根據輪轉調度法,每次訪問的請求都會按次序分到真實服器上,所以應該可以依次序看到真實服務器上的主頁.