轉(探討分佈式系統與集羣的區別)

簡單說,分佈式是以縮短單個任務的執行時間來提高效率的,而集羣則是經過提升單位時間內執行的任務數來提高效率。html

  例如:若是一個任務由10個子任務組成,每一個子任務單獨執行需1小時,則在一臺服務器上執行改任務需10小時。linux

  採用分佈式方案,提供10臺服務器,每臺服務器只負責處理一個子任務,不考慮子任務間的依賴關係,執行完這個任務只需一個小時。算法

  而採用集羣方案,一樣提供10臺服務器,每臺服務器都能獨立處理這個任務。假設有10個任務同時到達,10個服務器將同時工做,10小後,10個任務同時完成,這樣,整身來看,仍是1小時內完成一個任務!數據庫

  集羣概念服務器

  1. 兩大關鍵特性網絡

  集羣是一組協同工做的服務實體,用以提供比單一服務實體更具擴展性與可用性的服務平臺。在客戶端看來,一個集羣就象是一個服務實體,但事實上集羣由一組服務實體組成。與單一服務實體相比較,集羣提供瞭如下兩個關鍵特性:負載均衡

  · 可擴展性--集羣的性能不限於單一的服務實體,新的服務實體能夠動態地加入到集羣,從而加強集羣的性能。分佈式

  · 高可用性--集 羣經過服務實體冗餘使客戶端免於輕易遇到out of service的警告。在集羣中,一樣的服務能夠由多個服務實體提供。若是一個服務實體失敗了,另外一個服務實體會接管失敗的服務實體。集羣提供的從一個出 錯的服務實體恢復到另外一個服務實體的功能加強了應用的可用性。性能

  2. 兩大能力測試

  爲了具備可擴展性和高可用性特色,集羣的必須具有如下兩大能力:

  · 負載均衡--負載均衡能把任務比較均衡地分佈到集羣環境下的計算和網絡資源。

  · 錯誤恢復--因爲某種緣由,執行某個任務的資源出現故障,另外一服務實體中執行同一任務的資源接着完成任務。這種因爲一個實體中的資源不能工做,另外一個實體中的資源透明的繼續完成任務的過程叫錯誤恢復。

  負載均衡和錯誤恢復都要求各服務實體中有執行同一任務的資源存在,並且對於同一任務的各個資源來講,執行任務所需的信息視圖(信息上下文)必須是同樣的。

  3. 兩大技術

  實現集羣務必要有如下兩大技術:

  · 集羣地址--集 羣由多個服務實體組成,集羣客戶端經過訪問集羣的集羣地址獲取集羣內部各服務實體的功能。具備單一集羣地址(也叫單一影像)是集羣的一個基 本特徵。維護集羣地址的設置被稱爲負載均衡器。負載均衡器內部負責管理各個服務實體的加入和退出,外部負責集羣地址向內部服務實體地址的轉換。有的負載均 衡器實現真正的負載均衡算法,有的只支持任務的轉換。只實現任務轉換的負載均衡器適用於支持ACTIVE-STANDBY的集羣環境,在那裏,集羣中只有 一個服務實體工做,當正在工做的服務實體發生故障時,負載均衡器把後來的任務轉向另一個服務實體。

  · 內部通訊--爲了能協同工做、實現負載均衡和錯誤恢復,集羣各實體間必須時常通訊,好比負載均衡器對服務實體心跳測試信息、服務實體間任務執行上下文信息的通訊。

  具備同一個集羣地址使得客戶端能訪問集羣提供的計算服務,一個集羣地址下隱藏了各個服務實體的內部地址,使得客戶要求的計算服務能在各個服務實體之間分佈。內部通訊是集羣能正常運轉的基礎,它使得集羣具備均衡負載和錯誤恢復的能力。

  集羣分類

   Linux集羣主要分紅三大類( 高可用集羣, 負載均衡集羣,科學計算集羣),高可用集羣( High Availability Cluster),負載均衡集羣(Load Balance Cluster),科學計算集羣(High Performance Computing Cluster)

  具體包括:

  Linux High Availability 高可用集羣:普通兩節點雙機熱備,多節點HA集羣,RAC, shared, share-nothing集羣等;Linux Load Balance 負載均衡集羣:LVS等....;Linux High Performance Computing 高性能科學計算集羣:Beowulf 類集羣....;分佈式存儲;其餘類linux集羣:如Openmosix, rendering farm 等..

  詳細介紹

  1. 高可用集羣(High Availability Cluster)

  常見的就是2個節點作成的HA集羣,有不少通俗的不科學的名稱,好比"雙機熱備", "雙機互備", "雙機".

  高可用集羣解決的是保障用戶的應用程序持續對外提供服務的能力。 (請注意高可用集羣既不是用來保護業務數據的,保護的是用戶的業務程序對外不間斷提供服務,把因軟件/硬件/人爲形成的故障對業務的影響下降到最小程度)。

  2. 負載均衡集羣(Load Balance Cluster)

  負載均衡系統:集羣中全部的節點都處於活動狀態,它們分攤系統的工做負載。通常Web服務器集羣、數據庫集羣和應用服務器集羣都屬於這種類型。

  負載均衡集羣通常用於相應網絡請求的網頁服務器,數據庫服務器。這種集羣能夠在接到請求時,檢查接受請求較少,不繁忙的服務器,並把請求轉到這些服務器上。從檢查其餘服務器狀態這一點上看,負載均衡和容錯集羣很接近,不一樣之處是數量上更多。

  3. 科學計算集羣(High Performance Computing Cluster)

  高性能計算(High Perfermance Computing)集羣,簡稱HPC集羣。這類集羣致力於提供單個計算機所不能提供的強大的計算能力。

  高性能計算分類

  高吞吐計算(High-throughput Computing)

   有一類高性能計算,能夠把它分紅若干能夠並行的子任務,並且各個子任務彼此間沒有什麼關聯。象在家搜尋外星人( SETI@HOME -- Search for Extraterrestrial Intelligence at Home )就是這一類型應用。這一項目是利用Internet上的閒置的計算資源來搜尋外星人。SETI項目的服務器將一組數據和數據模式發給Internet上 參加SETI的計算節點,計算節點在給定的數據上用給定的模式進行搜索,而後將搜索的結果發給服務器。服務器負責將從各個計算節點返回的數據聚集成完整的 數據。由於這種類型應用的一個共同特徵是在海量數據上搜索某些模式,因此把這類計算稱爲高吞吐計算。所謂的Internet計算都屬於這一類。按照 Flynn的分類,高吞吐計算屬於SIMD(Single Instruction/Multiple Data)的範疇。

  分佈計算(Distributed Computing)

  另外一類計算恰好和高吞吐計算相反,它們雖然能夠給分紅若干並行的子任務,可是子任務間聯繫很緊密,須要大量的數據交換。按照Flynn的分類,分佈式的高性能計算屬於MIMD(Multiple Instruction/Multiple Data)的範疇。

  4. 分佈式(集羣)與集羣的聯繫與區別

  分佈式是指將不一樣的業務分佈在不一樣的地方。而集羣指的是將幾臺服務器集中在一塊兒,實現同一業務。分佈式中的每個節點,均可以作集羣。而集羣並不必定就是分佈式的。

  舉例:就好比新浪網,訪問的人多了,他能夠作一個羣集,前面放一個響應服務器,後面幾臺服務器完成同一業務,若是有業務訪問的時候,響應服務器看哪臺服務器的負載不是很重,就將給哪一臺去完成。

  而分佈式,從窄意上理解,也跟集羣差很少, 可是它的組織比較鬆散,不像集羣,有一個組織性,一臺服務器垮了,其它的服務器能夠頂上來。

  分佈式的每個節點,都完成不一樣的業務,一個節點垮了,哪這個業務就不可訪問了。

相關文章
相關標籤/搜索