您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“l(fā)inux有哪些負載均衡”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
linux有4種負載均衡:1、二層負載均衡(mac),是用虛擬mac地址方式,外部對虛擬MAC地址請求,負載均衡接收后分配后端實際的MAC地址響應(yīng);2、三層負載均衡(ip),采用虛擬IP地址方式,外部對虛擬的ip地址請求,負載均衡接收后分配后端實際的IP地址響應(yīng);3、四層負載均衡(tcp),從第四層“傳輸層”開始,使用“ip+port”接收請求;4、七層負載均衡(http)。
1)負載均衡(Load Balance)建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價有效透明的方法擴展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。負載均衡有兩方面的含義:首先,大量的并發(fā)訪問或數(shù)據(jù)流量分擔到多臺節(jié)點設(shè)備上分別處理,減少用戶等待響應(yīng)的時間;其次,單個重負載的運算分擔到多臺節(jié)點設(shè)備上做并行處理,每個節(jié)點設(shè)備處理結(jié)束后,將結(jié)果匯總,返回給用戶,系統(tǒng)處理能力得到大幅度提高。
2)簡單來說就是:其一是將大量的并發(fā)處理轉(zhuǎn)發(fā)給后端多個節(jié)點處理,減少工作響應(yīng)時間;其二是將單個繁重的工作轉(zhuǎn)發(fā)給后端多個節(jié)點處理,處理完再返回給負載均衡中心,再返回給用戶。目前負載均衡技術(shù)大多數(shù)是用于提高諸如在Web服務(wù)器、FTP服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器上的Internet服務(wù)器程序的可用性和可伸縮性。
開發(fā)、運維中最常見的四層負載均衡和七層負載均衡。
根據(jù)OSI模型分的二層負載,一般是用虛擬mac地址方式,外部對虛擬MAC地址請求,負載均衡接收后分配后端實際的MAC地址響應(yīng)。
一般采用虛擬IP地址方式,外部對虛擬的ip地址請求,負載均衡接收后分配后端實際的IP地址響應(yīng)。 (即一個ip對一個ip的轉(zhuǎn)發(fā), 端口全放開)
在三次負載均衡的基礎(chǔ)上,即從第四層"傳輸層"開始,使用"ip+port"接收請求,再轉(zhuǎn)發(fā)到對應(yīng)的機器。
就是基于IP+端口的負載均衡:在三層負載均衡的基礎(chǔ)上,通過發(fā)布三層的IP地址(VIP),然后加四層的端口號,來決定哪些流量需要做負載均衡,對需要處理的流量進行NAT處理,轉(zhuǎn)發(fā)至后臺服務(wù)器,并記錄下這個TCP或者UDP的流量是由哪臺服務(wù)器處理的,后續(xù)這個連接的所有流量都同樣轉(zhuǎn)發(fā)到同一臺服務(wù)器處理。
對應(yīng)的負載均衡器稱為四層交換機(L4 switch),主要分析IP層及TCP/UDP層,實現(xiàn)四層負載均衡。此種負載均衡器不理解應(yīng)用協(xié)議(如HTTP/FTP/MySQL等等)。
實現(xiàn)四層負載均衡的軟件有:
F5:硬件負載均衡器,功能很好,但是成本很高。
lvs:重量級的四層負載軟件
nginx:輕量級的四層負載軟件,帶緩存功能,正則表達式較靈活
haproxy:模擬四層轉(zhuǎn)發(fā),較靈活
從第七層"應(yīng)用層"開始, 根據(jù)虛擬的url或IP,主機名接收請求,再轉(zhuǎn)向相應(yīng)的處理服務(wù)器。
就是基于虛擬的URL或主機IP的負載均衡:在四層負載均衡的基礎(chǔ)上(沒有四層是絕對不可能有七層的),再考慮應(yīng)用層的特征,比如同一個Web服務(wù)器的負載均衡,除了根據(jù)VIP加80端口辨別是否需要處理的流量,還可根據(jù)七層的URL、瀏覽器類別、語言來決定是否要進行負載均衡。舉個例子,如果你的Web服務(wù)器分成兩組,一組是中文語言的,一組是英文語言的,那么七層負載均衡就可以當用戶來訪問你的域名時,自動辨別用戶語言,然后選擇對應(yīng)的語言服務(wù)器組進行負載均衡處理。
對應(yīng)的負載均衡器稱為七層交換機(L7 switch),除了支持四層負載均衡以外,還有分析應(yīng)用層的信息,如HTTP協(xié)議URI或Cookie信息,實現(xiàn)七層負載均衡。此種負載均衡器能理解應(yīng)用協(xié)議。
實現(xiàn)七層負載均衡的軟件有:
haproxy:天生負載均衡技能,全面支持七層代理,會話保持,標記,路徑轉(zhuǎn)移;
nginx:只在http協(xié)議和mail協(xié)議上功能比較好,性能與haproxy差不多;
apache:功能較差
Mysql proxy:功能尚可。
總的來說,一般是lvs做4層負載;nginx做7層負載(也能做4層負載, 通過stream模塊);haproxy比較靈活,4層和7層負載均衡都能做。
所謂四層負載均衡,也就是主要通過報文中的目標地址和端口,再加上負載均衡設(shè)備設(shè)置的服務(wù)器選擇方式,決定最終選擇的內(nèi)部服務(wù)器。
以常見的TCP為例,負載均衡設(shè)備在接收到第一個來自客戶端的SYN 請求時,即通過上述方式選擇一個最佳的服務(wù)器,并對報文中目標IP地址進行修改(改為后端服務(wù)器IP),直接轉(zhuǎn)發(fā)給該服務(wù)器。TCP的連接建立,即三次握手是客戶端和服務(wù)器直接建立的,負載均衡設(shè)備只是起到一個類似路由器的轉(zhuǎn)發(fā)動作。在某些部署情況下,為保證服務(wù)器回包可以正確返回給負載均衡設(shè)備,在轉(zhuǎn)發(fā)報文的同時可能還會對報文原來的源地址進行修改。
所謂七層負載均衡,也稱為“內(nèi)容交換”,也就是主要通過報文中的真正有意義的應(yīng)用層內(nèi)容,再加上負載均衡設(shè)備設(shè)置的服務(wù)器選擇方式,決定最終選擇的內(nèi)部服務(wù)器。
以常見的TCP為例,負載均衡設(shè)備如果要根據(jù)真正的應(yīng)用層內(nèi)容再選擇服務(wù)器,只能先代理最終的服務(wù)器和客戶端建立連接(三次握手)后,才可能接受到客戶端發(fā)送的真正應(yīng)用層內(nèi)容的報文,然后再根據(jù)該報文中的特定字段,再加上負載均衡設(shè)備設(shè)置的服務(wù)器選擇方式,決定最終選擇的內(nèi)部服務(wù)器。負載均衡設(shè)備在這種情況下,更類似于一個代理服務(wù)器。負載均衡和前端的客戶端以及后端的服務(wù)器會分別建立TCP連接。所以從這個技術(shù)原理上來看,七層負載均衡明顯的對負載均衡設(shè)備的要求更高,處理七層的能力也必然會低于四層模式的部署方式。
四層負載均衡在中間傳輸層執(zhí)行,它處理消息的傳遞,但不考慮消息的內(nèi)容。例如TCP是網(wǎng)絡(luò)上Hypertext Transfer Protocol(HTTP)流量的第四層協(xié)議。在這一過程中,4層負載均衡會將網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)發(fā)到上游服務(wù)器,但不會檢查數(shù)據(jù)包的內(nèi)容,只能通過檢查TCP流中的前幾個包來做出有限的路由決策。
七層負載均衡不同于四層負載均衡,它在高級應(yīng)用層上執(zhí)行,會處理每個消息的實際內(nèi)容。HTTP是網(wǎng)絡(luò)上網(wǎng)站流量的主要7層協(xié)議。七層負載均衡以比四層負載均衡更復(fù)雜的方式路由網(wǎng)絡(luò)流量,尤其適用于基于TCP的流量(如HTTP)。七層負載均衡會終止網(wǎng)絡(luò)流量并讀取器中消息,它可以根據(jù)消息內(nèi)容(如URL或cookie)做出負載均衡決策。隨后,七層負載均衡與選定上有服務(wù)器建立新的TCP連接并將請求寫入服務(wù)器。
簡單來說,二者之間的區(qū)別
- 七層負載均衡基本都是基于http協(xié)議的,適用于web服務(wù)器的負載均衡。(nginx)
- 四層負載均衡主要是基于tcp協(xié)議報文,可以做任何基于tcp/ip協(xié)議的軟件的負載均衡。(haproxy、LVS)
- 兩者主要區(qū)別在于利用的報文所在的層面是不同的,各有各的好處。
- 七層應(yīng)用負載的好處,是使得整個網(wǎng)絡(luò)更”智能化“。例如訪問一個網(wǎng)站的用戶流量,可以通過七層的方式,將對圖片類的請求轉(zhuǎn)發(fā)到特定的圖片服務(wù)器并可以使用緩存技術(shù);將對文字類的請求可以轉(zhuǎn)發(fā)到特定的文字服務(wù)器并可以使用壓縮技術(shù)。當然這只是七層應(yīng)用的一個小案例,從技術(shù)原理上,這種方式可以對客戶端的請求和服務(wù)器的響應(yīng)進行任意意義上的修改,極大的提升了應(yīng)用系統(tǒng)在網(wǎng)絡(luò)層的靈活性。很多在后臺,例如Nginx或者Apache上部署的功能可以前移到負載均衡設(shè)備上,例如客戶請求中的Header重寫,服務(wù)器響應(yīng)中的關(guān)鍵字過濾或者內(nèi)容插入等功能。
- 四層負載均衡主要是較為靈活,可以作為多種軟件的負載均衡器。
舉個例子形象的說明:四層負載均衡就像銀行的自助排號機,每一個達到銀行的客戶根據(jù)排號機的順序,選擇對應(yīng)的窗口接受服務(wù);而七層負載均衡像銀行大堂經(jīng)理,先確認客戶需要辦理的業(yè)務(wù),再安排排號。這樣辦理理財、存取款等業(yè)務(wù)的客戶,會根據(jù)銀行內(nèi)部資源得到統(tǒng)一協(xié)調(diào)處理,加快客戶業(yè)務(wù)辦理流程。
七層負載均衡的好處
七層負載均衡比基于數(shù)據(jù)包的四層負載均衡更占CPU,但很少會導致服務(wù)器性能下降。七層負載均衡可以讓負載均衡器做出更明智的決策,并可以對內(nèi)容進行優(yōu)化和更改,如壓縮、加密等等。七層負載均衡還可以利用buffering來卸載上游服務(wù)器的慢速連接,從而提高性能。
執(zhí)行七層負載平衡的組件通常被稱為反向代理服務(wù)器。
七層負載均衡示例
舉個簡單的例子,假設(shè)用戶訪問高流量網(wǎng)站,在會話期間,它可能會請求靜態(tài)內(nèi)容(例如圖像或視頻)、動態(tài)內(nèi)容(例如新聞訂閱源)或者交易信息(例如訂單狀態(tài))等等。7層負載平衡允許負載均衡器根據(jù)請求本身中的消息(如內(nèi)容類型)來路由請求。也就是說,可以將對圖像或視頻的請求路由到存儲它的服務(wù)器,并進行高度優(yōu)化以提供多媒體內(nèi)容;可以將諸如折扣價之類的交易信息請求路由到負責管理定價的應(yīng)用服務(wù)器。借助7層負載平衡,網(wǎng)絡(luò)和應(yīng)用程序架構(gòu)師可以創(chuàng)建高度優(yōu)化的服務(wù)器基礎(chǔ)架構(gòu)或應(yīng)用交付網(wǎng)絡(luò),在保障可靠性的同時進行有效擴展。
簡單總結(jié)
從上面的對比看來四層負載與七層負載最大的區(qū)別就是效率與功能的區(qū)別。四層負載架構(gòu)設(shè)計比較簡單,無需解析具體的消息內(nèi)容,在網(wǎng)絡(luò)吞吐量及處理能力上會相對比較高,而七層負載均衡的優(yōu)勢則體現(xiàn)在功能多,控制靈活強大。在具體業(yè)務(wù)架構(gòu)設(shè)計時,使用七層負載或者四層負載還得根據(jù)具體的情況綜合考慮。
負載均衡時的數(shù)據(jù)流都經(jīng)過負載均衡器,如何解決負載均衡器成為瓶頸的問題?
通過修改tcp報文的源地址和目的地址,使從web服務(wù)器中返回的數(shù)據(jù)直接返回到客戶端,這是七層負載均衡無法做到的,因為tcp三次握手建立在客戶端與負載均衡服務(wù)器之間,http協(xié)議基于tcp協(xié)議,建立好tcp鏈接后才傳送http報文,收到http報文說明負載均衡器和客戶端已經(jīng)建立了tcp連接,而web服務(wù)器和客戶端的tcp鏈接都沒建立,怎么回傳數(shù)據(jù)給客戶端呢。以上的辦法會出現(xiàn)問題:所有集群里的主機都是內(nèi)網(wǎng)ip,無法跟外界聯(lián)系。
解決方案1:
如果能買到那么多外網(wǎng)Ip地址來用,然后在tcp鏈接要建立時負載均衡給真正的web服務(wù)器,讓客戶端和服務(wù)器建立tcp鏈接。
解決方案2:
引用一句話:計算機所有的問題都可以通過建立一層虛擬層解決。
可以通過將所有服務(wù)器主機ip虛擬化成負載均衡服務(wù)器的ip,這樣服務(wù)器集群的所有主機都可以訪問外界網(wǎng)絡(luò),因為ip地址(網(wǎng)絡(luò)層,三層)都是相同,所以只能通過第二層來分辨數(shù)據(jù)流向,修改數(shù)據(jù)鏈路層(二層)目的主機的MAC地址,使請求發(fā)到web服務(wù)器上,然后才真正建立起tcp連接,然后web服務(wù)器因為可以聯(lián)網(wǎng),所以可以直接返回數(shù)據(jù)給客戶端
七層應(yīng)用負載的好處,是使得整個網(wǎng)絡(luò)更"智能化"。例如訪問一個網(wǎng)站的用戶流量,可以通過七層的方式,將對圖片類的請求轉(zhuǎn)發(fā)到特定的圖片服務(wù)器并可以使用緩存技術(shù);將對文字類的請求可以轉(zhuǎn)發(fā)到特定的文字服務(wù)器并可以使用壓縮技術(shù)。當然這只是七層應(yīng)用的一個小案例,從技術(shù)原理上,這種方式可以對客戶端的請求和服務(wù)器的響應(yīng)進行任意意義上的修改,極大的提升了應(yīng)用系統(tǒng)在網(wǎng)絡(luò)層的靈活性。很多在后臺,例如Nginx或者Apache上部署的功能可以前移到負載均衡設(shè)備上,例如客戶請求中的Header重寫,服務(wù)器響應(yīng)中的關(guān)鍵字過濾或者內(nèi)容插入等功能。
另外一個常常被提到功能就是安全性。網(wǎng)絡(luò)中最常見的SYN Flood攻擊,即黑客控制眾多源客戶端,使用虛假IP地址對同一目標發(fā)送SYN攻擊,通常這種攻擊會大量發(fā)送SYN報文,耗盡服務(wù)器上的相關(guān)資源,以達到Denial of Service(DoS)的目的。從技術(shù)原理上也可以看出,四層模式下這些SYN攻擊都會被轉(zhuǎn)發(fā)到后端的服務(wù)器上;而七層模式下這些SYN攻擊自然在負載均衡設(shè)備上就截止,不會影響后臺服務(wù)器的正常運營。另外負載均衡設(shè)備可以在七層層面設(shè)定多種策略,過濾特定報文,例如SQL Injection等應(yīng)用層面的特定攻擊手段,從應(yīng)用層面進一步提高系統(tǒng)整體安全。
現(xiàn)在的七層負載均衡,主要還是著重于應(yīng)用HTTP協(xié)議,所以其應(yīng)用范圍主要是眾多的網(wǎng)站或者內(nèi)部信息平臺等基于B/S開發(fā)的系統(tǒng)。 4層負載均衡則對應(yīng)其他TCP應(yīng)用,例如基于C/S開發(fā)的ERP等系統(tǒng)。
3.1) 是否真的必要。七層應(yīng)用的確可以提高流量智能化,同時必不可免的帶來設(shè)備配置復(fù)雜,負載均衡壓力增高以及故障排查上的復(fù)雜性等問題。在設(shè)計系統(tǒng)時需要考慮四層七層同時應(yīng)用的混雜情況。
3.2) 是否真的可以提高安全性。例如SYN Flood攻擊,七層模式的確將這些流量從服務(wù)器屏蔽,但負載均衡設(shè)備本身要有強大的抗DDoS能力,否則即使服務(wù)器正常而作為中樞調(diào)度的負載均衡設(shè)備故障也會導致整個應(yīng)用的崩潰。
3.3) 是否有足夠的靈活度。七層應(yīng)用的優(yōu)勢是可以讓整個應(yīng)用的流量智能化,但是負載均衡設(shè)備需要提供完善的七層功能,滿足客戶根據(jù)不同情況的基于應(yīng)用的調(diào)度。最簡單的一個考核就是能否取代后臺Nginx或者Apache等服務(wù)器上的調(diào)度功能。能夠提供一個七層應(yīng)用開發(fā)接口的負載均衡設(shè)備,可以讓客戶根據(jù)需求任意設(shè)定功能,才真正有可能提供強大的靈活性和智能性。
4.1) 智能性
七層負載均衡由于具備OIS七層的所有功能,所以在處理用戶需求上能更加靈活,從理論上講,七層模型能對用戶的所有跟服務(wù)端的請求進行修改。例如對文件header添加信息,根據(jù)不同的文件類型進行分類轉(zhuǎn)發(fā)。四層模型僅支持基于網(wǎng)絡(luò)層的需求轉(zhuǎn)發(fā),不能修改用戶請求的內(nèi)容。
4.2) 安全性
七層負載均衡由于具有OSI模型的全部功能,能更容易抵御來自網(wǎng)絡(luò)的攻擊;四層模型從原理上講,會直接將用戶的請求轉(zhuǎn)發(fā)給后端節(jié)點,無法直接抵御網(wǎng)絡(luò)攻擊。
4.3) 復(fù)雜度
四層模型一般比較簡單的架構(gòu),容易管理,容易定位問題;七層模型架構(gòu)比較復(fù)雜,通常也需要考慮結(jié)合四層模型的混用情況,出現(xiàn)問題定位比較復(fù)雜。
4.4) 效率比
四層模型基于更底層的設(shè)置,通常效率更高,但應(yīng)用范圍有限;七層模型需要更多的資源損耗,在理論上講比四層模型有更強的功能,現(xiàn)在的實現(xiàn)更多是基于http應(yīng)用。
軟件負載均衡解決方案是指在一臺或多臺服務(wù)器相應(yīng)的操作系統(tǒng)上安裝一個或多個附加軟件來實現(xiàn)負載均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl,Keepalive+ipvs等,它的優(yōu)點是基于特定環(huán)境,配置簡單,使用靈活,成本低廉,可以滿足一般的負載均衡需求。軟件解決方案缺點也較多,因為每臺服務(wù)器上安裝額外的軟件運行會消耗系統(tǒng)不定量的資源,越是功能強大的模塊,消耗得越多,所以當連接請求特別大的時候,軟件本身會成為服務(wù)器工作成敗的一個關(guān)鍵;軟件可擴展性并不是很好,受到操作系統(tǒng)的限制;由于操作系統(tǒng)本身的Bug,往往會引起安全問題。
硬件負載均衡解決方案是直接在服務(wù)器和外部網(wǎng)絡(luò)間安裝負載均衡設(shè)備,這種設(shè)備通常是一個獨立于系統(tǒng)的硬件,稱之為負載均衡器。由于專門的設(shè)備完成專門的任務(wù),獨立于操作系統(tǒng),整體性能得到大量提高,加上多樣化的負載均衡策略,智能化的流量管理,可達到最佳的負載均衡需求。負載均衡器有多種多樣的形式,除了作為獨立意義上的負載均衡器外,有些負載均衡器集成在交換設(shè)備中,置于服務(wù)器與Internet鏈接之間,有些則以兩塊網(wǎng)絡(luò)適配器將這一功能集成到PC中,一塊連接到Internet上,一塊連接到后端服務(wù)器群的內(nèi)部網(wǎng)絡(luò)上。
軟件負載均衡與硬件負載均衡的對比:
軟件負載均衡的優(yōu)點是需求環(huán)境明確,配置簡單,操作靈活,成本低廉,效率不高,能滿足普通的企業(yè)需求;缺點是依賴于系統(tǒng),增加資源開銷;軟件的優(yōu)劣決定環(huán)境的性能;系統(tǒng)的安全,軟件的穩(wěn)定性均會影響到整個環(huán)境的安全。
硬件負載均衡優(yōu)點是獨立于系統(tǒng),整體性能大量提升,在功能、性能上優(yōu)于軟件方式;智能的流量管理,多種策略可選,能達到最佳的負載均衡效果;缺點是價格昂貴。
負載均衡從其應(yīng)用的地理結(jié)構(gòu)上分為本地負載均衡(Local Load Balance)和全局負載均衡(Global Load Balance,也叫地域負載均衡),本地負載均衡是指對本地的服務(wù)器群做負載均衡,全局負載均衡是指對分別放置在不同的地理位置、有不同網(wǎng)絡(luò)結(jié)構(gòu)的服務(wù)器群間作負載均衡。
本地負載均衡能有效地解決數(shù)據(jù)流量過大、網(wǎng)絡(luò)負荷過重的問題,并且不需花費昂貴開支購置性能卓越的服務(wù)器,充分利用現(xiàn)有設(shè)備,避免服務(wù)器單點故障造成數(shù)據(jù)流量的損失。其有靈活多樣的均衡策略把數(shù)據(jù)流量合理地分配給服務(wù)器群內(nèi)的服務(wù)器共同負擔。即使是再給現(xiàn)有服務(wù)器擴充升級,也只是簡單地增加一個新的服務(wù)器到服務(wù)群中,而不需改變現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)、停止現(xiàn)有的服務(wù)。
全局負載均衡主要用于在一個多區(qū)域擁有自己服務(wù)器的站點,為了使全球用戶只以一個IP地址或域名就能訪問到離自己最近的服務(wù)器,從而獲得最快的訪問速度,也可用于子公司分散站點分布廣的大公司通過Intranet(企業(yè)內(nèi)部互聯(lián)網(wǎng))來達到資源統(tǒng)一合理分配的目的。
針對網(wǎng)絡(luò)上負載過重的不同瓶頸所在,從網(wǎng)絡(luò)的不同層次入手,可以采用相應(yīng)的負載均衡技術(shù)來解決現(xiàn)有問題。
隨著帶寬增加,數(shù)據(jù)流量不斷增大,網(wǎng)絡(luò)核心部分的數(shù)據(jù)接口將面臨瓶頸問題,原有的單一線路將很難滿足需求,而且線路的升級又過于昂貴甚至難以實現(xiàn),這時就可以考慮采用鏈路聚合(Trunking)技術(shù)。
鏈路聚合技術(shù)(第二層負載均衡)將多條物理鏈路當作一條單一的聚合邏輯鏈路使用,網(wǎng)絡(luò)數(shù)據(jù)流量由聚合邏輯鏈路中所有物理鏈路共同承擔,由此在邏輯上增大了鏈路的容量,使其能滿足帶寬增加的需求。
現(xiàn)代負載均衡技術(shù)通常操作于網(wǎng)絡(luò)的第四層或第七層。第四層負載均衡將一個Internet上合法注冊的IP地址映射為多個內(nèi)部服務(wù)器的IP地址,對每次 TCP連接請求動態(tài)使用其中一個內(nèi)部IP地址,達到負載均衡的目的。在第四層交換機中,此種均衡技術(shù)得到廣泛的應(yīng)用,一個目標地址是服務(wù)器群VIP(虛擬 IP,Virtual IP address)連接請求的數(shù)據(jù)包流經(jīng)交換機,交換機根據(jù)源端和目的IP地址、TCP或UDP端口號和一定的負載均衡策略,在服務(wù)器IP和VIP間進行映射,選取服務(wù)器群中最好的服務(wù)器來處理連接請求。
七層負載均衡控制應(yīng)用層服務(wù)的內(nèi)容,提供了一種對訪問流量的高層控制方式,適合對HTTP服務(wù)器群的應(yīng)用。第七層負載均衡技術(shù)通過檢查流經(jīng)的HTTP報頭,根據(jù)報頭內(nèi)的信息來執(zhí)行負載均衡任務(wù)。
七層負載均衡優(yōu)點表現(xiàn)在如下幾個方面:
1)通過對HTTP報頭的檢查,可以檢測出HTTP400、500和600系列的錯誤信息,因而能透明地將連接請求重新定向到另一臺服務(wù)器,避免應(yīng)用層故障。
2)可根據(jù)流經(jīng)的數(shù)據(jù)類型(如判斷數(shù)據(jù)包是圖像文件、壓縮文件或多媒體文件格式等),把數(shù)據(jù)流量引向相應(yīng)內(nèi)容的服務(wù)器來處理,增加系統(tǒng)性能。
3)能根據(jù)連接請求的類型,如是普通文本、圖象等靜態(tài)文檔請求,還是asp、cgi等的動態(tài)文檔請求,把相應(yīng)的請求引向相應(yīng)的服務(wù)器來處理,提高系統(tǒng)的性能及安全性。
七層負載均衡缺點表現(xiàn)在如下幾個方面:
1)七層負載均衡受到其所支持的協(xié)議限制(一般只有HTTP),這樣就限制了它應(yīng)用的廣泛性。
2)七層負載均衡檢查HTTP報頭會占用大量的系統(tǒng)資源,勢必會影響到系統(tǒng)的性能,在大量連接請求的情況下,負載均衡設(shè)備自身容易成為網(wǎng)絡(luò)整體性能的瓶頸。
在實際應(yīng)用中,可能不想僅僅是把客戶端的服務(wù)請求平均地分配給內(nèi)部服務(wù)器,而不管服務(wù)器是否宕機。而是想使Pentium III服務(wù)器比Pentium II能接受更多的服務(wù)請求,一臺處理服務(wù)請求較少的服務(wù)器能分配到更多的服務(wù)請求,出現(xiàn)故障的服務(wù)器將不再接受服務(wù)請求直至故障恢復(fù)等等。選擇合適的負載均衡策略,使多個設(shè)備能很好的共同完成任務(wù),消除或避免現(xiàn)有網(wǎng)絡(luò)負載分布不均、數(shù)據(jù)流量擁擠反應(yīng)時間長的瓶頸。在各負載均衡方式中,針對不同的應(yīng)用需求,在OSI參考模型的第二、三、四、七層的負載均衡都有相應(yīng)的負載均衡策略。
負載均衡策略的優(yōu)劣及其實現(xiàn)的難易程度有兩個關(guān)鍵因素:負載均衡算法;對網(wǎng)絡(luò)系統(tǒng)狀況的檢測方式和能力。
負載均衡算法
1)輪循均衡(Round Robin):每一次來自網(wǎng)絡(luò)的請求輪流分配給內(nèi)部中的服務(wù)器,從1至N然后重新開始。此種均衡算法適合于服務(wù)器組中的所有服務(wù)器都有相同的軟硬件配置并且平均服務(wù)請求相對均衡的情況。
2)權(quán)重輪循均衡(Weighted Round Robin):根據(jù)服務(wù)器的不同處理能力,給每個服務(wù)器分配不同的權(quán)值,使其能夠接受相應(yīng)權(quán)值數(shù)的服務(wù)請求。例如:服務(wù)器A的權(quán)值被設(shè)計成1,B的權(quán)值是 3,C的權(quán)值是6,則服務(wù)器A、B、C將分別接受到10%、30%、60%的服務(wù)請求。此種均衡算法能確保高性能的服務(wù)器得到更多的使用率,避免低性能的服務(wù)器負載過重。
3)隨機均衡(Random):把來自網(wǎng)絡(luò)的請求隨機分配給內(nèi)部中的多個服務(wù)器。
4)權(quán)重隨機均衡(Weighted Random):此種均衡算法類似于權(quán)重輪循算法,不過在處理請求分擔時是個隨機選擇的過程。
5)響應(yīng)速度均衡(Response Time):負載均衡設(shè)備對內(nèi)部各服務(wù)器發(fā)出一個探測請求(例如Ping),然后根據(jù)內(nèi)部中各服務(wù)器對探測請求的最快響應(yīng)時間來決定哪一臺服務(wù)器來響應(yīng)客戶端的服務(wù)請求。此種均衡算法能較好的反映服務(wù)器的當前運行狀態(tài),但這最快響應(yīng)時間僅僅指的是負載均衡設(shè)備與服務(wù)器間的最快響應(yīng)時間,而不是客戶端與服務(wù)器間的最快響應(yīng)時間。
6)最少連接數(shù)均衡(Least Connection):客戶端的每一次請求服務(wù)在服務(wù)器停留的時間可能會有較大的差異,隨著工作時間加長,如果采用簡單的輪循或隨機均衡算法,每一臺服務(wù)器上的連接進程可能會產(chǎn)生極大的不同,并沒有達到真正的負載均衡。最少連接數(shù)均衡算法對內(nèi)部中需負載的每一臺服務(wù)器都有一個數(shù)據(jù)記錄,記錄當前該服務(wù)器正在處理的連接數(shù)量,當有新的服務(wù)連接請求時,將把當前請求分配給連接數(shù)最少的服務(wù)器,使均衡更加符合實際情況,負載更加均衡。此種均衡算法適合長時處理的請求服務(wù),如FTP。
7)處理能力均衡:此種均衡算法將把服務(wù)請求分配給內(nèi)部中處理負荷(根據(jù)服務(wù)器CPU型號、CPU數(shù)量、內(nèi)存大小及當前連接數(shù)等換算而成)最輕的服務(wù)器,由于考慮到了內(nèi)部服務(wù)器的處理能力及當前網(wǎng)絡(luò)運行狀況,所以此種均衡算法相對來說更加精確,尤其適合運用到第七層(應(yīng)用層)負載均衡的情況下。
8)DNS響應(yīng)均衡(Flash DNS):在Internet上,無論是HTTP、FTP或是其它的服務(wù)請求,客戶端一般都是通過域名解析來找到服務(wù)器確切的IP地址的。在此均衡算法下,分處在不同地理位置的負載均衡設(shè)備收到同一個客戶端的域名解析請求,并在同一時間內(nèi)把此域名解析成各自相對應(yīng)服務(wù)器的IP地址(即與此負載均衡設(shè)備在同一位地理位置的服務(wù)器的IP地址)并返回給客戶端,則客戶端將以最先收到的域名解析IP地址來繼續(xù)請求服務(wù),而忽略其它的IP地址響應(yīng)。在種均衡策略適合應(yīng)用在全局負載均衡的情況下,對本地負載均衡是沒有意義的。
“l(fā)inux有哪些負載均衡”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。