新聞資訊
租用幫助
實現(xiàn)服務(wù)器負載均衡的常見方法和原理
2023-11-15 08:47:27
摘要:為了提高服務(wù)器的性能和工作負載能力,企業(yè)通常會使用DNS服務(wù)器、網(wǎng)絡(luò)地址轉(zhuǎn)換等技術(shù)來實現(xiàn)多服務(wù)器負載均衡,特別是目前企業(yè)對外的互聯(lián)網(wǎng)Web網(wǎng)站,許多都是通過幾臺服務(wù)器來完成服務(wù)器訪問的負載均衡。

為了提高服務(wù)器的性能和工作負載能力,企業(yè)通常會使用DNS服務(wù)器、網(wǎng)絡(luò)地址轉(zhuǎn)換等技術(shù)來實現(xiàn)多服務(wù)器負載均衡,特別是目前企業(yè)對外的互聯(lián)網(wǎng)Web網(wǎng)站,許多都是通過幾臺服務(wù)器來完成服務(wù)器訪問的負載均衡。


目前企業(yè)使用的所謂“負載均衡服務(wù)器”,實際上它是應(yīng)用系統(tǒng)的一種控制服務(wù)器,所有用戶的請求都首先到此服務(wù)器,然后由此服務(wù)器根據(jù)各個實際處理服務(wù)器狀態(tài)將請求具體分配到某個實際處理服務(wù)器中,對外公開的域名與IP地址都是這臺服務(wù)器。負載均衡控制與管理軟件安裝在這臺服務(wù)器上,這臺服務(wù)器一般只做負載均衡任務(wù)分配,但不是實際對網(wǎng)絡(luò)請求進行處理的服務(wù)器。


一、企業(yè)實現(xiàn)Web服務(wù)器負載均衡

為了將負載均勻的分配給內(nèi)部的多個服務(wù)器上,就需要應(yīng)用一定的負載均衡策略。通過服務(wù)器負載均衡設(shè)備實現(xiàn)各服務(wù)器群的流量動態(tài)負載均衡,并互為冗余備份。并要求新系統(tǒng)應(yīng)有一定的擴展性,如數(shù)據(jù)訪問量繼續(xù)增大,可再添加新的服務(wù)器加入負載均衡系統(tǒng)。

對于WEB服務(wù)應(yīng)用,同時有幾臺機器提供服務(wù),每臺機器的狀態(tài)可以設(shè)為regular(正常工作)或backup(備份狀態(tài)),或者同時設(shè)定為 regular狀態(tài)。負載均衡設(shè)備根據(jù)管理員事先設(shè)定的負載算法和當前網(wǎng)絡(luò)的實際的動態(tài)的負載情況決定下一個用戶的請求將被重定向到的服務(wù)器。而這一切對于用戶來說是完全透明的,用戶完成了對WEB服務(wù)的請求,并不用關(guān)心具體是哪臺服務(wù)器完成的。


二、使用網(wǎng)絡(luò)地址轉(zhuǎn)換實現(xiàn)多服務(wù)器負載均衡

支持負載均衡的地址轉(zhuǎn)換網(wǎng)關(guān)中可以將一個外部IP地址映射為多個內(nèi)部IP地址,對每次TCP連接請求動態(tài)使用其中一個內(nèi)部地址,達到負載均衡的目的。很多硬件廠商將這種技術(shù)集成在他們的交換機中,作為他們第四層交換的一種功能來實現(xiàn),一般采用隨機選擇、根據(jù)服務(wù)器的連接數(shù)量或者響應(yīng)時間進行選擇的負載均衡策略來分配負載。然而硬件實現(xiàn)的負載控制器靈活性不強,不能支持更優(yōu)化的負載均衡策略和更復(fù)雜的應(yīng)用協(xié)議。

基于網(wǎng)絡(luò)地址轉(zhuǎn)換的負載均衡器可以有效的解決服務(wù)器端的CPU和磁盤I/O負載,然而負載均衡器本身的性能受網(wǎng)絡(luò)I/O的限制,在一定硬件條件下具有一定的帶寬限制,但可以通過改善算法和提高運行負載均衡程序的硬件性能,來提高這個帶寬限制。不同的服務(wù)類型對不同的服務(wù)器資源進行占用,我們使用的負載衡量策略是使用同一個負載進行評估,這對于大多數(shù)條件是適合的,然而最好的辦法是針對不同的資源,如CPU、磁盤I/O或網(wǎng)絡(luò)I/O等,分別監(jiān)視服務(wù)器負載,由中心控制器選擇最合適的服務(wù)器分發(fā)客戶請求。


三、使用DNS服務(wù)器實現(xiàn)負載均衡

訪問企業(yè)網(wǎng)服務(wù)器的用戶急劇增加,一臺服務(wù)器難以滿足用戶的訪問需要,那么如何才能保證用戶的正常訪問呢?解決方法有很多,如使用Windows 2000或Windows Server 2003提供網(wǎng)絡(luò)負載均衡服務(wù),但該服務(wù)的設(shè)置非常復(fù)雜。而通過DNS服務(wù)器實現(xiàn)網(wǎng)絡(luò)負載均衡則是一種比較簡單的方法。

企業(yè)網(wǎng)通常由很多子網(wǎng)構(gòu)成,為了降低網(wǎng)絡(luò)中的數(shù)據(jù)流量,客戶機最好能訪問處于同一子網(wǎng)內(nèi)的Web服務(wù)器。雖然實現(xiàn)了網(wǎng)絡(luò)負載均衡功能,但并不能保證客戶訪問的是本子網(wǎng)的Web服務(wù)器。其實這個問題也很好解決,只要啟用DNS服務(wù)器的“啟用網(wǎng)絡(luò)掩碼排序”功能即可。在DNS管理器窗口中,右鍵點擊DNS 服務(wù)器,在彈出的菜單中選擇“屬性”,然后在屬性對話框中切換到“高級”選項卡,勾選“服務(wù)器選項”列表框中的“啟用網(wǎng)絡(luò)掩碼排序”選項即可。這樣客戶機每次都能訪問到本子網(wǎng)內(nèi)的Web服務(wù)器了。完成以上設(shè)置后,就使DNS服務(wù)器實現(xiàn)了網(wǎng)絡(luò)負載均衡功能,把客戶的訪問分擔到每個Web服務(wù)器上,并且還減少了跨子網(wǎng)的網(wǎng)絡(luò)通信流量,大大降低了企業(yè)網(wǎng)的通信負擔。


四、企業(yè)實現(xiàn)SQL Server數(shù)據(jù)庫服務(wù)器負載均衡

MS SQL Server數(shù)據(jù)庫服務(wù)器可以說是應(yīng)用范圍最廣的數(shù)據(jù)庫產(chǎn)品,并且越來越多地在大型和比較關(guān)鍵的應(yīng)用系統(tǒng)中提供服務(wù)。當企業(yè)應(yīng)用越來越復(fù)雜、數(shù)據(jù)量越來越大的時候,SQL Server數(shù)據(jù)庫要不停的進行處理、存儲、查詢的工作,這個時候企業(yè)就要考慮SQL Server數(shù)據(jù)庫服務(wù)器的性能和速度及安全性了。然而,長期以來,SQL SERVER數(shù)據(jù)庫服務(wù)器都只有“熱備”的解決方案,而沒有“負載均衡”和“集群”的解決方案。

隨著數(shù)據(jù)庫路由器軟件ICX的出現(xiàn),為基于MS SQL Server的數(shù)據(jù)庫系統(tǒng)提供了一種更優(yōu)秀的集群解決方案。它可以真正的實現(xiàn)SQL Server數(shù)據(jù)庫服務(wù)器的動態(tài)負載均衡,提高性能和速度;它可以真正的保證SQL Server數(shù)據(jù)庫服務(wù)器不間斷的提供服務(wù),在服務(wù)器發(fā)生故障的時候?qū)崟r切換到其他服務(wù)器上繼續(xù)提供服務(wù),切換時間為“零”。數(shù)據(jù)庫路由器是實時并發(fā)數(shù)據(jù)庫事務(wù)處理同步復(fù)制器和負載平衡器。

所有的數(shù)據(jù)庫客戶都通過ICX訪問數(shù)據(jù)庫。當訪問、查詢SQL Server數(shù)據(jù)庫的時候ICX可以根據(jù)實際情況分配服務(wù)器來提供服務(wù),大大提高服務(wù)速度和優(yōu)化性能,完成負載均衡。ICX可以同時連接多臺數(shù)據(jù)庫,這若干臺數(shù)據(jù)庫的內(nèi)容在任何時刻由ICX保證是完全一致的。也就是說,ICX采用了全新的并發(fā)事務(wù)處理的方式,向連接的N臺數(shù)據(jù)庫同步復(fù)制事務(wù)處理,使得系統(tǒng)在任何時刻具有多個一致的最新邏輯數(shù)據(jù)庫數(shù)據(jù)集。當其中一臺數(shù)據(jù)庫服務(wù)器發(fā)生故障的時候,ICX可以實時的、第一時間切換到其他服務(wù)器上來繼續(xù)提供服務(wù)。真正的實現(xiàn)零時間的服務(wù)器切換,大大提高安全性,真正意義的實現(xiàn)服務(wù)器不間斷服務(wù)。


原理:

負載平衡把每個IP數(shù)據(jù)包按某種規(guī)則分發(fā)到服務(wù)器節(jié)點,不同的負載平衡實現(xiàn)方式有不同的分發(fā)規(guī)則。對客戶端來說負載平衡系統(tǒng)是透明的。采用網(wǎng)絡(luò)負載平衡技術(shù)的服務(wù)對單個客戶端請求的響應(yīng)并比單個主機快,但對大量客戶端的密集請求在速度與質(zhì)量有很大優(yōu)勢。并且當某個主機發(fā)生故障或脫機時,不會影響服務(wù)的提供,從而帶來了高可用性。


負載平衡的不同實現(xiàn)方法

4.1 利用網(wǎng)絡(luò)設(shè)備的動態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)功能實現(xiàn)負載平衡

實現(xiàn)負載平衡的要求:

具備動態(tài)NAT功能的路由器,多臺運行同一服務(wù)的服務(wù)器,所有服務(wù)器要求在同一局域網(wǎng)內(nèi)。

負載平衡的設(shè)計與配置過程:

內(nèi)部的多臺服務(wù)器,有自己的私有IP,提供相同的服務(wù), 但對外映射通過網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)成為一個統(tǒng)一的公網(wǎng)IP地址,對外部來講多臺服務(wù)器是捆綁在一起的一個虛擬服務(wù)器,外部訪問這個虛擬服務(wù)器時,輪流指向各臺服務(wù)器,從而達到負載均衡。

例如:以下網(wǎng)絡(luò)中

路由器動態(tài)NAT配置過程如下:(以思科路由器為例)

Router(config)#int f0/1

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#int s0/0

Router(config-if)#ip address 133.0.0.1 255.255.255.252

Router(config-if)ip nat outside

Router(config-if)#exit

Router(config)#ip nat pool p2 192.168.1.2 192.168.1.4 netmask 255.255.

255.0 type rotary

Router(config)#access-list 2 permit 133.0.0.33

Router(config)#ip nat inside destination list 2 pool p2

Router(config)#ip route 0.0.0.0 0.0.0.0 s0/0

優(yōu)、缺點:配置簡單,成本低,服務(wù)器在本地便于維護,負載平衡算法由路由器提供,不需占用服務(wù)器系統(tǒng)資源。但是一般只能支持輪流服務(wù)的算法,不能根據(jù)服務(wù)器性能進行合理的負載分配。


4.2 DNS的負載平衡實現(xiàn)

負載平衡的要求:

要求DNS服務(wù)器的支持,一般支持bind8.2以上的類unix系統(tǒng),安裝一個循環(huán)復(fù)用DNS軟件。

負載平衡的設(shè)計與配置過程:在DNS中為多個地址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個地址,從而使得不同的客戶訪問不同的服務(wù)器,達到負載均衡的目的。配置過程在不同的DNS系統(tǒng)中有不同的配置方法,本文不再多述。

優(yōu)、缺點:服務(wù)器可以分布在不同的地域,有利于故障轉(zhuǎn)移。負載平衡算法運行在DNS服務(wù)器上,不占用服務(wù)器資源。

但是域名服務(wù)器無法知道服務(wù)結(jié)點是否有效,如果服務(wù)結(jié)點失效,域名系統(tǒng)依然會將域名解析到該節(jié)點上,造成用戶訪問失效。另外,它不能區(qū)分服務(wù)器性能的差異,也不能反映服務(wù)器的當前運行狀態(tài)。因此,在動態(tài)平衡特性上,動態(tài)DNS輪詢的效果并不理想。


4.3 利用操作系統(tǒng)的群集功能實現(xiàn)負載平衡

負載平衡的要求:

要求使用支持群集功能的操作系統(tǒng)如:windows 2000server以上的服務(wù)器版本,Unix或Linux。本文以windows2003 server為例介紹群集功能的配置。

負載平衡的設(shè)計與配置過程:群集的實現(xiàn)需要群集內(nèi)部的通訊以及管理和內(nèi)容復(fù)制的數(shù)據(jù)傳輸。這部分通訊占用了網(wǎng)絡(luò)的可用帶寬。為了克服單網(wǎng)卡的局限性,一般使用雙網(wǎng)卡,一個用于負載客戶端的通訊,另一個用于傳輸內(nèi)部通訊,管理和內(nèi)容的數(shù)據(jù)。

群集操作模式的選擇是設(shè)計的重要一步。單播模式是指各節(jié)點的網(wǎng)絡(luò)適配器被重新指定了一個虛擬MAC(由02-bf和群集IP地址組成確保此MAC的唯一性)。多播模式下,網(wǎng)絡(luò)適配器在保留原有的MAC地址不變的同時,還分配了一個各節(jié)點共享的多播MAC地址。一般選用多播模式。

端口規(guī)則是windows2003的新特性。NLB提供3種篩選模式,可以針對端口規(guī)則采取禁止、多主機負載平衡和單主機的特殊處理。其中,多主機篩選模式提供了真正意義上的負載平衡,并且可以根據(jù)節(jié)點的實際處理能力進行負載量的分配。

Windows2003引入了網(wǎng)絡(luò)負載平衡管理器(控制面板->管理工具),使負載平衡的安裝和配置更加簡單。管理器可以容易的實現(xiàn)群集的建立、刪除,節(jié)點的添加、刪除、修改以及故障的檢測。

運行網(wǎng)絡(luò)負載平衡管理器,選擇 群集 -> 新建 ,彈出“群集參數(shù)”對話框,然后根據(jù)向?qū)О葱枰渲谩?/span>

首先配置好參數(shù)后點擊下一步,系統(tǒng)會提示添加附加群集IP,如果不需要可直接按“下一步”進行端口配置。以web群集配置為例:如果會話狀態(tài)不保存在該群集上,則相似性選擇無,否則選擇單一或者類C。

之后,指定一臺主機連接,并選擇一個可用的網(wǎng)絡(luò)接口,進行主機參數(shù)的設(shè)置:點擊“完成”,管理器會自動連接到主機上進行相關(guān)配置來創(chuàng)建一個新的群集。


優(yōu)、缺點:選擇多主機篩選模式時提供了真正意義上的負載平衡,并且可以根據(jù)節(jié)點的實際處理能力進行負載量的分配。比較適用于大型網(wǎng)站負載平衡的實現(xiàn)。但使用Unix, Windows 2003 server系統(tǒng)實現(xiàn)時,網(wǎng)絡(luò)架構(gòu)成本較高。



海外服務(wù)器免費測試http://running-capacitor.com/


USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請免費產(chǎn)品試用服務(wù)
立即申請