環(huán)境,三臺(tái)虛擬機(jī)系統(tǒng),debian,centos,rhel。基于ipvsadm的負(fù)載均衡,采用DR方式,rhel做lvs的director,其余兩臺(tái)是real。負(fù)載均衡的服務(wù)是web。
實(shí)現(xiàn)如下:
所需的軟件:os(廢話),ipvsadm,及其相關(guān)庫(kù)文件(默認(rèn)安裝即可)
ipvsadm下載地址:ipvsadm下載 采用源碼包的安裝形式安裝。
安裝要點(diǎn):
1、ipvsadm需要os的內(nèi)核源路徑支持,從www.kernel.org下載最新的內(nèi)核,放到/usr/src中并解壓。
一般解壓后是linux-2.6.x的目錄,使用命令#ln -s linux-2.6.x linux 這樣以來(lái)就生成了/usr/src/linux,這才是ipvsadm的默認(rèn)編譯器包含文件路徑,否則會(huì)報(bào)錯(cuò)!切記。
2、director服務(wù)器需要開(kāi)啟ip_forward功能,
在/etc/sysctl.conf中添加net.ipv4.ip_forward = 1
腳本 echo "net.ipv4.ip_forward = 1" > /etc/sysctl.conf
需要配置虛擬ip,網(wǎng)卡是eth0:192.168.1.154,vip是eth0:0192.168.1.2
腳本 ifconfig eth0 192.168.1.154 broadcast 192.168.1.255 netmask 255.255.255.0
ifconfig eth0:0 192.168.1.2 broadcast 192.168.1.255 netmask 255.255.255.0
需要設(shè)置路由
腳本 route add -host 192.168.1.2 dev eth0:0
ipvsadm的設(shè)置腳本:
ipvsadm –C
ipvsadm -A -t 192.168.1.2:80 -s wcl
ipvsadm -a -t 192.168.1.2:80 -r 192.168.1.138 -g -w 3
ipvsadm -a -t 192.168.1.2:80 -r 192.168.1.156 -g -w 1
ipvsadm
可以將以上腳本成一個(gè)文件,加入到/etc/rc.local中,開(kāi)機(jī)自動(dòng)運(yùn)行。
3、real機(jī)器需要關(guān)閉arp,否則無(wú)法接收數(shù)據(jù)包。
具體操作是在/etc/sysctl.conf文件中添加如下幾行:
net.ipv4.ip_forward = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
4、real機(jī)器需要設(shè)置本地虛擬地址腳本如下:
ifconfig lo:0 192.168.1.2 broadcast 192.168.1.2 netmask 255.255.255.255
對(duì)于linux機(jī)器,直接創(chuàng)建文件etc/sysconfig/network-scripts/ifcfg-lo:0,
寫(xiě)入腳本
DEVICE=lo:0
IPADDR=192.168.1.2
NETMASK=255.255.255.255
ONBOOT=yes即可;
5、real服務(wù)器上分別安裝apache服務(wù)
6、lvs服務(wù)器最好不要安裝防火墻,即使安裝了,那么根據(jù)需要建立相應(yīng)的規(guī)則,否則無(wú)法生效。在本例中,需要開(kāi)啟80端口。
安裝配置完畢后即可生效。
為了測(cè)試方便,我使用linux系統(tǒng)中的links工具進(jìn)行測(cè)試,經(jīng)過(guò)反復(fù)執(zhí)行,看到網(wǎng)頁(yè)不斷的在兩個(gè)apache服務(wù)器之間交替顯示。
使用軟件匯總:
os kernel:
debian:Linux debiancpu 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686 GNU/Linux
centos:Linux localhost.localdomain 2.6.18-8.1.4.el5xen #1 SMP Thu May 17 05:27:09 EDT 2007 i686 i686 i386 GNU/Linux
rhel:Linux localhost.localdomain 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux
applications:
ipvsadm-1.24
apache2
iptables1.4.1
新聞熱點(diǎn)
疑難解答
圖片精選