淺敘負(fù)載均衡集群的性能
通過(guò)以前的文章我們知道,負(fù)載均衡和集群是兩個(gè)概念。在一定程度上,負(fù)載均衡是包含在集群之中的。那么,隨著技術(shù)的不斷改進(jìn),現(xiàn)在我們通常把負(fù)載均衡集群一起來(lái)說(shuō),因?yàn)椋诜?wù)器方面的均衡策略總是將集群和負(fù)載均衡的概念相捆綁的。
集群技術(shù)的目標(biāo)在于通過(guò)多層網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)一步提高擴(kuò)展性、可用性與可靠性。目前應(yīng)用最為廣泛的集群計(jì)算技術(shù)包括高可用集群技術(shù)、高性能并行數(shù)據(jù)庫(kù)集群技術(shù)和高擴(kuò)展負(fù)載均衡集群技術(shù),這三種技術(shù)在實(shí)際應(yīng)用中有可能會(huì)存在同一個(gè)應(yīng)用中。
負(fù)載均衡集群技術(shù)介紹
1 技術(shù)概念
負(fù)載均衡集群:英文原文為L(zhǎng)oad Balance Cluster,簡(jiǎn)稱LB Cluster或者LB高擴(kuò)展集群,是指以維持可接受性能的前提下處理不斷提高的工作負(fù)載為目標(biāo)的服務(wù)器集群技術(shù)。
負(fù)載均衡集群主要使用在Web服務(wù)器以及中間件應(yīng)用服務(wù)器中,用來(lái)提高系統(tǒng)的高性能、可擴(kuò)展性與高可用性;在集群中增加服務(wù)器可以提升集群系統(tǒng)的處理能力,每個(gè)服務(wù)器的配置不要求完全一致。
◆高性能
一個(gè)負(fù)載均衡集群系統(tǒng)由多臺(tái)服務(wù)器組成,對(duì)外部而言,整個(gè)集群就如同一臺(tái)高性能服務(wù)器,系統(tǒng)只有一個(gè)對(duì)外的網(wǎng)絡(luò)地址(虛擬IP地址),所有對(duì)集群的請(qǐng)求都發(fā)到這個(gè)地址上。系統(tǒng)中有專門的機(jī)制能夠?qū)⑦@些請(qǐng)求按照一定原則分發(fā)到集群中的各臺(tái)服務(wù)器上,讓它們各自分擔(dān)一部分工作。
◆高擴(kuò)展性
負(fù)載均衡集群具有較好的可擴(kuò)展性,因?yàn)閿U(kuò)大系統(tǒng)規(guī)模非常容易,只要在集群中增加新的服務(wù)器即可。
◆高可用性
負(fù)載均衡集群系統(tǒng)將會(huì)在各種商業(yè)應(yīng)用領(lǐng)域中占有舉足輕重的地位。商用系統(tǒng)最重視系統(tǒng)的可靠性和容錯(cuò)性,二者合在一起稱為系統(tǒng)的可用性。常用的系統(tǒng)可用性指標(biāo)有系統(tǒng)平均無(wú)故障時(shí)間、期望不間斷工作時(shí)間及年平均故障率等。由于負(fù)載均衡集群系統(tǒng)中各臺(tái)服務(wù)器之間相對(duì)獨(dú)立,采用一些不太復(fù)雜的技術(shù)就能使集群系統(tǒng)達(dá)到很高的可用性。
2 工作原理
2.1 負(fù)載均衡集群結(jié)構(gòu)
負(fù)載均衡集群就是帶均衡策略(算法)的服務(wù)器集群,服務(wù)器稱作節(jié)點(diǎn)。負(fù)載均衡集群在多節(jié)點(diǎn)之間按照一定的算法分發(fā)網(wǎng)絡(luò)或計(jì)算處理負(fù)載。
負(fù)載均衡建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,提供一種廉價(jià)有效的方法來(lái)擴(kuò)展服務(wù)器帶寬,增加吞吐量,提高數(shù)據(jù)處理能力,同時(shí)又可以避免單點(diǎn)故障。
負(fù)載均衡集群一般的框架結(jié)構(gòu),以Web訪問(wèn)為例,多個(gè)Web服務(wù)器內(nèi)部署相同的Web內(nèi)容,Internet客戶端的訪問(wèn)請(qǐng)求首先進(jìn)入負(fù)載均衡器,然后由負(fù)載均衡器根據(jù)負(fù)載均衡算法合理地分配給某個(gè)Web服務(wù)器。
負(fù)載均衡的作用就像輪流值日制度,把任務(wù)分給大家來(lái)完成,以免讓一個(gè)人過(guò)度勞累。但是與輪流值日制度不同的是,負(fù)載均衡是一種動(dòng)態(tài)均衡,它通過(guò)一些工具實(shí)時(shí)地分析數(shù)據(jù)包,掌握網(wǎng)絡(luò)中的數(shù)據(jù)流量狀況,把任務(wù)分配出去。對(duì)于不同的應(yīng)用環(huán)境,使用的均衡策略(算法)是不同的,比如電子商務(wù)網(wǎng)站,它的計(jì)算負(fù)荷大;再如網(wǎng)絡(luò)數(shù)據(jù)庫(kù)應(yīng)用,讀寫頻繁,服務(wù)器的存儲(chǔ)子系統(tǒng)系統(tǒng)面臨很大壓力;再如視頻服務(wù)應(yīng)用,數(shù)據(jù)傳輸量大,網(wǎng)絡(luò)接口負(fù)擔(dān)重壓。所以負(fù)載均衡策略也就有了多種多樣的形式,廣義上的負(fù)載均衡既可以設(shè)置專門的網(wǎng)關(guān)、負(fù)載均衡器,也可以通過(guò)一些專用軟件與協(xié)議來(lái)實(shí)現(xiàn)。
在OSI(開發(fā)系統(tǒng)互連)七層協(xié)議模型中,第二(數(shù)據(jù)鏈路層)、第三(網(wǎng)絡(luò)層)、第四(傳輸層)、第七層(應(yīng)用層)都有相應(yīng)的負(fù)載均衡策略。在數(shù)據(jù)鏈路層上實(shí)現(xiàn)負(fù)載均衡的原理是根據(jù)數(shù)據(jù)包的目的MAC地址選擇不同的路徑;在網(wǎng)絡(luò)層上可利用基于IP地址的分配方式將數(shù)據(jù)流疏通到多個(gè)節(jié)點(diǎn);而傳輸層和應(yīng)用層的交換(Switch),本身便是一種基于訪問(wèn)流量的控制方式,能夠?qū)崿F(xiàn)負(fù)載均衡。
目前實(shí)現(xiàn)負(fù)載均衡的產(chǎn)品可以分為硬件產(chǎn)品、類硬件與軟件產(chǎn)品三大類。
◆硬件產(chǎn)品:比軟件產(chǎn)品運(yùn)行快,但價(jià)格較高。比如Alteon 公司的AD3。
◆類硬件:是指用一臺(tái)專門的服務(wù)器安裝特定的軟件來(lái)模擬硬件負(fù)載均衡器,比如在Turbo Linux操作系統(tǒng)上安裝TCS(Turbo Cluster Server)軟件。類硬件一般只用來(lái)提供網(wǎng)絡(luò)請(qǐng)求的分發(fā),而不作為功能服務(wù)器向客戶端提供服務(wù)。
◆軟件產(chǎn)品:包括Web服務(wù)器層和應(yīng)用服務(wù)器層的很多產(chǎn)品都提供了負(fù)載均衡功能。
2.2 負(fù)載均衡策略
所有的負(fù)載均衡產(chǎn)品都需要一定的負(fù)載均衡策略來(lái)實(shí)現(xiàn),負(fù)載均衡策略也被稱為負(fù)載均衡算法。目前,最常用的負(fù)載均衡算法主要有三種:輪循(Round-Robin)、最小連接數(shù)(Least Connections First)和快速響應(yīng)優(yōu)先(Faster Response Precedence)。
輪循算法,就是將來(lái)自網(wǎng)絡(luò)的請(qǐng)求依次分配給集群中的服務(wù)器進(jìn)行處理。
最小連接數(shù)算法,就是為集群中的每臺(tái)服務(wù)器設(shè)置一個(gè)記數(shù)器,記錄每個(gè)服務(wù)器當(dāng)前的連接數(shù),負(fù)載均衡系統(tǒng)總是選擇當(dāng)前連接數(shù)最少的服務(wù)器分配任務(wù)。這要比“輪循算法”好很多,因?yàn)樵谟行﹫?chǎng)合中,簡(jiǎn)單的輪循不能判斷哪個(gè)服務(wù)器的負(fù)載更低,也許新的工作又被分配給了一個(gè)已經(jīng)很忙的服務(wù)器了。
快速響應(yīng)優(yōu)先算法,是根據(jù)集群中的服務(wù)器狀態(tài)(CPU、內(nèi)存等主要處理部分)來(lái)分配任務(wù)。這一點(diǎn)很難做到,事實(shí)上到目前為止,采用這個(gè)算法的負(fù)載均衡系統(tǒng)還很少。尤其對(duì)于硬件負(fù)載均衡設(shè)備來(lái)說(shuō),只能在TCP/IP協(xié)議方面做工作,幾乎不可能深入到服務(wù)器的處理系統(tǒng)進(jìn)行監(jiān)測(cè)。但是它是未來(lái)發(fā)展的方向。
綜上所述,負(fù)載均衡集群的使用是非常廣泛的,它的核心內(nèi)容是運(yùn)用越來(lái)越科學(xué)的負(fù)載分配算法開發(fā)出軟件或硬件,來(lái)實(shí)現(xiàn)負(fù)載的更加合理地分配。