徐紅梅
(四川職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)系,四川遂寧629000)
基于LVS-NAT轉(zhuǎn)發(fā)的LVS負(fù)載均衡集群的研究
徐紅梅
(四川職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)系,四川遂寧629000)
大型網(wǎng)站的后臺(tái)服務(wù)器普遍采用集群技術(shù).而如何解決集群內(nèi)部的負(fù)載均衡問題,確保服務(wù)質(zhì)量成為了重要課題.本文以LVS—NAT轉(zhuǎn)發(fā)作為負(fù)載均衡搭建集群,從它的原理和其中的加權(quán)調(diào)度算法,實(shí)施條件及優(yōu)缺點(diǎn)方面對(duì)lvs-NAT轉(zhuǎn)發(fā)進(jìn)行研究.
LVS;均衡負(fù)載;調(diào)度算法
從網(wǎng)絡(luò)形成到至今,網(wǎng)絡(luò)發(fā)展高速前行,使網(wǎng)絡(luò)融入人們的生活,越來越多的人上網(wǎng),也使人們對(duì)網(wǎng)絡(luò)服務(wù)的質(zhì)量例如網(wǎng)速,網(wǎng)絡(luò)的穩(wěn)定性及硬件要求越高,除了更新設(shè)備外,僅通過提高某個(gè)服務(wù)器的硬件性能已遠(yuǎn)遠(yuǎn)不能滿足人們的需求,L V S均衡負(fù)載集群技術(shù)簡(jiǎn)稱L V S(L i nu x V i r tu al S er v er)即L i nu x虛擬服務(wù)器,是一個(gè)虛擬的服務(wù)器集群系統(tǒng).使用L V S技術(shù)能夠解決的問題是,可以通過L i nu x操作系統(tǒng)及L V S提供的負(fù)載均衡技術(shù)實(shí)現(xiàn)一個(gè)具有良好可靠性、可擴(kuò)展性和可操作性的高性能、高可用的服務(wù)器群集,從而以低廉的成本實(shí)現(xiàn)最優(yōu)的服務(wù)性能.
負(fù)載均衡技術(shù)在網(wǎng)絡(luò)服務(wù)中應(yīng)用很多,如以D N S為基礎(chǔ)的域名輪流解析、在客戶端訪問時(shí)調(diào)度方法、系統(tǒng)負(fù)載在應(yīng)用層調(diào)度方法,還有IP地址的在分配時(shí)的調(diào)度方法等,在這些負(fù)載調(diào)度算法中,均以減輕服務(wù)器負(fù)載為目的,其中執(zhí)行效率最高的是IP負(fù)載均衡技術(shù).
L V S的IP負(fù)載均衡技術(shù)是通過ip v s內(nèi)核模塊來實(shí)現(xiàn)的,ip v s是L V S集群系統(tǒng)的核心軟件,它的主要作用是:安裝在D i rector S er v er上,同時(shí)在D i rector S er v er上虛擬出一個(gè)IP地址,用戶必須通過這個(gè)虛擬的IP地址訪問集群服務(wù).這個(gè)虛擬IP一般稱為L(zhǎng) V S的VIP,即V i rtu al IP.訪問的請(qǐng)求首先經(jīng)過VIP到達(dá)負(fù)載調(diào)度器,然后由負(fù)載調(diào)度器從R e al S er v er列表中選取一個(gè)服務(wù)節(jié)點(diǎn)響應(yīng)用戶的請(qǐng)求.當(dāng)用戶的請(qǐng)求到達(dá)負(fù)載調(diào)度器后,調(diào)度器如何將請(qǐng)求發(fā)送到提供服務(wù)的R e al S er v er節(jié)點(diǎn),而R e al S er v er節(jié)點(diǎn)如何返回?cái)?shù)據(jù)給用戶,是ip v s實(shí)現(xiàn)的重點(diǎn)技術(shù),ip v s實(shí)現(xiàn)負(fù)載均衡機(jī)制有四種,分別是NAT、T U N和D R F u l l N a t.這里我們將對(duì)IPV S中的NAT負(fù)載平衡機(jī)制進(jìn)行探討及研究.
l v s負(fù)載均衡集群中的L V S D i rector根據(jù)對(duì)OS I參考模型的第三、四層即網(wǎng)絡(luò)層、傳輸層信息進(jìn)行分析,把數(shù)據(jù)包轉(zhuǎn)發(fā)到集群節(jié)點(diǎn)處理.L V S接收到用戶請(qǐng)求的數(shù)據(jù)包后,根據(jù)制定的負(fù)載均衡調(diào)度方法選擇合適的集群節(jié)點(diǎn),將請(qǐng)求包中虛擬IP地址替換成選定的節(jié)點(diǎn)IP,然后發(fā)給此節(jié)點(diǎn),節(jié)點(diǎn)相應(yīng)完成之后講應(yīng)答數(shù)據(jù)包發(fā)給L V S D i rector,L V S D irector把應(yīng)打包中的集群節(jié)點(diǎn)IP轉(zhuǎn)換成L V S D irector的IP,再發(fā)回用戶.在L V S-NAT集群中,請(qǐng)求和響應(yīng)的數(shù)據(jù)報(bào)文都需要通過L V S D i rector,因此,可以重新映射網(wǎng)絡(luò)端口,減少集群節(jié)點(diǎn)被攻擊的可能性.工作原理如圖1-1所示.在L V S-NAT工作模式中,D i rector一是負(fù)責(zé)將用戶請(qǐng)求分發(fā)給后端的服務(wù)器群組,二則是扮演路由器的角色,將外部地址獲取的地址通它轉(zhuǎn)換為內(nèi)部地址供內(nèi)部服務(wù)器使用.在該工作模式中,L V S-NAT服務(wù)器群組對(duì)用戶請(qǐng)求的響應(yīng)全部經(jīng)由L V S-NAT服務(wù)器轉(zhuǎn)發(fā)給用戶.由于用戶和服務(wù)器群組分別處于不同的網(wǎng)絡(luò),需在L V S-NAT上開啟路由轉(zhuǎn)發(fā)功能。由D N S服務(wù)器202.98.96.68提供一個(gè)L V S地址125.67.64.236.即外網(wǎng)地址,用戶獲取得到該IP地址經(jīng)由L V S-NAT服務(wù)器轉(zhuǎn)發(fā)后提供轉(zhuǎn)發(fā)節(jié)點(diǎn)IP192.168.10.1,由L V S-NAT向內(nèi)網(wǎng)提供IP地址段192.168.10.0/24,內(nèi)網(wǎng)中三臺(tái)w e b服務(wù)器同時(shí)工作,分擔(dān)L V S-NAT服務(wù)器負(fù)載.
圖1-1 LVS-NAT轉(zhuǎn)發(fā)
在H TTP協(xié)議中,當(dāng)客戶端用戶從WEB服務(wù)器上獲取請(qǐng)求服務(wù)時(shí),需要建立一個(gè)TCP連接,而同一用戶的不同請(qǐng)求將會(huì)通過調(diào)度算法被調(diào)度到不同的服務(wù)器上,IPV S在內(nèi)核中的負(fù)載均衡調(diào)度是以連接為單位粒度的,所以這種單位粒度的調(diào)度在一定程度上可以解決由單個(gè)用戶訪問服務(wù)器量突然增大的突發(fā)性情況引起服務(wù)器間的負(fù)載不平衡.
目前,L V S負(fù)載調(diào)度方法有10種,內(nèi)核中的連接調(diào)度算法上,IPV S已實(shí)現(xiàn)了八種調(diào)度算法,其中之一就是下面講的輪叫調(diào)度算法(R oun d R o b i n S che d u li n g),算法思想就是將外部請(qǐng)求按順序輪流分配到服務(wù)器池中的服務(wù)器,它均等地對(duì)待每臺(tái)服務(wù)器,而不管服務(wù)器上實(shí)際的連接數(shù)和系統(tǒng)負(fù)載情況.當(dāng)每次請(qǐng)求調(diào)度時(shí)用區(qū)模的方法即i=(i+1) m o d n來優(yōu)先選取第i臺(tái)服務(wù)器連接。算法的優(yōu)點(diǎn)是相對(duì)簡(jiǎn)單,適用于服務(wù)器處理性能一致性的集群.
加權(quán)輪叫調(diào)度算法是對(duì)輪叫算法的改進(jìn),在系統(tǒng)調(diào)度時(shí),引入加權(quán)值的方法,保證處理能力強(qiáng)的服務(wù)器能處理更多的訪問量,負(fù)載均衡調(diào)度器可以自動(dòng)問詢服務(wù)器池中的服務(wù)器的負(fù)載情況,并動(dòng)態(tài)地調(diào)整其權(quán)值.
當(dāng)服務(wù)器處理能力強(qiáng)時(shí),其加權(quán)系數(shù)相應(yīng)增大,當(dāng)服務(wù)器不工作或不可用出現(xiàn)故障時(shí),其權(quán)值為零.所以,算法在模取優(yōu)選服務(wù)器時(shí)需要增加一個(gè)權(quán)值作為額外附加值.
算法流程說明如圖2-1所示。假設(shè)現(xiàn)有服務(wù)器組S={S0,S1,S2…,S n-1},其中W(Si)表示服務(wù)器Si的權(quán)值,i表示服務(wù)器順序,表示當(dāng)前服務(wù)器權(quán)值,ma x(S)服務(wù)器中的最大權(quán)值,g c d(S)表示所有服務(wù)器權(quán)值的最大公約數(shù).變量初始化i=—1,c w=0.
圖2-1 輪叫算法調(diào)度流程圖
算法思想如下
(1)運(yùn)行環(huán)境要求下載最穩(wěn)定版本的l i nu x內(nèi)核,及ip v s adm軟件工具和P H P解釋器軟件包,三到四臺(tái)運(yùn)行不同操作系統(tǒng)的集群節(jié)點(diǎn)w e b服務(wù)器.其中一臺(tái)以安裝雙網(wǎng)卡re d h a t L i nu x操作系統(tǒng)的主機(jī)作為L(zhǎng) V S D i rector.一臺(tái)集線器或交換機(jī),連接所有的集群節(jié)點(diǎn)和L V Sdi rector(eth1連接交換機(jī),eth0連接供用戶訪問的路由器).如圖3-1連接所示.
圖3-1 網(wǎng)絡(luò)連接圖
(2)重新編譯內(nèi)核及軟件的解包安裝在L V S D irector上重新編譯內(nèi)核程序,讓內(nèi)核支持IPV S并減少不必要的功能,測(cè)試使用新內(nèi)核引導(dǎo)。配置網(wǎng)絡(luò)參數(shù)
在L V S D i rector上解包和使用ma k e程序編譯,安裝IPv s adm和P H P軟件
(3)用P H P編寫集群節(jié)點(diǎn)監(jiān)控程序,目的是定時(shí)每分鐘掃描一次所有集群節(jié)點(diǎn),建立最新可用的集群節(jié)點(diǎn),去除故障節(jié)點(diǎn),以防用戶的請(qǐng)求發(fā)送到故障節(jié)點(diǎn).
4.1 NAT模式優(yōu)點(diǎn)
在現(xiàn)有IPV4地址短缺時(shí)期,可節(jié)約外網(wǎng)IP地址,不占用外網(wǎng)IP地址.抗負(fù)載能領(lǐng)強(qiáng)不需要對(duì)A-pa che S er v er做任何設(shè)置,只需要一個(gè)內(nèi)網(wǎng)IP地址即可,對(duì)用戶來說,內(nèi)部的A pa che S er v er是透明的.服務(wù)器穩(wěn)定,在NAT模式工作的L V S的L i nu x系統(tǒng)上不需要修改M T U的大小,完全輸入一種非侵入式,輕量級(jí)的做法.安全性比較高,NAT的網(wǎng)絡(luò)類似防火墻,通過內(nèi)部轉(zhuǎn)發(fā)的IP地址,將服務(wù)結(jié)點(diǎn)池?和外網(wǎng)隔開.服務(wù)器結(jié)點(diǎn)無法和客戶端直接通信,而需要經(jīng)過負(fù)載均衡器進(jìn)行IP?包處理請(qǐng)求數(shù)據(jù)還是應(yīng)答數(shù)據(jù)的工作,在集中處理操作中占優(yōu)勢(shì).
4.2 NAT模式的缺點(diǎn)
L V S D i rector是整個(gè)服務(wù)器集群的瓶頸,當(dāng)集群節(jié)點(diǎn)數(shù)超過10臺(tái)以上時(shí),L V S D i rector必須對(duì)進(jìn)出集群的網(wǎng)絡(luò)數(shù)據(jù)包改寫包的頭地址,因此會(huì)影響整個(gè)集群的性能,在負(fù)荷比較重時(shí),不適用此模式.
[1]彭土有.開源L i nu x集群技術(shù)研究[J].廣東科技,2008,(08).
[2]李子民.基于L V S的集群動(dòng)態(tài)負(fù)載均衡算法研究[D].成都:電子科技大學(xué),2009.
[3]陳偉.基于負(fù)反饋的負(fù)載均衡算法實(shí)現(xiàn)[J].湖南文理學(xué)院學(xué)報(bào)(自然科學(xué)版),2013,(01).
[4]王軍亮.L V S集群中IP負(fù)載均衡技術(shù)的研究[J].貴州科學(xué),2009,(02).
Resear ch on LVSLoad Bal anci ng Cl ust er Based on LVS- NATForwar di ng
XU Hongmei
(Sichuan Vocational and Technical College, Suining Sichuan 629000)
Cluster technology is widely used in the back-end server of large web sites. How to solve the problem of load balancing in cluster and to ensure the quality of service becomes an important issue.In this paper, LVS-NAT forwarding is used as a load-balancing cluster, and its principle and its weighted scheduling algorithm, implementation conditions and advantages and disadvantages are studied.
L V S;Bala nce d Lo ad;S che d u li n g A l g or i th m
TP393
A
1672-2094(2017)01-0149-03
責(zé)任編輯:張隆輝
2016-10-20
四川省省教廳自然科學(xué)項(xiàng)目(編號(hào)14Z B0344).
徐紅梅(1977-),北京石景山人,四川職業(yè)技術(shù)學(xué)院副教授.研究方向:網(wǎng)絡(luò)技術(shù)方向.