Author : 岑文初
Email: wenchu.cenwc@alibaba-inc.com
Blog: http://blog.csdn.net/cenwenchu79
Date: 2009-5-26
目錄
服務(wù)器資源:
10.2.225.128作為Load Balancer,10.2.225.136和10.2.225.139作為后端的服務(wù)器。
在10.2.225.136和10.2.225.139上分別安裝Apache2.2.14,然后打開80端口,啟動(dòng)Web服務(wù)。
1. 安裝LVS配置工具(只需要在Load Balancer安裝即可)
Linux操作系統(tǒng)當(dāng)前大部分都已經(jīng)支持Virtual Server,因此不需要再去編譯內(nèi)核,只需要下載和安裝用戶配置工具ipvsadmin。首先請(qǐng)查看自己Linux操作系統(tǒng)內(nèi)核的版本,我的版本是2.6.18。從http://www.linux-vs.org/software/ipvs.html#kernel-2.6 下載了ipvsadm-1.24.tar.gz。安裝步驟如下:
Tar –xzvf ipvsadm-1.24.tar.gz
Ln –s /usr/src/kernels/2.6.18-128.el5-i686 /usr/src/linux (這部必須作,因?yàn)樵诰幾g和安裝的時(shí)候需要用到目錄/usr/src/linux來獲得必要的外部依賴庫)
Cd ipvsadm-1.24
Make && make install
輸入ipvsadm,如果看到以下內(nèi)容證明安裝成功了:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
2. DR模式測試
a. 為10.2.225.128這臺(tái)Load Balancer的網(wǎng)卡綁定虛擬IP。
ifconfig eth0:0 10.2.225.211 netmask 255.255.255.0 broadcast 10.2.225.211 up
b. 在Load Balancer上建立虛擬IP。
Ipvsadm –A –t 10.2.225.211:80 –s rr //221 IP沒有實(shí)體機(jī)器在使用,因此作為虛擬IP使用,A表示建立虛擬IP,t表示是tcp協(xié)議,s表示負(fù)載算法,rr是Round Robin。
c. 在Load Balancer上建立虛擬IP與兩個(gè)實(shí)體服務(wù)器的關(guān)系。
ipvsadm -a -t 10.2.225.211:80 -r 10.2.225.136:80 -g -w 1 //將虛擬IP和端口關(guān)聯(lián)到實(shí)體機(jī)器上,a表示新建虛擬IP和實(shí)體機(jī)器的關(guān)聯(lián)關(guān)系,r后面跟實(shí)體機(jī)器地址和端口,g表示使用DR模式,w是權(quán)重。
ipvsadm -a -t 10.2.225.211:80 -r 10.2.225.139 :80 -g -w 1
d. 在另外兩臺(tái)實(shí)體服務(wù)器上建立虛擬IP與網(wǎng)卡回環(huán)的綁定關(guān)系。
ifconfig lo:0 10.2.225.211 netmask 255.255.255.255 broadcast 10.2.225.211 up
下圖就是配置好以后再輸入ipvsadm查看到的虛擬配置信息
其中Route表示就是DR的模式,然后圖中ActiveConn表示連接數(shù),這里是訪問一個(gè)發(fā)布在兩臺(tái)后端服務(wù)器的頁面帶來的連接數(shù),訪問頁面的情況如下兩張圖:(主要是看返回頁面中服務(wù)器ip打印的不同)
訪問頁面的結(jié)果和DR是一樣的,對(duì)虛擬IP的訪問,會(huì)輪詢到不同的后端服務(wù)器上。
簡單的壓力測試采用Apache ab,500并發(fā)用戶,10w的請(qǐng)求總數(shù)。
| 總耗時(shí)(s) | TPS(#/sec) |
NAT | 22.480 | 4448.34 |
TUNNEL | 10.707 | 9339.80 |
DR | 10.177 | 9825.68 |
可以看出NAT性能要比后兩種差一倍。
LVS是從四層對(duì)消息進(jìn)行負(fù)載轉(zhuǎn)發(fā)的,很大程度上是直接利用操作系統(tǒng)的特性來實(shí)現(xiàn)消息轉(zhuǎn)發(fā),因此轉(zhuǎn)發(fā)損耗有限,但是NAT模式中Load Balancer對(duì)于性能的影響很大,同時(shí)對(duì)于負(fù)載壓力本身以及后臺(tái)節(jié)點(diǎn)數(shù)目有限制。在LVS基礎(chǔ)上有很多其他的開源軟件,增加了心跳等機(jī)制來保證集群的健壯性。而LVS并不能滿足根據(jù)應(yīng)用參數(shù)或包體內(nèi)容轉(zhuǎn)發(fā)請(qǐng)求的場景,因此進(jìn)一步研究HA-Proxy,這種基于基于應(yīng)用級(jí)別在7層對(duì)消息作分析轉(zhuǎn)發(fā)的負(fù)載均衡方案。
聯(lián)系客服