1. 程式人生 > >伺服器叢集負載均衡技術

伺服器叢集負載均衡技術

負載均衡 (Load Balancing) 負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬、增加吞吐量、加強網路資料處理能力、提高網路的靈活性和可用性。

CDN負載均衡(Load Balance)[1]

由於現有網路的各個核心部分隨著業務量的提高,訪問量和資料流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的伺服器裝置根本無法承擔。在此情況下,如果扔掉現有裝置去做大量的硬體升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提升時,這又將導致再一次硬體升級的高額成本投入,甚至效能再卓越的裝置也不能滿足當前業務量增長的需求。

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

需要說明的是:負載均衡裝置不是基礎網路裝置,而是一種效能優化裝置。對於網路應用而言,並不是一開始就需要負載均衡,當網路應用的訪問量不斷增長,單個處理單元無法滿足負載需求時,網路應用流量將要出現瓶頸時,負載均衡才會起到作用。

負載均衡有兩方面的含義:

首先,單個重負載的運算分擔到多臺節點裝置上做並行處理,每個節點裝置處理結束後,將結果彙總,返回給使用者,系統處理能力得到大幅度提高,這就是常說的叢集(clustering)技術。

第二層含義就是:大量的併發訪問或資料流量分擔到多臺節點裝置上分別處理,減少使用者等待響應的時間,這主要針對Web伺服器、FTP伺服器、企業關鍵應用伺服器等網路應用。

通常,負載均衡會根據網路的不同層次(網路七層)來劃分。其中,第二層的負載均衡指將多條物理鏈路當作一條單一的聚合邏輯鏈路使用,這就是鏈路聚合(Trunking)技術,它不是一種獨立的裝置,而是交換機等網路裝置的常用技術。現代負載均衡技術通常操作於網路的第四層或第七層,這是針對網路應用的負載均衡技術,它完全脫離於交換機、伺服器而成為獨立的技術裝置。這也是將要討論的物件。

近幾年來,四到七層網路負載均衡首先在電信、移動、銀行、大型網站等單位進行了應用,因為其網路流量瓶頸的現象最突出。這也就是為何每通一次電話,就會經過負載均衡裝置的原因。另外,在很多企業,隨著企業關鍵網路應用業務的發展,負載均衡的應用需求也越來越大了。

部署方式


負載均衡有三種部署方式:路由模式、橋接模式、服務直接返回模式。路由模式部署靈活,約60%的使用者採用這種方式部署;橋接模式不改變現有的網路架構;服務直接返回(DSR)比較適合吞吐量大特別是內容分發的網路應用。約30%的使用者採用這種模式。
路由模式(推薦)


路由模式的部署方式如上圖。伺服器的閘道器必須設定成負載均衡機的LAN口地址,且與WAN口分署不同的邏輯網路。因此所有返回的流量也都經過負載均衡。這種方式對網路的改動小,能均衡任何下行流量。
橋接模式
橋接模式配置簡單,不改變現有網路。負載均衡的WAN口和LAN口分別連線上行裝置和下行伺服器。LAN口


不需要配置IP(WAN口與LAN口是橋連線),所有的伺服器與負載均衡均在同一邏輯網路中。參見下圖:
由於這種安裝方式容錯性差,網路架構缺乏彈性,對廣播風暴及其他生成樹協議迴圈相關聯的錯誤敏感,因此一般不推薦這種安裝架構。
服務直接返回模式


服務直接返回模式
如上圖,這種安裝方式負載均衡的LAN口不使用,WAN口與伺服器在同一個網路中,網際網路的客戶端訪問負載均衡的虛IP(VIP),虛IP對應負載均衡機的WAN口,負載均衡根據策略將流量分發到伺服器上,伺服器直接響應客戶端的請求。因此對於客戶端而言,響應他的IP不是負載均衡機的虛IP(VIP),而是伺服器自身的IP地址。也就是說返回的流量是不經過負載均衡的。因此這種方式適用大流量高頻寬要求的服務。

主要應用


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.混合型負載均衡在有些大型網路,由於多個伺服器群內硬體裝置、各自的規模、提供的服務等的差異,可以考慮給每個伺服器群採用最合適的負載均衡方式,然後又在這多個伺服器群間再一次負載均衡或群集起來以一個整體向外界提供服務(即把這多個伺服器群當做一個新的伺服器群),從而達到最佳的效能。將這種方式稱之為混合型負載均衡。此種方式有時也用於單臺均衡裝置的效能不能滿足大量連線請求的情況下。

下圖是我最近一個專案中採用架構方案: