Cluster集羣/Cluster 編輯
一個計算機集羣是指一組鏈接起來的電腦,它們共同工做對外界來講就像一個電腦同樣。集羣通常由局域網鏈接,但也有例外。集羣通常用於單個電腦沒法完成的高性能計算,擁有較高的性價比。node
baidu和google的後臺服務器就是一個cluster數據庫
Cluster技術發展多年了,但其實並無一個很是準確的定義和分類,不一樣的人有不一樣的理解。後端
其實,叫什麼無所謂,只要可以對用戶有益就能夠了. :-)緩存
就我的理解而言,cluster有如下幾種,固然前面說過,不一樣的人有不一樣的理解,你們能夠充分討論。個人這些分類更偏重於工程而不是技術性。安全
HA集羣
實現高可用性,但對單個應用性能沒有提升,市場上大部分產品都是屬於這類,技術上也較簡單。服務器
IP負載均衡集羣
利用IP技術實現對通用IP應用的支持。這種技術並非很新,最先是在硬件上面採用的,Linux出現後纔有了不少純軟件的模式,這也是open source帶來的好處吧網絡
並行計算集羣
包括了一些象PVM,beowulf這樣的信息傳遞機制和API庫,也有任務調度產品,固然技術上最難的是並行編譯/並行系統等更智能化的產品oracle
應用負載均衡集羣
雖然cluster的最高目的是實現真正的與應用程序無關的動態負載均衡,但因爲技術上的限制,如今都只能在特殊的應用中實現,須要修改應用程序,因此並無通用產品,大可能是廠商有本身的並行版本。例如oracle paraller server.負載均衡
以上基本是按照工程或者說產品的角度劃分的,和技術上劃分應該有必定區別。
媒體宣傳稿/Cluster 編輯
隨着Internet/Intranet應用的日益普遍,計算機系統的重要性也日益上升。低故障率和高性能向來是人們追求的主要目標,但對於單臺服務器來說,這兩個問題是沒法解決的。l 可用性——不少服務器都宣稱已經達到了99%的可用性。這個數字意味着什麼呢?也就是說每一年會有1%的非預計停機時間,讓咱們來具體算一下。365(天 / 年)× 24(小時 / 天) × 1% = 87.6 (小時 / 年)。這每一年87.6小時的停機時間對於要求24×7連續服務的企業來講簡直就是災難。
l 高性能——假設通常的桌面機每秒可以處理幾千個請求,而IA服務器每秒可以處理幾萬個請求。那麼對於須要每秒處理幾十萬個請求的企業來講,若是不採用集羣技術,惟一的選擇就是購買更加高檔的中、小型計算機。若是這樣作,雖然系統性能只提升了十倍,但其購買價格和維護費用就將會上升幾十倍甚至更多。
集羣技術的出現和發展則很好的解決了這兩個問題。
集羣/Cluster 編輯
集羣就是由一些互相鏈接在一塊兒的計算機構成的一個並行或分佈式系統,從外部來看,它們僅僅是一個系統,對外提供統一的服務。
集羣技術自己有不少種分類,市場上的產品也不少,都沒有很標準的定義。通常能夠分爲如下幾種:
基於冗餘的集羣
嚴格來說,這種冗餘系統並不能叫作真正的集羣,由於它只可以提升系統的可用性,卻沒法提升系統的總體性能。
有如下幾種類型。
A. 容錯機
特色是在一臺機器內部對其全部的硬件部件都進行冗餘(包括硬盤、控制卡、總線、電源等等)。
可以基本作到與軟件系統無關,並且可實現無縫切換,但價格極其昂貴。
典型市場產品:Compaq NonStop(Tandem),Micron(NetFrame),Straus
B. 基於系統鏡像的雙機系統
特色是利用雙機,將系統的數據和運行狀態(包括內存中的數據)進行鏡像,從而實現熱備份的目的。
可以作到無縫切換,但由於採用軟件控制,佔用系統資源較大,並且因爲兩臺機器須要徹底同樣的配置,因此性能價格比過低。
典型市場產品:Novell SFT III,Marathon Endurance 4000 for NT
C. 基於系統切換的雙機系統
特色是利用雙機,將系統的數據(僅指硬盤數據)進行鏡像,在主機失效的狀況下從機將進行系統一級的切換。
性能價格比適中,但沒法實現無縫切換。
典型市場產品:Legato(Vinca) StandbyServer for NetWare,Savoir(WesternMicro)SavWareHA(Sentinel),Compaq StandbyServer
基於應用程序切換的集羣
特色是當集羣中的某個節點故障時,其它節點能夠進行應用程序一級的切換,因此全部節點在正常狀態下均可以對外提供本身的服務,也被成爲靜態的負載均衡方式。
性能價格比高,但也沒法實現無縫切換,並且對單個應用程序自己沒法作到負載均衡。
典型市場產品:Legato(Vinca) Co-StandbyServer for NT,Novell 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
基於並行計算的集羣
主要應用於科學計算、大任務量的計算等環境。有並行編譯、進程通信、任務分發等多種實現方法。
典型市場產品:TurboLinux enFuzion,Beowulf,Supercomputer Architectures,Platform
基於動態負載均衡的集羣
全部節點對外提供相同的服務,這樣能夠實現對單個應用程序的負載均衡,並且同時提供了高可用性。
性能價格比極高,但目前沒法支持數據庫。
典型市場產品:TurboCluster Server,Linux Virtual Server,F5 BigIP,Microsoft Windows NT Load Balance Service
負載均衡/Cluster 編輯
負載均衡是提升系統性能的一種前沿技術。仍是沿用前面的例子,一臺IA服務器的處理能力是每秒幾萬個,顯然沒法在一秒鐘內處理幾十萬個請求,但若是咱們可以有10臺這樣的服務器組成一個系統,若是有辦法將全部的請求平均分配到全部的服務器,那麼這個系統就擁有了每秒處理幾十萬個請求的能力。這就是負載均衡的基本思想。
實際上,目前市場上有多家廠商的負載均衡產品。因爲其應用的主要技術的不一樣,也就有着不一樣的特色和不一樣的性能。
輪詢DNS
輪詢DNS方案能夠說是技術上最簡單也最直觀的一種方案。固然,這種方案只可以實現負載均衡的功能,卻沒法實現對高可用性的保證。
它的原理是在DNS服務器中設定對同一個Internet主機名的多個IP地址的映射。這樣,在DNS收到查詢主機名的請求時,會循環的將全部對應的IP地址逐個返回。這樣,就可以將不一樣的客戶端鏈接定位到不一樣的IP主機上,也就可以實現比較簡單的負載均衡功能。可是,這種方案有兩個比較致命的缺點:
l 只可以實現對基於Internet主機名請求的負載均衡,若是是直接基於IP地址的請求則無能爲力。
l 在集羣內有節點發生故障的狀況下,DNS服務器仍會將這個節點的IP地址返回給查詢方,也就仍會不斷的有客戶請求試圖與已故障的節點創建鏈接。這種狀況下,即便你手工修改DNS服務器的對應設置,將故障的IP地址刪除,因爲Internet上全部的DNS服務器都有緩存機制,仍會有成千上萬的客戶端鏈接不到集羣,除非等到全部的DNS緩存都超時。
硬件解決方案
有些廠商提供對負載均衡的硬件解決方案,製造出帶有NAT(網絡地址轉換)功能的高檔路由器或交換機來實現負載均衡功能。NAT自己的原理就是實現多個私有IP地址對單個公共IP地址的轉換。表明產品是Cicso公司和Alteon公司的某些高檔硬件交換機系列。這種方案有以下缺點:
l 因爲採用了特殊的硬件,使得整個系統中存在非工業標準部件,極大的影響系統的擴充和維護、升級工做。
l 價格極其昂貴,和軟件的解決方案根本是數量級上的差異。
l 通常只能實現對節點系統一級的狀態檢查,沒法細化到服務一級的檢查。
l 因爲採用NAT機制,集羣管理節點自己要完成的工做量很大,很容易成爲整個系統的瓶頸。
l 此特殊硬件自己就是單一故障點。
l 實現異地節點的集羣很是困難。
協商式處理(並行過濾)
這種方案的原理是客戶請求會同時被全部的節點所接收,而後全部節點按照必定的規則協商決定由哪一個節點處理這個請求。此種方案中比較顯着的特色就是整個集羣中沒有顯着的管理節點,全部決定由全體工做節點共同協商做出。表明產品是Microsoft公司的Microsoft Load Balancing Service這種方案的特色是:
l 因爲各節點間要進行的通信量太大,加劇了網絡的負擔,通常須要增長節點通信的專用網絡,也就加大了安裝和維護的難度和費用。
l 因爲每一個節點都要接收全部的客戶請求並進行分析,極大的加大了網絡驅動層的負擔,也就減低了節點自己的工做效率,同時也時網絡驅動層很容易成爲節點系統的瓶頸。
l 因爲要更改網絡驅動層的程序,因此並非一個通用的方案,只可以實現對特殊平臺的支持。
l 在小量節點的狀況下協商的效率還能夠接受,一旦節點數量增長,通信和協商將變得異常複雜和低效,整個系統的性能會有非線性的大幅度降低。因此此類方案,通常在理論上也只容許最多十幾個的節點。
l 沒法實現異地節點的集羣。
l 因爲集羣內沒有統一的管理者,因此可能出現混亂的異常現象。
流量分發
流量分發的原理是全部的用戶請求首先到達集羣的管理節點,管理節點能夠根據全部服務節點的處理能力和現狀來決定將這個請求分發給某個服務節點。當某個服務節點因爲硬件或軟件緣由故障時,管理節點可以自動檢測到並中止向這個服務節點分發流量。這樣,既經過將流量分擔而增長了整個系統的性能和處理能力,又能夠很好的提升系統的可用性。
經過將管理節點自己作一個子集羣能夠消除因爲管理節點自身的單一性帶來的單一故障點。有些傳統技術人員認爲,由於全部的客戶流量都將經過管理節點,因此管理節點很容易成爲整個系統的瓶頸。但TurboCluster Server經過先進的直接路由或IP隧道轉發機制巧妙的解決了問題。使得全部對客戶響應的流量都由服務節點直接返回給客戶端,而並不須要再次經過管理節點。衆所周知,對於服務提供商而言,進入的流量要遠遠小於流出的流量,因此管理節點自己將再也不是瓶頸。
流量分發的具體實現方法有直接路由、IP隧道和網絡地址轉換三種方法。TurboCluster Server目前支持效率最高的前兩種。因爲這種先進的結構和技術,使得TurboCluster Server集羣內的服務節點數並無上限,並且對大量節點的協同工做的效率也可以很是好的保證。
市場前景/Cluster 編輯
集羣技術已經發展了多年,其中的分支也很是多。目前集羣技術正逐漸走向分層結構,之後也確定會有專門用戶前端、後端的集羣產品出現。
隨着計算機應用地位的逐漸提高,系統安全和重要性的日益增長,集羣技術必將會有着極爲廣闊的應用前景。
一、什麼是集羣
集羣(cluster)就是一組計算機,他們做爲總體向用戶提供一組網絡資源。這些單個的計算機系統就是集羣的節點(node)。一個理想的集羣是,用戶從不會意識到集羣系統底層的節點,在他/她們看來,集羣是一個系統,而非多個計算機系統。而且集羣系統的管理員能夠隨意的增長和刪除集羣系統的節點。
二、集羣的優勢
<1>高擴展性
<2>高可用性HA:集羣中的一個節點失效,它的任務可傳遞給其餘節點。能夠防止單點失效
<3>高性能:負載平衡集羣容許系統同時接入更多的用戶
<4>高性能價比:能夠採用廉價的複合工業標準的硬件來構造高性能的系統。
三、集羣系統的分類
雖然,根據集羣系統的不一樣特徵能夠有多種分類方法,可是通常把集羣系統分爲兩類:
<1>高可用性(High Availability)集羣,簡稱HA集羣。
這類集羣致力於提供高度可靠的服務。就是利用集羣系統的容錯性對外提供7*24小時不間斷的服務,如高可用的文件服務器、數據庫服務等關鍵應用。
負載均衡集羣:使任務能夠在集羣中儘量平均的分攤不一樣計算機處理,充分利用集羣的處理能力,提升對任務的處理效率。在實際應用中這幾種集羣類型可能混合使用,以提供更高穩定的服務,如在一個使用網絡流量負載均衡的集羣中,就會包含高可用的網絡文件系統、高可用的網絡服務。
<3>性能計算(High Perfervidmance Computing)集羣,簡稱HPC集羣,也稱爲計算集羣。
在這種集羣運行的是專門開發的並行應用程序,它能夠把一個問題的數據分不到多臺計算機上,利用這些計算機的共同資源來完成任務,從而能夠解決單機不能勝任的工做(若是問題規模太大,單機計算速度太慢)。
這類集羣致力於提供了單個計算機所不能提供的強大的計算能力。如天氣預報、石油勘探與油藏模擬、分子模擬、生物計算等。
四、什麼是高可用性(HA)
計算機系統的可用性(availability)是經過系統的可靠性(reliability)和可維護性(maintainability)來度量的。工程上一般採用平均無端障時間(MTTF)來度量系統的可靠性,用平均時間(MTTR)來度量系統的可維護性。因而可用性定義爲:MTTF/(MTTF+MTTR)*100%
五、負載均衡服務器的高可用性
爲了屏蔽負載均衡服務器失效,須要創建一個備份機。主服務器和備份機上都運行High Availability監控程序,經過傳送諸如「I am alive」這樣的信息來監控對方的運行情況。當備份機不能在必定的時間內收到這樣的信息時,它就接管主服務器IP並繼續提供服務;當備份管理器又從主管理器收到「I am alive」這樣的信息時,他就釋放IP地址,這樣的主管理器就開開始再次進行集羣管理的工做了。爲在主服務器失效的狀況下系統能正常工做,咱們在主、備份機之間實現負載集羣系統配置信息的同步和備份,保持二者系統的基本一致。
六、HA的容錯備援運做過程
自動偵測(Auto-Detect)階段 由主機上的軟件經過冗餘偵測線,經由複雜的偵聽程序。邏輯判斷,互相偵測對方運行狀況,所檢查的項目有:主機硬件(CPU和周邊)、主機網絡、主機操做系統、數據引擎以及其餘應用程序、主機與磁盤陣列連線。爲確保偵測的正確性,而防止錯個人判斷,可設定安全偵測時間、包括偵測時間間隔、偵測次數以調整安全係數,而且由主機的冗餘通訊連線,將所聚集的訊息記錄下來,以供維護參考。
自動切換(Auto-Switch)階段 某一主機若是確認對方故障,則正常主機繼續進行原來的任務,還將依據各類容錯備援模式接管預先設定的備援做業程序,並進行後續的程序以及服務。
自動恢復(Auto-Recovery)階段 在正常主機代替故障機工做後,故障機可離線進行修復工做。在故障主機修復後,經過冗餘通信線與原來主機連線,自動切換回修復完成的主機上。整個回覆過程完成有EDI-HA自動完成,亦可依靠預先配置,選擇回覆動做爲半自動或不回覆。
七、HA三種工做方式
<1>主從方式(非對稱方式)
工做原理:主機工做,備機處於監控情況;當主機宕機時,備機接管主機的一切工做,待主機恢復正常後,按使用者的設定以自動或手動方式將服務切換到主機上運行,數據的一致性經過共享存儲系統解決。
<2>雙機雙工方式(互備互援)
工做原理:兩臺主機同時運行各自的服務工做且互相檢測狀況,當任一臺主機宕機時,另外一臺主機當即接管它的一切工做,保證工做實時,應用服務系統的關鍵數據存放在共享存儲系統中。
<3>集羣工做方式(多服務器互備方式)
工做原理:多臺主機一塊兒工做,各自運行一個或幾個服務,各爲服務定義一個或多個備用主機,當某個主機故障時,運行在其上的服務就能夠被其它主機接管。