Windows的負載平衡主要是依靠組建網(wǎng)絡(luò)負載平衡群集來實現(xiàn)的,支持WEB、FTP、Proxy、VPN、Windows Media、Telnet等服務(wù)器的負載平衡。
負載平衡的原理
NLB其實就是提供相同服務(wù)的一系列服務(wù)器同時監(jiān)聽服務(wù)請求,并允許在同一時間運行多個應(yīng)用程序?qū)嵗?。NLB的核心是位于網(wǎng)絡(luò)適配器驅(qū)動和網(wǎng)絡(luò)層之間的WLBS.SYS的篩選器驅(qū)動。NLB把每個IP數(shù)據(jù)包分發(fā)到所有群集節(jié)點,并根據(jù)數(shù)據(jù)包的源地址、目標地址、傳輸層協(xié)議、端口、群集的配置參數(shù)以及算法做出由某個節(jié)點處理而其他節(jié)點丟棄此數(shù)據(jù)包的統(tǒng)一決定。
負載平衡的概念
配置負載平衡之前,需要理解幾個重點概念。
群集IP 地址和子網(wǎng)掩碼:群集的虛擬IP地址,是表現(xiàn)在客戶面前的“外部”地址。
專用IP 配置和子網(wǎng)掩碼:群集各節(jié)點的本地IP地址,唯一標識群集的各節(jié)點。
完整Internet名:能夠訪問此群集的DNS名稱,比如cluster.it.com.cn。
群集操作模式:在方案的選擇中詳細講述。
端口規(guī)則:windows2003中新加的功能,細化了控制微粒,可以阻止某節(jié)點特定應(yīng)用程序的流量,而在windows2000中這是不能實現(xiàn)的。
優(yōu)先級(單一主機標識符):范圍在1-32之間(32是一個群集的最大節(jié)點數(shù))。此值決定如何處理沒有包含在任何為群集定義的端口規(guī)則中的傳入網(wǎng)絡(luò)通訊。具有最高優(yōu)先級的主機(優(yōu)先值最小)將處理所有這種通訊。
Windows2003負載平衡的設(shè)計要求
操作系統(tǒng)的要求 在Windows2003的所有版本系統(tǒng)中,NLB都是可用的。群集可以兼容以前的windows服務(wù)器操作系統(tǒng)(比如2000,NT4.0)。
網(wǎng)絡(luò)結(jié)構(gòu)的要求
NLB可以在連接到FDDI(光纖分布式數(shù)據(jù)接口),以太網(wǎng),吉比特以太網(wǎng)的服務(wù)器上運行,但不能在Token Ring(令牌環(huán))網(wǎng)絡(luò)上運行。
網(wǎng)卡的要求
所有的網(wǎng)絡(luò)適配器必須在Windows2003的硬件兼容列表中。一般情況下,服務(wù)器的網(wǎng)卡都會符合要求。
交換機和路由器的要求
當計劃使用VLAN來防止交換數(shù)據(jù)洪水時,必須確保交換機支持VLAN設(shè)置;當使用多播時,部分路由器不支持把單播IP地址映射為一個多播MAC地址,需要手工設(shè)置。
通訊協(xié)議的要求
綁定到群集的網(wǎng)絡(luò)適配器只能安裝TCP/IP協(xié)議,可以必須靜態(tài)分配,不支持DHCP。
應(yīng)用程序的要求
首先必須是TCP或UDP通訊,而且確定當前應(yīng)用程序或服務(wù)必須支持NLB。
負載平衡的設(shè)計
由于網(wǎng)絡(luò)負載平衡不能根據(jù)CPU和內(nèi)存利用率來分配流量,而且性能并不是隨著節(jié)點數(shù)量的增加而線性變化的(因為隨著規(guī)模的增大,由此產(chǎn)生的網(wǎng)絡(luò)開銷,CPU開銷也隨著增大),,所以正確的設(shè)計和規(guī)劃負載平衡是至關(guān)重要的。
群集的實現(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都相同,所以在單網(wǎng)卡的情況下,各節(jié)點之間是不能通訊的,這也是推薦雙網(wǎng)卡配置的原因之一。為了避免交換機的數(shù)據(jù)洪水,應(yīng)該結(jié)合VLAN使用。
多播模式下,網(wǎng)絡(luò)適配器在保留原有的MAC地址不變的同時,還分配了一個各節(jié)點共享的多播MAC地址。所以,即使單網(wǎng)卡的節(jié)點之間也可以正常通訊。但單網(wǎng)卡的帶寬占用、競爭網(wǎng)絡(luò)適配器等缺點仍然存在。
此外,部分路由器(特別是Cisco產(chǎn)品)還不支持單播IP地址和多播MAC的ARP映射的自動創(chuàng)建,需要手工配置。IGMP多播(只有在選中多播時,才可以選擇此項),在繼承多播的優(yōu)點之外,NLB每隔60秒發(fā)送一次IGMP信息,使多播數(shù)據(jù)包只能發(fā)送到這個正確的交換機端口,避免了交換機數(shù)據(jù)洪水的產(chǎn)生。
端口規(guī)則是windows2003的新特性。NLB提供3種篩選模式,可以針對端口規(guī)則采取禁止、多主機負載平衡和單主機的特殊處理。其中,多主機篩選模式提供了真正意義上的負載平衡,并且可以根據(jù)節(jié)點的實際處理能力進行負載量的分配。
單個群集的最大節(jié)點數(shù)為32,如果還不能滿足需要,可以使用Round-Robin Domain Name Service把請求映射到多個群集上(但也因此引入了單點故障DNS,除非DNS冗余)。
負載平衡的安裝與配置 負載平衡的安全考慮 總結(jié)
Windows2003引入了網(wǎng)絡(luò)負載平衡管理器(控制面板->管理工具),使負載平衡的安裝和配置更加簡單。管理器可以容易的實現(xiàn)群集的建立、刪除,節(jié)點的添加、 刪除、修改以及故障的檢測。
運行網(wǎng)絡(luò)負載平衡管理器,選擇 群集 -> 新建 ,彈出“群集參數(shù)”對話框,按需要配置。
下一步,系統(tǒng)會提示添加附加群集IP,如果不需要可直接按“下一步”進行端口配置。以web群集配置為例,其典型端口配置如下圖所示:如果會話狀態(tài)不保存在該群集上,則相似性選擇無,否則選擇單一或者類C。
之后,指定一臺主機連接,并選擇一個可用的網(wǎng)絡(luò)接口,進行主機參數(shù)的設(shè)置:
點擊“完成”,管理器會自動連接到主機上進行相關(guān)配置來創(chuàng)建一個新的群集。可以雙擊日志項目,了解NLB管理器都進行了什么配置。
雖然,使用NLB管理器是一個微軟推薦的方法,但使用NLB.EXE命令行仍然有它獨特的優(yōu)點:反應(yīng)快,便于批處理。因此,掌握NLB命令也是快速部署的需要。
群集的遠程管理特性允許管理員在遠程計算機上使用NLB.EXE管理群集。但啟用此功能后,會帶來安全風險,比如密碼泄露和DOS (拒絕服務(wù)攻擊)。如果啟用,請確保密碼足夠復(fù)雜,并且根據(jù)需要在防火墻上進行訪問策略的配置(比如封鎖UDP端口1717和2504)。
負載平衡負載平衡是一項綜合的技術(shù),在實施過程中往往伴隨著其他技術(shù)的應(yīng)用。比如網(wǎng)絡(luò)負載平衡群集和服務(wù)器群集的結(jié)合,甚至與存儲區(qū)域網(wǎng)絡(luò)或網(wǎng)絡(luò)附加存儲相關(guān)聯(lián)都是一個不錯的主意。