Lvs的客戶端指負載均衡其/轉發器(director)後面提供服務的真實機器。負載均衡類型(lb_kind)一般分直接路由模式DR 、網絡地址轉換模式 NAT以及隧道模式TUN三種。Lvs客戶端的配置是根據其所採用的負載均衡種類(lb_kind)來做相應操作的。在我們的應用環境裏,爲了獲得最高的性能,採用的負載均衡種類(lb_kind)是直接路由模式DR。
不管採取哪一種模式,lvs客戶端都不需安裝額外的軟件。
Lvs可支持的客戶端包括:各種GNU/linux、大部分unix以及windows。目前我已經成功運行的lvs客戶端環境有centos、redhat、freebsd、windows等。需要注意的是,由於客戶端操作系統的不同,lvs客戶端的配置也就各不相同了。本書中,將以centos及freebsd兩種操作系統作爲lvs的客戶端,給出其直接路由模式DR的配置方法。
● lvs客戶端(真實服務器)操作系統是centos時的配置文件
[root@huludao-2 ~]# more /usr/local/bin/lvs_real
#!/bin/bash
#description : start realserver
VIP=61.135.20.16
/etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
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
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS Directorserver"
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac |
這裏對配置文件裏重要的一些項進行說明:
1、 vip(virtual ip)。直接路由模式的vip必須跟服務器對外提供服務的ip地址在同一個網段,並且lvs 負載均衡器和其他所有提供相同功能的服務器都使用這個vip.
2、 vip被綁定在環回接口lo0:0上,其廣播地址是其本身,子網掩碼是255.255.255.255。這與標準的網絡地址設置有很大的不同。採用這種可變長掩碼方式把網段劃分成只含一個主機地址的目的是避免ip地址衝突。
3、 echo “1” ,echo “2” 這段的作用是抑制arp廣播。如果不做arp抑制,將會有衆多的機器向其他宣稱:“嗨!我是奧巴馬,我在這裏呢!”,這樣就亂套了。
● lvs客戶端(真實服務器)操作系統是freebsd時的配置文件
fav1# more /usr/local/bin/lvs_real_bsd
#!/usr/local/bin/bash
#description : start realserver
VIP=61.135.20.16
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/ifconfig lo0 $VIP netmask 255.255.255.255 alias -arp up
;;
stop)
/sbin/ifconfig lo0 alias down
echo "close LVS Directorserver"
/sbin/ifconfig lo0 127.0.0.1 arp up
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac |
在這裏,我們同樣對這個配置腳本的某些項進行說明:
1、vip地址設置和arp抑制用 /sbin/ifconfig lo0 $VIP netmask 255.255.255.255 alias -arp up
這麼一行就實現了。
我們把這兩種操作系統的lvs客戶端做個比較,發現freebsd的配置書寫上要簡潔一些,是不是可以認爲freebsd的網絡功能比linux強大呢?