雲計算底層技術之高效能集群趣談

2021-09-12 12:31:34 字數 3025 閱讀 5705

在孫悟空的七十二變中,我覺得最厲害的是分身能力,這也是他百試不得其爽的終極大招,每每都能打得妖怪摸不著北。

集群,學名叫 cluster,可以翻譯為簇、聚類、集群等多種意思,不同的翻譯,在技術世界裡所表示的意思都不盡相同,但都有乙個共同的指向,即群體。集群就是由一組計算機所組成的實體,通常作為乙個整體向使用者提供資源和服務。

集群的研究和發展離不開人們對高效能計算的追求,像我們熟悉的向量機、對稱多處理機、工作站、超級計算機等等都是對高效能計算追求下的產物。

這些系統要麼是提高 cpu 的主頻和匯流排頻寬來提高系統效能,要麼是增加 cpu 個數和記憶體容量來提高效能,但這些手段對效能的提高都是有限的。有人做過實驗,當 cpu 個數超過某一閾值時,系統的效能反而會變差。其主要的瓶頸就在於 cpu 訪問記憶體的頻寬並不能隨著 cpu 個數的增加而有效增加。

相反,集群系統的效能可擴充套件能力是線性增長的。我們可以簡單通過增加機器數來增加集群的運算能力,相比購買高效能的大型計算機,同等運算能力下,我們可以獲得更高的價效比。同時,系統的可靠性也得到了增強。

早在七十年代計算機廠商和研究機構就開始了對集群系統的研究和開發,首先創造性發明集群的是 seymour cray(西摩·克雷)—— 超級計算機之父。

seymour 是一位美國工程師,在 1960 年代,cdc 公司開始涉足高效能計算領域,彼時還是大型機的天下,這些大型機設計非常複雜,生產週期漫長,**還非常昂貴。於是,當時在 cdc 公司擔任總設計師的 seymour 就決心建造出一台他心目中的高效能計算機。

seymour 出於工程師的直覺,很快想到並行是提高計算機效能的有效方式。他使用廉價的方式來獲得跟大型機一樣的運算能力。他將多個普通的處理器連線起來,使它們能夠協同工作,這就是高效能計算機的原型。

後來,ibm、hp 等公司學習了 seymour 的這套架構,高效能計算機開始迅速推廣,逐步取代原有的大型機。高效能計算機為當時的登月計畫等大型科研專案作出了非常重要的貢獻。

然後進入八十年代,在摩爾定律的指導下,cpu 頻率不斷提高,晶元不斷降價,個人計算機強勢崛起。蘋果、微軟等公司借助這股東風成為個人計算機時代的王者。隨之而來的就是高效能計算機市場遭到了吞噬,被迫只能退守公司伺服器市場。

但很快,隨著網際網路的普及,高效能計算機又迎來新的一波熱潮。網際網路上使用者量龐大,普通 pc 難以應付如此眾多的網路請求,必須要依賴由高效能計算機組成的伺服器集群。在 2000 年左右的網路泡沫時期,成就了很多像 sun 這樣的伺服器生產商。

集群不是簡單的硬體堆疊,而是硬體和軟體的結合。從軟體上說,集群至少需要:

這兩點比較好理解,集群的規模往往是比較龐大的,對於管理員來說,需要隨時能夠知曉集群中各節點的業務正常與否,出問題了應該怎麼保證業務能夠不中斷,遇到流量高峰和低谷的時候,又該怎麼響應,這些操作如果純靠人工來完成那必將很慘烈。依靠軟體和網路來完成自動化的管理方式,可以將管理員解放出來。當然,以上說的兩點是比較寬泛的,使用者可以根據自身需求來部署不同的集群元素。

乙個比較經典的集群模型當屬 beowulf 集群,它通過乙個節點統一將來自網路的請求分配給各個節點進行計算處理。

集群與分布式像一對孿生兄弟,傻傻分不清楚。在我看來,它們之間沒有特別明確的分界線,集群離不開分布式,分布式也需要集群。如果一定要做個區分,可以套用乙個比喻來描述兩者的區別:

一家餐廳剛開業,由於成本限制招了乙個廚師,慢慢地,餐廳生意越做越好,乙個廚師已經很難應付過來,於是又招了乙個,這兩個廚師水平相當,都能做同樣的事,兩個廚師之間的關係就是集群。兩廚師除了炒菜,還要負責洗菜、配菜等等的活,工作負荷已經嚴重超標,為了讓廚師能專心炒菜,把菜做到極致,餐廳又招了配菜師來輔助廚師,廚師和配菜師之間的關係就是分布式。

這個例子比較形象,在**開發中也有類似的關係,兩個全棧工程師之間就是集群的關係,前端工程師和後端工程師之間就屬於分布式的關係。

所以,一定要有區分的話就是:集群是乙個業務部署在多個伺服器上,而分布式是乙個業務拆分成多個子業務部署在不同的伺服器上。但在實際部署中,為了高效能,需要分布式部署,為了高可用,需要集群部署,這兩者都是業務所必須的指標。所以,集群和分布式之間的關係是相互補充的。

隨著虛擬化技術的發展,一台伺服器可以虛擬出多個虛擬機器,對外提供業務,這種方式大大提高了資源的利用率,集群的部署也逐步從物理機過渡到虛擬機器,靈活性大大提高。但同時也帶來了更多新的研究課題。虛擬化計算、虛擬化儲存、虛擬化網路、虛擬化安全等等這些課題共同推動著雲計算產業邁出乙個又乙個的台階。

資料中心是集中存放和執行伺服器的地方,是規模最大的集群。隨著雲計算和大資料概念的風起雲湧,google、amazon 等這些明星公司幕後的資料中心也開始走入大眾的視野。資料中心要求有優秀的架構設計、電路設計、空間設計等等,還要有機制能夠應對各種各樣的意外,否則一點小小的失誤,公司的股價恐怕就要跳水。

地理位置的選擇也是資料中心考慮的乙個指標,隨著綠色資料中心概念的興起,越來越多人關注資料中心所帶來的能源問題和環境問題,選擇乙個遠離市區,並且能利用天然水源和氣溫的地方,將會為資料中心的建設節約大量的成本。google 等大公司的資料中心就有意放在高緯度、高海拔的地區,以及有湖泊、河流流經地區,以享受天然的空調和冷卻水。

[1] 分布式與集群的區別是什麼?

[2] 資料中心網路架構演講

[3] linux 高效能計算集群

[4] 高效能計算機傳奇

配置高效能計算集群

ifconfig a 或 介面右上角圖形化設定 vi etc sysconfig network scripts ifcfg em1 修改為 ipaddr 192.168.5.70 注釋掉 bootproto dhcp 通過 dhcp 協議獲取 ip 或改為 static 靜態 ip 位址 serv...

高效能雲儲存系列二 雲計算vs 雲儲存

我們在第一部分 高效能雲儲存系列一 本地計算vs.雲儲存 中介紹了本地計算與雲儲存的關係,雲儲存能解決本地計算在技術支援 維護 員工 備份 資料中心運營和災難恢復站點方面的巨資投入問題。第二部分繼續介紹雲計算與雲儲存之間的關係。雲計算vs.雲儲存 如果你正在雲中執行延遲敏感型資料庫應用程式,最佳實踐...

高效能計算集群系統招標公告

高效能計算集群系統招標書 jdbs 08 33 上海交通大學計算機系因高效能計算的科研和教學需要,經學校有關部門同意,欲招標一套高效能計算集群系統裝置。該裝置具體要求如下 二 主要技術引數與效能指標 需購置一套高效能計算集群系統裝置。各部件要求不得低於如下技術指標,要求所有裝置同一品牌。一 機櫃系統...