負載均衡伺服器(Load balancer server)

負載均衡伺服器(Load Balancer Server)

什麽是負載均衡伺服器?

負載均衡伺服器,英文名稱為Load Balancer Server,是指將負載(工作任務)進行平衡、分攤到多個操作單元上,例如FTP伺服器、Web伺服器、企業核心應用伺服器和其它主要任務伺服器等,從而協同完成工作任務。加強網路數據處理能力、增加吞吐量、提高網路的可用性和靈活性。

均衡伺服器使用場景

1、DNS負載均衡伺服器(DNS Load balancing)

最早的負載均衡技術是通過DNS來實現的,在DNS伺服器中為多個地址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個地址,從而使得不同的客戶訪問不同的伺服器,達到負載均衡的目的。DNS負載均衡是一種簡單而有效的方法,但是它不能區分伺服器的差異,也不能反映伺服器的當前執行狀態。

2、代理伺服器負載均衡(Proxy load balancing)

使用代理伺服器,可以將請求轉發給內部的伺服器,一般對應用層透明,使用這種加速模式顯然可以提升靜態網頁伺服器的訪問速度。然而,也可以考慮這樣一種技術,使用代理伺服器將請求均勻轉發給多臺伺服器,從而達到負載均衡的目的。

3、NAT負載均衡NAT(Network Address Translation load balancing 網路地址轉換)

簡單地說就是將一個IP地址轉換為另一個IP地址,一般用於未經註冊的內部地址與合法的、已獲註冊的Internet IP地址間進行轉換。適用於解決Internet IP地址緊張、不想讓網路外部知道內部網路結構等的場合下。

4、反向代理負載均衡(Reverse proxy load balancing)

普通代理方式是代理內部網路使用者訪問internet上伺服器的連線請求,客戶端必須指定代理伺服器,並將本來要直接發送到internet上伺服器的連線請求發送給代理伺服器處理。反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現爲一個伺服器。反向代理負載均衡技術是把將來自internet上的連線請求以反向代理的方式動態地轉發給內部網路上的多臺伺服器進行處理,從而達到負載均衡的目的。

負載均衡演算法

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

1、輪詢法(Roundrobin)

輪詢法,就是將使用者的請求輪流分配給伺服器,就像是挨個數數,輪流分配。這種演算法比較簡單,他具有絕對均衡的優點,但是也正是因為絕對均衡它必須付出很大的代價,例如它無法保證分配任務的合理性,無法根據伺服器承受能力來分配任務。


2、隨機法(Random)

隨機法,是隨機選擇一臺伺服器來分配任務。它保證了請求的分散性達到了均衡的目的。同時它是沒有狀態的不需要維持上次的選擇狀態和均衡因子。但是隨著任務量的增大,它的效果趨向輪詢后也會具有輪詢演算法的部分缺點。

3、最小連線法(Leastconn)

最小連線法,將任務分配給此時具有最小連線數的節點,因此它是動態負載均衡演算法。一個節點收到一個任務后連線數就會加1,當節點故障時就將節點權值設定為0,不再給節點分配任務。
最小連線法適用於各個節點處理的效能相似時。任務分發單元會將任務平滑分配給伺服器。但當伺服器效能差距較大時,就無法達到預期的效果。因為此時連線數並不能準確表明處理能力,連線數小而自身效能很差的伺服器可能不及連線數大而自身效能極好的伺服器。所以在這個時候就會導致任務無法準確的分配到剩餘處理能力強的機器上。

4、基於IP分配(IP Hash/Source)

透過雜湊請求的來源 IP 地址,並除以所有運作中的伺服器的權重,以判斷哪個伺服器將會收到請求。在所有伺服器皆在運作的情況下,來源 IP 的請求將會持續性地透過相同的真實伺服器處理。若運作中的伺服器之數量或權重改變的話,session 可能會被移至另一個伺服器上,因為雜湊/權重的結果已改變。

選擇軟體還是硬體負載均衡?

軟體負載均衡(software load balancer)

解決方案是指在一臺或多臺伺服器相應的操作系統上安裝一個或多個附加軟體來實現負載均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl等,它的優點是基於特定環境,配置簡單,使用靈活,成本低廉,可以滿足一般的負載均衡需求。
軟體解決方案缺點也較多,因為每臺伺服器上安裝額外的軟體執行會消耗系統不定量的資源,越是功能強大的模組,消耗得越多,所以當連線請求特別大的時候,軟體本身會成為伺服器工作成敗的一個關鍵;軟體可擴充套件性並不是很好,受到操作系統的限制;由於操作系統本身的Bug,往往會引起安全問題。

硬體負載均衡(hardware load balancer)

直接在伺服器和外部網路間安裝負載均衡裝置,這種裝置通常稱之為負載均衡器,由於專門的裝置完成專門的任務,獨立於操作系統,整體效能得到大量提高,加上多樣化的負載均衡策略,智慧化的流量管理,可達到最佳的負載均衡需求。
負載均衡器有多種多樣的形式,除了作為獨立意義上的負載均衡器外,有些負載均衡器整合在交換裝置中,置於伺服器與Internet鏈接之間,有些則以兩塊網路適配器將這一功能整合到PC中,一塊連線到Internet上,一塊連線到後端伺服器群的內部網路上。

一般而言,硬體負載均衡在功能、效能上優於軟體方式,不過成本昂貴。

參考資料:https://access.redhat.com/documentation/zh-tw/red_hat_enterprise_linux/7/html/load_balancer_administration/ch-haproxy-setup-vsa