分布式就是將一個任務分為多個子任務奄喂,分別交給多個服務器實體來完成,每個服務器實體完成相對應的子任務圃阳。分布式是以縮短單個任務的執(zhí)行時間來提升效率的箩帚。
集群就是多個服務器實體同時完成相同的任務,通過提高單位時間內(nèi)執(zhí)行的任務數(shù)來提升效率叔锐。
如果一個任務由10個子任務組成挪鹏,每個子任務單獨執(zhí)行需1小時,則在一臺服務器上執(zhí)行改任務需10小時愉烙。
采用分布式方案讨盒,提供10臺服務器,每臺服務器只負責處理一個子任務步责,不考慮子任務間的依賴關系催植,執(zhí)行完這個任務只需一個小時。(這種工作模式的一個典型代表就是Hadoop的Map/Reduce分布式計算模型)
而采用集群方案勺择,同樣提供10臺服務器创南,每臺服務器都能獨立處理這個任務。假設有10個任務同時到達省核,10個服務器將同時工作稿辙,10小后,10個任務同時完成气忠,這樣邻储,整身來看,還是1小時內(nèi)完成一個任務旧噪!
以下是摘抄自網(wǎng)絡文章:
1. 兩大關鍵特性
集群是一組協(xié)同工作的服務實體吨娜,用以提供比單一服務實體更具擴展性與可用性的服務平臺。在客戶端看來淘钟,一個集群就象是一個服務實體宦赠,但事實上集群由一組服務實體組成。與單一服務實體相比較,集群提供了以下兩個關鍵特性:
·? 可擴展性--集群的性能不限于單一的服務實體勾扭,新的服務實體可以動態(tài)地加入到集群毡琉,從而增強集群的性能。
·? 高可用性--集群通過服務實體冗余使客戶端免于輕易遇到out of service的警告妙色。在集群中桅滋,同樣的服務可以由多個服務實體提供。如果一個服務實體失敗了身辨,另一個服務實體會接管失敗的服務實體丐谋。集群提供的從一個出 錯的服務實體恢復到另一個服務實體的功能增強了應用的可用性。
2. 兩大能力
為了具有可擴展性和高可用性特點煌珊,集群的必須具備以下兩大能力:
·? 負載均衡--負載均衡能把任務比較均衡地分布到集群環(huán)境下的計算和網(wǎng)絡資源笋鄙。
·? 錯誤恢復--由于某種原因,執(zhí)行某個任務的資源出現(xiàn)故障怪瓶,另一服務實體中執(zhí)行同一任務的資源接著完成任務。這種由于一個實體中的資源不能工作践美,另一個實體中的資源透明的繼續(xù)完成任務的過程叫錯誤恢復洗贰。
負載均衡和錯誤恢復都要求各服務實體中有執(zhí)行同一任務的資源存在,而且對于同一任務的各個資源來說陨倡,執(zhí)行任務所需的信息視圖(信息上下文)必須是一樣的敛滋。
3. 兩大技術(shù)
實現(xiàn)集群務必要有以下兩大技術(shù):
·? 集群地址--集群由多個服務實體組成,集群客戶端通過訪問集群的集群地址獲取集群內(nèi)部各服務實體的功能兴革。具有單一集群地址(也叫單一影像)是集群的一個基 本特征绎晃。維護集群地址的設置被稱為負載均衡器。負載均衡器內(nèi)部負責管理各個服務實體的加入和退出杂曲,外部負責集群地址向內(nèi)部服務實體地址的轉(zhuǎn)換庶艾。有的負載均 衡器實現(xiàn)真正的負載均衡算法,有的只支持任務的轉(zhuǎn)換擎勘。只實現(xiàn)任務轉(zhuǎn)換的負載均衡器適用于支持ACTIVE-STANDBY的集群環(huán)境咱揍,在那里,集群中只有 一個服務實體工作棚饵,當正在工作的服務實體發(fā)生故障時煤裙,負載均衡器把后來的任務轉(zhuǎn)向另外一個服務實體。
·? 內(nèi)部通信--為了能協(xié)同工作噪漾、實現(xiàn)負載均衡和錯誤恢復硼砰,集群各實體間必須時常通信,比如負載均衡器對服務實體心跳測試信息欣硼、服務實體間任務執(zhí)行上下文信息的通信题翰。
具有同一個集群地址使得客戶端能訪問集群提供的計算服務,一個集群地址下隱藏了各個服務實體的內(nèi)部地址,使得客戶要求的計算服務能在各個服務實體之間分布遍愿。內(nèi)部通信是集群能正常運轉(zhuǎn)的基礎存淫,它使得集群具有均衡負載和錯誤恢復的能力。
Linux集群主要分成三大類( 高可用集群沼填, 負載均衡集群桅咆,科學計算集群)
高可用集群( High Availability Cluster)
負載均衡集群(Load Balance Cluster)
科學計算集群(High Performance Computing Cluster)
================================================
具體包括:
Linux High Availability 高可用集群
(普通兩節(jié)點雙機熱備,多節(jié)點HA集群坞笙,RAC, shared, share-nothing集群等)
Linux Load Balance 負載均衡集群
(LVS等....)
Linux High Performance Computing 高性能科學計算集群
(Beowulf 類集群....)
分布式存儲
其他類linux集群
(如Openmosix, rendering farm 等..)
1. 高可用集群(High Availability Cluster)
常見的就是2個節(jié)點做成的HA集群岩饼,有很多通俗的不科學的名稱,比如"雙機熱備", "雙機互備", "雙機".
高可用集群解決的是保障用戶的應用程序持續(xù)對外提供服務的能力薛夜。 (請注意高可用集群既不是用來保護業(yè)務數(shù)據(jù)的籍茧,保護的是用戶的業(yè)務程序?qū)ν獠婚g斷提供服務,把因軟件/硬件/人為造成的故障對業(yè)務的影響降低到最小程度)梯澜。
2. 負載均衡集群(Load Balance Cluster)
負載均衡系統(tǒng):集群中所有的節(jié)點都處于活動狀態(tài)寞冯,它們分攤系統(tǒng)的工作負載。一般Web服務器集群晚伙、數(shù)據(jù)庫集群和應用服務器集群都屬于這種類型吮龄。
負載均衡集群一般用于相應網(wǎng)絡請求的網(wǎng)頁服務器,數(shù)據(jù)庫服務器咆疗。這種集群可以在接到請求時漓帚,檢查接受請求較少,不繁忙的服務器午磁,并把請求轉(zhuǎn)到這些服務器上尝抖。從檢查其他服務器狀態(tài)這一點上看,負載均衡和容錯集群很接近迅皇,不同之處是數(shù)量上更多昧辽。
3. 科學計算集群(High Performance Computing Cluster)
高性能計算(High Perfermance Computing)集群,簡稱HPC集群登颓。這類集群致力于提供單個計算機所不能提供的強大的計算能力奴迅。
高性能計算分類
高吞吐計算(High-throughput Computing)
有一類高性能計算,可以把它分成若干可以并行的子任務挺据,而且各個子任務彼此間沒有什么關聯(lián)取具。象在家搜尋外星人(SETI@HOME-- Search for Extraterrestrial Intelligence at Home )就是這一類型應用。這一項目是利用Internet上的閑置的計算資源來搜尋外星人扁耐。SETI項目的服務器將一組數(shù)據(jù)和數(shù)據(jù)模式發(fā)給Internet上 參加SETI的計算節(jié)點暇检,計算節(jié)點在給定的數(shù)據(jù)上用給定的模式進行搜索,然后將搜索的結(jié)果發(fā)給服務器婉称。服務器負責將從各個計算節(jié)點返回的數(shù)據(jù)匯集成完整的 數(shù)據(jù)块仆。因為這種類型應用的一個共同特征是在海量數(shù)據(jù)上搜索某些模式构蹬,所以把這類計算稱為高吞吐計算。所謂的Internet計算都屬于這一類悔据。按照 Flynn的分類庄敛,高吞吐計算屬于SIMD(Single Instruction/Multiple Data)的范疇。
分布計算(Distributed Computing)
另一類計算剛好和高吞吐計算相反科汗,它們雖然可以給分成若干并行的子任務藻烤,但是子任務間聯(lián)系很緊密,需要大量的數(shù)據(jù)交換头滔。按照Flynn的分類怖亭,分布式的高性能計算屬于MIMD(Multiple Instruction/Multiple Data)的范疇。
4. 分布式(集群)與集群的聯(lián)系與區(qū)別
分布式是指將不同的業(yè)務分布在不同的地方坤检。
而集群指的是將幾臺服務器集中在一起兴猩,實現(xiàn)同一業(yè)務。
分布式中的每一個節(jié)點早歇,都可以做集群倾芝。
而集群并不一定就是分布式的。
舉例:就比如新浪網(wǎng)箭跳,訪問的人多了晨另,他可以做一個群集,前面放一個響應服務器衅码,后面幾臺服務器完成同一業(yè)務,如果有業(yè)務訪問的時候脊岳,響應服務器看哪臺服務器的負載不是很重逝段,就將給哪一臺去完成。
而分布式割捅,從窄意上理解奶躯,也跟集群差不多, 但是它的組織比較松散亿驾,不像集群嘹黔,有一個組織性,一臺服務器垮了莫瞬,其它的服務器可以頂上來儡蔓。
分布式的每一個節(jié)點,都完成不同的業(yè)務疼邀,一個節(jié)點垮了喂江,哪這個業(yè)務就不可訪問了。