在一個(gè)廣泛的計(jì)算系統(tǒng)中,單個(gè)服務(wù)器不能總是處理網(wǎng)絡(luò)流量的負(fù)載或需求。這就是負(fù)載平衡發(fā)揮作用的地方。負(fù)載平衡通過將網(wǎng)絡(luò)或應(yīng)用程序流量分布在一組服務(wù)器上來確保網(wǎng)絡(luò)平穩(wěn)運(yùn)行。負(fù)載平衡器通常存在于客戶端設(shè)備和后端服務(wù)器之間,并將傳入的請求分發(fā)到能夠處理請求的可用服務(wù)器。
負(fù)載均衡器如何工作?
負(fù)載均衡器可以是:
- 在硬件或軟件進(jìn)程上運(yùn)行的物理設(shè)備或虛擬化實(shí)例
- 并入應(yīng)用程序交付控制器 (ADC)
- 能夠使用負(fù)載均衡算法
負(fù)載均衡器通過以下方式工作:
- 將流量分配到資源池中的不同 Web 服務(wù)器
- 確保沒有單個(gè)服務(wù)器在請求溢出時(shí)過度工作并隨后變得不可靠
- 跨服務(wù)器傳播網(wǎng)絡(luò)流量(通常稱為服務(wù)器場或服務(wù)器池)
- 最小化服務(wù)器響應(yīng)時(shí)間
- 最大化吞吐量
- 在給定時(shí)刻將請求路由到正確的位置
- 防止瓶頸和事件
- 通過提供性能和必要的安全性來維持復(fù)雜的 IT 環(huán)境
什么是負(fù)載均衡——L4、L7 和 GSLB 負(fù)載均衡器
服務(wù)器資源必須易于使用并在開放系統(tǒng)互連 (OSI) 架構(gòu)的第 4 層和/或第 7 層進(jìn)行負(fù)載平衡,以鼓勵(lì)提高一致性并跟上不斷變化的用戶需求。
第 4 層 (L4) 的負(fù)載平衡器在傳輸級別運(yùn)行。這意味著他們可以根據(jù)他們使用的 TCP 或 UDP 端口以及源和目標(biāo) IP 地址來決定如何路由數(shù)據(jù)包。網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT) 由 L4 負(fù)載平衡器執(zhí)行,但它們不會(huì)檢查每個(gè)數(shù)據(jù)包內(nèi)的數(shù)據(jù)。
OSI 模型中的最高級別,第 7 層 (L7) 負(fù)載平衡器在應(yīng)用程序級別運(yùn)行。在確定如何在服務(wù)器場的服務(wù)器之間分發(fā)請求時(shí),他們可以訪問比 L4 對應(yīng)方更多種類的數(shù)據(jù),例如 HTTP 標(biāo)頭和 SSL 會(huì)話 ID。
與 L4 相比,L7 的負(fù)載平衡需要更多的工作,但它也可以更有效,因?yàn)?L7 服務(wù)器有更多的上下文來理解和執(zhí)行客戶端請求。全局服務(wù)器負(fù)載平衡 (GSLB),除了基本的 L4 和 L7 負(fù)載平衡之外,還可以擴(kuò)展任何類型跨眾多數(shù)據(jù)中心的能力,以有效地分配大量流量,而不會(huì)降低最終用戶服務(wù)。
基于功能的負(fù)載均衡器類型
負(fù)載均衡器通常分為三種類型:網(wǎng)絡(luò)負(fù)載均衡器、HTTP(S) 負(fù)載均衡器和經(jīng)典負(fù)載均衡器。
1. 網(wǎng)絡(luò)負(fù)載均衡器
網(wǎng)絡(luò)負(fù)載平衡器 (NLB),也稱為第四層負(fù)載平衡,利用傳輸層來決定哪個(gè)服務(wù)器接收來自客戶端的傳入請求。當(dāng) NLB 收到客戶端連接請求時(shí),它使用流散列路由算法從池中選擇目標(biāo)服務(wù)器,該算法使用 IP 地址和端口號來確定合適的服務(wù)器。
然后,NLB 在流哈希算法指定的端口上打開到目標(biāo)服務(wù)器的傳輸控制協(xié)議 (TCP) 連接。在此過程中,連接請求在不修改其標(biāo)頭的情況下被傳輸。與其他負(fù)載平衡器相比,NLB 速度更快。但是,它們在不同服務(wù)器之間分配流量時(shí)速度很慢。
2. HTTP(S) 負(fù)載均衡器
HTTP(S) 負(fù)載平衡器 (HLB),也稱為第 7 層負(fù)載平衡器,根據(jù) HTTP/HTTPS 標(biāo)頭做出路由決策。HLB 還可以跟蹤客戶端和服務(wù)器之間的響應(yīng),從而提供有關(guān)特定服務(wù)器相對于處理的繁忙或空閑程度的信息。與推測性的 NLB 不同,HLB 是數(shù)據(jù)驅(qū)動(dòng)的,并且在路由決策方面非常靈活。
3.經(jīng)典負(fù)載均衡器
經(jīng)典負(fù)載均衡器 (CLB) 在??第 4 層和第 7 層運(yùn)行。為了無縫運(yùn)行,CLB 需要端口之間的固定關(guān)系。例如,您可以將負(fù)載均衡器端口 80 映射到容器實(shí)例端口 3030。但是,您不能將負(fù)載均衡器 80 映射到一個(gè)實(shí)例上的端口 3030 和另一個(gè)實(shí)例上的端口 4040。
基于配置的負(fù)載均衡器類型
除了上述分類之外,您還可以將負(fù)載均衡器分組為硬件、軟件或虛擬負(fù)載均衡器
硬件負(fù)載平衡器
硬件負(fù)載平衡器依靠物理的本地硬件在客戶端和服務(wù)器之間路由流量。它們具有以下屬性:
- 他們需要高性能的設(shè)備
- 他們可以處理來自不同類型應(yīng)用程序的多個(gè)千兆流量
- 他們具有虛擬化能力
- 虛擬負(fù)載平衡器實(shí)例出現(xiàn)在同一硬件中
- 它們具有靈活的多租戶架構(gòu)和租戶的完全隔離
軟件負(fù)載平衡器 (SLB)
SLB 是您安裝用作負(fù)載平衡器的商業(yè)或開源軟件。軟件負(fù)載均衡器具有以下特點(diǎn):
- 它們可以替代負(fù)載平衡硬件,以更高的靈活性提供類似的功能
- 它們運(yùn)行在通用的管理程序上,在裸機(jī)服務(wù)器上的開銷最小
- 根據(jù)用例,它們是高度可配置的
- 它們節(jié)省空間并減少硬件支出
虛擬負(fù)載平衡器 (VLB)
另一方面,VLB 通過在虛擬機(jī) (VM) 上運(yùn)行負(fù)載平衡軟件來提供軟件負(fù)載平衡功能。您可以使用 VLB 來提供短期負(fù)載平衡功能。然而,VLB 無法解決固有的硬件挑戰(zhàn),例如有限的可擴(kuò)展性和自動(dòng)化。此外,數(shù)據(jù)中心缺乏集中管理會(huì)阻礙 VLB 的潛力。
什么是負(fù)載平衡 – 硬件與基于軟件的負(fù)載平衡器
負(fù)載平衡器可以是基于硬件的,也可以是基于軟件的。基于硬件的負(fù)載平衡器(也稱為硬件負(fù)載平衡設(shè)備 (HLD))需要具有專用固件的專有機(jī)架和堆棧設(shè)備。
但是,HLD 是從專用集成控制器 (ASIC) 構(gòu)建的,用于在客戶端和服務(wù)器之間分配流量。另一方面,基于軟件的負(fù)載均衡器作為應(yīng)用程序交付控制器 (ADC) 在標(biāo)準(zhǔn) x86 服務(wù)器或虛擬機(jī) (VM) 上運(yùn)行。
HLD 使用專門的 ASIC 構(gòu)建,管理客戶端和服務(wù)器之間的流量,對處理器的影響最小。在高峰時(shí)段,組織必須提供足夠的 HLD 以滿足不斷增長的需求。然而,這樣的規(guī)定可能意味著大多數(shù) HLD 可能會(huì)在淡季閑置。
相比之下,基于軟件的負(fù)載均衡器在集群虛擬機(jī)上運(yùn)行它們的服務(wù)。典型的基于軟件的負(fù)載平衡器通常指定一個(gè)主集群服務(wù)器來將客戶端工作負(fù)載分配給其他輔助服務(wù)器。這有助于在一臺服務(wù)器出現(xiàn)故障時(shí)最大限度地減少停機(jī)時(shí)間。在這方面,基于軟件的負(fù)載均衡器可以彈性擴(kuò)展以滿足比其 HLD 對應(yīng)物不斷增長的需求。
常見的負(fù)載均衡算法
負(fù)載平衡算法根據(jù)兩個(gè)因素選擇哪個(gè)后端服務(wù)器處理客戶端流量:服務(wù)器的健康狀況和預(yù)定義規(guī)則。負(fù)載平衡算法首先確定哪個(gè)服務(wù)器池可以正確響應(yīng)客戶端的請求。接下來,它使用預(yù)先配置的規(guī)則在池中選擇合適的服務(wù)器來處理流量。
典型的負(fù)載均衡算法包括:
循環(huán)賽
負(fù)載平衡器按順序?yàn)榉?wù)器提供請求。將請求傳輸?shù)阶詈笠粋€(gè)服務(wù)器后,該過程從第一個(gè)服務(wù)器重新啟動(dòng)。有兩類循環(huán)算法:加權(quán)循環(huán)和動(dòng)態(tài)循環(huán)。加權(quán)循環(huán)算法根據(jù)服務(wù)器的效率和結(jié)構(gòu)為服務(wù)器分配單獨(dú)的權(quán)重。加權(quán)循環(huán)法在您擁有不同服務(wù)器池的情況下很有用。相比之下,動(dòng)態(tài)循環(huán)算法實(shí)時(shí)計(jì)算服務(wù)器的權(quán)重,以確定將請求轉(zhuǎn)發(fā)到哪個(gè)服務(wù)器。
最少連接法
顧名思義,最少連接數(shù)算法會(huì)選擇連接數(shù)最少的服務(wù)器。它適用于客戶端工作負(fù)載導(dǎo)致較長會(huì)話的情況。
最短響應(yīng)時(shí)間法
負(fù)載平衡器選擇具有最少活動(dòng)連接和最短響應(yīng)時(shí)間的服務(wù)器。此方法適用于客戶端要求服務(wù)器迅速響應(yīng)的情況。
最小帶寬法
負(fù)載平衡器計(jì)算將客戶端工作負(fù)載發(fā)送到各種服務(wù)器所需的帶寬(以 Mbps 為單位)。然后它將請求發(fā)送到消耗最小帶寬的服務(wù)器。
散列法
負(fù)載平衡器根據(jù)客戶端的數(shù)據(jù)包計(jì)算哈希值。哈希值決定了服務(wù)器轉(zhuǎn)發(fā)客戶端的工作量。換句話說,工作負(fù)載的 IP 地址決定了接收請求的服務(wù)器。
自定義加載方式
負(fù)載平衡器使用簡單網(wǎng)絡(luò)管理協(xié)議 (SNMP) 查詢各個(gè)服務(wù)器的負(fù)載,例如 CPU 和內(nèi)存消耗。然后它根據(jù)服務(wù)器的工作負(fù)載將傳入的請求轉(zhuǎn)發(fā)到服務(wù)器。
基于資源的方法
負(fù)載平衡器根據(jù)現(xiàn)有會(huì)話、CPU 和內(nèi)存消耗以及計(jì)數(shù)器來確定哪些服務(wù)器處于空閑狀態(tài)。然后它將客戶端工作負(fù)載分配給消耗最少資源的服務(wù)器。
什么是負(fù)載平衡——好處
除了控制網(wǎng)絡(luò)流量外,負(fù)載均衡還有其他功能。軟件負(fù)載平衡器提供的預(yù)測分析功能有助于在流量瓶頸發(fā)生之前識別它們。結(jié)果,軟件負(fù)載平衡器為組織提供了有用的信息。這些對于自動(dòng)化至關(guān)重要,并且會(huì)影響公司的選擇。
簡而言之,負(fù)載平衡有助于:
- 減少停機(jī)時(shí)間
- 冗余
- 效率
- 可擴(kuò)展性
- 靈活性
并行 RAS 如何幫助負(fù)載平衡?
RAS使您能夠?qū)V泛的 IT 基礎(chǔ)架構(gòu)進(jìn)行負(fù)載平衡,而無需復(fù)雜的配置或昂貴的附加組件。它平衡了 RDSH 服務(wù)器和內(nèi)部組件。Parallels RAS 提供高可用性負(fù)載平衡 (HALB),減少停機(jī)和中斷的可能性。HALB 通過基于資源的分配(用戶會(huì)話、內(nèi)存和 CPU)在遠(yuǎn)程桌面服務(wù)器和網(wǎng)關(guān)之間分配數(shù)據(jù)流量。還支持第三方負(fù)載均衡器,例如 AWS 彈性負(fù)載均衡器 (ELB) 和 Azure 負(fù)載均衡器。
管理員還可以為隔離訪問配置多個(gè) HALB 虛擬服務(wù)器。例如,當(dāng)使用不同的安全客戶端網(wǎng)關(guān)進(jìn)行內(nèi)部和外部訪問或不同的分支機(jī)構(gòu)時(shí)。
各種 HALB 配置設(shè)置啟用高級管理,包括:
- 連接設(shè)置(每秒連接數(shù)、最大連接數(shù))
- 超時(shí)設(shè)置(網(wǎng)關(guān)連接、客戶端隊(duì)列和不活動(dòng))
- 虛擬路由器冗余協(xié)議 (VRRP) 設(shè)置
組織可以增強(qiáng)其原有的負(fù)載平衡基礎(chǔ)設(shè)施并提供增強(qiáng)的用戶體驗(yàn),尤其是在廣域網(wǎng) (WAN) 場景中。