集群和負載均衡的雙生關系
筆者學習負載均衡的知識也有一段時間,最初接觸負載均衡,總是和集群撤不開關系。那么,為了讓更多的初學者能更好,更全面,更深入的理解負載均衡和集群的的關系,在此,為大家整理了這篇文章,希望大家能從中搞清楚兩者的關系。總的來說,這兩者是雙生的概念,如果沒有集群,人們不會法陣負載均衡技術,沒有負載均衡,集群也不能更好的發展。
什么是cluster技術
Cluster技術發展多年了,但其實并沒有一個非常準確的定義和分類,不同的人有不同的理解。其實,叫什么無所謂,只要能夠對用戶有益就可以了。就個人理解而言,cluster有以下幾種,當然前面說過,不同的人有不同的理解,大家可以充分討論。我的這些分類更偏重于工程而不是技術性。
1. HA集群
實現高可用性,但對單個應用性能沒有提高,市場上大部分產品都是屬于這類,技術上也較簡單。
2. IP負載均衡集群
利用IP技術實現對通用IP應用的支持。這種技術并不是很新,最早是在硬件上面采用的,Linux出現后才有了很多純軟件的模式,這也是open source帶來的好處吧
3.并行計算集群
包括了一些象PVM,beowulf這樣的信息傳遞機制和API庫,也有任務調度產品,當然技術上最難的是并行編譯/并行系統等更智能化的產品
4.應用負載均衡集群
雖然cluster的***目的是實現真正的與應用程序無關的動態負載均衡,但由于技術上的限制,現在都只能在特殊的應用中實現,需要修改應用程序,所以并沒有通用產品,大多是廠商有自己的并行版本。例如oracle paraller server.
以上基本是按照工程或者說產品的角度劃分的,和技術上劃分應該有一定區別。
下面是一篇很早以前寫的東西,當時是為了媒體宣傳寫的,有一些商業味道在里面,有些地方技術上也不完全正確。現在給大家附上是想交換一下觀點。并不是宣傳Turbolinux公司的產品(本人是Turbolinux員工),確實是實在懶得改了,雖然這種商業性文章在公共社區里發表犯了大忌。只是供大家參考,關于Turbolinux產品優劣不參與討論。請大家理解。一直是不參與linux社區討論的,這次是因為對cluster接觸了比較長的時間,已經有了很大的興趣,所以注冊了來灌水。
隨著Internet/Intranet應用的日益廣泛,計算機系統的重要性也日益上升。低故障率和高性能向來是人們追求的主要目標,但對于單臺服務器來講,這兩個問題是無法解決的。
◆可用性——很多服務器都宣稱已經達到了99%的可用性。這個數字意味著什么呢?也就是說每年會有1%的非預計停機時間,讓我們來具體算一下。 365(天/年)×24(小時/天)×1%=87.6 (小時/年)。這每年87.6小時的停機時間對于要求24×7連續服務的企業來說簡直就是災難。
◆高性能——假設一般的桌面機每秒能夠處理幾千個請求,而IA服務器每秒能夠處理幾萬個請求。那么對于需要每秒處理幾十萬個請求的企業來說,如果不采用集群技術,唯一的選擇就是購買更加高檔的中、小型計算機。如果這樣做,雖然系統性能只提高了十倍,但其購買價格和維護費用就將會上升幾十倍甚至更多。
集群技術的出現和發展則很好的解決了這兩個問題。#p#
集群
集群就是由一些互相連接在一起的計算機構成的一個并行或分布式系統,從外部來看,它們僅僅是一個系統,對外提供統一的服務。
集群技術本身有很多種分類,市場上的產品也很多,都沒有很標準的定義。一般可以分為以下幾種:
1. 基于冗余的集群
嚴格來講,這種冗余系統并不能叫做真正的集群,因為它只能夠提高系統的可用性,卻無法提高系統的整體性能。
有以下幾種類型。
A. 容錯機
特點是在一臺機器內部對其所有的硬件部件都進行冗余(包括硬盤、控制卡、總線、電源等等)。
能夠基本做到與軟件系統無關,而且可實現無縫切換,但價格極其昂貴。
典型市場產品:Compaq NonStop(Tandem),Micron(NetFrame),Straus
B. 基于系統鏡像的雙機系統
特點是利用雙機,將系統的數據和運行狀態(包括內存中的數據)進行鏡像,從而實現熱備份的目的。
能夠做到無縫切換,但因為采用軟件控制,占用系統資源較大,而且由于兩臺機器需要完全一樣的配置,所以性能價格比太低。
典型市場產品:Novel SFT III,Marathon Endurance 4000 for NT
C. 基于系統切換的雙機系統
特點是利用雙機,將系統的數據(僅指硬盤數據)進行鏡像,在主機失效的情況下從機將進行系統一級的切換。
性能價格比適中,但無法實現無縫切換。
典型市場產品:Legato(Vinca)StandbyServer for NetWare,Savoir(WesternMicro)SavWareHA(Sentinel),Compaq StandbyServer
2. 基于應用程序切換的集群
特點是當集群中的某個節點故障時,其它節點可以進行應用程序一級的切換,所以所有節點在正常狀態下都可以對外提供自己的服務,也被成為靜態的負載均衡方式。
性能價格比高,但也無法實現無縫切換,而且對單個應用程序本身無法做到負載均衡。
典型市場產品:Legato(Vinca)Co-StandbyServer for NT,Novel HA Server,Microsoft Cluster Server,DEC Cluster for NT,Legato Octopus,Legato FullTime,NeoHigh Rose HA,SUN Clusters, Veritas Cluster Server (FirstWatch),CA SurvivIT,1776
3. 基于并行計算的集群
主要應用于科學計算、大任務量的計算等環境。有并行編譯、進程通訊、任務分發等多種實現方法。
典型市場產品:TurboLinux enFuzion,Beowulf,Supercomputer Architectures,Platform
4. 基于動態負載均衡的集群
所有節點對外提供相同的服務,這樣可以實現對單個應用程序的負載均衡,而且同時提供了高可用性。
性能價格比極高,但目前無法支持數據庫。
典型市場產品:TurboCluster Server,Linux Virtua Server,F5 BigIP,Microsoft Windows NT Load Balance Service