負載均衡

將負載進行平衡

負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴展網路設備和伺服器的帶寬、增加吞吐量、加強網路數據處理能力、提高網路的靈活性和可用性。

負載均衡(Load Balance)其意思就是分攤到多個操作單元上進行執行,例如Web伺服器、FTP伺服器、企業關鍵應用伺服器和其它關鍵任務伺服器等,從而共同完成工作任務。

概述


負載均衡,英文名稱為Load Balance,其含義就是指將負載(工作任務)進行平衡、分攤到多個操作單元上進行運行,例如FTP伺服器、Web伺服器、企業核心應用伺服器和其它主要任務伺服器等,從而協同完成工作任務。
負載均衡構建在原有網路結構之上,它提供了一種透明且廉價有效的方法擴展伺服器和網路設備的帶寬、加強網路數據處理能力、增加吞吐量、提高網路的可用性和靈活性。

分類


1、軟/硬體負載均衡
軟體負載均衡解決方案是指在一台或多台伺服器相應的操作系統上安裝一個或多個附加軟體來實現負載均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl等,它的優點是基於特定環境,配置簡單,使用靈活,成本低廉,可以滿足一般的負載均衡需求。
軟體解決方案缺點也較多,因為每台伺服器上安裝額外的軟體運行會消耗系統不定量的資源,越是功能強大的模塊,消耗得越多,所以當連接請求特別大的時候,軟體本身會成為伺服器工作成敗的一個關鍵;軟體可擴展性並不是很好,受到操作系統的限制;由於操作系統本身的Bug,往往會引起安全問題。
硬體負載均衡解決方案是直接在伺服器和外部網路間安裝負載均衡設備,這種設備通常稱之為負載均衡器,由於專門的設備完成專門的任務,獨立於操作系統,整體性能得到大量提高,加上多樣化的負載均衡策略,智能化的流量管理,可達到最佳的負載均衡需求。
負載均衡器有多種多樣的形式,除了作為獨立意義上的負載均衡器外,有些負載均衡器集成在交換設備中,置於伺服器與Internet鏈接之間,有些則以兩塊網路適配器將這一功能集成到PC中,一塊連接到Internet上,一塊連接到後端伺服器群的內部網路上。一般而言,硬體負載均衡在功能、性能上優於軟體方式,不過成本昂貴。
2、本地/全局負載均衡
負載均衡從其應用的地理結構上分為本地負載均衡(Local Load Balance)和全局負載均衡(Global Load Balance,也叫地域負載均衡),本地負載均衡針對本地範圍的伺服器群做負載均衡,全局負載均衡針對不同地理位置、不同網路結構的伺服器群做負載均衡。
本地負載均衡不需要花費高額成本購置高性能伺服器,只需利用現有設備資源,就可有效避免伺服器單點故障造成數據流量的損失,通常用來解決數據流量過大、網路負荷過重的問題。同時它擁有形式多樣的均衡策略把數據流量合理均衡的分配到各台伺服器。如果需要在現在伺服器上升級擴充,不需改變現有網路結構、停止現有服務,僅需要在服務群中簡單地添加一台新伺服器。
全局負載均衡主要解決全球用戶只需一個域名或IP地址就能訪問到離自己距離最近的伺服器獲得最快的訪問速度,它在多區域都擁有自己的伺服器站點,同時也適用於那些子公司站點分佈廣的大型公司通過企業內部網(Intranet)達到資源合理分配的需求。
全局負載均衡具備的特點:
1、提高伺服器響應速度,解決網路擁塞問題,達到高質量的網路訪問效果。
2、能夠遠距離為用戶提供完全的透明服務,真正實現與地理位置無關性
3、能夠避免各種單點失效,既包括數據中心、伺服器等的單點失效,也包括專線故障引起的單點失效。

部署方式


負載均衡有三種部署方式:路由模式、橋接模式、服務直接返回模式。路由模式部署靈活,約60%的用戶採用這種方式部署;橋接模式不改變現有的網路架構;服務直接返回(DSR)比較適合吞吐量大特別是內容分發的網路應用。約30%的用戶採用這種模式。
1、路由模式(推薦)
路由模式的部署方式,伺服器的網關必須設置成負載均衡機的LAN口地址,且與WAN口分署不同的邏輯網路。因此所有返回的流量也都經過負載均衡。這種方式對網路的改動小,能均衡任何下行流量。
2、橋接模式
橋接模式配置簡單,不改變現有網路。負載均衡的WAN口和LAN口分別連接上行設備和下行伺服器。LAN口不需要配置IP(WAN口與LAN口是橋連接),所有的伺服器與負載均衡均在同一邏輯網路中。
由於這種安裝方式容錯性差,網路架構缺乏彈性,對廣播風暴及其他生成樹協議循環相關聯的錯誤敏感,因此一般不推薦這種安裝架構。
3、服務直接返回模式
這種安裝方式負載均衡的LAN口不使用,WAN口與伺服器在同一個網路中,網際網路的客戶端訪問負載均衡的虛IP(VIP),虛IP對應負載均衡機的WAN口,負載均衡根據策略將流量分發到伺服器上,伺服器直接響應客戶端的請求。因此對於客戶端而言,響應他的IP不是負載均衡機的虛IP(VIP),而是伺服器自身的IP地址。也就是說返回的流量是不經過負載均衡的。因此這種方式適用大流量高帶寬要求的服務。

演演算法


介紹

現有的負載均衡演演算法主要分為靜態和動態兩類。靜態負載均衡演演算法以固定的概率分配任務,不考慮伺服器的狀態信息,如輪轉演演算法、加權輪轉演演算法等;動態負載均衡演演算法以伺服器的實時負載狀態信息來決定任務的分配,如最小連接法、加權最小連接法等。

類別

1、輪詢法
輪詢法,就是將用戶的請求輪流分配給伺服器,就像是挨個數數,輪流分配。這種演演算法比較簡單,他具有絕對均衡的優點,但是也正是因為絕對均衡它必須付出很大的代價,例如它無法保證分配任務的合理性,無法根據伺服器承受能力來分配任務。
2、隨機法
隨機法,是隨機選擇一台伺服器來分配任務。它保證了請求的分散性達到了均衡的目的。同時它是沒有狀態的不需要維持上次的選擇狀態和均衡因子。但是隨著任務量的增大,它的效果趨向輪詢后也會具有輪詢演演算法的部分缺點。
3、最小連接法
最小連接法,將任務分配給此時具有最小連接數的節點,因此它是動態負載均衡演演算法。一個節點收到一個任務后連接數就會加1,當節點故障時就將節點權值設置為0,不再給節點分配任務。
最小連接法適用於各個節點處理的性能相似時。任務分發單元會將任務平滑分配給伺服器。但當伺服器性能差距較大時,就無法達到預期的效果。因為此時連接數並不能準確表明處理能力,連接數小而自身性能很差的伺服器可能不及連接數大而自身性能極好的伺服器。所以在這個時候就會導致任務無法準確的分配到剩餘處理能力強的機器上。

均衡技術


常見的軟體負載均衡技術有以下幾種:
1、基於DNS的負載均衡
由於在DNS伺服器中,可以為多個不同的地址配置相同的名字,最終查詢這個名字的客戶機將在解析這個名
負載均衡
負載均衡
字時得到其中一個地址,所以這種代理方式是通過DNS服務中的隨機名字解析域名和IP來實現負載均衡。
2、反向代理負載均衡(如Apache+JK2+Tomcat這種組合)
該種代理方式與普通的代理方式不同,標準代理方式是客戶使用代理訪問多個外部Web伺服器,之所以被稱為反向代理模式是因為這種代理方式是多個客戶使用它訪問內部Web伺服器,而非訪問外部伺服器。
3、基於NAT(Network Address Translation)的負載均衡技術(如Linux VirtualServer,簡稱LVS)
該技術通過一個地址轉換網關將每個外部連接均勻轉換為不同的內部伺服器地址,因此外部網路中的計算機就各自與自己轉換得到的地址上的伺服器進行通信,從而達到負載均衡的目的。其中網路地址轉換網關位於外部地址和內部地址之間,不僅可以實現當外部客戶機訪問轉換網關的某一外部地址時可以轉發到某一映射的內部的地址上,還可使內部地址的計算機能訪問外部網路。

主要應用


1、DNS負載均衡最早的負載均衡技術是通過DNS來實現的,在DNS中為多個地址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個地址,從而使得不同的客戶訪問不同的伺服器,達到負載均衡的目的。DNS負載均衡是一種簡單而有效的方法,但是它不能區分伺服器的差異,也不能反映伺服器的當前運行狀態。
2、代理伺服器負載均衡 使用代理伺服器,可以將請求轉發給內部的伺服器,使用這種加速模式顯然可以提升靜態網頁的訪問速度。然而,也可以考慮這樣一種技術,使用代理伺服器將請求均勻轉發給多台伺服器,從而達到負載均衡的目的。
3、地址轉換網關負載均衡 支持負載均衡的地址轉換網關,可以將一個外部IP地址映射為多個內部IP地址,對每次TCP連接請求動態使用其中一個內部地址,達到負載均衡的目的。
4、協議內部支持負載均衡除了這三種負載均衡方式之外,有的協議內部支持與負載均衡相關的功能,例如HTTP協議中的重定向能力等,HTTP運行於TCP連接的最高層。
5、NAT負載均衡NAT(Network Address Translation網路地址轉換)簡單地說就是將一個IP地址轉換為另一個IP地址,一般用於未經註冊的內部地址與合法的、已獲註冊的Internet IP地址間進行轉換。適用於解決Internet IP地址緊張、不想讓網路外部知道內部網路結構等的場合下。
6、反向代理負載均衡普通代理方式是代理內部網路用戶訪問internet上伺服器的連接請求,客戶端必須指定代理伺服器,並將本來要直接發送到internet上伺服器的連接請求發送給代理伺服器處理。反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連接請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連接的客戶端,此時代理伺服器對外就表現為一個伺服器。反向代理負載均衡技術是把將來自internet上的連接請求以反向代理的方式動態地轉發給內部網路上的多台伺服器進行處理,從而達到負載均衡的目的。
7、混合型負載均衡在有些大型網路,由於多個伺服器群內硬體設備、各自的規模、提供的服務等的差異,可以考慮給每個伺服器群採用最合適的負載均衡方式,然後又在這多個伺服器群間再一次負載均衡或群集起來以一個整體向外界提供服務(即把這多個伺服器群當做一個新的伺服器群),從而達到最佳的性能。將這種方式稱之為混合型負載均衡。此種方式有時也用於單台均衡設備的性能不能滿足大量連接請求的情況下。