劉俊波 蔡建坤
摘 要:隨著用戶數(shù)的不斷增長(zhǎng),網(wǎng)站的訪問量激增。系統(tǒng)能否提供大規(guī)模并發(fā)訪問的能力,已成為衡量系統(tǒng)高可用性的重要指標(biāo)。如果客戶的增多導(dǎo)致通信量超出了服務(wù)器所能承受的范圍,系統(tǒng)的使用必將受到影響。因此,基于單臺(tái)服務(wù)器提供WEB服務(wù)的方案已經(jīng)不能解決此類問題,將多臺(tái)服務(wù)器通過網(wǎng)絡(luò)連接起來,并且共同分擔(dān)負(fù)載壓力,已成為有效解決負(fù)載壓力的一種手段。
關(guān)鍵詞:WEB服務(wù);網(wǎng)絡(luò)負(fù)載均衡集群;系統(tǒng)性能
中圖分類號(hào):TN929.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-2064(2018)17-0000-00
采用單一WEB 服務(wù)器的方式對(duì)外提供服務(wù)的網(wǎng)站,在用戶訪問量較少的情況下,能夠勉強(qiáng)滿足用戶請(qǐng)求,但當(dāng)用戶量激增時(shí),極有可能造成網(wǎng)站訪問慢,甚至可能導(dǎo)致網(wǎng)站癱瘓等嚴(yán)重問題。通過引入網(wǎng)絡(luò)負(fù)載均衡(英文簡(jiǎn)稱NLB)技術(shù),使Web網(wǎng)站得到了很好的擴(kuò)充,在不影響對(duì)外提供服務(wù)的前提下,能夠承載更多的用戶訪問量。
1 網(wǎng)絡(luò)負(fù)載均衡概述
網(wǎng)絡(luò)負(fù)載均衡是 Microsoft提供的一種負(fù)載均衡技術(shù)。通過將大量的客戶請(qǐng)求均衡分布到同一網(wǎng)絡(luò)中的多臺(tái)服務(wù)器的方式來進(jìn)行負(fù)載處理。通過最大程度的減少停機(jī)時(shí)間,提供持續(xù)不間斷的服務(wù),可以極大提高系統(tǒng)的高可用性;通過平衡負(fù)載請(qǐng)求至各服務(wù)器,支持在不關(guān)閉群集的情況下動(dòng)態(tài)添加主機(jī),可以增強(qiáng)服務(wù)器應(yīng)用程序的可伸縮性和可用性。
NLB群集中的所有節(jié)點(diǎn)均共享一個(gè)代表所需網(wǎng)絡(luò)資源的虛擬 IP地址。所有NLB服務(wù)器均監(jiān)聽用戶請(qǐng)求, 但其中只有一臺(tái)服務(wù)器對(duì)這些用戶請(qǐng)求進(jìn)行響應(yīng)?;诳焖?Hash算法的負(fù)載均衡架構(gòu)負(fù)責(zé)合并客戶端 IP 地址與端口號(hào), 并確定由哪臺(tái)服務(wù)器進(jìn)行響應(yīng)。另外,可以指定某種相識(shí)性規(guī)則, 以便能夠在不同服務(wù)器上分配不同的負(fù)載量。
2 網(wǎng)絡(luò)負(fù)載均衡關(guān)鍵技術(shù)
由于 NLB不能根據(jù) CPU 和內(nèi)存利用率來分配流量, 而且群集性能并不隨著節(jié)點(diǎn)數(shù)量的增加而線性變化。隨著節(jié)點(diǎn)數(shù)量的增多, 由此產(chǎn)生的網(wǎng)絡(luò)開銷, CPU 開銷也隨之增大, 所以正確的配置和規(guī)劃對(duì)于建立NLB群集來說至關(guān)重要。
2.1 群集操作模式
NLB群集支持單播和多播兩種模式。
(1)單播模式:NLB服務(wù)會(huì)重新對(duì)每個(gè)節(jié)點(diǎn)中啟用NLB的網(wǎng)卡分配MAC地址(群集MAC地址),并且所有的NLB節(jié)點(diǎn)均使用相同的MAC地址,同時(shí)NLB會(huì)修改所有發(fā)送數(shù)據(jù)包中的源MAC地址,其缺點(diǎn)在于到達(dá)群集的流量會(huì)擴(kuò)散至交換機(jī)VLAN上的所有端口。
(2)多播模式:此種模式下,NLB服務(wù)不會(huì)重新對(duì)節(jié)點(diǎn)分配MAC地址,而是增加一個(gè)2層多播MAC地址,節(jié)點(diǎn)之間可以通過原有IP通信。其缺點(diǎn)在于針對(duì)群集IP得知的ARP請(qǐng)求將映射到多播MAC地址,而路由器、交換機(jī)默認(rèn)不會(huì)學(xué)習(xí)多播MAC地址,所以必須添加群集IP和群集MAC地址的映射,否則無法進(jìn)行ARP解析。
(3)IGMP多播:此種模式下,NLB服務(wù)會(huì)通過IGMP協(xié)議使交換機(jī)只將NLB通信發(fā)送至NLB節(jié)點(diǎn)的端口,而不是交換機(jī)所有端口,但需要交換機(jī)支持IGMP偵聽。
2.2 端口規(guī)則篩選模式
系統(tǒng)可針對(duì)端口規(guī)則采取禁止、多主機(jī)負(fù)載平衡和單主機(jī)的特殊處理。其中, 多主機(jī)篩選模式提供了真正意義上的負(fù)載平衡, 并且可以根據(jù)節(jié)點(diǎn)的實(shí)際處理能力進(jìn)行負(fù)載的分配。
(1)多個(gè)主機(jī):相似性-無:客戶端的服務(wù)請(qǐng)求會(huì)平均分配到群集內(nèi)的每一臺(tái)服務(wù)器。此種模式下需要設(shè)置各服務(wù)器之間的Session共享;相似性-單一:客戶端的請(qǐng)求會(huì)固定分配到一臺(tái)服務(wù)器,同一個(gè)客戶端的訪問由同一個(gè)服務(wù)器響應(yīng);相似性-網(wǎng)絡(luò):某些服務(wù)器指定處理來自某些網(wǎng)段的請(qǐng)求。
(2)單一主機(jī):在設(shè)置的端口范圍內(nèi)的所有請(qǐng)求都由一臺(tái)服務(wù)器執(zhí)行。
3 網(wǎng)絡(luò)負(fù)載均衡群集配置
系統(tǒng)最為重要的是保證其業(yè)務(wù)的高可用性,當(dāng)用戶訪問量較大時(shí),不允許出現(xiàn)業(yè)務(wù)中斷的情況。為了防止出現(xiàn)該單點(diǎn)情況的發(fā)生,因此采取了群集的方式,同時(shí)為了防止單服務(wù)器負(fù)載過高的問題出現(xiàn),將兩臺(tái)虛擬服務(wù)器做成了NLB群集,共同承擔(dān)用戶訪問。
3.1 基本配置
(1)端口范圍:默認(rèn)情況下, TCP或 UDP的0~ 65536 端口都是可以為NLB所用, 但考慮到NLB的安全,只針對(duì)所提供的服務(wù)進(jìn)行特定設(shè)置。在對(duì)外提供 Web服務(wù)時(shí), 站點(diǎn)使用80端口, 因此,將此端口范圍修改為“從80到80”。
(2)協(xié)議:選擇TCP協(xié)議來提供NLB服務(wù)。
3.2 配置過程
(1)進(jìn)入Server1, 以管理員身份登錄, “管理工具”中運(yùn)行 “網(wǎng)絡(luò)負(fù)載平衡管理器” ,從出現(xiàn)的菜單中選擇“新建群集”,進(jìn)入“群集參數(shù)”界面。
(2)配置群集參數(shù):群集 IP是群集器對(duì)外提供訪問的 IP地址(虛擬IP)。群集操作模式選擇IGMP多播。
(3)配置網(wǎng)絡(luò)負(fù)載平衡端口規(guī)則:可根據(jù)實(shí)際應(yīng)用的要求, 對(duì)該規(guī)則進(jìn)行修改或者添加其他的端口規(guī)則。篩選模式中選擇“多個(gè)主機(jī)”模式提供服務(wù)。多個(gè)主機(jī)之間進(jìn)行負(fù)載平衡時(shí),“相似性”選擇“無”,此時(shí),用戶的訪問請(qǐng)求將會(huì)平均分配到各服務(wù)器。
(4)在連接主機(jī)設(shè)置中輸入Server1的IP, 在“對(duì)配置一個(gè)新的群集可用的接口” 框中顯示出連接的計(jì)算機(jī)的網(wǎng)卡及 IP地址,選擇提供NLB服務(wù)的對(duì)外提供服務(wù)的網(wǎng)絡(luò)地址。等待群集加載配置信息,至此,NLB群集已成功建立,Server1已加入NLB群集。
(5)添加Server2到群集, 右鍵選擇“主機(jī)加入到群集” , 此設(shè)置將直接轉(zhuǎn)至“連接” 界面, 按照Server1的方式進(jìn)行相關(guān)設(shè)置即可。設(shè)置完成后等待群集加載Server2的配置信心,刷新群集狀態(tài), 如果顯示“已聚合”,說明網(wǎng)絡(luò)負(fù)載平衡設(shè)置已經(jīng)成功。
4 測(cè)試及結(jié)果分析
4.1 網(wǎng)絡(luò)拓?fù)洌ㄒ妶D1)
圖1 網(wǎng)絡(luò)拓?fù)鋱D
Server1(188.3.23.7)與Server2(188.3.23.8)處于局域網(wǎng)絡(luò)環(huán)境下,由兩臺(tái)服務(wù)器搭建的NLB群集,群集對(duì)外的IP地址為188.3.23.20。
4.2 功能測(cè)試
在Server1、Server2上修改的IIS默認(rèn)網(wǎng)站Default Web Site,端口8080,若直接訪問Server1的網(wǎng)站,則會(huì)在網(wǎng)頁提示“This is IIS1 188.2.23.7”;若直接訪問Server2的網(wǎng)站,則會(huì)在網(wǎng)站提示“This is IIS2 188.2.23.8”。
(1)訪問http://188.2.23.20:8080,打開兩個(gè)個(gè)IE窗口,訪問結(jié)果分別為“This is IIS1 188.2.23.7”,“This is IIS2 188.2.23.8”。證明負(fù)載均衡群集已將訪問請(qǐng)求均分到不同服務(wù)器。
(2)當(dāng)Server1服務(wù)器當(dāng)機(jī)(或網(wǎng)絡(luò)斷開)時(shí),依舊訪問群集網(wǎng)址,訪問結(jié)果為“This is IIS2 188.2.23.8”。證明當(dāng)群集中某節(jié)點(diǎn)斷開時(shí),群集依舊運(yùn)行正常。
4.3 性能測(cè)試
為測(cè)試網(wǎng)站響應(yīng)時(shí)間,設(shè)置在后臺(tái)代碼中做雙精度數(shù)字運(yùn)算,循環(huán)多次,打開網(wǎng)頁的時(shí)間維持在3-6秒。首先,對(duì)Server1做負(fù)載均衡測(cè)試,直至出現(xiàn)用戶請(qǐng)求無法響應(yīng)的情況;然后,對(duì)NLB群集做負(fù)載均衡測(cè)試,也同樣測(cè)試到有用戶請(qǐng)求無法響應(yīng)的情況出現(xiàn)。如表1所示。
表1 性能測(cè)試結(jié)果表
最大用戶數(shù) 每秒HTTP響應(yīng)數(shù)
單服務(wù)器 40 0.364
NLB群集 130 1.182
從測(cè)試結(jié)果可以看出:?jiǎn)蝹€(gè)服務(wù)器的負(fù)載能力較弱,允許的最大用戶數(shù)較少;而NLB群集能有效的均衡兩臺(tái)服務(wù)器的負(fù)載,其最大用戶數(shù)比兩臺(tái)服務(wù)器單獨(dú)所能承擔(dān)用戶數(shù)的兩倍還多,并且相同時(shí)間內(nèi)能夠響應(yīng)的HTTP請(qǐng)求數(shù)明顯增加。
5 結(jié)語
通過采用負(fù)載均衡技術(shù)組建群集,用多臺(tái)服務(wù)器而不是單一服務(wù)器來提供WEB服務(wù)。各服務(wù)器共同承擔(dān)較為繁重的網(wǎng)絡(luò)服務(wù)。不僅大大提升了系統(tǒng)的性能,而且還在系統(tǒng)的高可用性方面有很好的表現(xiàn)。
參考文獻(xiàn)
[1] 陳武,王平.負(fù)載均衡技術(shù)在數(shù)字圖書館服務(wù)中的應(yīng)用模式及實(shí)例分析[J].現(xiàn)代圖書情報(bào)技術(shù),2004,卷(3):1-5.
[2] 侯秀杰,祝永志,孔令鑫.Web服務(wù)器集群負(fù)載均衡技術(shù)的應(yīng)用與研究[J].計(jì)算機(jī)與信息技術(shù),2008,卷(5):5-6.
收稿日期:2018-06-02
作者簡(jiǎn)介:劉俊波(1983—),男,漢,湖南益陽人,碩士研究生,工程師,研究方向:信息網(wǎng)絡(luò)。