全面詮釋網(wǎng)絡(luò)負(fù)載均衡
負(fù)載均衡的出現(xiàn)大大緩解了服務(wù)器的壓力,更是有效的利用了資源,提高了效率。那么我們現(xiàn)在來(lái)說(shuō)一下網(wǎng)絡(luò)負(fù)載均衡的概念。通過(guò)名字,我們就能了解到。這一項(xiàng)技術(shù)更專(zhuān)項(xiàng)應(yīng)用于網(wǎng)絡(luò)方面,那么具體應(yīng)用范圍是哪里呢?
介紹
網(wǎng)絡(luò)負(fù)載均衡服務(wù)在Windows 2000 高級(jí)服務(wù)器和Windows 2000 數(shù)據(jù)中心服務(wù)器操作系統(tǒng)中均可得到。網(wǎng)絡(luò)負(fù)載均衡提高了使用在諸如Web服務(wù)器、FTP服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器上的因特網(wǎng)服務(wù)器程序的可用性和可伸縮性。運(yùn)行Windows 2000的單一計(jì)算機(jī)可以提供有限級(jí)別的服務(wù)器可靠性和可伸縮性。但是,通過(guò)將兩個(gè)或兩個(gè)以上運(yùn)行Windows 2000 高級(jí)服務(wù)器的主機(jī)連成群集,網(wǎng)絡(luò)負(fù)載均衡就能夠提供關(guān)鍵任務(wù)服務(wù)器所需的可靠性和性能。
每個(gè)主機(jī)運(yùn)行一個(gè)所需服務(wù)器程序的獨(dú)立拷貝,諸如Web、FTP、Telnet或e-mail服務(wù)器程序。對(duì)于某些服務(wù)(如運(yùn)行在Web服務(wù)器上的那些服務(wù))而言,程序的一個(gè)拷貝運(yùn)行在群集內(nèi)所有的主機(jī)上,而網(wǎng)絡(luò)負(fù)載均衡則將工作負(fù)載在這些主機(jī)間進(jìn)行分配。對(duì)于其他服務(wù)(例如e-mail)只有一臺(tái)主機(jī)處理工作負(fù)載,針對(duì)這些服務(wù),網(wǎng)絡(luò)負(fù)載均衡允許網(wǎng)絡(luò)通訊量流到一個(gè)主機(jī)上,并在該主機(jī)發(fā)生故障時(shí)將通訊量移至其它主機(jī)。
網(wǎng)絡(luò)負(fù)載均衡配置概述
網(wǎng)絡(luò)負(fù)載均衡是Windows 2000的一個(gè)網(wǎng)絡(luò)驅(qū)動(dòng)程序。它的操作對(duì)TCP/IP網(wǎng)絡(luò)棧而言是透明的。
為確保網(wǎng)絡(luò)性能達(dá)到***,網(wǎng)絡(luò)負(fù)載均衡通常使用一個(gè)網(wǎng)絡(luò)適配器來(lái)處理客戶(hù)到群集的通訊量,而其它對(duì)服務(wù)器的網(wǎng)絡(luò)通訊量則經(jīng)由一個(gè)單獨(dú)網(wǎng)絡(luò)適配器。然而,第二個(gè)網(wǎng)絡(luò)適配器是不需要的。
來(lái)自負(fù)載均衡服務(wù)器應(yīng)用的數(shù)據(jù)庫(kù)訪問(wèn)
某些服務(wù)器程序需要訪問(wèn)由客戶(hù)請(qǐng)求來(lái)更新的數(shù)據(jù)庫(kù)。當(dāng)這些程序的負(fù)載在群集內(nèi)得到均衡分配時(shí),相關(guān)的更新工作則應(yīng)保持同步狀態(tài)。每個(gè)主機(jī)均使用一個(gè)本地、獨(dú)立的數(shù)據(jù)庫(kù)拷貝,而該數(shù)據(jù)庫(kù)在必要時(shí)可脫機(jī)并入。另一種方法是,群集主機(jī)能夠共享對(duì)一個(gè)獨(dú)立的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)服務(wù)器的訪問(wèn)。也可以組合使用這些方法。例如,靜態(tài)Web網(wǎng)頁(yè)能夠在全部群集服務(wù)器間進(jìn)行復(fù)制,以確??焖僭L問(wèn)和全面容錯(cuò)。但是,數(shù)據(jù)庫(kù)訪問(wèn)請(qǐng)求將轉(zhuǎn)發(fā)至為多個(gè)Web服務(wù)器進(jìn)行更新處理的公共數(shù)據(jù)庫(kù)服務(wù)器。
某些關(guān)鍵任務(wù)程序可能需要使用高度可用的數(shù)據(jù)庫(kù)引擎以確保全面容錯(cuò)。逐漸地,具有群集識(shí)別能力的數(shù)據(jù)庫(kù)軟件將得到部署,用以在整個(gè)群集模式中提供具有高度可用性與可伸縮性的數(shù)據(jù)庫(kù)訪問(wèn)。Microsoft SQL Server就是一個(gè)例子,它能夠使用群集服務(wù)功能以雙節(jié)點(diǎn)方式進(jìn)行部署。群集服務(wù)可確保在一個(gè)節(jié)點(diǎn)發(fā)生故障的情況下,剩余的節(jié)點(diǎn)將承擔(dān)起故障電腦的職責(zé),這樣,就能夠?yàn)镸icrosoft SQL Server 客戶(hù)提供近乎連續(xù)的服務(wù)。由于兩臺(tái)電腦共享一個(gè)公共磁盤(pán)子系統(tǒng),則上述功能是可以實(shí)現(xiàn)的。
注釋
通過(guò)討論在以下兩個(gè)群集解決方案之間進(jìn)行比選是十分重要的。***方案,網(wǎng)絡(luò)負(fù)載均衡主要是分配引入的傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)通訊量;加入這一解決方案的計(jì)算機(jī)形成一種群集。第二方案,群集服務(wù)主要是提供從一臺(tái)計(jì)算機(jī)到另一計(jì)算機(jī)的故障應(yīng)急服務(wù);加入這一解決方案的計(jì)算機(jī)形成另一種群集。網(wǎng)絡(luò)負(fù)載均衡群集通常運(yùn)行Web服務(wù)器程序。群集服務(wù)通常運(yùn)行數(shù)據(jù)庫(kù)程序(當(dāng)與網(wǎng)絡(luò)負(fù)載均衡聯(lián)合使用時(shí))。通過(guò)將兩個(gè)群集連接在一起以互補(bǔ)方式發(fā)揮作用,用戶(hù)創(chuàng)建了全面群集解決方案。
網(wǎng)絡(luò)負(fù)載均衡如何工作
網(wǎng)絡(luò)負(fù)載均衡為共同工作且使用兩個(gè)或兩個(gè)以上主機(jī)群集的Web服務(wù)器提供了高度可用性和可伸縮性。因特網(wǎng)客戶(hù)使用單一的IP地址(或一個(gè)多主主機(jī)的一組地址)訪問(wèn)群集??蛻?hù)不能將單一服務(wù)器從群集中區(qū)分開(kāi)來(lái)。服務(wù)器程序不能識(shí)別它們正運(yùn)行于一個(gè)群集中。但是,由于網(wǎng)絡(luò)負(fù)載均衡群集即使在群集主機(jī)發(fā)生故障的情況下仍能提供了不間斷的服務(wù),故而,它與運(yùn)行單一服務(wù)器程序的單一主機(jī)大相徑庭。與單一主機(jī)相比,群集還能對(duì)客戶(hù)需求做出更迅捷的反應(yīng)。
網(wǎng)絡(luò)負(fù)載均衡通過(guò)在主機(jī)發(fā)生故障或脫機(jī)的情況下將網(wǎng)絡(luò)通訊量重新指定給其它工作群集主機(jī)來(lái)提供高度的可用性。與脫機(jī)主機(jī)現(xiàn)存的連接雖然丟失,但因特網(wǎng)服務(wù)仍然處于可用狀態(tài)。在大多數(shù)情況下(例如,就Web服務(wù)器而言),客戶(hù)軟件會(huì)自動(dòng)重試發(fā)生故障的連接,而且,客戶(hù)僅需幾秒的延遲即可收到響應(yīng)。
網(wǎng)絡(luò)負(fù)載均衡通過(guò)在群集的一個(gè)或一個(gè)以上虛擬IP地址當(dāng)中分配引入的網(wǎng)絡(luò)通訊量來(lái)提供伸縮能力。群集中的主機(jī)于是對(duì)不同客戶(hù)請(qǐng)求做出響應(yīng),即使是來(lái)自同一客戶(hù)的多重請(qǐng)求也如是。例如,Web瀏覽器可能在單一Web網(wǎng)頁(yè)內(nèi)獲得群集內(nèi)不同主機(jī)處的多重映射。這就加速了處理過(guò)程并縮短了對(duì)客戶(hù)的響應(yīng)時(shí)間。
網(wǎng)絡(luò)負(fù)載均衡使在一個(gè)子網(wǎng)上的全部群集主機(jī)能夠?yàn)槿杭闹鱅P地址(以及多主主機(jī)上的額外IP地址)同時(shí)檢測(cè)引入的網(wǎng)絡(luò)通訊量。在每個(gè)群集主機(jī)上,網(wǎng)絡(luò)負(fù)載均衡驅(qū)動(dòng)程序充當(dāng)了一個(gè)介于群集適配器驅(qū)動(dòng)程序和TCP/IP棧之間的過(guò)濾器,以這種方式使主機(jī)能夠收到一部分引入的網(wǎng)絡(luò)通訊量。 #p#
網(wǎng)絡(luò)負(fù)載均衡使用全面分布式的算法來(lái)從統(tǒng)計(jì)意義上將引入的客戶(hù)映射到基于IP地址、端口和其它信息的群集主機(jī)上。在檢查收到的數(shù)據(jù)包時(shí),所有主機(jī)均同步執(zhí)行這種映射以迅速?zèng)Q定哪個(gè)主機(jī)應(yīng)處理該數(shù)據(jù)包。除非群集主機(jī)數(shù)量發(fā)生變化,該映射會(huì)保持不變。網(wǎng)絡(luò)負(fù)載均衡過(guò)濾算法在數(shù)據(jù)包處理程序方面要比在集中負(fù)載均衡程序方面高效得多,而這必須修改并重發(fā)數(shù)據(jù)包。這就使網(wǎng)絡(luò)負(fù)載均衡能夠提供高得多的聚集帶寬。通過(guò)直接在群集主機(jī)上運(yùn)行,網(wǎng)絡(luò)負(fù)載均衡的性能并不受某一代處理器或網(wǎng)絡(luò)技術(shù)的局限。
群集通訊量的分配
網(wǎng)絡(luò)負(fù)載均衡控制對(duì)從因特網(wǎng)客戶(hù)到群集內(nèi)選定主機(jī)的TCP與用戶(hù)數(shù)據(jù)報(bào)協(xié)議(UDP)通訊量的分配,做法如下:在配置了網(wǎng)絡(luò)負(fù)載平衡以后,對(duì)群集IP地址的引入客戶(hù)請(qǐng)求由群集內(nèi)的所有主機(jī)收到。網(wǎng)絡(luò)負(fù)載平衡在這些數(shù)據(jù)報(bào)到達(dá)TCP/IP協(xié)議軟件之前,就對(duì)這些數(shù)據(jù)報(bào)進(jìn)行過(guò)濾以指定TCP和UDP端口。網(wǎng)絡(luò)負(fù)載平衡只管理TCP/IP中TCP和UDP協(xié)議,并以逐端口方式控制它們的活動(dòng)。
除了流向指定端口的TCP和UDP通訊量之外,網(wǎng)絡(luò)負(fù)載均衡不控制任何引入的IP通訊量。網(wǎng)絡(luò)負(fù)載均衡不對(duì)網(wǎng)際控制報(bào)文協(xié)議(ICMP)、網(wǎng)際組成員協(xié)議(IGMP)、地址解析協(xié)議(ARP)或其它IP協(xié)議進(jìn)行過(guò)濾。所有這些通訊量均不加修改地傳遞給在群集內(nèi)全部主機(jī)上的TCP/IP協(xié)議軟件。因?yàn)橛辛薚CP/IP的穩(wěn)定性及其處理重復(fù)數(shù)據(jù)報(bào)的能力,其它協(xié)議就能夠在群集環(huán)境內(nèi)正確運(yùn)轉(zhuǎn)??墒牵?dāng)使用群集IP地址時(shí),你可能預(yù)期從特定的點(diǎn)到點(diǎn)TCP/IP程序(比如ping)中看到重復(fù)的響應(yīng)。這些程序能夠通過(guò)為每個(gè)主機(jī)使用專(zhuān)用的IP地址來(lái)避免這種情況的發(fā)生。
集中收斂
網(wǎng)絡(luò)負(fù)載均衡主機(jī)通過(guò)在群集內(nèi)定期交換組播或廣播消息來(lái)協(xié)調(diào)彼此間的活動(dòng)。這就使它們能夠監(jiān)控群集所處的狀態(tài)。當(dāng)群集所處狀況發(fā)生變化時(shí)(比如主機(jī)故障、脫離或加入群集),網(wǎng)絡(luò)負(fù)載均衡就會(huì)調(diào)用一個(gè)稱(chēng)為集中收斂的處理過(guò)程,在這個(gè)處理過(guò)中,主機(jī)之間將交換消息以確定一個(gè)新的、持續(xù)的群集狀態(tài),并推舉一個(gè)具有***優(yōu)先級(jí)的主機(jī)充當(dāng)新的缺省主機(jī)。當(dāng)群集的全部主機(jī)就新的群集狀態(tài)達(dá)成一致時(shí),它們就會(huì)將集中收斂的完成記入Windows 2000的事件日志。
在集中收斂期間,除非故障主機(jī)沒(méi)有收到服務(wù),主機(jī)將一如繼往地處理引入的網(wǎng)絡(luò)通訊量。客戶(hù)對(duì)工作主機(jī)的請(qǐng)求是不受影響的。在集中收斂完成時(shí),故障主機(jī)的通訊量會(huì)重新分配給剩余主機(jī)。負(fù)載均衡通訊量將在剩余宿主間分配,從而達(dá)成特定的TCP或UDP端口間***可能的負(fù)載均衡。如果一個(gè)主機(jī)添加到群集中,集中收斂會(huì)允許該主機(jī)接管處理端口的任務(wù),并由此使之具備***的優(yōu)先級(jí);同時(shí),集中收斂還將使該主機(jī)分到它所應(yīng)負(fù)擔(dān)的負(fù)載均衡通訊量份額。群集擴(kuò)展不會(huì)影響正在進(jìn)行的群集操作,并且保證對(duì)因特網(wǎng)客戶(hù)和服務(wù)器程序而言是以透明方式實(shí)現(xiàn)的。可是,在客戶(hù)的相似性被選定的情況下,群集擴(kuò)展會(huì)影響到跨越多重TCP連接的客戶(hù)話路,這主要是因?yàn)樵谶B接之間可能將客戶(hù)映射到不同的群集主機(jī)上去了。
網(wǎng)絡(luò)負(fù)載均衡假定只要主機(jī)參加了群集宿主間的正常消息交換,那么,它就在群集內(nèi)處于正常運(yùn)轉(zhuǎn)狀態(tài)。如果其它主機(jī)在若干期間均未收到對(duì)消息交換的響應(yīng),它們就會(huì)啟動(dòng)一個(gè)集中收斂操作以重新分配先前由故障宿主承擔(dān)的負(fù)載。你能夠控制消息交換的周期和用來(lái)決定啟動(dòng)集中收斂操作的通信遺漏次數(shù)。以上兩者各自的默認(rèn)值分別為1000毫秒 (1秒)和5次。由于上述參數(shù)不常修改,因此,它們不能在"網(wǎng)絡(luò)負(fù)載均衡屬性"對(duì)話框中進(jìn)行設(shè)置。必要時(shí),這些參數(shù)可在系統(tǒng)注冊(cè)表中以手工方式加以調(diào)整。