歡迎光臨
每天分享高質量文章

負載均衡技術和知識全面解析

負載均衡(Load Balance)是一種叢集技術,它將特定的業務(網路服務、網路流量等)分擔給多臺網路裝置(包括伺服器、防火牆等)或多條鏈路,從而提高了業務處理能力,保證了業務的高可靠性。負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬、增加吞吐量、加強網路資料處理能力、提高網路的靈活性和可用性。

負載均衡有兩方面的含義:首先,大量的併發訪問或資料流量分擔到多臺節點裝置上分別處理,減少使用者等待響應的時間;其次,單個重負載的運算分擔到多臺節點裝置上做並行處理,每個節點裝置處理結束後,將結果彙總,傳回給使用者,系統處理能力得到大幅度提高。目前負載均衡技術大多數是用於提高諸如在Web伺服器、FTP伺服器和其它關鍵任務伺服器上的Internet伺服器程式的可用性和可伸縮性。

負載均衡技術優勢

  • 高效能:負載均衡技術將業務較均衡地分配到多臺裝置或多條鏈路上,提高了整個系統的效能。
  • 可擴充套件性:負載均衡技術可以方便地增加叢集中裝置或鏈路的數量,在不降低業務質量的前提下滿足不斷增長的業務需求。
  • 高可靠性:單個甚至多個裝置或鏈路發生故障也不會導致業務中斷,提高了整個系統的可靠性。
  • 可管理性:大量的管理工作都集中在應用負載均衡技術的裝置上,裝置群或鏈路群只需要通常的配置和維護即可。
  • 透明性:對使用者而言,叢集等同於一個可靠性高、效能好的裝置或鏈路,使用者感知不到也不必關心具體的網路結構。增加和減少裝置或鏈路均不會影響正常的業務。

負載均衡包括伺服器負載均衡,防火牆負載均衡和鏈路負載均衡等型別,各種負載均衡應用場景如下:

  • 伺服器負載均衡:在資料中心等組網環境中,可以採用伺服器負載均衡,將網路服務分擔給多臺伺服器進行處理,提高資料中心的業務處理能力。
  • 防火牆負載均衡:在防火牆的處理能力成為瓶頸的組網環境中,可以採用防火牆負載均衡,將網路流量分擔給多臺防火牆裝置,提高防火牆的處理能力。
  • 鏈路負載均衡:在有多個運營商介面的組網環境中,可以採用鏈路動態負載均衡,實現鏈路的動態選擇,提高服務的可靠性。

伺服器負載均衡分為四層伺服器負載均衡七層伺服器負載均衡兩種:

  • 四層伺服器負載均衡支援 IPv4 協議和IPv6 協議,是基於流的伺服器負載均衡,對報文進行逐流分發,將同一條流的報文分發給同一個伺服器。四層伺服器負載均衡對基於HTTP 的七層業務無法做到按內容進行分發,限制了負載均衡業務的適用範圍。四層伺服器負載均衡有NAT(Network Address Translation,網路地址轉換)和直接路由(Direct Routing,以下簡稱DR)兩種應用方式。

     

  • 七層伺服器負載均衡只支援 IPv4 協議,是基於內容的伺服器負載均衡,對報文的承載內容進行深度解析,包括HTTP協議、RTSP 協議等,根據其中的內容進行逐包分發,按既定策略將連線導向指定的伺服器,實現了業務使用範圍更廣泛的伺服器負載均衡。七層伺服器負載均衡僅支援NAT 方式。

負載均衡策略

目前有許多不同的負載均衡技術用以滿足不同的應用需求,下麵從負載均衡所採用的裝置物件(軟、硬體負載均衡),應用的OSI網路層次(網路層次上的負載均衡),及應用的地理結構(本地、全域性負載均衡)等來分類。

1) 軟、硬體負載均衡

 

軟體負載均衡解決方案是指在一臺或多臺伺服器相應的作業系統上安裝一個或多個附加軟體來實現負載均衡,如DNS Load Balance,Check Point Firewall-1 Connect Control,Keepalive+ IPVS等,它的優點是基於特定環境,配置簡單,使用靈活,成本低廉,可以滿足一般的負載均衡需求。

軟體解決方案缺點也較多,因為每臺伺服器上安裝額外的軟體執行會消耗系統不定量的資源,越是功能強大的模組,消耗得越多,所以當連線請求特別大的時候,軟體本身會成為伺服器工作成敗的一個關鍵;軟體可擴充套件性並不是很好,受到作業系統的限制;由於作業系統本身的Bug,往往會引起安全問題。

 

硬體負載均衡解決方案是直接在伺服器和外部網路間安裝負載均衡裝置,這種裝置通常是一個獨立於系統的硬體,我們稱之為負載均衡器。由於專門的裝置完成專門的任務,獨立於作業系統,整體效能得到大量提高,加上多樣化的負載均衡策略,智慧化的流量管理,可達到最佳的負載均衡需求。

 

負載均衡器有多種多樣的形式,除了作為獨立意義上的負載均衡器外,有些負載均衡器整合在交換裝置中,置於伺服器與Internet連結之間,有些則以兩塊網路配接器將這一功能整合到PC中,一塊連線到Internet上,一塊連線到後端伺服器群的內部網路上。

軟、硬體負載均衡的對比

 

軟體負載均衡的優點是需求環境明確,配置簡單,操作靈活,成本低廉,效率不高,能滿足普通的企業需求;缺點是依賴於系統,增加資源開銷;軟體的優劣決定環境的效能;系統的安全,軟體的穩定性均會影響到整個環境的安全。

 

硬體負載均衡優點是獨立於系統,整體效能大量提升,在功能、效能上優於軟體方式;智慧的流量管理,多種策略可選,能達到最佳的負載均衡效果;缺點是價格昂貴。

2) 本地、全域性負載均衡

 

負載均衡從其應用的地理結構上分為本地負載均衡(Local Load Balance)和全域性負載均衡(Global Load Balance,也叫地域負載均衡),本地負載均衡是指對本地的伺服器群做負載均衡,全域性負載均衡是指對分別放置在不同的地理位置、有不同網路結構的伺服器群間作負載均衡。

 

本地負載均衡能有效地解決資料流量過大、網路負荷過重的問題,並且不需花費昂貴開支購置效能卓越的伺服器,充分利用現有裝置,避免伺服器單點故障造成資料流量的損失。

其有靈活多樣的均衡策略把資料流量合理地分配給伺服器群內的伺服器共同負擔。即使是再給現有伺服器擴充升級,也只是簡單地增加一個新的伺服器到服務群中,而不需改變現有網路結構、停止現有的服務。

 

全域性負載均衡主要用於在一個多區域擁有自己伺服器的站點,為了使全球使用者只以一個IP地址或域名就能訪問到離自己最近的伺服器,從而獲得最快的訪問速度,也可用於子公司分散站點分佈廣的大公司透過Intranet(企業內部網際網路)來達到資源統一合理分配的目的。

3) 網路層次上的負載均衡

 

針對網路上負載過重的不同瓶頸所在,從網路的不同層次入手,我們可以採用相應的負載均衡技術來解決現有問題。

 

隨著頻寬增加,資料流量不斷增大,網路核心部分的資料介面將面臨瓶頸問題,原有的單一線路將很難滿足需求,而且線路的升級又過於昂貴甚至難以實現,這時就可以考慮採用鏈路聚合(Trunking)技術。

 

鏈路聚合技術(第二層負載均衡)將多條物理鏈路當作一條單一的聚合邏輯鏈路使用,網路資料流量由聚合邏輯鏈路中所有物理鏈路共同承擔,由此在邏輯上增大了鏈路的容量,使其能滿足頻寬增加的需求。

 

現代負載均衡技術通常操作於網路的第四層或第七層。第四層負載均衡將一個Internet上合法註冊的IP地址對映為多個內部伺服器的IP地址,對每次 TCP連線請求動態使用其中一個內部IP地址,達到負載均衡的目的。

 

在第四層交換機中,此種均衡技術得到廣泛的應用,一個標的地址是伺服器群VIP(虛擬 IP,Virtual IPaddress)連線請求的資料包流經交換機,交換機根據源端和目的IP地址、TCP或UDP埠號和一定的負載均衡策略,在伺服器IP和VIP間進行對映,選取伺服器群中最好的伺服器來處理連線請求。

 

負載均衡策略的優劣及其實現的難易程度有兩個關鍵因素:負載均衡演演算法對網路系統狀況的檢測方式和能力

負載均衡演演算法

  • 1)輪循均衡(Round Robin):每一次來自網路的請求輪流分配給內部中的伺服器,從1至N然後重新開始。此種均衡演演算法適合於伺服器組中的所有伺服器都有相同的軟硬體配置並且平均服務請求相對均衡的情況。

     

  • 2)權重輪循均衡(Weighted Round Robin):根據伺服器的不同處理能力,給每個伺服器分配不同的權值,使其能夠接受相應權值數的服務請求。例如:伺服器A的權值被設計成1,B的權值是3,C的權值是6,則伺服器A、B、C將分別接受到10%、30%、60%的服務請求。此種均衡演演算法能確保高效能的伺服器得到更多的使用率,避免低效能的伺服器負載過重。

     

  • 3)隨機均衡(Random):把來自網路的請求隨機分配給內部中的多個伺服器。

     

  • 4)權重隨機均衡(Weighted Random):此種均衡演演算法類似於權重輪循演演算法,不過在處理請求分擔時是個隨機選擇的過程。

     

  • 5)響應速度均衡(Response Time):負載均衡裝置對內部各伺服器發出一個探測請求(例如Ping),然後根據內部中各伺服器對探測請求的最快響應時間來決定哪一臺伺服器來響應客戶端的服務請求。此種均衡演演算法能較好的反映伺服器的當前執行狀態,但這最快響應時間僅僅指的是負載均衡裝置與伺服器間的最快響應時間,而不是客戶端與伺服器間的最快響應時間。

     

  • 6)最少連線數均衡(Least Connection):客戶端的每一次請求服務在伺服器停留的時間可能會有較大的差異,隨著工作時間加長,如果採用簡單的輪循或隨機均衡演演算法,每一臺伺服器上的連線行程可能會產生極大的不同,並沒有達到真正的負載均衡。最少連線數均衡演演算法對內部中需負載的每一臺伺服器都有一個資料記錄,記錄當前該伺服器正在處理的連線數量,當有新的服務連線請求時,將把當前請求分配給連線數最少的伺服器,使均衡更加符合實際情況,負載更加均衡。此種均衡演演算法適合長時處理的請求服務,如FTP。

     

  • 7)處理能力均衡:此種均衡演演算法將把服務請求分配給內部中處理負荷(根據伺服器CPU型號、CPU數量、記憶體大小及當前連線數等換算而成)最輕的伺服器,由於考慮到了內部伺服器的處理能力及當前網路執行狀況,所以此種均衡演演算法相對來說更加精確,尤其適合運用到第七層(應用層)負載均衡的情況下。

     

  • 8)DNS響應均衡(Flash DNS):在Internet上,無論是HTTP、FTP或是其它的服務請求,客戶端一般都是透過域名解析來找到伺服器確切的IP地址的。在此均衡演演算法下,分處在不同地理位置的負載均衡裝置收到同一個客戶端的域名解析請求,併在同一時間內把此域名解析成各自相對應伺服器的IP地址(即與此負載均衡裝置在同一位地理位置的伺服器的IP地址)並傳回給客戶端,則客戶端將以最先收到的域名解析IP地址來繼續請求服務,而忽略其它的IP地址響應。在種均衡策略適合應用在全域性負載均衡的情況下,對本地負載均衡是沒有意義的。

     

更多負載均衡知識和內容,可以訂閱“Nginx核心知識100講”系列課程,作者闡述百萬併發下Nginx效能最佳化之道,從基礎知識、核心架構,原始碼解讀等全方位拆解Nginx技術和實戰。

推薦閱讀:

溫馨提示:

請搜尋“ICT_Architect”“掃一掃”二維碼關註公眾號,點選原文連結獲取更多電子書詳細

求知若渴, 虛心若愚

    贊(0)

    分享創造快樂