細(xì)致教程之Linux負(fù)載均衡
linux作為一個(gè)具有代表性的開源系統(tǒng),受到廣大的用戶所喜愛。那么如何在LVS下進(jìn)行負(fù)載均衡的使用呢?現(xiàn)在我們就來詳細(xì)地為大家介紹一下,主要是使用ipvsadm來實(shí)現(xiàn)負(fù)載均衡。那么按照一貫的程序,首先是安裝程序,然后是配置。
Linux Virtua Server負(fù)載均衡ipvsadm使用方法
1.安裝ipvsadm
下載ipvsadm,下載時(shí)需注意對(duì)應(yīng)自己的內(nèi)核版本。
ipvsadm下載網(wǎng)址:http://www.linuxvirtualserver.org/software/
本文使用的是FC8系統(tǒng),內(nèi)核版本2.6.23.1,對(duì)應(yīng)ipvsadm版本1.24。
安裝時(shí)需要Linux內(nèi)核源碼,如果安裝系統(tǒng)時(shí)沒有安裝源碼,需要再下載內(nèi)核源碼。本文使用的內(nèi)核是linux-2.6.23.1.tar.bz2。把內(nèi)核解壓到/usr/src/linux-2.6.23.1。下面開始編譯安裝:
建立內(nèi)核快捷方式:ln-s/usr/src/linux-2.6.23.1/usr/src/linux
解壓ipvsadm:tar zxvf ipvsadm-1.24.tar.gz
安裝ipvsadm:
- cd ipvsadm-1.24
- make
- make install
安裝完成后,下一步我們開始配置IPVS,本文主要介紹Direct Routing方式的配置。#p#
2.配置IPVS(Direct Routing)
2.1.網(wǎng)絡(luò)結(jié)構(gòu)
三臺(tái)計(jì)算機(jī),一臺(tái)Director安裝Linux作負(fù)載均衡器,另兩臺(tái)ReaServer提供服務(wù)。
- Director:eth0=192.168.34.40,eth0:0(VirtuaIP) =192.168.34.41
- RealServer1:IP=192.168.34.26
- RealServer2:IP=192.168.34.27
服務(wù)端口:443
客戶通過VirtuaIP 192.168.34.41訪問服務(wù)器。Load Balancer將來自客戶的訪問按一定的負(fù)載均衡機(jī)制分發(fā)到192.168.34.26和192.168.34.27這兩臺(tái)實(shí)際提供服務(wù)的服務(wù)器。
2.2.Load Balancer配置
步驟1:配置Director IP
在Director上配置好eth0的IP(192.168.34.40),然后在eth0上新增一個(gè)IP(192.168.34.41),命名為eth0:0,作為VirtuaIP。
步驟2:配置IPVS Table腳本
- 編寫sh腳本如下:
- VIP=192.168.34.41 #VrituaIP地址
- RIP1=192.168.34.27 #ReaServer 1 IP
- RIP2=192.168.34.26 #ReaServer 2 IP
- GW=192.168.34.1 #ReaServer 網(wǎng)關(guān)IP
- #清除IPVS Table
- ipvsadm-C
- #設(shè)置IPVS Table
- ipvsadm-A-t $VIP:443-s wlc
- ipvsadm-a-t $VIP:443-r $RIP1:443-g-w 1
- ipvsadm-a-t $VIP:443-r $RIP2:443-g-w 1
- #將IPVS Table保存到/etc/sysconfig/ipvsadm
- /etc/rc.d/init.d/ipvsadm save
- #啟動(dòng)IPVS
- service ipvsadm start #或者/etc/rc.d/init.d/ipvsadm start也可以
- #顯示IPVS狀態(tài)
- ipvsadm-l
- #腳本結(jié)束----------------------------
- 該腳本配置IPVS Table,并將配置保存到/etc/sysconfig/ipvsadm文件中。
- 以后修改IPVS TABLE可直接修改該腳本。當(dāng)然,您也可以直接編輯該文件來實(shí)現(xiàn)IPVS Table的配置。
- 配置完畢后執(zhí)行/etc/rc.d/init.d/ipvsadm start(或service ipvsadm start)啟動(dòng)IPVS。
- 通過以上兩個(gè)步驟,就完成了負(fù)載均衡器IPVS的配置。
2.3.ReaServer配置
ReaServer主要做兩個(gè)配置,一是添加一個(gè)虛擬IP,二是關(guān)閉該IP的ARP響應(yīng)。
2.3.1.Windows系統(tǒng)
對(duì)于Windows系統(tǒng)的服務(wù)器,只要添加一個(gè)Loopback的網(wǎng)卡,IP地址設(shè)置成虛擬IP(192.168.34.41),子網(wǎng)掩碼設(shè)置成255.255.255.255,網(wǎng)關(guān)地址留空。
操作:
從控制面板選擇添加硬件;
選擇"是,硬件已連好";
選擇"添加新的硬件設(shè)備";
選擇"安裝我手動(dòng)從列表選擇的硬件";
選擇"網(wǎng)絡(luò)適配器";
從廠商列表選擇"Microsoft",從網(wǎng)卡列表選擇"Microsoft Loopback Adapter";
點(diǎn)下一步開始安裝硬件,安裝完畢后出現(xiàn)一個(gè)新的網(wǎng)卡,配置好IP和子網(wǎng)掩碼。Windows子網(wǎng)掩碼無法配置成255.255.255.255,我們可以先按默認(rèn)的保存配置,然后從注冊(cè)表修改子網(wǎng)掩碼。
注冊(cè)表修改子網(wǎng)掩碼:
從注冊(cè)表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces]下找到對(duì)應(yīng)的網(wǎng)卡,將SubnetMask修改成255.255.255.255。然后禁用再啟用該網(wǎng)卡即可。#p#
3.配置LDirectord RealServer故障檢測及管理
LDirectord進(jìn)程定時(shí)檢測各ReaServer運(yùn)行狀態(tài),當(dāng)檢測到某臺(tái)ReaServer故障時(shí),則將該Server從負(fù)載均衡調(diào)度列表刪除,當(dāng)恢復(fù)正常時(shí)再加入。
3.1.安裝LDirectord
LDirectord軟件包含在HeartBeat軟件包中。安裝HeartBeat時(shí)就同時(shí)安裝了LDirectord。HeartBeat下載網(wǎng)址:http://www.linuxvirtualserver.org/software/。
安裝HeartBeat還需要安裝libnet等軟件包。可以到網(wǎng)上下載這些軟件包來安裝。Libnet下載網(wǎng)址:http://www.packetfactory.net/libnet/dist/libnet.tar.gz
安裝libnet:
- tar zxf libnet.tar.gz
- cd libnet
- ./configure
- make
- make install
安裝HeartBeat:
- ./ConfigureMe configure
- make
- make install
安裝完后執(zhí)行以下命令加入自啟動(dòng)項(xiàng):
chkconfig-add ldirectord
3.2.配置LDirectord
heartbeat/ldirectord目錄下有個(gè)ldirectord.cf文件。該文件是ldirectord的配置范例。在/etc/ha.d/目錄下新建一個(gè)ldirectord.cf文件,按配置范例格式進(jìn)行配置,主要配置項(xiàng)如下:
- checktimeout=3 #檢測超時(shí)3s
- checkinterval=1 #檢測間隔1s
- fallback=127.0.0.1:443 #所有服務(wù)器都故障時(shí)訪問該服務(wù)器
- autoreload=yes #配置文件改變時(shí)自動(dòng)加載
- logfile="/var/log/ldirectord.log" #日志文件
- quiescent=yes
- virtual=192.168.34.41:443 #虛擬IP
- real=192.168.34.26:443 gate
- real=192.168.34.27:443 gate
- fallback=127.0.0.1:443 #所有服務(wù)器都故障時(shí)訪問該服務(wù)器
- service=none
- scheduler=wlc
- persistent=600
- protocol=tcp
- checktype=on
3.3.啟動(dòng)ldirectord
/etc/rc.d/init.d ldirectord start
Linux負(fù)載均衡安裝中注意:啟動(dòng)時(shí)如果提示ldirectord某行出錯(cuò),一般是有些運(yùn)行需要的軟件沒安裝,大部分是perl開頭的軟件包。
- net-snmp-5.3-4.2.i386.rpm
- net-snmp-libs-5.3-4.2.i386.rpm
- perl-Compress-Zlib-1.41-1.2.2.i386.rpm
- perl-HTML-Parser-3.50-1.i386.rpm
- perl-HTML-Tagset-3.10-2.1.noarch.rpm
- perl-libwww-perl-5.805-1.1.noarch.rpm
- perl-MailTools-1.74-1.fc5.noarch.rpm
- perl-TimeDate-1.16-3.2.noarch.rpm
- perl-URI-1.35-2.2.noarch.rpm