好程式設計師雲端計算培訓分享伺服器叢集cluster講解

好程式設計師發表於2020-07-09

  好程式設計師雲端計算培訓分享伺服器叢集cluster講解, 負載均衡技術用於解決如何把許多互不相關的小型任務或中型任務合理地分配到不同的伺服器上的問題。互不相關的小型任務或中型任務是指任務之間沒有關聯性,而且只用一臺伺服器就可以完成的任務。絕大多數個人租戶的任務都屬於這類任務。

   對於大型任務,由於一臺伺服器無法按時完成,所以就要把大型任務拆分成許多中小型任務,然後再分配給多臺伺服器,由它們協同完成,這就是計算機叢集技術所要解決的問題。

   對租戶來說,由很多臺伺服器組成的叢集系統就像一臺超級計算機,不管執行多麼複雜、大型的任務,馬上就能得到結果。而具備同樣計算能力的超級計算機價格卻異常昂貴,所以當 PC 伺服器價格大幅度下降之後,人們熱衷於採用廉價的叢集系統來完成各種高效能的計算任務。比較明顯的例子就是,很多大型公司用幾萬臺伺服器組建搜尋叢集系統,而且伺服器都是他們自己組裝的。。

   接下來講解叢集涉及兩大技術:一是任務的拆分,二是任務的排程。

   1. 任務的拆分

   任務的拆分遵循的原則之一是儘量降低子任務之間的關聯性,從而提高處理任務的並行度。最常見的關聯性是任務處理的時間先後關係,比如子任務 A 一定要在子任務 B 完成之後才能開始處理,即 B 任務的輸出作為 A 任務的輸入。存在一類子任務無關聯的大型任務,拆分這樣的任務就很容易。

   比如在全球上億的網頁中搜尋關鍵詞“雲端計算”,這個任務的拆分方法之一是按國家劃分:A 子任務搜尋中國的網站,B 子任務搜尋美國的網站,C 子任務搜尋英國的網站等,這些子任務之間沒有關聯性,可以並行處理,最終把全部子任務的搜尋結果合併起來即可。再比如中國的天氣預報,可以按省份拆分。

   2. 任務的排程

   任務的排程即如何把拆分出來的子任務合理地排程給雲端伺服器並讓它們協同完成,這裡的“合理”性與租戶的要求密切相關。可以這樣定義:最能滿足租戶要求的排程方法就是合理的。

   租戶的要求各種各樣,有的希望任務完成得越快越好,有的要求在將來某個時間前完成任務即可,有的希望結果越精確越好,有的希望計算費用越少越好……根據租戶的不同要求,人們提出了相應的任務排程方法。比如在滿足租戶預期目標的前提下,把任務分配給儘量少的計算機,從而滿足“應用最少的計算機按時、按質完成任務”的要求,因為參與的計算機越少,通訊的成本就越低。

   例如,有一個 100 人日的任務,甲方要求在 10 天內完成。為了在規定的時間內完成任務,乙方更願意安排 10 個人做 10 天,而不是安排 105 個人做1天。由於要管理 100 人,所以後者需要增加 5 個管理人員。

   叢集是一個複雜的工程,它涉及很多分散式方面的基礎演算法,如選舉演算法、一致演算法、波演算法、快照、故障檢測等。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2703619/,如需轉載,請註明出處,否則將追究法律責任。

相關文章