什么是集群(cluster)
1、集群
?
1.1 什么是集群
?
簡單的說,集群(cluster)就是一組計算機,它們作為一個總體向用戶提供一組網絡資源。這些單個的計算機系統就是集群的節點(node)。一個理想的集群是,用戶從來不會意識到集群系統底層的節點,在他/她們看來,集群是一個系統,而非多個計算機系統。而且集群系統的管理員能夠任意添加和刪改集群系統的節點。
?
1.2 為什么須要集群
?
集群并非一個全新的概念,事實上早在七十年代計算機廠商和研究機構就開始了對集群系統的研究和開發。因為主要用于科學project計算,所以這些系統并不為大家所熟知。直到Linux集群的出現,集群的概念才得以廣為傳播。
?
對集群的研究起源于集群系統的良好的性能可擴展性(scalability)。提高cpu主頻和總線帶寬是最初提供計算機性能的主要手段。可是這一手段對系統性能的提供是有限的。接著人們通過添加CPU個數和內存容量來提高性能,于是出現了向量機,對稱多處理機(SMP)等。可是當CPU的個數超過某一閾值,象SMP這些多處理機系統的可擴展性就變的極差。主要瓶頸在于CPU訪問內存的帶寬并不能隨著CPU個數的添加而有效增長。與SMP相反,集群系統的性能隨著CPU個數的添加差點兒是線性變化的。圖1顯示了這中情況。
圖1. 幾種計算機系統的可擴展性
集群系統的長處并不僅在于此。以下列舉了集群系統的主要長處:
?
高可擴展性:如上所述。
?
高可用性:集群中的一個節點失效,它的任務能夠傳遞給其它節點。能夠有效防止單點失效。
?
高性能:負載平衡集群同意系統同一時候接入很多其它的用戶。
?
高性價比:能夠採用便宜的符合工業標準的硬件構造高性能的系統。
?
1.2.1 集群系統的分類
?
盡管 依據集群系統的不同特征能夠有多種分類方法,可是一般我們把集群系統分為兩類:
?
高可用(High Availability)集群,簡稱HA集群。這類集群致力于提供高度可靠的服務。
?
高性能計算(High Perfermance Computing)集群,簡稱hpC集群。這類集群致力于提供單個計算機所不能提供的強大的計算能力。
?
第二頁
?
?
?
2、高可用集群
?
2.1 什么是高可用性
?
計算機系統的可用性(availability)是通過系統的可靠性(reliability)和可維護性(maintainability)來度量的。project上通經常使用平均無故障時間(MTTF)來度量系統的可靠性,用平均維修時間(MTTR)來度量系統的可維護性。于是可用性被定義為:
?
MTTF/(MTTF+MTTR)*100%
?
業界依據可用性把計算機系統分為例如以下幾類:
?
表1. 系統可用性分類
?
可用比例 年停機時間 ?? 可用性分類
99.5????????????3.7天???????????????? 常規系統(Conventional)
?
99.9????????????8.8小時????????????? 可用系統(Available)
?
99.99??????????52.6分鐘???????????高可用系統(Highly Available)
?
99.999???????5.3分鐘??????????????Fault Resilient
?
99.9999?????32秒???????????????????Fault Tolerant
對于關鍵業務,停機一般是災難性的。由于停機帶來的損失也是巨大的。以下的統計數字列舉了不同類型企業應用系統停機所帶來的損失。
?
表 2. 停機給企業帶來的損失
應用系統???????????????????????????????? 每分鐘損失(美元)
?
呼叫中心(Call Center) 27000
?
企業資源計劃(ERP)系統 13000
?
供應鏈管理(SCM)系統 11000
?
電子商務(eCoMMerce)系統 10000
?
客戶服務(Customer Service Center)系統 27000
隨著企業越來越依賴于信息技術,因為系統停機而帶來的損失也越拉越大。
?
2.2 高可用集群
?
高可用集群就是採用集群技術來實現計算機系統的高可用性。高可用集群通常有兩種工作方式:
?
容錯系統:一般是主從server方式。從server檢測主server的狀態,當主服務工作正常時,從server并不提供服務。可是一旦主server失效,從server就開始取代主server向客戶提供服務。
?
負載均衡系統:集群中全部的節點都處于活動狀態,它們分攤系統的工作負載。一般Webserver集群、數據庫集群和應用server集群都屬于這樣的類型。
?
關于高可用集群的討論非常多,這里就不進行深入的闡述了。
?
第三頁
?
?
?
3、高性能計算集群
?
3.1 什么是高性能計算集群
?
簡單的說,高性能計算(High-Performance Computing)是計算機科學的一個分支,它致力于開發超級計算機,研究并行算法和開發相關軟件。高性能計算主要研究例如以下兩類問題:
?
大規模科學問題,象天氣預報、地形分析和生物制藥等;
?
存儲和處理海量數據,象數據挖掘、圖象處理和基因測序;
?
顧名思義,高性能集群就是採用集群技術來研究高性能計算。
?
3.2 高性能計算分類
?
高性能計算的分類方法非常多。這里從并行任務間的關系角度來對高性能計算分類。
?
3.2.1 高吞吐計算(High-throughput Computing)
?
有一類高性能計算,能夠把它分成若干能夠并行的子任務,并且各個子任務彼此間沒有什么關聯。象在家搜尋外星人( SETI@HOME -- Search for Extraterrestrial Intelligence at Home )就是這一類型應用。這一項目是利用Internet上的閑置的計算資源來搜尋外星人。SETI項目的server將一組數據和數據模式發給Internet上參加SETI的計算節點,計算節點在給定的數據上用給定的模式進行搜索,然后將搜索的結果發給server。server負責將從各個計算節點返回的數據匯集成完整的數據。由于這樣的類型應用的一個共同特征是在海量數據上搜索某些模式,所以把這類計算稱為高吞吐計算。所謂的Internet計算都屬于這一類。依照Flynn的分類,高吞吐計算屬于SIMD(Single Instruction/Multiple Data)的范疇。
?
3.2.2 分布計算(Distributed Computing)
?
還有一類計算剛好和高吞吐計算相反,它們盡管能夠給分成若干并行的子任務,可是子任務間聯系非常緊密,須要大量的數據交換。依照Flynn的分類,分布式的高性能計算屬于MIMD(Multiple Instruction/Multiple Data)的范疇。
?
3.3 Linux高性能集群系統
?
當論及Linux高性能集群時,很多人的第一反映就是Beowulf。起初,Beowulf僅僅是一個著名的科學計算集群系統。以后的非常多集群都採用Beowulf相似的架構,所以,實際上,如今Beowulf已經成為一類廣為接受的高性能集群的類型。雖然名稱各異,非常多集群系統都是Beowulf集群的衍生物。當然也存在有別于Beowulf的集群系統,COW和Mosix就是另兩類著名的集群系統。
?
3.3.1 Beowulf集群
?
簡單的說,Beowulf是一種可以將多臺計算機用于并行計算的體系結構。通常Beowulf系統由通過以太網或其它網絡連接的多個計算節點和管理節點構成。管理節點控制整個集群系統,同一時候為計算節點提供文件服務和對外的網絡連接。它使用的是常見的硬件設備,象普通pc、以太網卡和集線器。它非常少使用特別定制的硬件和特殊的設備。Beowulf集群的軟件也是隨處可見的,象Linux、PVM和MPI。
?
本文的以后幾部分將具體介紹Beowulf集群系統的硬件、網絡、軟件和應用體系結構。
?
3.3.2 Beowulf集群和COW集群
?
象Beowulf一樣,COW(Cluster Of Workstation)也是由最常見的硬件設備和軟件系統搭建而成。通常也是由一個控制節點和多個計算節點構成。COW和Beowulf的主要差別在于:
?
COW中的計算節點主要都是閑置的計算資源,如辦公室中的桌面工作站,它們就是普通的PC,採用普通的局域網進行連接。由于這些計算節點白天會作為工作站使用,所以基本的集群計算發生在晚上和周末等空暇時間。而Beowulf中的計算節點都是專職于并行計算,而且進行了性能優化。它們採用快速網(Myrinet或Giganet)上的消息傳遞(PVM或MPI)進行進程間通信(IPC)。
?
由于COW中的計算節點基本的目的是桌面應用,所以它們都具有顯示器、鍵盤和鼠標等外設。而Beowulf的計算節點通常沒有這些外設,對這些計算節點的訪問一般是在管理節點上通過網絡或串口線實現的。
?
由于連接COW中計算節點的一般是普通的局域網,所以COW上的高性能應用一般是象SETI@HOME 這種SIMD的高吞吐計算。而Beowulf不管從硬件、網絡和軟件上都對須要頻繁交換數據的MIMD應用做了特別的優化。
?
3.3.3 Mosix集群
?
實際上把Mosix集群放在高性能集群這一節是相當牽強的,可是和Beowulf等其它集群相比, Mosix集群確實是種非常特別的集群, 它致力于在Linux系統上實現集群系統的單一系統映象SSI(Single System Image)。Mosix集群將網絡上執行Linux的計算機連接成一個集群系統。系統自己主動均衡節點間的負載。由于Mosix是在Linux系統內核中實現的集群,所以用戶態的應用程序不須要不論什么改動就能夠在Mosix集群上執行。通經常使用戶非常少會注意到Linux和Mosix的區別。對于他來說,Mosix集群就是執行Linux的一臺PC。雖然如今存在著不少的問題,Mosix始終是引人注目的集群系統。
摘錄于:http://hi.baidu.com/movieyouth/blog/item/bbe6d658bad56385800a18b6.html
轉載于:https://www.cnblogs.com/gcczhongduan/p/4310778.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的什么是集群(cluster)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 隐藏SyntaxHighlighter滚
- 下一篇: 一款基于jQuery外观优雅带遮罩弹出层