天天看點

負載均衡原理與技術實作

負載均衡(Load Balance,簡稱LB)是一種伺服器或網絡裝置的叢集技術。負載均衡将特定的業務(網絡服務、網絡流量等)分擔給多個伺服器或網絡裝置,進而提高了業務處理能力,保證了業務的高可用性。負載均衡基本概念有:實服務、實服務組、虛服務、排程算法、持續性等,其常用應用場景主要是伺服器負載均衡,鍊路負載均衡。......

負載均衡(Load Balance,簡稱LB)是一種伺服器或網絡裝置的叢集技術。負載均衡将特定的業務(網絡服務、網絡流量等)分擔給多個伺服器或網絡裝置,進而提高了業務處理能力,保證了業務的高可用性。負載均衡基本概念有:實服務、實服務組、虛服務、排程算法、持續性等,其常用應用場景主要是伺服器負載均衡,鍊路負載均衡。

一 伺服器負載均衡

伺服器負載均衡根據LB裝置處理到的封包層次,分為四層伺服器負載均衡和七層負載均衡,四層處理到IP包的IP頭,不解析封包四層以上載荷(L4 SLB);七層處理到封包載荷部分,比如HTTP,RTSP,SIP封包頭,有時也包括封包内容部分(L7 SLB)。

1.四層伺服器負載均衡技術

用戶端将請求發送給伺服器群前端的負載均衡裝置,負載均衡裝置上的虛服務接收用戶端請求,通過排程算法,選擇真實伺服器,再通過網絡位址轉換,用真實伺服器位址重寫請求封包的目标位址後,将請求發送給標明的真實伺服器;真實伺服器的響應封包通過負載均衡裝置時,封包的源位址被還原為虛服務的VSIP,再傳回給客戶,完成整個負載排程過程。封包互動流程如下:

負載均衡原理與技術實作

NAT方式的伺服器負載均衡封包互動流程圖封包互動流程說明:

(1)Host發送服務請求封包,源IP為Host IP、目的IP為VSIP

(2)LB Device接收到請求封包後,借助排程算法計算出應該将請求分發給哪台Server

(3)LB Device使用DNAT技術分發封包,源IP為Host IP、目的IP為Server IP

(4)Server接收并處理請求封包,傳回響應封包,源IP為Server IP、目的IP為Host IP

(5)LB Device接收響應封包,轉換源IP後轉發,源IP為VSIP、目的IP為Host IP

2.七層伺服器負載均衡技術

七層負載均衡和四層負載均衡相比,隻是進行負載均衡的依據不同,而選擇确定的實伺服器後,所做的處理基本相同,下面以HTTP應用的負載均衡為例來說明。

由于在TCP握手階段,無法獲得HTTP真正的請求内容,是以也就無法将客戶的TCP握手封包直接轉發給伺服器, 必須由負載均衡裝置先和客戶完成TCP握手,等收到足夠的七層内容後,再選擇伺服器,由負載均衡裝置和所選伺服器建立TCP連接配接。

七層負載均衡組網和四層負載均衡組網有一個顯著的差別:四層負載均衡每個虛服務對應一個實服務組,實服務組内的所有實伺服器提供相同的服務;七層負載均衡每個虛服務對應多個實服務組,每組實伺服器提供相同的服務。根據封包内容選擇對應的實服務組,然後根據實服務組排程算法選擇某一個實伺服器。

負載均衡原理與技術實作

七層負載均衡組網圖

上圖中描述了基于HTTP的URI目錄資訊進行的七層負載均衡部署,封包互動流程圖如下:

負載均衡原理與技術實作

七層負載均衡封包互動流程圖封包互動流程說明:

(1)-(3):Client和LB建立TCP連接配接;

(4):Client發送HTTP請求,目的IP為虛IP;

(5):LB裝置分析封包,根據排程算法選擇實伺服器,注意此時會緩存該封包;

(6):LB裝置向實伺服器發Syn封包,序列号為Client的Syn封包序列号

(7):Server發送Syn/Ack封包,目的IP為Client;

(8):LB接收Server的Syn/Ack封包後,回應ACK封包

(9):修改步驟(5)中緩存的封包目的IP和TCP序列号,然後發給Server;

(10):Server發送響應封包到LB;

(11):LB修改步驟(9)中的封包的源位址和TCP序列号後轉發給Client。

二 鍊路負載均衡

在企業網、營運商鍊路出口需要部署LB裝置以優化鍊路選擇,提升通路體驗,鍊路負載均衡按照流量發起方向分為Inbound負載均衡和Outbound負載均衡

1.Inbound入方向負載均衡

Inbound負載均衡技術是DNS智能解析的一種,外網使用者通過域名通路内部伺服器時,Local DNS的位址解析請求到達LB裝置,LB根據對Local DNS的就近性探測結果響應一個最優的IP位址,外網使用者根據這個最優的IP響應進行對内部伺服器的通路。

負載均衡原理與技術實作

Inbound鍊路負載均衡組網圖

負載均衡原理與技術實作

 入方向負載均衡

流程簡述如下:

(1)外部使用者進行資源通路前先進行DNS解析,向其本地DNS伺服器發送DNS請求。

(2)本地DNS伺服器将DNS請求的源IP位址替換為自己的IP位址,并轉發給域名對應的權威伺服器——LB device。

(3)LB device根據DNS請求的域名和配置的Inbound鍊路負載均衡規則進行域名解析。

(4)LB device按照域名解析的結果,将DNS應答發送給本地DNS伺服器。

(5)本地DNS伺服器将解析結果轉發給使用者。

(6)使用者使用解析結果選擇的鍊路,直接對LB device進行資源通路。

2.Outbound出方向負載均衡

内網使用者通路Internet上其他伺服器。 Outbound鍊路負載均衡中VSIP為内網使用者發送封包的目的網段。使用者将通路VSIP的封包發送到負載均衡裝置後,負載均衡裝置依次根據政策、持續×××、就近性算法、排程算法選擇最佳的鍊路,并将内網通路外網的業務流量分發到該鍊路。

負載均衡原理與技術實作

Outbound鍊路負載均衡組網圖

Outbound負載均衡封包互動流程如下:

負載均衡原理與技術實作

 Outbound 鍊路負載均衡流程圖

Outbound負載均衡封包互動流程說明:

(1)LB Device接收内網使用者流量 -

(2)LB Device依次根據政策、持續×××、就近性算法、排程算法進行鍊路選擇 在Outbound鍊路負載均衡組網中,通常使用就近性算法或帶寬排程算法實作流量分發

(3)LB device按照鍊路選擇的結果将流量轉發給標明的鍊路 -

(4)LB Device接收外網使用者流量 -

(5)LB Device将流量轉發給内網使用者

三 負載均衡優化及應用

1.TCP連接配接複用

連接配接複用功能通過使用連接配接池技術,可以将前端大量的客戶的HTTP請求複用到後端與伺服器建立的少量的TCP長連接配接上,大大減小伺服器的性能負載,減小與伺服器之間建立TCP連接配接所帶來的延時,并最大限度減少後端伺服器的并發連接配接數,降低伺服器的資源占用。

負載均衡原理與技術實作

TCP連接配接複用示意圖上圖給出了TCP連接配接複用的簡單過程描述。由Client端發送的Req1/ Req2/ Req3三個HTTP請求,經過LB裝置後,複用了LB裝置和Server端已經建立好的連接配接,将Client端的三個請求通過兩個TCP連接配接發送給了伺服器端。

2.SSL解除安裝

為了避免明文傳輸出現的安全問題,對于敏感資訊,一般采用SSL協定,如HTTPS,對HTTP協定進行加密,以保證整個HTTP傳輸過程的安全性。SSL是需要耗費大量CPU資源的一種安全技術,如果由後端的伺服器來承擔,則會消耗很大的處理能力。應用傳遞裝置為了提升使用者的體驗,分擔伺服器的處理壓力,将SSL加解密集中在自身的處理上,相對于伺服器來說LB能提供更高的SSL處理性能,還能夠簡化對證書的管理,減少日常管理的工作量,LB的該功能又稱為SSL解除安裝。

下圖中Client端發送給Server的所有的HTTPS流量都被LB裝置終結,LB裝置将SSL終結後,與Server之間可采用HTTP或者弱加密的HTTPS進行通訊。LB裝置承擔了SSL的解除安裝工作,進而極大的減小了伺服器端對SSL處理的壓力,将伺服器的處理能力釋放出來,更加專注于處理伺服器本身承擔的業務邏輯。

負載均衡原理與技術實作

SSL解除安裝示意圖

SSL解除安裝的處理流程如下:

負載均衡原理與技術實作

SSL解除安裝過程

(1)用戶端向伺服器端發送SSL握手請求。

(2)LB裝置作為中間的解除安裝裝置,代替伺服器端和用戶端互動,完成SSL握手過程。

(3)用戶端發送SSL加密後的請求資料。

(4)LB裝置解密資料。

(5)LB裝置将解密後的明文發送給Server。

(6)伺服器傳回給LB裝置回應封包。

(7)LB裝置将傳回的應答封包加密。

(8)LB裝置将加密後的應答封包傳給用戶端。

3.DRX雲環境應用傳遞

業務負載監控平台通過H3C負載均衡裝置的參數設定和監控可以動态感覺業務負載變化,并通知雲管理平台動态調整業務資源。由此實作使用者業務資源的實時動态調整、業務資源優化調配。

當業務負載監控平台發現業務資源需要調整時:業務負載超限—增加資源;業務資源過剩——回收資源,雲管理平台通過自動建立、啟動或者删除停止虛拟機的方式為業務進行資源動态調整。

繼續閱讀