Windows Server 2019 網(wǎng)絡(luò)負(fù)載均衡服務(wù)配置與管理(理論+網(wǎng)絡(luò)拓?fù)浼罢f明)
介紹了負(fù)載均衡的基本概念(包括負(fù)載均衡的定義,有無負(fù)載均衡器的拓?fù)鋵Ρ?,?fù)載均衡的工作原理,負(fù)載均衡的三要素),網(wǎng)絡(luò)負(fù)載均衡的特性,集群部署要求,網(wǎng)絡(luò)拓?fù)湟约罢f明。
1. 負(fù)載均衡的基本概念
1.1 負(fù)載均衡的定義
Load balancing,將網(wǎng)絡(luò)請求或其他形式的負(fù)載“均攤”到不同的計(jì)算機(jī)上,達(dá)到最優(yōu)化資源使用、最大化吞吐率、最小化響應(yīng)時(shí)間和避免過載的目的。配置服務(wù)器負(fù)載均衡可以避免集群中部分服務(wù)器壓力過大,而另一些服務(wù)器比較空閑的情況。負(fù)載均衡可分為軟件負(fù)載均衡和硬件負(fù)載均衡。
示例:
(1)一個(gè)沒有負(fù)載均衡的Web服務(wù)架構(gòu)
問題:如果大量用戶同時(shí)訪問該Web服務(wù)器,或遭受DOS/DDOS攻擊,該服務(wù)器可能出現(xiàn)宕機(jī)情況,這時(shí)候普通用戶將無法正常訪問,服務(wù)中斷,可能造成大量損失。
(2)加入負(fù)載均衡器的Web服務(wù)架構(gòu)
在服務(wù)器集群中加入負(fù)載均衡器后,負(fù)載均衡器可根據(jù)負(fù)載均衡算法將用戶請求轉(zhuǎn)發(fā)到服務(wù)器集群中空閑的服務(wù)器中。(具體請查閱1.2小節(jié))負(fù)載均衡器可以是軟件也可以是硬件。
1.2、負(fù)載均衡的工作原理
負(fù)載均衡器通過更改請求的目的地址對請求進(jìn)行轉(zhuǎn)發(fā),在服務(wù)器返回?cái)?shù)據(jù)包的時(shí)候,更改返回?cái)?shù)據(jù)包的源地址,保證客戶端請求的目的和返回包是同一個(gè)地址。
具體示例
某游戲運(yùn)營商申請到一個(gè)公網(wǎng)IP1.1.1.1,玩家的用戶登錄驗(yàn)證需要連接這個(gè)地址,玩家請求數(shù)據(jù)包會先通過防火墻,達(dá)到負(fù)載均衡器。負(fù)載均衡器根據(jù)其內(nèi)置算法決定玩家將連接哪一臺服務(wù)器進(jìn)行登錄驗(yàn)證,這里假設(shè)負(fù)載均衡器將該玩家分配給Web服務(wù)器1。接著負(fù)載均衡器將用戶請求數(shù)據(jù)包中的目的地址換成對應(yīng)的Web服務(wù)器1的IP地址,Web服務(wù)器的IP地址可能是內(nèi)網(wǎng)IP地址(例如192.168.82.223),玩家的請求數(shù)據(jù)包會到達(dá)Web服務(wù)器1上進(jìn)行驗(yàn)證。
內(nèi)置算法即決定服務(wù)器集群中哪臺服務(wù)器可以處理用戶請求。例如,有A、B、C三臺服務(wù)器,服務(wù)器A使用率已經(jīng)達(dá)到60%,服務(wù)器B和服務(wù)器C使用率均為0%,且正常運(yùn)行時(shí),負(fù)載均衡器中的內(nèi)置算法將用戶請求轉(zhuǎn)發(fā)到服務(wù)器B或服務(wù)器C中,具體需要查看B和C哪臺服務(wù)器的優(yōu)先級更高。
當(dāng)驗(yàn)證成功后,Web服務(wù)器1會發(fā)送一個(gè)響應(yīng)數(shù)據(jù)包返回給負(fù)載均衡器,負(fù)載均衡器會將收到數(shù)據(jù)包中的源地址由192.168.82.223改為1.1.1.1,再把響應(yīng)數(shù)據(jù)包發(fā)送給玩家。
這樣就保證了用戶的請求目的地址和響應(yīng)數(shù)據(jù)包的源地址是同一個(gè)地址。
1.3、負(fù)載均衡三要素
包括分發(fā)策略、會話保持和服務(wù)器健康檢查。
(1)分發(fā)策略
指負(fù)載均衡設(shè)備,根據(jù)什么樣的策略(即算法)把請求分發(fā)到不同的后臺服務(wù)器上,最簡單的算法是輪巡,把用戶請求依次分配到服務(wù)器上。
(2)會話保持
在大部分的應(yīng)用中都會涉及到服務(wù)器 Session控制。而且這些Session通常不會在服務(wù)器之間進(jìn)行復(fù)制的。即用戶A在登錄時(shí)負(fù)載均衡器將其分配到服務(wù)器1處理,那么以后所有關(guān)于用戶A的所有請求都將會轉(zhuǎn)發(fā)到服務(wù)器1中,而不會轉(zhuǎn)發(fā)到其他服務(wù)器上。如果分配到其他服務(wù)器上,其他服務(wù)器上沒有關(guān)于A的記錄,會導(dǎo)致請求失敗。
最簡單的會話保持策略是源地址會話保持。
(3)服務(wù)器健康檢查
指負(fù)載均衡設(shè)備必須檢測后臺服務(wù)器是否在正常工作,如果有某臺服務(wù)器出現(xiàn)故障,無法正常工作,那么負(fù)載均衡器會把這臺服務(wù)器從負(fù)載均衡組中剔除。當(dāng)故障服務(wù)器恢復(fù)時(shí),再把該服務(wù)器重新加載到負(fù)載均衡組中。
2. Windows Server Network Load Balancing(網(wǎng)絡(luò)負(fù)載均衡)
NLB增強(qiáng)了Internet服務(wù)器應(yīng)用程序的可用性和可伸縮性,例如在Web,F(xiàn)TP,防火墻,代理,虛擬專用網(wǎng)(VPN)和其他關(guān)鍵任務(wù)服務(wù)器上使用網(wǎng)絡(luò)負(fù)載平衡服務(wù)。
網(wǎng)絡(luò)負(fù)載平衡(NLB)特性是通過使用TCP/IP協(xié)議在多個(gè)服務(wù)器之間分配流量。通過將運(yùn)行應(yīng)用程序的兩臺或多臺服務(wù)器合并到一個(gè)虛擬集群中,NLB為web服務(wù)器和其他關(guān)鍵任務(wù)服務(wù)器提供了可靠性和性能。
NLB集群中的服務(wù)器稱為主機(jī),每個(gè)主機(jī)都運(yùn)行著相同服務(wù)的單獨(dú)副本。NLB會將客戶端的請求轉(zhuǎn)發(fā)到集群中的各個(gè)主機(jī)上。系統(tǒng)管理員可以配置由每個(gè)主機(jī)處理客戶端請求。還可以動(dòng)態(tài)地向集群添加主機(jī)來處理增加的負(fù)載。NLB還可以將所有流量定向到指定的主機(jī)中,該主機(jī)稱為默認(rèn)主機(jī)。
NLB允許群集中的所有服務(wù)器使用相同的IP地址集進(jìn)行尋址,并且為每個(gè)主機(jī)維護(hù)一組唯一的專用IP地址。對于負(fù)載平衡的應(yīng)用程序,當(dāng)主機(jī)發(fā)生故障或脫機(jī)時(shí),負(fù)載會自動(dòng)在正常工作的服務(wù)器之間重新分配。準(zhǔn)備就緒后,脫機(jī)的服務(wù)器可以透明地重新加入群集并重新獲得其工作負(fù)荷的份額,這使群集中的其他計(jì)算機(jī)可以處理較少的流量。
2.1 特性
Windows Server 的網(wǎng)絡(luò)負(fù)載均衡有三個(gè)重要特性,包括高可用性、可擴(kuò)展性和可管理性。
(1)高可用性
高可用性系統(tǒng)可靠地提供了可接受的服務(wù)水平,并且停機(jī)時(shí)間最少。為了提供高可用性,NLB包括內(nèi)置功能,這些功能可以自動(dòng):
檢測發(fā)生故障或脫機(jī)的群集主機(jī),然后進(jìn)行恢復(fù)。添加或刪除主機(jī)時(shí),平衡網(wǎng)絡(luò)負(fù)載。在10秒之內(nèi)恢復(fù)并重新分配工作負(fù)載。 (2)可擴(kuò)展性
可伸縮性是衡量計(jì)算機(jī),服務(wù)或應(yīng)用程序在滿足不斷增長的性能要求的能力的度量。對于NLB群集,可伸縮性是當(dāng)群集的整體負(fù)載超過其能力時(shí),可以向現(xiàn)有群集中增量添加一個(gè)或多個(gè)系統(tǒng)的能力。為了支持可伸縮性,系統(tǒng)管理員可以對NLB執(zhí)行以下操作:
平衡NLB群集中各個(gè)TCP / IP服務(wù)的負(fù)載請求。單個(gè)群集中最多支持32臺服務(wù)器。在群集中的多個(gè)主機(jī)之間平衡多個(gè)服務(wù)負(fù)載請求(來自同一客戶端或來自多個(gè)客戶端)。隨著負(fù)載增加,將主機(jī)添加到NLB群集中,而不會導(dǎo)致群集發(fā)生故障。當(dāng)負(fù)載降低時(shí),可以從群集中刪除主機(jī)。通過完整的流水線實(shí)施實(shí)現(xiàn)高性能和低開銷。流水線化允許將請求發(fā)送到NLB群集,而無需等待對先前請求的響應(yīng)。 (3)可管理性
為了支持可管理性,系統(tǒng)管理員可以對NLB執(zhí)行以下操作:
通過使用Windows PowerShell中的網(wǎng)絡(luò)負(fù)載平衡(NLB)Cmdlet 或NLB管理器,可以在一臺服務(wù)器管理和配置多個(gè)NLB群集和群集主機(jī)。使用端口管理規(guī)則為單個(gè)IP端口或一組端口指定負(fù)載平衡行為。為每個(gè)網(wǎng)站定義不同的端口規(guī)則。如果將同一組負(fù)載平衡服務(wù)器用于多個(gè)應(yīng)用程序或網(wǎng)站,則端口規(guī)則基于目標(biāo)虛擬IP地址(使用虛擬群集)。使用可選的單主機(jī)規(guī)則將所有客戶端請求定向到單臺主機(jī)時(shí)。NLB將客戶端請求路由到運(yùn)行特定應(yīng)用程序的特定主機(jī)。阻止對某些IP端口的網(wǎng)絡(luò)訪問。在多播模式下運(yùn)行時(shí),請?jiān)谌杭鳈C(jī)上啟用Internet組管理協(xié)議(IGMP)支持,以控制交換機(jī)端口泛洪(將傳入網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送到交換機(jī)上的所有端口)。使用Windows PowerShell命令或腳本遠(yuǎn)程啟動(dòng),停止和控制NLB操作。查看Windows事件日志以檢查NLB事件。NLB將所有操作和群集更改記錄在事件日志中。
2.2 部署NLB服務(wù)群集的要求
(1)硬件要求 群集中的所有主機(jī)必須位于同一子網(wǎng)中。每個(gè)主機(jī)上的網(wǎng)絡(luò)適配器數(shù)量沒有限制,并且不同的主機(jī)可以具有不同數(shù)量的適配器。在每個(gè)群集中,所有網(wǎng)絡(luò)適配器必須是多播或單播的。NLB在單個(gè)群集中不支持多播和單播的混合環(huán)境。如果使用單播模式,則用于處理客戶端到群集流量的網(wǎng)絡(luò)適配器必須支持更改其媒體訪問控制(MAC)地址。
(2)軟件要求 在每個(gè)主機(jī)上啟用了NLB的適配器上只能使用TCP/IP。請勿將任何其他協(xié)議(例如IPX)添加到此適配器。群集中服務(wù)器的IP地址必須是靜態(tài)的。
NLB不支持動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)。NLB會在其配置的每個(gè)接口上禁用DHCP。
3. 網(wǎng)絡(luò)拓?fù)浼罢f明
右側(cè)三臺服務(wù)器構(gòu)成服務(wù)器集群,統(tǒng)一為外界提供Web服務(wù),其Web服務(wù)聚合IP地址為10.0.0.1.同時(shí)每臺服務(wù)器上均安裝網(wǎng)絡(luò)負(fù)載均衡(Network Load Balancing,NLB)形成集群負(fù)載均衡。三臺服務(wù)器的內(nèi)網(wǎng)IP地址分別為:
NLB1:192.168.82.208NLB2:192.168.82.209NLB3:192.168.82.210
左側(cè)為客戶端電腦PC2,IP地址為10.0.0.2。PC2通過10.0.0.2訪問服務(wù)器集群NLB1-3提供的Web服務(wù)。
參考資料
Microsoft Docs:
相關(guān)文章
事件ID( 54 )的描述(在資源( HTTP )中)無法找到
事件 ID ( 54 )的描述(在資源( HTTP )中)無法找到。。.. \Device\Http\AppPool.本地計(jì)算機(jī)可能沒有必要的注冊信息或消息 DLL 文件來從遠(yuǎn)程計(jì)算機(jī)顯示消息。您可能可以使用 /AUXSOURCE= 標(biāo)識來檢索詞描述;查看幫助和支持以了解詳細(xì)信息。2008-07-07讓IIS支持高并發(fā)的Web服務(wù)器常用設(shè)置
對于大流量的基于iis的windows服務(wù)器來說,必須要設(shè)置的幾個(gè)點(diǎn),這里就為大家整理一下2023-10-10Windows Server 2016+Sql Server 2016搭建Alw
集群規(guī)劃節(jié)點(diǎn)加域重啟并用本地管理員賬戶重新登陸后,開始安裝故障轉(zhuǎn)移集群功能(WSFC),并創(chuàng)建故障轉(zhuǎn)移集群2023-05-05Win2008 r2 IIS7.5制定目錄禁止執(zhí)行腳本的方法
這篇文章主要介紹了Win2008 r2 IIS7.5制定目錄禁止執(zhí)行腳本的方法,需要的朋友可以參考下2016-06-06IIS下Zend 出現(xiàn) Unable to view file mapping 問題的解決方法匯總
這篇文章主要介紹了IIS下Zend 出現(xiàn) Unable to view file mapping 問題的解決方法匯總,需要的朋友可以參考下2014-05-05windows下nginxHTTP服務(wù)器入門教程初級篇
介紹Nginx是俄羅斯人編寫的十分輕量級的HTTP服務(wù)器,Nginx,它的發(fā)音為“engine X”, 是一個(gè)高性能的HTTP和反向代理服務(wù)器,同時(shí)也是一個(gè)IMAP/POP3/SMTP 代理服務(wù)器.2010-03-03windows使用nginx實(shí)現(xiàn)網(wǎng)站負(fù)載均衡測試實(shí)例
如果你關(guān)注過nginx,必定知道nginx這個(gè)軟件有什么用的,如果你的網(wǎng)站訪問量越來越高,一臺服務(wù)器已經(jīng)沒有辦法承受流量壓力,那就增多幾臺服務(wù)器來做負(fù)載吧。2010-03-03