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