負載均衡____軟硬體負載均衡的優缺點
對於資料流量過大的網路中,往往單一裝置無法承擔,需要多臺裝置進行資料分流,而負載均衡器就是用來將資料分流到多臺裝置的一個轉發器。
目前有許多不同的負載均衡技術用以滿足不同的應用需求,如軟/硬體負載均衡、本地/全域性負載均衡、更高網路層負載均衡,以及鏈路聚合技術。
我們使用的是軟負載均衡器Nginx,而農行用的是F5硬負載均衡器,這裡就簡單介紹下這兩種技術:
a.軟體負載均衡解決方案
在一臺伺服器的作業系統上,安裝一個附加軟體來實現負載均衡,如Nginx負載均衡(我們管理系統平臺使用的也是這款均衡器)。它的優點是基於特定環境、配置簡單、使用靈活、成本低廉,可以滿足大部分的負載均衡需求。
一、什麼是Nginx,LVS
Nginx ("engine x") 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 可以說Nginx 是目前使用最為廣泛的HTTP軟負載均衡器,其將原始碼以類BSD許可證的形式釋出(商業友好),同時因高效的效能、穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名於業界。像騰訊、淘寶、新浪等大型門戶及商業網站都採用Nginx進行HTTP網站的資料分流。
二、Nginx的功能特點
1、工作在網路的7層之上,可以針對http應用做一些分流的策略,比如針對域名、目錄結構;
2、Nginx對網路的依賴比較小;
3、Nginx安裝和配置比較簡單,測試起來比較方便;
4、也可以承擔高的負載壓力且穩定,一般能支撐超過1萬次的併發;
5、Nginx可以通過埠檢測到伺服器內部的故障,比如根據伺服器處理網頁返回的狀態碼、超時等等,www.linuxidc.com 並且會把返回錯誤的請求重新提交到另一個節點,不過其中缺點就是不支援url來檢測;
6、Nginx對請求的非同步處理可以幫助節點伺服器減輕負載;
7、Nginx能支援http和Email,這樣就在適用範圍上面小很多;
8、不支援Session的保持、對Big request header的支援不是很好,另外預設的只有Round-robin和IP-hash兩種負載均衡演算法。
三、Nginx的原理
Nginx採用的是反向代理技術,代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個伺服器。反向代理負載均衡技術是把將來自internet上的連線請求以反向代理的方式動態地轉發給內部網路上的多臺伺服器進行處理,從而達到負載均衡的目的。
b.硬體負載均衡解決方案
直接在伺服器和外部網路間安裝負載均衡裝置,這種裝置我們通常稱之為負載均衡器。由於專門的裝置完成專門的任務,獨立於作業系統,整體效能得到大量提高,加上多樣化的負載均衡策略,智慧化的流量管理,可達到最佳的負載均衡需求。 一般而言,硬體負載均衡在功能、效能上優於軟體方式,不過成本昂貴,比如最常見的就是F5負載均衡器。
什麼是F5 BIG-IP
F5負載均衡器是應用交付網路的全球領導者F5 Networks公司提供的一個負載均衡器專用裝置,F5 BIG-IP LTM 的官方名稱叫做本地流量管理器,可以做4-7層負載均衡,具有負載均衡、應用交換、會話交換、狀態監控、智慧網路地址轉換、通用持續性、響應錯誤處理、IPv6閘道器、高階路由、智慧埠映象、SSL加速、智慧HTTP壓縮、TCP優化、第7層速率整形、內容緩衝、內容轉換、連線加速、快取記憶體、Cookie加密、選擇性內容加密、應用攻擊過濾、拒絕服務(DoS)攻擊和SYN Flood保護、防火牆—包過濾、包消毒等功能。
以下是F5 BIG-IP用作HTTP負載均衡器的主要功能:
①、F5 BIG-IP提供12種靈活的演算法將所有流量均衡的分配到各個伺服器,而面對使用者,只是一臺虛擬伺服器。
②、F5 BIG-IP可以確認應用程式能否對請求返回對應的資料。假如F5 BIG-IP後面的某一臺伺服器發生服務停止、宕機等故障,F5會檢查出來並將該伺服器標識為宕機,從而不將使用者的訪問請求傳送到該臺發生故障的伺服器上。這樣,只要其它的伺服器正常,使用者的訪問就不會受到影響。宕機一旦修復,F5 BIG-IP就會自動查證應用已能對客戶請求作出正確響應並恢復向該伺服器傳送。
③、F5 BIG-IP具有動態Session的會話保持功能。
④、F5 BIG-IP的iRules功能可以做HTTP內容過濾,根據不同的域名、URL,將訪問請求傳送到不同的伺服器。
方案優缺點對比
基於硬體的方式(F5)
優點:能夠直接通過智慧交換機實現,處理能力更強,而且與系統無關,負載效能強更適用於一大堆裝置、大訪問量、簡單應用
缺點:成本高,除裝置價格高昂,而且配置冗餘.很難想象後面伺服器做一個叢集,但最關鍵的負載均衡裝置卻是單點配置;無法有效掌握伺服器及應用狀態.
硬體負載均衡,一般都不管實際系統與應用的狀態,而只是從網路層來判斷,所以有時候系統處理能力已經不行了,但網路可能還來 得及反應(這種情況非常典型,比如應用伺服器後面記憶體已經佔用很多,但還沒有徹底不行,如果網路傳輸量不大就未必在網路層能反映出來)
基於軟體的方式(Nginx)
優點:基於系統與應用的負載均衡,能夠更好地根據系統與應用的狀況來分配負載。這對於複雜應用是很重要的,價效比高,實際上如果幾臺伺服器,用F5之類的硬體產品顯得有些浪費,而用軟體就要合算得多,因為伺服器同時還可以跑應用做叢集等。
缺點:負載能力受伺服器本身效能的影響,效能越好,負載能力越大。
綜述:對我們管理系統應用環境來說,由於負載均衡器本身不需要對資料進行處理,效能瓶頸更多的是在於後臺伺服器,通常採用軟負載均衡器已非常夠用且其商業友好的軟體原始碼授權使得我們可以非常靈活的設計,無逢的和我們管理系統平臺相結合。