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

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


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


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

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

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


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

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

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


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

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

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


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

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

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

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


原理:

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


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

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

實(shí)現(xiàn)負(fù)載平衡的要求:

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

負(fù)載平衡的設(shè)計(jì)與配置過(guò)程:

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

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

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

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)、缺點(diǎn):配置簡(jiǎn)單,成本低,服務(wù)器在本地便于維護(hù),負(fù)載平衡算法由路由器提供,不需占用服務(wù)器系統(tǒng)資源。但是一般只能支持輪流服務(wù)的算法,不能根據(jù)服務(wù)器性能進(jìn)行合理的負(fù)載分配。


4.2 DNS的負(fù)載平衡實(shí)現(xiàn)

負(fù)載平衡的要求:

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

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

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

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


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

負(fù)載平衡的要求:

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

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

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

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

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

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

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

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


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



海外服務(wù)器免費(fèi)測(cè)試http://hbjsdrq.com/


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