軟/硬件均衡器的對比總結

本文主要摘自以下博文
http://yuhongchun.blog.51cto.com/1604432/697466
http://blog.csdn.net/chabale/article/details/8956717
對於數據流量過大的網絡中,往往單一設備無法承擔,需要多臺設備進行數據分流,而負載均衡器就是用來將數據分流到多臺設備的一個轉發器。目前有許多不同的負載均衡技術用以滿足不同的應用需求,如軟/硬件負載均衡、本地/全局負載均衡、更高網絡層負載均衡,以及鏈路聚合技術。下面簡單介紹下軟負載均衡器和F5硬負載均衡器這兩種技術,可以從會話率,會話併發能力,數據率三個方面來評估負載均衡器的性能。
軟件負載均衡解決方案
一般在一臺服務器的操作系統上,安裝一個附加軟件讓其作爲前端代理服務器來接受用戶的連接請求,然後將請求轉發給內部網絡上的服務器進行處理,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現爲一個服務器。常用的負載均衡軟件有LVS,Haproxy,Nginx;採用軟件策略的優點是基於特定環境、配置簡單、使用靈活、成本低廉,可以滿足大部分的負載均衡需求。

LVS是使用集羣技術和Linux操作系統實現一個高性能、高可用的服務器,它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。
LVS特性:

  • 應用範圍比較廣,可以對所有應用做負載均衡;
  • 無流量,保證了均衡器IO的性能不會收到大流量的影響;
  • 工作穩定,可靠性好,自身有完整的雙機熱備方案,如LVS/DR+Keepalived和LVS+Heartbeat;
  • 抗負載能力強、是工作在網絡4層之上僅作分發之用,沒有流量的產生,這個特點也決定了它在負載均衡軟件裏的性能最強的;
  • 配置性比較低,這是一個缺點也是一個優點,因爲沒有可太多配置的東西,所以並不需要太多接觸,大大減少了人爲出錯的機率;
  • 軟件本身不支持正則處理,不能做動靜分離;其實現在許多網站在這方面都有較強的需求,也是Nginx/HAProxy+Keepalived的優勢所在;
  • 如果是網站應用比較龐大的話,實施LVS/DR+Keepalived起來就比較複雜了,特別後面有Windows Server應用的機器的話,如果實施及配置還有維護過程就比較複雜了,相對而言,Nginx/HAProxy+Keepalived就簡單多了。

常用4種算法:
Round Robin:輪叫,輪流分配到後端服務器;
Weight Round Robin:權重輪叫,根據後端服務器負載情況來分配;
Least Connections:最小連接,分配已建立連接最少的服務器上;
Weight Least connections :權重最小連接,根據後端服務器處理能力來分配。
可以採用ipvsadm –p(persistence)來保持session,默認是300/s

Nginx (“engine x”) 是一個高性能的 HTTP 和 反向代理 服務器,也是一個 IMAP/POP3/SMTP 代理服務器。 Nginx的代碼是由一個核心和一系列的模塊組成,核心主要用於提供Web Server的基本功能,以及Web和Mail反向代理的功能;還用於啓用網絡協議,創建必要的運行時環境以及確保不同的模塊之間平滑地進行交互。不過,大多跟協議相關的功能和某應用特有的功能都是由nginx的模塊實現的。
Nginx特性:

  • Nginx對請求的異步處理(epoll)可以幫助節點服務器減輕負載,低系統資源消耗;
  • Nginx對網絡的依賴非常小,理論上能ping通就就能進行負載功能,這個也是它的優勢所在;
  • Nginx安裝和配置比較簡單,測試起來比較方便,可以承擔高的負載壓力且穩定,一般能支撐超過幾萬次的併發量;
  • 工作在網絡的7層之上,可以針對http應用做一些分流的策略,比如針對域名、目錄結構,它的正則規則比HAProxy更爲強大和靈活;
  • Nginx可以通過端口檢測到服務器內部的故障,比如根據服務器處理網頁返回的狀態碼、超時等等,並且會把返回錯誤的請求重新提交到另一個節點,不過其中缺點就是不支持url來檢測;
  • Nginx不僅僅是一款優秀的負載均衡器/反向代理軟件,它同時也是功能強大的Web應用服務器。LNMP現在也是非常流行的web架構,大有和以前最流行的LAMP架構分庭抗爭之勢,在高流量的環境中也有很好的效果;
  • Nginx僅能支持http和Email,這樣就在適用範圍上面小很多,這個它的弱勢;

常用4種算法:
Round Robin:(默認)輪詢,輪流分配到後端服務器;
Weight:根據後端服務器性能分配;
IP_hash:每個請求按訪問ip的hash結果進行分配,併發小時合適,解決session問題;
Fair:(擴展策略),默認不被編譯nginx內核,根據後端服務器響應時間判斷負載情況,選擇最輕的進行處理。

HAProxy是免費、極速且可靠的用於爲TCP和基於HTTP應用程序提供高可用、負載均衡和代理服務的解決方案,尤其適用於高負載且需要持久連接或7層處理機制的web站點。
HAProxy特性:

  • 支持url檢測後端的服務器狀態;
  • 支持兩種代理模式:TCP(四層)和HTTP(七層),支持虛擬主機;
  • 能夠補充Nginx的一些缺點比如Session的保持,Cookie的引導等工作;
  • 它跟LVS一樣,本身僅僅就只是一款負載均衡軟件;單純從效率上來講HAProxy更會比Nginx有更出色的負載均衡速度,在併發處理上也是優於Nginx的。
  • TCP層多用於對Mysql讀進行負載均衡,對後端的MySQL節點進行檢測和負載均衡,不過在後端的MySQL slaves數量超過10臺時性能不如LVS,建議使用LVS+Keepalived。

常用8種算法:
Round Robin:表示簡單的輪詢,這個是負載均衡基本都具備的;
static-rr:表示根據權重;
Least Connections:表示最少連接者先處理;
source:表示根據請求源IP,跟Nginx的ip_hash算法相似,可以用其作爲解決session問題的一種方法;
uri:表示根據請求的URI;
url_param:表示根據請求的URl參數,’balance url_param’ requires an URL parameter name;
hdr(name):表示根據HTTP請求頭來鎖定每一次HTTP請求;
rdp-cookie(name):表示根據據cookie(name)來鎖定並哈希每一次TCP請求。

硬件負載均衡解決方案
直接在服務器和外部網絡間安裝負載均衡器,由於專門的設備完成專門的任務,獨立於操作系統,整體性能得到大量提高,加上多樣化的負載均衡策略,智能化的流量管理,可達到最佳的負載均衡需求。 一般而言,硬件負載均衡在功能、性能上優於軟件方式,有專業的維護團隊來對這些服務進行維護,不過成本昂貴,比如最常見的就是F5負載均衡器。

F5 BIG-IP是應用交付網絡的全球領導者F5 Networks公司提供的一個負載均衡器專用設備,F5 BIG-IP LTM 的官方名稱叫做本地流量管理器,可以做4-7層負載均衡,具有負載均衡、應用交換、會話交換、狀態監控、智能網絡地址轉換、通用持續性、響應錯誤處理、IPv6網關、高級路由、智能端口鏡像、SSL加速、智能HTTP壓縮、TCP優化、第7層速率整形、內容緩衝、內容轉換、連接加速、高速緩存、Cookie加密、選擇性內容加密、應用攻擊過濾、拒絕服務(DoS)攻擊和SYN Flood保護、防火牆—包過濾、包消毒等功能。

F5 BIG-IP用作HTTP負載均衡器的主要功能:

  • 具有動態Session的會話保持功能。
  • 它的iRules功能可以做HTTP內容過濾,根據不同的域名、URL,將訪問請求傳送到不同的服務器。
  • 提供12種靈活的算法將所有流量均衡的分配到各個服務器,而面對用戶,只是一臺虛擬服務器。
  • 可以對RealServer進行健康狀況檢查;假如F5 BIG-IP後面的某一臺服務器發生服務停止、死機等故障,F5會檢查出來並將該服務器標識爲宕機,從而不將用戶的訪問請求傳送到該臺發生故障的服務器上。這樣,只要其它的服務器正常,用戶的訪問就不會受到影響。宕機一旦修復,F5 BIG-IP就會自動查證應用已能對客戶請求作出正確響應並恢復向該服務器傳送。
發佈了88 篇原創文章 · 獲贊 17 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章