版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
負(fù)載均衡技術(shù)
Internet的規(guī)模每一百天就會增長一倍,客戶希望獲得7天24小時的不間斷可用性及較快的系統(tǒng)反映
時間,而不愿屢次看到某個站點“ServerTooBusy”及頻繁的系統(tǒng)故障。
網(wǎng)絡(luò)的各個核心部分隨著業(yè)務(wù)量的提高、訪問量和數(shù)據(jù)流量的快速增長,其解決能力和計算強(qiáng)度也相
應(yīng)增大,使得單一設(shè)備主線無法承擔(dān)。在此情況下,假如扔掉現(xiàn)有設(shè)備去做大量的硬件升級,這樣將導(dǎo)致現(xiàn)
有資源的浪費,并且假如再面臨下一次業(yè)務(wù)量的提高,這乂將導(dǎo)致再一次硬件升級的高額成本投入,甚至
性能再卓越的設(shè)備也不能滿足當(dāng)前業(yè)務(wù)量的需求。于是,負(fù)載均衡機(jī)制應(yīng)運而生。
負(fù)載均衡(LoadBalance)建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種便宜有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)
備和服務(wù)器的帶寬、增長吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)解決能力、提高網(wǎng)絡(luò)的靈活性和可用性。
負(fù)載均衡有兩方面的含義:一方面,大量的并發(fā)訪問或數(shù)據(jù)流量分擔(dān)到多臺節(jié)點設(shè)備上分別解決,減
少用戶等待響應(yīng)的時間;另一方面,單個重負(fù)載的運算分擔(dān)到多臺節(jié)點設(shè)備上做并行解決,每個節(jié)點設(shè)備
解決結(jié)束后,將結(jié)果匯總,返回給用戶,系統(tǒng)解決能力得到大幅度提高。
本文所要介紹的負(fù)載均衡技術(shù)重要是指在均衡服務(wù)器群中所有服務(wù)器和應(yīng)用程序之間流量負(fù)載的應(yīng)
用.目前負(fù)載均衡技術(shù)大多數(shù)是用于提高諸如在Web服務(wù)器、FTP服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器上的
Internet服務(wù)器程序的可用性和可伸縮性。
負(fù)載均衡技術(shù)分類
目前有許多不同的負(fù)載均衡技術(shù)用以滿足不同的應(yīng)用需求,下面從負(fù)載均衡所采用的設(shè)備對象、應(yīng)用
的網(wǎng)絡(luò)層次(指OSI參考模型)及應(yīng)用的地理結(jié)構(gòu)等來分類。
軟/硬件負(fù)載均衡
軟件負(fù)載均衡解決方案是指在一臺或多臺服務(wù)器相應(yīng)的操作系統(tǒng)上安裝一個或多個附加軟件來實現(xiàn)
負(fù)載均衡,如DNSLoadBalance,CheckPoinlFirewall-1ConnectConlrol等,它的優(yōu)點是基于特定環(huán)境,配置
簡樸,使用靈活,成本低廉,可以滿足一般的負(fù)載均衡需求。
軟件解決方案缺陷也較多,由于每臺服務(wù)器上安裝額外的軟件運營會消耗系統(tǒng)不定量的資源,越是功
能強(qiáng)大的模塊,消耗得越多,所以當(dāng)連接請求特別大的時候,軟件自身會成為服務(wù)器工作成敗的一個關(guān)鍵;
軟件可擴(kuò)展性并不是很好,受到操作系統(tǒng)的限制;由于操作系統(tǒng)自身的Bug,往往會引起安全訶題。
硬件負(fù)載均衡解決方案是直接在服務(wù)器和外部網(wǎng)絡(luò)間安裝負(fù)載均衡設(shè)備,這種設(shè)備我們通常稱之為負(fù)
載均衡器,由于專門的設(shè)備完畢專門的任務(wù),獨立于操作系統(tǒng),整體性能得到大量提高,加上多樣化的負(fù)
載均衡策略,智能化的流量管理,可達(dá)成最佳的負(fù)載均衡需求。
負(fù)載均衡器有多種多樣的形式;,除了作為獨立意義上的負(fù)載均衡器外,有些負(fù)載均衡器集成在互換設(shè)
備中,置于服務(wù)器與Internet鏈接之間,有些則以兩塊網(wǎng)絡(luò)適配器將這一功能集成到PC中,一塊連接到
Internet上,一塊連接到后端服務(wù)器群的內(nèi)部網(wǎng)絡(luò)上。
一般而言,硬件負(fù)教均衡在功能、性能上優(yōu)于軟件方式,但是成本昂貴。
本地/全局負(fù)載均衡
負(fù)載均衡從其應(yīng)用的地理結(jié)構(gòu)上分為本地負(fù)載均衡(LocalLoadBalance)和全局負(fù)載均衡(GlobalLoad
Balance,也叫地區(qū)負(fù)載均衡),木地負(fù)載均衡是指對本地的服務(wù)儲群做負(fù)載均衡,全局負(fù)載均真是指對分別
放置在不同的地理位置、有不同網(wǎng)絡(luò)結(jié)構(gòu)的服務(wù)器群間作負(fù)載均衡。
本地負(fù)載均衡能有效地解決數(shù)據(jù)流量過大、網(wǎng)絡(luò)負(fù)荷過重的問題,并且不需花費昂貴開支購置性能卓
越的服務(wù)器,充足運用現(xiàn)有設(shè)備,避免服務(wù)器單點故障導(dǎo)致數(shù)據(jù)流量的損失。其有靈活多樣的均衡策略把
數(shù)據(jù)流量合理地分派給服務(wù)器群內(nèi)的服務(wù)器共同承擔(dān)。即使是再給現(xiàn)有服務(wù)器擴(kuò)充升級,也只是簡樸地增
長一個新的服務(wù)器到服務(wù)群中,而不需改變現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)、停止現(xiàn)有的服務(wù)。
全局負(fù)載均衡重要用于在一個多區(qū)域擁有自己服務(wù)器的站點,為了使全球用戶只以一個1P地址或域名
就能訪問到離自己最近的服務(wù)器,從而獲得最快的訪問速度,也可用于子公司分散站點分布廣的大公司通
JiIntranet(公司內(nèi)部互聯(lián)網(wǎng))來達(dá)成資源統(tǒng)一合理分派的目的。
全局負(fù)載均衡有以下的特點:
實現(xiàn)地理位置無關(guān)性,可以遠(yuǎn)距離為用戶提供完全的透明服務(wù)。
除了能避免服務(wù)器、數(shù)據(jù)中心等的單點失效,也能避免由于ISP專線故障引起的單點失效。
解決網(wǎng)絡(luò)擁塞問題,提高服務(wù)器響應(yīng)速度,服務(wù)就近提供,達(dá)成更好的訪問質(zhì)量。
網(wǎng)絡(luò)層次上的負(fù)載均衡
針對網(wǎng)絡(luò)上偵載過重的不同瓶頸所在,從網(wǎng)絡(luò)的不同層次入手,我們可以采用相應(yīng)的位載均衡技術(shù)來
解決現(xiàn)有問題。
隨著帶寬增長,數(shù)據(jù)流量不斷增大,網(wǎng)絡(luò)核心部分的數(shù)據(jù)接口將面臨瓶頸問題,原有的單一線路將很
難滿足需求,并且線路的升級乂過于昂貴甚至難以實現(xiàn),這時就可以考慮采用鏈路聚合(Trunking)技術(shù)。
鏈路聚合技術(shù)(第二層負(fù)載均衡)將多條物理鏈路當(dāng)作一條單一的聚合邏輯鏈路使用,匣絡(luò)數(shù)據(jù)流最
由聚合邏輯鏈路中所有物理鏈路共同承擔(dān),由此在邏輯上增大了鏈路的容量,使其能滿足帶寬增長的需
求,
現(xiàn)代負(fù)載均衡技術(shù)通常操作于網(wǎng)絡(luò)的第四層或第七層。第四層負(fù)載均衡將一個Internet上合法注冊的
IP地址映射為多個內(nèi)部服務(wù)器的IP地址,對每次TCP連接請求動態(tài)使用其中一個內(nèi)部IP地址,達(dá)成負(fù)載
均衡的目的。在第四層互換機(jī)中,此種均衡技術(shù)得到廣泛的應(yīng)用,一個目的地址是服務(wù)器群V【P(虛擬IP,
VirtualIPaddress)連接請求的數(shù)據(jù)包流經(jīng)互換機(jī),互換機(jī)根據(jù)源端和目的IP地址、TCP或UDP端標(biāo)語和
一定的負(fù)載均衡策略,在服務(wù)器IP和VIP間進(jìn)行映射,選取服務(wù)器群中最佳的服務(wù)器來解決連接請求。
第七層負(fù)載均衡控制應(yīng)用層服務(wù)的內(nèi)容,提供了一種對訪問流量的高層控制方式,適合對HTTP服務(wù)
器群的應(yīng)用。第七層負(fù)載均衡技術(shù)通過檢查流經(jīng)的HTTP報頭,根據(jù)報頭內(nèi)的信息來執(zhí)行負(fù)載均衡任務(wù)。
第七層負(fù)載均衡優(yōu)點表現(xiàn)在如下幾個方面:
通過對HTTP報頭的檢查,可以檢測出HTTP400、500和600系列的錯誤信息,因而能透明地將連接
請求重新定向到另一臺服務(wù)器,避免應(yīng)用層故障。
可根據(jù)流經(jīng)的數(shù)據(jù)類型(如判斷數(shù)據(jù)包是圖像文獻(xiàn)、壓縮文獻(xiàn)或多媒體文獻(xiàn)格式等),把數(shù)據(jù)流量引向相
應(yīng)內(nèi)容的服務(wù)器來解決,增長系統(tǒng)性能。
能根據(jù)連接請求的類型,如是普通文本、圖象等靜態(tài)文檔請求,還是asp、cgi等的動態(tài)文檔請求,把相應(yīng)的
請求引向相應(yīng)的服務(wù)器來解決,提高系統(tǒng)的性能及安全性。
第七層負(fù)載均衡受到其所支持的協(xié)議限制(一般只有HTTP),這樣就限制了它應(yīng)用的廣泛性,并且檢
查HTTP報頭會占用大量的系統(tǒng)資源,勢必會影響到系統(tǒng)的性能,在大量連接請求的情況下,負(fù)載均衡設(shè)
備自身容易成為網(wǎng)絡(luò)整體性能的瓶頸。
負(fù)載均衡策略
在實際應(yīng)用中,我們也許不想僅僅是把客戶端的服務(wù)請求平均地分派給內(nèi)部服務(wù)器,而不管服務(wù)器是
否宕機(jī)。而是想使PentiumIII服務(wù)器比PentiumII能接受更多的服務(wù)請求,一臺解決服務(wù)請求較少的服務(wù)
器能分派到更多的服務(wù)請求,出現(xiàn)故障的服務(wù)器將不再接受服務(wù)請求直至故障恢復(fù)等等。
選擇合適的負(fù)載均衡策略,使多個設(shè)備能很好的共同完畢任務(wù),消除或避免現(xiàn)有網(wǎng)絡(luò)負(fù)載分布不均、
數(shù)據(jù)流量擁擠反映時間長的瓶頸<在各負(fù)載均衡方式中,針對不同的應(yīng)用需求,在OSI參考模型的第二、
三、四、七層的負(fù)載均衡都有相應(yīng)的負(fù)載均衡策略。
負(fù)載均衡策略的優(yōu)劣及其實現(xiàn)的難易限度有兩個關(guān)鍵因素:一、負(fù)載均衡算法,二、對刖絡(luò)系統(tǒng)狀況
的檢測方式和能力。
考慮到服務(wù)請求的不同類型、服務(wù)器的不同解決能力以及隨機(jī)選擇導(dǎo)致的負(fù)載分派不均勻等問題,為
了更加合理的把負(fù)載分派給內(nèi)部的多個服務(wù)器,就需要應(yīng)用相應(yīng)的可以對的反映各個服務(wù)器解決能力及網(wǎng)
絡(luò)狀態(tài)的負(fù)載均衡算法:
輪循均衡(RoundRobin):每一次來自網(wǎng)絡(luò)的請求輪流分派給內(nèi)部中的服務(wù)器,從1至N然后重新
開始。此種均衡算法適合于服務(wù)相組中的所有服務(wù)器都有相同的軟硬件配置并且平均服務(wù)請求相對均衡的
情況。
權(quán)重輪循均衡(WeightedRoundRobin):根據(jù)服務(wù)器的不同解決能力,給每個服務(wù)器分派不同的權(quán)值,使
其可以接受相應(yīng)權(quán)值數(shù)的服務(wù)請求。例如:服務(wù)器A的權(quán)值被設(shè)計成1.B的權(quán)值是3,C的權(quán)宜是6,則服
務(wù)器A.B、C將分別接受到10%、30%、60%的服務(wù)請求。此種均衡算法能保證高性能的服務(wù)器得到更多
的使用率,避免低性能的服務(wù)器負(fù)載過重。
隨機(jī)均衡(Random):把來自網(wǎng)絡(luò)的請求隨機(jī)分派給內(nèi)部中的多個服務(wù)器。
權(quán)重隨機(jī)均衡(WeightedRandom):此種均衡算法類似于權(quán)重輪循算法,但是在解決請求分擔(dān)時是
個隨機(jī)選擇的過程。
響應(yīng)速度均衡(ResponseTime):負(fù)載均衡設(shè)備對內(nèi)部各服務(wù)器發(fā)出一個探測請求(例如Ping),然
后根據(jù)內(nèi)部中各服務(wù)器對探測請求的最快響應(yīng)時間來決定哪一臺服務(wù)器來響應(yīng)客戶端的服務(wù)請求。此種均
衡算法能較好的反映服務(wù)器的當(dāng)前運營狀態(tài),但這最快響應(yīng)時間僅僅指的是負(fù)載均衡設(shè)備與服務(wù)器間的
最快響應(yīng)時間,而不是客戶端與服務(wù)器間的最快響應(yīng)時間。
最少連接數(shù)均衡(LeastConnection):客戶端的每一次請求服務(wù)在服務(wù)器停留的時間也許會有較大
的差異,隨著工作時間加長,假如采用簡樸的輪循或隨機(jī)均衡算法,每一臺服務(wù)器上的連接進(jìn)程也許會產(chǎn)
生極大的不同,并沒有達(dá)成真正的負(fù)載均衡.最少連接數(shù)均衡算法對內(nèi)部中需負(fù)載的每一臺服務(wù)器都有一
個數(shù)據(jù)記錄,記錄當(dāng)前該服務(wù)器正在解決的連接數(shù)量,當(dāng)有新的服務(wù)連接請求時,將把當(dāng)前請求分派給連
接數(shù)最少的服務(wù)器,使均衡更加符合實際情況,負(fù)載更加均衡。此種均衡算法適合長時解決的請求服務(wù),
如FTPo
解決能力均衡:此種均衡算法將把服務(wù)請求分派給內(nèi)部中解決負(fù)荷(根據(jù)服務(wù)器CPU型號、CPU數(shù)
量、內(nèi)存大小及當(dāng)前連接數(shù)等換算而成)最輕的服務(wù)器,由于考慮到了內(nèi)部服務(wù)器的解決能力及當(dāng)前網(wǎng)絡(luò)
運營狀況,所以此種均衡算法相對來說更加精確,特別適合運用到第七層(應(yīng)用層)負(fù)載均衡的情況下。
DNS響應(yīng)均衡(FlashDNS):在Internet上,無論是HTTP、FTP或是其它的服務(wù)請求,客戶端一般
都是通過域名解析來找到服務(wù)器確切的IP地址的。在此均衡算法下,分處在不同地理位置的負(fù)載均衡設(shè)
備收到同一個客戶端的域名解析請求,并在同一時間內(nèi)把此域名解析成各自相相應(yīng)服務(wù)器的IP地址(即
與此負(fù)載均衡設(shè)備在同一位地理位置的服務(wù)器的IP地址)并返回給客戶端,則客戶端將以最先收到的域
名解析IP地址來繼續(xù)請求服務(wù),而忽略其它的IP地址響應(yīng)。在種均衡策略適合應(yīng)用在全局負(fù)載均衡的情
況下,對本地負(fù)裁均衡是沒故意義的。
盡管有多種的負(fù)載均衡算法可以較好的把數(shù)據(jù)流量分派給服務(wù)器去負(fù)載,但假如負(fù)載均衡策略沒有對
網(wǎng)絡(luò)系統(tǒng)狀況的檢測方式和能力,一旦在某臺服務(wù)器或某段負(fù)載均衡設(shè)備與服務(wù)器網(wǎng)絡(luò)間出現(xiàn)故障的情況
下,負(fù)載均衡設(shè)備仍然把一部分?jǐn)?shù)據(jù)流量引向那臺服務(wù)器,這勢必導(dǎo)致大量的服務(wù)請求被丟失,達(dá)不到不
間斷可用性的規(guī)定。所以良好的負(fù)載均衡策略應(yīng)有對網(wǎng)絡(luò)故障、服務(wù)器系統(tǒng)故障、應(yīng)用服務(wù)故障的檢測方
式和能力:
Ping偵測:通過ping的方式檢測服務(wù)器及網(wǎng)絡(luò)系統(tǒng)狀況,此種方式簡樸快速,但只能大體檢測出網(wǎng)絡(luò)
及服務(wù)器上的操作系統(tǒng)是否正常,對服務(wù)器上的應(yīng)用服務(wù)檢測就無能為力了。
TCPOpen偵測:每個服務(wù)都會開放某個通過TCP連接,檢測服務(wù)器上某個TCP端口(如Telnet的
23口,HTTP的80口等)是否開放來判斷服務(wù)是否正常。
HTTPURL偵測:比如向HTTP服務(wù)器發(fā)出一個對main.html文獻(xiàn)的訪問請求,假如收到錯誤信息,
則認(rèn)為服務(wù)器出現(xiàn)故障。
負(fù)載均衡策略的優(yōu)劣除受上面所講的兩個因索影響外,在有些應(yīng)用情況下,我們需要將來自同一客戶
端的所有請求都分派給同一臺服務(wù)器去承擔(dān),例如服務(wù)器將客戶端注冊、購物等服務(wù)請求信息保存的本地
數(shù)據(jù)庫的情況下,把客戶端的子請求分派給同一臺服務(wù)器來解決就顯的至關(guān)重要了。有兩種方式可以解決
此問題,一是根據(jù)IP地址把來自同一客戶端的多次請求分派給同一臺服務(wù)器解決,客戶端1P地址與服務(wù)器
的相應(yīng)信息是保存在負(fù)載均衡設(shè)備上的;二是在客戶端瀏覽器cookie內(nèi)做獨一無二的標(biāo)記來把多次請求分
派給同一臺服務(wù)器解決,適合通過代理服務(wù)器上網(wǎng)的客戶端。
尚有一種途徑外返回模式(Ouio「PalhReturn),當(dāng)客戶端連接請求發(fā)送給負(fù)載均衡設(shè)備的時候,中心
負(fù)載均衡設(shè)備將請求引向某個服務(wù)器,服務(wù)器的回應(yīng)請求不再返回給中心負(fù)載均衡設(shè)備,即繞過流量分派
器,直接返回給客戶端,因此中心負(fù)載均衡設(shè)備只負(fù)責(zé)接受并轉(zhuǎn)發(fā)請求,其網(wǎng)絡(luò)承擔(dān)就減少了很多,并且
給客戶端提供了更快的響應(yīng)時間.此種模式一般用于HTTP服務(wù)器群,在各服務(wù)器上要安裝一塊虛擬網(wǎng)絡(luò)
適配器,并將其【P地址設(shè)為服務(wù)器群的VIP,這樣才干在服務(wù)器直接回應(yīng)客戶端請求時順利的達(dá)成三次握
手,
負(fù)載均衡實行要素
負(fù)載均衡方案應(yīng)是在網(wǎng)站建設(shè)初期就應(yīng)考慮的問題,但是有時隨著訪問流量的爆炸性增長,超過決策
者的意料,這也就成為不得不面對的問題。當(dāng)我們在引入某種負(fù)載均衡方案乃至具體實行時,像其他的許
多方案同樣,一方面是擬定當(dāng)前及將來的應(yīng)用需求,然后在代價與收效之間做出權(quán)衡。
針對當(dāng)前及將來的應(yīng)用需求,分析網(wǎng)絡(luò)瓶頸的不同所在,我們就需要確立是采用哪一類的負(fù)載均衡技術(shù),
采用什么樣的均衡策略,在可用性、兼容性、安全性等等方面要滿足多大的需求,如此等等。
不管負(fù)載均衡方案是采用花費較少的軟件方式,還是購買代價高昂在性能功能上更強(qiáng)的第四層互換機(jī)、負(fù)
載均衡器等硬件方式來實現(xiàn),亦或其他種類不同的均衡技術(shù),下面這幾項都是我們在引入均衡方案時也許
要考慮的問題:
1、性能:性能是我們在引入均衡方案時需要重點考慮的問題,但也是一個最難把握的問題。衡量性能時可
將每秒鐘通過網(wǎng)絡(luò)的數(shù)據(jù)包數(shù)目做為一個參數(shù),另一個參數(shù)是均衡方案中服務(wù)器群所能解決的最大并發(fā)連
接數(shù)目,但是,假設(shè)一個均衡系統(tǒng)能解決百萬計的并發(fā)連接數(shù),可是卻只能以每秒2個包的速率轉(zhuǎn)發(fā),這顯
然是沒有任何作用的。性能的優(yōu)劣與負(fù)載均衡設(shè)備的解決能力、采用的均衡策略息息相關(guān),并且有兩點需
要注意:一、均衡方案對服務(wù)器群整體的性能,這是響應(yīng)客戶端連接請求速度的關(guān)鍵;二、負(fù)載均衡設(shè)備
自身的性能,避免有大量連接請求時自身性能局限性而成為服憲瓶頸。有時我們也可以考慮采用混合型負(fù)
我均衡策略來提高服務(wù)器群的總體性能,如DNS負(fù)載均衡與NAT負(fù)載均衡相結(jié)合。此外,針對有大量靜
態(tài)文檔請求的站點,也可以考慮采用高速緩存技術(shù),相對來說更節(jié)省費用,更能提高響應(yīng)性能;對有大量
ssl/xml內(nèi)容傳輸?shù)恼军c,更應(yīng)考慮采用ssl/xml加速技術(shù)。
2、可擴(kuò)展性:IT技術(shù)日新月異,一年以前最新的產(chǎn)品,現(xiàn)在或許已是網(wǎng)絡(luò)中性能最低的產(chǎn)品;業(yè)務(wù)量的急
速上升,一年前的網(wǎng)絡(luò),現(xiàn)在需要新一輪的擴(kuò)展。合適的均衡解決方案應(yīng)能滿足這些需求,能均衡不同操作
系統(tǒng)和硬件平臺之間的負(fù)載,能均衡HTTP、郵件、新聞、代理、數(shù)據(jù)庫、防火墻和Cache筆不同服務(wù)器
的負(fù)載,并且能以對客戶端完全透明的方式動態(tài)增長或刪除某些資源。
靈活性:均衡解決方案應(yīng)能靈活地提供不同的應(yīng)用需求,滿足應(yīng)用需求的不斷變化.在不同的服務(wù)器群有
不司的應(yīng)用需求時,應(yīng)有多樣的均衡策略提供更廣泛的選擇。
可靠性:在對服務(wù)質(zhì)量規(guī)定較高的站點,負(fù)載均衡解決方案應(yīng)能為服務(wù)器群提供完全的容錯性和高可用性。
但在負(fù)載均衡設(shè)備自身出現(xiàn)故障時,應(yīng)當(dāng)有良好的冗余解決方案,提高可靠性。使用冗余時,處在同一個冗
余單元的多個負(fù)載均衡設(shè)備必須具有有效的方式以便互相進(jìn)行監(jiān)控,保護(hù)系統(tǒng)盡也許地避免遭受到重大故
障的損失。
3、易管理性:不管是通過軟件還是硬件方式的均衡解決方案,我們都希望它有靈活、直觀和安全的管理方
式.這樣便于安裝、配置、維護(hù)和監(jiān)控,提高工作效率,避免差錯。在硬件負(fù)載均衡設(shè)備上,目前重要有三
種管理方式可供選擇:一、命令行接口(CLI:CommandLineInterface),可通過超級終端連接負(fù)載均衡
設(shè)備串行接口來管理,也能telnet遠(yuǎn)程登錄管理,在初始化配置時,往往要用到前者;二、圖形用戶接口
(GUI:GraphicalUserInterfaces),有基于普通web頁的管理,也有通過JavaApplet進(jìn)行安全管理,一般
都需要管理端安裝有,某個版木的瀏覽器;三,SNMP(SimpleNetworkManagementProtocol,簡樸網(wǎng)絡(luò)管理
協(xié)議)支持,通過第三方網(wǎng)絡(luò)管理軟件對符合SNMP標(biāo)準(zhǔn)的設(shè)備進(jìn)行管理。
負(fù)載均衡配置實例
DNS負(fù)載均衡
DNS負(fù)載均衡技術(shù)是在DNS服務(wù)器中為同一個主機(jī)名配置多個IP地址,在應(yīng)答DNS查詢時.DNS服
務(wù)器對每個查詢將以DNS文獻(xiàn)中主機(jī)記錄的IP地址按順序返回不同的解析結(jié)果,將客戶端的訪問引導(dǎo)到
不司的機(jī)器上去,使得不同的客戶端訪問不同的服務(wù)器,從而達(dá)成負(fù)載均衡的目的。
DNS負(fù)我均衡的優(yōu)點是經(jīng)濟(jì)簡樸易行,并且服務(wù)器可以位于inlernet上任意的位置。但它也存在不少
缺陷:
為了使本DNS服務(wù)器和其他DNS服務(wù)器及時交互,保證DNS數(shù)據(jù)及時更新,使地址能隨機(jī)分派,一般都
要將DNS的刷新時間設(shè)立的較小,但太小將會使DNS流量大增導(dǎo)致額外的網(wǎng)絡(luò)問題。
一旦某個服務(wù)器出現(xiàn)故障,即使及時修改了DNS設(shè)立,還是要等待足夠的時間(刷新時間)才干發(fā)揮作用,
在此期間,保存了故障服務(wù)器地址的客戶計算機(jī)將不能正常訪問服務(wù)器。
DNS負(fù)載均衡采用的是簡樸的輪循負(fù)載算法,不能區(qū)分服務(wù)器的差異,不能反映服務(wù)器的當(dāng)前運營狀態(tài),
不能做到為性能較好的服務(wù)器多分派請求,甚至?xí)霈F(xiàn)客戶請求集中在某一臺服務(wù)器上的情況。
要給每臺服務(wù)器分派一個internet上的IP地址,這勢必會占用過多的IP地址。
判斷一個站點是否采用了DNS負(fù)載均衡的最簡樸方式就是連續(xù)的ping這個域名,假如多次解析返回
的IP地址不相同的話,那么這個站點就很也許采用的就是較為普遍的DNS負(fù)載均衡。但也不一定,由于假
如采用的是DNS響應(yīng)均衡,多次解析返回的IP地址也也許會不相同。不妨試試Ping下.cuM.cw
現(xiàn)假設(shè)有三臺服務(wù)器來應(yīng)對tom的請求。在采用BIND8.xDNS服務(wù)器的umx系統(tǒng)上實現(xiàn)起來比較簡
樸,只需在該域的數(shù)據(jù)記錄中添加類似下面的結(jié)果:
wwwlINA
www2INA
www3INA
wv/wINCNAMEwww1
wv/wINCNAMEw\vw2
wv/wINCNAMEwww3
在NT下的實現(xiàn)也很簡樸,下面具體介紹在win2023server下實現(xiàn)DNS負(fù)載均衡的過程,NT4.0類似:
打開“管理工具”下的“DNS”,進(jìn)入DNS服務(wù)配置控制臺。
打開相應(yīng)DNS服務(wù)器的“屬性”,在“高級”選項卡的“服務(wù)器選項”中,選中“啟用循環(huán)”復(fù)選框。此
步相稱于在注冊表記錄HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters中
添加一個雙字節(jié)制值(dword值)RoundRobin,值為1。
打開正向搜索區(qū)域的相應(yīng)區(qū)域(如),新建主機(jī)添加主機(jī)(A)資源記錄,記錄如卜.:
wwwINA
wwwINA
wwwINA
在這里可以看到的區(qū)別是在NT卜一個主機(jī)名相應(yīng)多個IP地址記錄,但在unix卜,是先添加多個不同的主
機(jī)名分別相應(yīng)個自的IP地址,然后再把這些主機(jī)賦同一個別名(CNAME)米實現(xiàn)的。
在比需要注意的是,NT下木地子網(wǎng)優(yōu)先級會取代多宿主名稱的循環(huán)復(fù)用,所以在測試時,假如做測試用的
客戶機(jī)IP地址與主機(jī)資源記錄的IP在同一有類掩碼范圍內(nèi),就需要清除在“高級”選項卡“服務(wù)器選項”
中的“啟用netmask排序”。
NAT負(fù)載均衡
NAI'(NetworkAddressIranslation網(wǎng)絡(luò)地址轉(zhuǎn)換)簡樸地說就是將一個IP地址轉(zhuǎn)換為另一個IP地址,
一般用于未經(jīng)注冊的內(nèi)部地址與合法的、已獲注冊的InternetIP地址間進(jìn)行轉(zhuǎn)換。合用于解決InternetIP
地址緊張、不想讓網(wǎng)絡(luò)外部知道由部網(wǎng)絡(luò)結(jié)構(gòu)等的場合下。每次NAT轉(zhuǎn)換勢必會增長NAT設(shè)備的開銷,但
這種額外的開銷對于?大多數(shù)網(wǎng)絡(luò)來說都是微局限性道的,除非在高帶寬有大量NAT請求的網(wǎng)絡(luò)上。
NAT負(fù)載均衡將一個外部IP地址映射為多個內(nèi)部IP地址,對每次連接請求動態(tài)地轉(zhuǎn)換為一個內(nèi)部服
務(wù)器的地址,將外部連接請求引到轉(zhuǎn)換得到地址的那個服務(wù)器匕從而達(dá)成負(fù)載均衡的目的。
NAT負(fù)載均衡是一種比較完善的負(fù)載均衡技術(shù),起著NAT負(fù)載均衡功能的設(shè)備一般處在內(nèi)部服務(wù)器
到外部網(wǎng)間的網(wǎng)關(guān)位置,如路由器、防火墻、四層互換機(jī)、專用負(fù)載均衡器等,均衡算法也較靈活,如隨機(jī)
選擇、最少連接數(shù)及響應(yīng)時間等來分派負(fù)載。
NAT負(fù)載均衡可以通過軟硬件方式來實現(xiàn)。通過軟件方式來實現(xiàn)NAT負(fù)載均衡的設(shè)備往往受到帶寬
及系統(tǒng)自身解決能力的限制,由于NAT比較接近網(wǎng)絡(luò)的低層,因此就可以將它集成在硬件設(shè)備中,通常這
樣的硬件設(shè)備是第四層互換機(jī)和專用負(fù)載均衡器,第四層互換機(jī)的?項重要功能就是NAT負(fù)載均衡。
下面以實例介紹一下Cisco路由器NAT負(fù)載均衡的配置:
現(xiàn)有一臺有一個串行接口和一個Ethernet接口的路由器,Ethernet口連接到內(nèi)部網(wǎng)絡(luò),內(nèi)部網(wǎng)絡(luò)上有三
臺web服務(wù)器,但都只是低端配置,為了解決好來自Inlernet上大量的web連接請求,因此需要在此路由器
上做NAT負(fù)載均衡配置.,把發(fā)送到web服務(wù)器合法InternetIP地址的報文轉(zhuǎn)換成這三臺服務(wù)器的內(nèi)部本地
地址。其具體配置過程如下:
做好路由器的基本配置,并定義各個接口在做NAT時是內(nèi)部還是外部接口.
然后定義一個標(biāo)準(zhǔn)訪問列表(standardaccesslisl),用來標(biāo)記要轉(zhuǎn)換的合法IP地址。
再定義NAT地址池來標(biāo)記內(nèi)部web服務(wù)器的本地地址,注意要用到關(guān)鍵字roiary,表白我們要使用輪循
(RoundRobin)的方式從NAT地址池中取出相應(yīng)IP地址來轉(zhuǎn)換合法IP報文。
最后,把H的地址為訪問表中IP的報文轉(zhuǎn)換成地址池中定義的IP地址。
相應(yīng)配置文獻(xiàn)如下:
interfaceEthemetO/O
ipaddress48
ipnatinside
i
interfaceSerial0/0
ipaddress48
ipnatoutside
!
ipaccess-list1permit
ipnatpoolwebsrvnetmask48typerotary
ipnatinsidedestinationlist1poolwebsrv
所有發(fā)往目的地址為
webserveri200.200.1.2的報文將以輪循
192.168.1.1的方式引到內(nèi)部三臺服務(wù)器上
internet
webserver2en0:192.168.1.4/29
192.168.1.2sr0:200.200.1.1/29
webserver3
192.168.1.3
反向代理負(fù)載均衡
普通代理方式是代理內(nèi)部網(wǎng)絡(luò)用戶訪問internet上服務(wù)器的連接請求,客戶端必須指定代理服務(wù)器,并
將本來要直接發(fā)送到internet上服務(wù)器的連接請求發(fā)送給代理服務(wù)器解決。
反向代理(ReverseProxy)方式是指以代理服務(wù)器來接受internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)
部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端,此時代理服務(wù)器對外
就表現(xiàn)為?個服務(wù)器。
反向代理負(fù)載均衡技術(shù)是把將來自internet上的連接請求以反向代理的方式動態(tài)地轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上
的多臺服務(wù)器進(jìn)行解決,從而達(dá)成負(fù)載均衡的目的。
反向代理負(fù)教均衡能以軟件方式來實現(xiàn),如叩achemod_proxy、netscapeproxy等,也可以在高速緩存
器、負(fù)載均衡器等硬件設(shè)備上實現(xiàn)。反向代理負(fù)載均衡可以將優(yōu)化的負(fù)載均衡策略和代理服務(wù)器的高速
緩存技術(shù)結(jié)合在一起,提高靜態(tài)網(wǎng)頁的訪問速度,提供有益的性能;由于網(wǎng)絡(luò)外部用戶不能直接訪問真實
的服務(wù)器,具有額外的安全性(同理,NAT負(fù)載均衡技術(shù)也有此優(yōu)點)。
其缺陷重要表現(xiàn)在以下兩個方面:
反司代理是處在OSI參考模型第七層應(yīng)用的,所以就必須為每一種應(yīng)用服務(wù)專門開發(fā)一個反向代理服務(wù)器,
這樣就限制了反向代理負(fù)載均衡技術(shù)的應(yīng)用范圍,現(xiàn)在一般都用于對web服務(wù)器的負(fù)載均衡。
針對每一次代理,代理服務(wù)器就必須打開兩個連接,一個對外,一個對內(nèi),因此在并發(fā)連接請求數(shù)量非常
大的時候,代理服務(wù)器的負(fù)載也就非常大了,在最后代理服務(wù)器自身會成為服務(wù)的瓶頸。
?般來講,可以用它來對連接數(shù)量不是特別大,但每次連接都需要消耗大量解決資源的站點進(jìn)行負(fù)載
均衡,如searcho
下面以在叩achemod_proxy下做的反向代理負(fù)載均衡為配置實例:在站點.com,我們按提供的內(nèi)容進(jìn)
行分類,不同的服務(wù)器用于提供不同的內(nèi)容服務(wù),將對,對,對,對:〃.com上,從而減輕本apache服務(wù)器的
承擔(dān),達(dá)成負(fù)載均衡的目的。
,方面要擬定域名.com在DNS上的記錄相應(yīng)apache服務(wù)器接口上具有internet合法注冊的IP地址,這
樣才干使internet卜對.com的所有連接請求發(fā)送給本臺apache服務(wù)器4
在本臺服務(wù)器的叩ache配置文獻(xiàn)httpd.conf中添加如下設(shè)立:
proxypass/news
proxypass/il
proxypass/life
proxypass/love
注意,此項設(shè)立最佳添加在httpd.conf文獻(xiàn)“Section2”以后的位置,服務(wù)器-3也應(yīng)是具有
相應(yīng)功能的www服務(wù)器,在重啟服務(wù)時,最佳用apachecllconfigtesi命令檢查一下配置是否有誤.
混合型負(fù)載均衡
在有些大型網(wǎng)絡(luò),由于多個服務(wù)器群內(nèi)硬件設(shè)備、各自的規(guī)模、提供的服務(wù)等的差異,我們可以考慮
給每個服務(wù)器群采用最合適的負(fù)載均衡方式,然后又在這多個服務(wù)器群間再?次負(fù)載均衡或群集起來以?
個整體向外界提供服務(wù)(即把這多個服務(wù)器群當(dāng)做一個新的服務(wù)器群),從而達(dá)成最佳的性能。我們將這
種方式稱之為混合型負(fù)載均衡。此種方式有時也用于單臺均衡設(shè)備的性能不能滿足大量連接請求的情況
下,
卜圖展示了一個應(yīng)用示例,三個服務(wù)器群針對各自的特點,分別采用了不同的負(fù)載均衡方式。當(dāng)客戶
端發(fā)出域名解析請求時,DNS服務(wù)器依次把它解析成三個服務(wù)器群的V1P,如此把客戶端的連接請求分別
引句三個服務(wù)器群,從而達(dá)成了再一次負(fù)載均衡的目的。
在圖中大家也許注意到,負(fù)載均衡設(shè)備在網(wǎng)絡(luò)拓樸上,可以處在外部網(wǎng)和內(nèi)部網(wǎng)絡(luò)間網(wǎng)美的位置,也
可以和內(nèi)部服務(wù)器群處在并行的位置.,甚至可以處在內(nèi)部網(wǎng)絡(luò)或internei上的任意位置,特別是在采用群集
負(fù)載均衡時,主線就沒有單獨的負(fù)載均衡設(shè)備。
服務(wù)器群內(nèi)各服務(wù)器只有提供相同內(nèi)容的服務(wù)才有負(fù)載均衡的意義,特別是在DNS負(fù)載均衡時。要不
然:這樣會導(dǎo)致大量連接請求的丟失或由于多次返回內(nèi)容的不同給客戶導(dǎo)致混亂.
所以,如圖的這個示例在實際中也許沒有多大的意義,由于如此大的服務(wù)內(nèi)容相同但各服務(wù)器群存在
大量差異的網(wǎng)站并不多見。但做為一個示例,相信還是很有參考意義的.
DNS服務(wù)器以輪循解析的方式將
客戶端清求5I向不同的負(fù)載均衡
設(shè)備,然后負(fù)載均衡設(shè)備又對各
負(fù)載均衡服務(wù)器自的服務(wù)器群做負(fù)載均衡。
服務(wù)器群
群集負(fù)載均衡
IIIIIII□
服務(wù)器群
___D
負(fù)載均衡服務(wù)器
服務(wù)器群
負(fù)載均衡技術(shù)之負(fù)載均衡器簡介
負(fù)載均衡器可以根據(jù)實際的響應(yīng)時間制定優(yōu)先級交付決策,從而實現(xiàn)高性能、智能化流量管理,達(dá)成
最佳的服務(wù)器群性能。采用第七層應(yīng)用控制還可以減少通信高峰期的錯誤訊息,由于差錯控制和流最管理
技術(shù)可以偵測到一些錯誤信息,并透明地將會話重定向到另一個服務(wù)器,使用戶順利地進(jìn)行使用。例如,服
務(wù)器A不可用或者數(shù)據(jù)庫出現(xiàn)錯誤,錯誤信息將會返回到負(fù)載均衡器上,然后會將客戶的訪問指向服務(wù)器
B或者將消息重放到其他數(shù)據(jù)庫中去,整個過程對用戶是透明的。
目前,許多廠商推出了專用于平衡服務(wù)器負(fù)載的負(fù)載均衡器。目前負(fù)載均衡器生產(chǎn)商有:Intel、Alteon
Web>ArrowPoinl(已被思科并購).CoyotePoint、F5NetworksFoundryNetworksHydraWeb以及RADWare
等,
負(fù)載均衡器的形式多種多樣,作為啟動器,它以各種形式和大小出現(xiàn)。一些廠商,WAlteon.ArrowPoint,
將負(fù)載均衡器集成到互換設(shè)備中,置于服務(wù)器與Internet鏈接之間;而此外一些廠商,如CoyotePoint、F5
Networks以及HydraWeb,則運用兩塊網(wǎng)絡(luò)適配器將這一功能集成到PC中,其中一塊連接到前端止于Web
服務(wù)器的Hub上,另一塊通過路由器或其他設(shè)備連接到Iniemet上。一旦負(fù)載均衡設(shè)備檢測到所管理的每
臺服務(wù)器承載的負(fù)荷量,它會按照?定的算法來分派通信。ArrowPoint公司的CS-100、F5的Big/ip、以
及CoyotePoint公司的均衡器都支持循環(huán)均衡功能。其解決方法是,均衡器同時向所有可用服務(wù)器以命令
序列方式發(fā)送相同數(shù)量的請求。Alteon的AceSwitch180^CoyotePoint的均衡器、F5Networks的Big/ip
以及RADWare的Web服務(wù)定向器支持這樣一種均衡方法:它能以最小的TCP鏈接將請求發(fā)送到服務(wù)器。
ArrowPoint的CS-100還支持靜態(tài)負(fù)荷均衡選項,這就是說,為服務(wù)器分派請求是建立在事先已指定負(fù)荷
量的基礎(chǔ)之上的。
舉個簡樸例子,使用Pentium300的機(jī)器應(yīng)比Pentium200承載更多的請求。
山于采用了負(fù)載均衡技術(shù),自動故障恢復(fù)得以實現(xiàn),服務(wù)的時間可以延長,24X7可靠性和連續(xù)運營成
為也許。此外,負(fù)載均衡器一股也支持途徑外返回模式,即繞過流量分派器,為那些焦急等待大量數(shù)據(jù)文獻(xiàn)
請求響應(yīng)的客戶提供更快的響應(yīng)E寸間。
總之,假如負(fù)載均衡需求簡樸,也就是說,只是接近于通過所有服務(wù)器的“共享”級水平,并且網(wǎng)絡(luò)環(huán)
境也只是由低速LAN組成,則不需要太高級的均衡產(chǎn)品。同樣的,若是靜態(tài)內(nèi)容傳輸,則只要具有循環(huán)分
派功能的負(fù)載均衡器也就可以了,
在最新的負(fù)載均衡產(chǎn)品中,智能化越來越明顯。一些智能化的負(fù)載均衡器可以偵測到像數(shù)據(jù)庫錯誤、
服務(wù)器不可用等信息,從而采用措施使會話恢復(fù)和重定向服務(wù)器,使電子商務(wù)可以得以順利進(jìn)行。多址負(fù)
載均衡器可以對客戶發(fā)來的訪問請求進(jìn)行解析,計算出最佳地址,然后將該地址返回客戶,使客戶自動連
接到對其請求來說最佳的數(shù)據(jù)中心。
典型產(chǎn)品:Intel網(wǎng)擎負(fù)載均衡器
負(fù)載均衡服務(wù)具體分為本地負(fù)載均衡服務(wù)和遠(yuǎn)程負(fù)載均衡服務(wù)。英特爾公司的網(wǎng)擎(IntelNe【Siruclure)7170
網(wǎng)絡(luò)應(yīng)用負(fù)載均衡器,可應(yīng)用于本地負(fù)載均衡服務(wù)。該設(shè)備可以平衡服務(wù)器群中所有的服務(wù)器和應(yīng)用之間
的通信負(fù)載,根據(jù)實時響應(yīng)時間進(jìn)行判斷,將任務(wù)交由負(fù)載最輕的服務(wù)器來解決,以實現(xiàn)真正的智能通信
管理和優(yōu)秀的服務(wù)器群性能。服務(wù)器故障切換和多重冗余特性可以讓通信繞過故障點,從而使用戶站點始
終保持運營和可訪問性。并且,每次提供負(fù)載均衡服務(wù)后,7170網(wǎng)絡(luò)應(yīng)用負(fù)載均衡器都有記錄,天天都會自
動生成一個報告,客戶通過這一報告還能了解流量的分布情況。
英特爾網(wǎng)擎系列中的7190多址負(fù)載均衡器可用于遠(yuǎn)程負(fù)載均衡服務(wù)。這一設(shè)備針對擁有多個網(wǎng)站地址的
公司進(jìn)行專門設(shè)計,可以根據(jù)單個URL地址將通信路由到方便可用的站點,從而實現(xiàn)廣域網(wǎng)范圍的負(fù)載平
衡,為了提高響應(yīng)速度,7190采用“快速響應(yīng)模式”,使所有的站點都能對同一用戶的訪問請求作出響應(yīng),
響應(yīng)最快的站點將接受并完畢這一訪問任務(wù),而不是在發(fā)生用戶請求時計算“最快”的路由因而產(chǎn)生額外
的延遲時間。管理員可以采用這種模式保證很短的服務(wù)器響應(yīng)時間,也可以選擇對用戶滿意度產(chǎn)生更大影
響的其他算法。系統(tǒng)在后臺收集多站點狀態(tài)信息,如服務(wù)器響應(yīng)時間、通信量、本地系統(tǒng)狀態(tài),從而使7190
可以立即擬定每個數(shù)據(jù)中心的狀態(tài),并將訪問導(dǎo)向最佳站點。
IDC機(jī)房的負(fù)載均衡服務(wù)
大部分的個人網(wǎng)站在一開始或許只是跟幾十人上百人共享的一個虛擬主機(jī)空間,然后隨著內(nèi)容的增長
和訪問量的增長,虛擬主機(jī)的帶寬、空間已經(jīng)不能滿足需求,站長就得開始考慮為網(wǎng)站購置一臺獨立的服
務(wù)器,使用100M共享甚至是10M獨享帶寬;而當(dāng)網(wǎng)站繼續(xù)發(fā)展,訪問的用戶也已經(jīng)遍布大江南北,站長
又得考慮電信網(wǎng)通的互通問題,在南方和北方各放置一臺服務(wù)器作為鏡像站點,或是采用雙線接入;當(dāng)這
個網(wǎng)站訪問量更大時,一味的增長帶寬和設(shè)立鏡像站點無疑會使網(wǎng)站運營成本劇增,加上單個服務(wù)器自身
也有性能和線程的瓶頸,在并發(fā)訪問量較大并且集中在一臺服務(wù)器的時候,”Server2。busy”就出現(xiàn)「而
這時站長應(yīng)當(dāng)采用什么方式使得網(wǎng)站在高訪問量的時候仍然擁有較好的訪問效果呢?這就牽涉到負(fù)載
均衡的話題。
我們之前討論過CDN,其實CDN除了加速之外,也具有分流的效果,因此在負(fù)載均衡領(lǐng)域也有不少應(yīng)
用,其實基本上緩存(Cache)+鏡像技術(shù)都有分流作用,但是如何分流還是需要?個負(fù)載均衡設(shè)備進(jìn)行引
導(dǎo),所以,我們今天專門討論負(fù)載均衡技術(shù)。
關(guān)于負(fù)載均衡服務(wù)
負(fù)載均衡服務(wù)可以平衡服務(wù)器群中的所有的服務(wù)器和應(yīng)川之間的通信負(fù)載,根據(jù)實時響應(yīng)時間進(jìn)行判
斷將任務(wù)交由負(fù)載最輕的服務(wù)器來解決,以實現(xiàn)真正的智能通信管理和最佳的服務(wù)器群性能。負(fù)載均衡
技術(shù)控制第四層到第七層的應(yīng)用/內(nèi)容,從而對不同類型的客戶和應(yīng)用實現(xiàn)了優(yōu)先級劃分和差別服務(wù),使用
第七層智能會話恢復(fù)技術(shù),同時可以檢測出HTTP400,500和600系列的錯誤。它透明地將交易重新定向到
另一臺服務(wù)器,從而使系統(tǒng)可以完畢該交易。服務(wù)器故障切換和多重冗余特性可以讓通信繞過故障點,從
而使網(wǎng)站始終保持運營和可訪問性。
實現(xiàn)負(fù)載均衡的方法
關(guān)于實現(xiàn)負(fù)載均衡的方法,網(wǎng)上也有不少相關(guān)討論,以下做一些引用:
1.基于特定服務(wù)器軟件的負(fù)教均衡
很多網(wǎng)絡(luò)協(xié)議都支持“重定向”功能,例如在H1TP協(xié)議中支持Locat2n指令,接受到這個指令的瀏
覽器將自動重定向到Location指明的另一個URL上。由于發(fā)送Location指令比起執(zhí)行服務(wù)請求,對Web
服務(wù)器的負(fù)載要小的多,因此可以根據(jù)這個功能來設(shè)計一種負(fù)載均衡的服務(wù)器。
任何時候Web服務(wù)器認(rèn)為自己負(fù)載較大的時候,它就不再宜接發(fā)送回瀏覽器請求的網(wǎng)頁,而是送回一個
Location指令,讓瀏覽器去服務(wù)器集群中的其他服務(wù)器上獲得所需要的網(wǎng)頁。
在這種方式下,服務(wù)器自身必須支持這種功能,然而具體實現(xiàn)起來卻有很多困難,例如一臺服務(wù)器如
何能保證它重定向過的服務(wù)器是比較空閑的,并且不會再次發(fā)送Location指令,Location指令和瀏覽器都沒
有這方面的支持能力,這樣很容易在瀏覽器上形成一種死循環(huán)。
因此這種方式實際應(yīng)用當(dāng)中并不多見,使用這種方式實現(xiàn)的服務(wù)器集群軟件也較少。有些特定情況下
可以使用CGI(涉及使用FastCGI或mod_perl擴(kuò)展來改善性能)來模擬這種方式去分擔(dān)負(fù)載,而Web服務(wù)器
仍然保持簡潔、高效的特性,此時避免Location循環(huán)的任務(wù)將由用戶的CGI程序來承擔(dān)。
2.基于DNS的負(fù)載均衡
由于基于服務(wù)器軟件的負(fù)載均衡需要改動軟件,因此經(jīng)常是得不償失,負(fù)載均衡最佳是在服務(wù)器軟件
之外來完畢,這樣才干運用現(xiàn)有服務(wù)器軟件的種種優(yōu)勢。最早的負(fù)載均衡技術(shù)是通過DNS服務(wù)中的隨機(jī)名
字解析來實現(xiàn)的,在DNS服務(wù)器中,可認(rèn)為多個不同的地址配置同一個名字,而最終查詢這個名字的客戶
機(jī)將在解析這個名字時得到其中的一個地址。因此,對于同一個名字,不同的客戶機(jī)會得到不同的地址,他
們也就訪問不同地址上的Web服務(wù)器,從而達(dá)成負(fù)載均衡的目的。
例如假如希望使用=/、Weh服務(wù)器來問應(yīng)對met的HTTP請求,就可以設(shè)立該域的DNS服務(wù)器中關(guān)于
該域的數(shù)據(jù)涉及有與下面例子類似的結(jié)果:
wwwlINA
www2INA
www3INA
wwwINCNAMEwww1
wwwINCNAMEwww2
wwwINCNAMEwww3
此后外部的客戶機(jī)就也許隨機(jī)的得到相應(yīng)WWW的不同地址,那么隨后的HTTP請求也就發(fā)送給不同
地址了。
DNS負(fù)載均衡的優(yōu)點是簡樸、易行.并且服務(wù)器可以位于互聯(lián)網(wǎng)的任意位置上.當(dāng)前使用在涉及
Yahoo在內(nèi)的Web站點上。然而它也存在不少缺陷,一個缺陷是為了保證DNS數(shù)據(jù)及時更新,一般都要將
DNS的刷新時間設(shè)立的較小,但太小就會導(dǎo)致太大的額外網(wǎng)絡(luò)流量,并且更改了DNS數(shù)據(jù)之后也不能立即
生.效:第二點是DNS負(fù)載均衡無法得知服務(wù)器之間的美異.它不能做到為性能較好的服務(wù)器多分派清?求.
也不能了解到服務(wù)器的當(dāng)前狀態(tài),甚至?xí)霈F(xiàn)客戶請求集中在某一臺服務(wù)器上的偶爾情況。
3.反向代理負(fù)載均衡
使用代理服務(wù)器可以將請求轉(zhuǎn)發(fā)給內(nèi)部的Web服務(wù)器,使用這種加速模式顯然可以提高靜態(tài)網(wǎng)頁的訪問
速度。因此也可以考慮使用這種技術(shù),讓代理服務(wù)器將請求均勻轉(zhuǎn)發(fā)給多臺內(nèi)部Web服務(wù)器之一上,從而
達(dá)成負(fù)載均衡的目的。這種代理方式與普通的代理方式有所不同,標(biāo)準(zhǔn)代理方式是客戶使用代理訪問多個
外部Web服務(wù)器,而這種代理方式是多個客戶使用它訪問內(nèi)部Web服務(wù)器,因此也被稱為反向代理模式。
實現(xiàn)這個反向代理能力并不能算是一個特別復(fù)雜的任務(wù)、但是在負(fù)載均衡中規(guī)定特別特他效率,這樣
實現(xiàn)起來就不是十分簡樸的了。每針對一次代理,代理服務(wù)器就必須打開兩個連接,一個為對外的連接,一
個為對內(nèi)的連接,因此對十連接請求數(shù)量非常大的時候,代理服務(wù)器的負(fù)載也就非常之大了,在最后反向
代理服務(wù)器會成為服務(wù)的瓶頸。
例如,使用Apache的modrproxy模塊來實現(xiàn)負(fù)載均衡功能時,提供的并發(fā)連接數(shù)量受Apache自身的
并發(fā)連接數(shù)量的限制。一般來講,可以使用它來對連接數(shù)量不是特別大,但每次連接都需要消耗大量解決
資源的站點進(jìn)行負(fù)載均衡,例如搜尋。
使用反向代理的好處足,可以將負(fù)載均衡和代理服務(wù)器的高速緩存技術(shù)結(jié)合在一起,提供有窗的性能,
具有額外的安全性,外部客戶不能直接訪問真實的服務(wù)器。并且實現(xiàn)起來可以實現(xiàn)較好的負(fù)載均衡策略,
將負(fù)載可以非常均衡的分給內(nèi)部服務(wù)器.不會出現(xiàn)負(fù)載集中到某個服務(wù)器的偶爾現(xiàn)象。
4.基于NAT的負(fù)載均衡技術(shù)
網(wǎng)絡(luò)地址轉(zhuǎn)換為在內(nèi)部地址和外部地址之間進(jìn)行轉(zhuǎn)換,以便具有內(nèi)部地址的計算機(jī)能訪問外部網(wǎng)絡(luò),而當(dāng)
外部網(wǎng)絡(luò)中的計算機(jī)訪問地址轉(zhuǎn)換網(wǎng)關(guān)擁有的某一外部地址時,地址轉(zhuǎn)換網(wǎng)關(guān)能將其轉(zhuǎn)發(fā)到一個映射的
內(nèi)部地址上。因此假如地址轉(zhuǎn)換網(wǎng)關(guān)能將每個連接均勻轉(zhuǎn)換為不同的內(nèi)部服務(wù)器地址.此后外部網(wǎng)絡(luò)中的
計算機(jī)就各自與自己轉(zhuǎn)換得到的地址上服務(wù)器進(jìn)行通信,從而達(dá)成負(fù)載分擔(dān)的目的。
地址轉(zhuǎn)換可以通過軟件方式來實現(xiàn),也可以通過硬件方式來實現(xiàn)。使用硬件方式進(jìn)行操作一般稱為互
換.而當(dāng)互換必須保存TCP連接信息的時候,這種針對OSI網(wǎng)絡(luò)層的操作就被稱為第四層互換。支持負(fù)載
均衡的網(wǎng)絡(luò)地址轉(zhuǎn)換為第四層互換機(jī)的一種重要功能.由于它;于定制的硬件芯片.因此其性能非常優(yōu)秀.
很多互換機(jī)聲稱具有400MB-800MB的第四層互換能力。
使用軟件方式來實現(xiàn)基于網(wǎng)絡(luò)地址轉(zhuǎn)換的負(fù)載均衡則要實際的多,除了一些廠商提供的解決方法之外.
更有效的方法是使用免費的自由軟件來完畢這項任務(wù)。其中涉及LinuxVirlualServerProject中的NAT實
現(xiàn)方式,或者本文作者在FreeBSD下對natd的修訂版本。一般來講,使用這種軟件方式來實現(xiàn)地址轉(zhuǎn)換,中
心負(fù)載均衡器存在帶寬限制,在100MB的快速以太網(wǎng)條件下,能得到最快達(dá)80MB的帶寬.然而在實際應(yīng)
用在也許只有40MB-60MB的可用帶寬。
IDC提供的負(fù)載均衡服務(wù)
IDC提供的負(fù)載均衡服務(wù)有:
大類小類
共享負(fù)載均衡
本地負(fù)載均衡(SharedLoadBalancingService)
(ServerLoadBalancing)獨享負(fù)載均衡服務(wù)
(DcdcatedLoadBalancingService)
異地負(fù)載均衡服務(wù)異地負(fù)載均衡服務(wù)
(WebsiteLoadBalancingService)(WebsiteLoadBalancingService)
互.聯(lián)網(wǎng)數(shù)據(jù)中心提供的專業(yè)奐教均衡服務(wù).可以針對用戶的服務(wù)器做本地負(fù)載均衡(ServerLoad
Balancing),負(fù)載均衡設(shè)備采用強(qiáng)勁有效的負(fù)載均衡算法,按照實際響應(yīng)時間,在性能不同的服務(wù)器之間進(jìn)
行負(fù)載的智能分派,充足運用服務(wù)器群中的每一臺服務(wù)器,保護(hù)現(xiàn)有投資,既保證性能一般的服務(wù)器不成
為系統(tǒng)的瓶頸,也保證?性能高的服務(wù)器資源得到充足的運用。大部分的電信IDC互聯(lián)網(wǎng)數(shù)據(jù)中心都建立了
共享的負(fù)載均衡設(shè)施(SharedLoadBalancing),該機(jī)房的購買此項增值服務(wù)的所有托管客戶的服務(wù)器都可以
共享機(jī)房購置的負(fù)載均衡設(shè)施,針對一些高端用戶,一些數(shù)據(jù)中心還推出了獨享負(fù)載均衡服務(wù)(Dedicated
LoadBalancingService),該服務(wù)重要是為了避免共享用戶爭用負(fù)載均衡設(shè)備資源的也許,并且會為個別大
型客戶單獨建立自己的負(fù)載均衡設(shè)施,以保證達(dá)成良好的效果。
共享負(fù)載均衡服務(wù)(SharedLoadBalancingService)托管客戶可以與其它客戶共同分享1DC的共享
負(fù)載均衡設(shè)施(SharedLoadBalancing).以低廉的代價,獲得服務(wù)器的負(fù)載均衡服務(wù)。
獨享負(fù)載均衡服務(wù)(DedicatedLoadBalancingService)IDC也可認(rèn)為托管客戶提供獨享的負(fù)載均衡
設(shè)施,在保證數(shù)據(jù)安全的情況下,達(dá)成更好的負(fù)載均衡效果。
但是,只對本地服務(wù)器(也就是指本機(jī)房服務(wù)器)進(jìn)行負(fù)載均衡是不夠的,大部分需要負(fù)載均衡服務(wù)
的站點并發(fā)訪問量都較大,這些站點多數(shù)都有異地鏡像服務(wù)器,因此一些更加專業(yè)的IDC機(jī)房采用的負(fù)
載均衡設(shè)備還可以穿透網(wǎng)絡(luò)路由,進(jìn)行異地鏡像站點之間的負(fù)載均衡.這類負(fù)載均衡就稱為異地負(fù)載均衡
(WebsiteLoadBalancing)。
異地負(fù)載均衡服務(wù)(WebsiteLoadBalancingService)IDC的負(fù)載均衡服務(wù),可以穿透網(wǎng)絡(luò)路由,進(jìn)行
異地鏡像站點之間的負(fù)載均衡。
負(fù)載均衡服務(wù)的更多服務(wù)對象:負(fù)載均衡服務(wù)并非只針對托管服務(wù)器或者獨立服務(wù)器,上面提到的幾種也
負(fù)載均衡服務(wù)可以對用戶的防火墻(FirewallLoadBalancing)及虛擬主機(jī)(VirtualHostingLoadBalancing)進(jìn)
行負(fù)載均衡,其效果和基本原理也是通用的。
Linux集群之負(fù)載平衡原理和實現(xiàn)算法
在計算機(jī)硬件價格下降、計算機(jī)網(wǎng)絡(luò)拓?fù)浒l(fā)展的情況下,分布式計算機(jī)系統(tǒng)給用戶提供了?個豐富的
資源集合。人們在研究分布式系統(tǒng)時,就注意到了這樣一個問題:在一個由網(wǎng)絡(luò)連接起來的多計算機(jī)環(huán)境
中,在某一時刻,一些計算機(jī)的負(fù)載比較重,而此外一些計算機(jī)的負(fù)載卻比較輕。平衡各計算機(jī)之間的負(fù)載
是任務(wù)分派與調(diào)度的一個重要目的,它可以提高整個系統(tǒng)的性能。
為了改善系統(tǒng)的性能,通過在多臺計算機(jī)之間合理地分派負(fù)載,使各臺計算機(jī)的負(fù)載基本均衡,這種
計算能力共享的形式,通常被稱為負(fù)載平衡或負(fù)載共享。?般來說,"負(fù)載平衡”要達(dá)成的目的是使各臺計算
機(jī)之間的負(fù)載基本均衡,而“負(fù)載共享”意味著只是簡樸的負(fù)載的重新分派。
負(fù)載平衡涉及兩種,一種是靜態(tài)負(fù)載平衡,一種是動態(tài)負(fù)載平衡。只是運用系統(tǒng)負(fù)載的平均信息,而忽
視系統(tǒng)當(dāng)前的負(fù)載狀況的方法被稱為靜態(tài)負(fù)載平衡。根據(jù)系統(tǒng)當(dāng)前的負(fù)載狀況來調(diào)整任務(wù)劃分的方法被稱
為動態(tài)負(fù)載平衡。
1.導(dǎo)致負(fù)載不平衡重要是由于:
2.某些算法的迭代大小不是固定的,但迭代的大小在編譯時卻可以被求得:
某些算法的迭代大小不是固定的,并且迭代的大小依賴于被解決的數(shù)據(jù),在編譯時無法求得;
即使迭代大小是固定的,也會有許多不定因素導(dǎo)致計算速度的差異。
考察這三個因素,對第一種情況可在編譯時估計各迭代的工作量,按照解決節(jié)點的解決能力分布迭代,
這就是靜態(tài)負(fù)載平衡的方法。對第二、三種情況來說,必須采用動態(tài)負(fù)載平衡的手段,在運營過程中根據(jù)
各個解決節(jié)點完畢任務(wù)的情況,動態(tài)地遷移任務(wù),實現(xiàn)動態(tài)負(fù)載平衡。進(jìn)行動態(tài)負(fù)載平衡需要考察解決節(jié)
點的解決能力,它的基本依據(jù)是根據(jù)解決節(jié)點先前的解決速度預(yù)見未來的解決速度c
負(fù)載平衡算法
一個負(fù)載平衡算法都包含以下三個組成部分:
信息策略:制定任務(wù)放置策略的制定者使用的負(fù)載和任務(wù)量,以及信息分派的方式。
傳送策略:基于任務(wù)和計算機(jī)負(fù)載,判斷是否要把一個任務(wù)傳送到其它計算機(jī)上解決。
放置策略:對于適合傳送到其它計兜機(jī)解決的任務(wù),選擇任務(wù)將被傳送的目的計算機(jī)。
負(fù)載平衡的上述三個部分之間是以不同的方式互相作用的。放置策略運用信息策略提供的負(fù)載信息,
僅當(dāng)任務(wù)被傳送策略判斷為適于傳送之后才行動。
總之,負(fù)載平衡的目的是:提供最短的平均任務(wù)響應(yīng)時間;能適于變化的負(fù)載;是可靠的負(fù)載平衡機(jī)
制,
信息策略
人們用來描述負(fù)載信息采用的參數(shù)有:
?運營隊列中的任務(wù)數(shù):
?系統(tǒng)調(diào)用的速率:
?CPU上下文切換率;
?空閑CPU時間比例;
?空閑存儲器的大小(K字節(jié));
1分鐘內(nèi)的平均負(fù)載。對于這些單個的負(fù)載描述參數(shù),第(1)個,即采用運營隊列中的任務(wù)數(shù)作
為描述負(fù)載的參數(shù)被證明是最有效的,即它的平均任務(wù)響應(yīng)時間最短,并且已經(jīng)得到廣泛應(yīng)用。但是,假如
為了使系統(tǒng)信息更全面而采集了更多的參數(shù),則往往由于增長了額外開銷,卻得不到所希望的性能改善。
例如,采用將六個參數(shù)中的某兩個進(jìn)行“AND”或"OR”組合,得到的平均響應(yīng)時間反而比單個參數(shù)的平均響
應(yīng)時間還要差一些。
傳送策略
為了簡樸起見,在選用傳送策略時,多選用閥值策略。例如,Eager等人的方法是:在判斷是否要在本地解
決一個任務(wù)時,無簿互換計算機(jī)之間的狀態(tài)信息,一旦服務(wù)隊列或等待服務(wù)隊列的長度大于閥值時,就傳
送這個任務(wù),并且傳送的是剛剛接受的任務(wù)。而進(jìn)程遷移可以遷移正在執(zhí)行的任務(wù),是對這種只能傳送剛
剛接受的任務(wù)的一種改善。
Zhou在模擬研究七個負(fù)我平衡算法時,其傳送策略都采用閥值策略。它的閥值策略基于兩個閥值:計算機(jī)
的負(fù)載閥值Load和任務(wù)執(zhí)行時間閥值TCPU。假如計算機(jī)的負(fù)載超過Load并且任務(wù)的執(zhí)行時間超過TCPU
時.就把此任務(wù)傳送到其它計算機(jī)執(zhí)行。
放置策略
通過總結(jié),共有以下四種放置策略。
集中策略。每隔P秒,其中一個計算機(jī)被指定為"負(fù)載信息中心”(LIC),接受所有其它負(fù)載的變更值,
并把它們匯集到一個“負(fù)載向量”中,然后把負(fù)載向量廣播給所有其它的計算機(jī)。當(dāng)一臺計算機(jī)認(rèn)為一個任
務(wù)適于傳送到其它計算機(jī)上執(zhí)行時,它就給LIC發(fā)送一個請求,并告知當(dāng)前負(fù)載的值。LIC選一臺具有最
短運營隊列長度的計算機(jī),并且告知任務(wù)所在的計算機(jī)把任務(wù)發(fā)送給它,同時,它把目的主機(jī)角載值增長
1。
閥值策略。隨機(jī)選擇一臺計算機(jī),判斷若把任務(wù)傳送到那臺計算機(jī)后,那臺計算機(jī)的任務(wù)隊列長度是
否會超過閥值。假如不超過閥值,就傳送此任務(wù):否則,隨機(jī)選擇另?臺計算機(jī),并以同樣方式判斷,繼續(xù)
這樣做直到找到一臺合適的目的計算機(jī),或探測次數(shù)超過一個靜態(tài)值限制LP,當(dāng)任務(wù)真正到達(dá)計算機(jī)以后,
不管狀態(tài)如何,必須解決該任務(wù)。
最短任務(wù)隊列策略。隨機(jī)選擇LP臺不同的計算機(jī),察看每臺計算機(jī)的任務(wù)隊列長度,任務(wù)被傳送到具
有最短任務(wù)隊列長度的計算機(jī)。當(dāng)任務(wù)真正到達(dá)計算機(jī),無論狀態(tài)如何,目的計算機(jī)必須解決該任務(wù)。對
此策略的一個簡樸改善時,無論何時,碰到一臺隊列長度為0的計算機(jī)時,不再繼續(xù)探測,由于可以擬定此
計算機(jī)是一臺可以接受的目的計算機(jī)。
保存策略。當(dāng)一個任務(wù)從一臺計算機(jī)離開時,該計算機(jī)檢查本地負(fù)載,假如負(fù)載小于閥值T1,就
探測其它計算機(jī),并在R個負(fù)載大于T1的計算機(jī)中登記該計算機(jī)的名字,并把登記的內(nèi)容保存到一個棧
中,當(dāng)一個任務(wù)到達(dá)一臺超載的計算機(jī)時,就把這個任務(wù)傳送到此臺計算機(jī)棧頂?shù)挠嬎銠C(jī)上。假如一個計
算機(jī)的負(fù)載低J-Tl,就清空棧里深存的所有計算機(jī)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年青少年心理健康教育課程考試題
- 2026年編程語言基礎(chǔ)與進(jìn)階計算機(jī)編程試題集
- 2026年研究生入學(xué)考試英語閱讀理解進(jìn)階題庫
- 2025年執(zhí)行分配方案異議書
- 平面圖設(shè)計及優(yōu)化方案
- BIM圖紙審查與版本控制方案
- 建筑垃圾處理與資源化結(jié)合方案
- 城市大氣環(huán)境整治施工方案
- 城中村景觀照明設(shè)計方案
- 城中村生活垃圾分類處理方案
- 研究受試者知情同意書
- 2025年水利工程質(zhì)量檢測員考試(混凝土工程)全真模擬試題及答案及答案(云南省)
- 2025年3D建模服務(wù)保密協(xié)議
- 戰(zhàn)場適應(yīng)性訓(xùn)練
- 各種挖機(jī)租賃合同范本
- 油料運輸應(yīng)急預(yù)案
- 自來水維修搶修知識培訓(xùn)課件
- 2025浙江紹興市新聞傳媒中心(傳媒集團(tuán))招聘6人筆試題庫歷年考點版附帶答案詳解
- 第四單元民族關(guān)系與國家關(guān)系(任務(wù)型復(fù)習(xí)課件)歷史統(tǒng)編版選擇性必修1
- 20kV及以下配電網(wǎng)工程設(shè)備材料價格信息(2025年上半年)
- 鐵科院試驗員培訓(xùn)課件
評論
0/150
提交評論