摘要:在孫悟空的七十二變中,我覺(jué)得最厲害的是分身能力,這也是他百試不得其爽的終極大招,每每都能打得妖怪摸不著北。集群與分布式集群與分布式像一對(duì)孿生兄弟,傻傻分不清楚。所以,集群和分布式之間的關(guān)系是相互補(bǔ)充的。
本文首發(fā)于我的公眾號(hào) cloud_dev,專(zhuān)注于干貨分享,號(hào)內(nèi)有大量書(shū)籍和視頻資源,后臺(tái)回復(fù)「1024」即可領(lǐng)取,歡迎大家關(guān)注,二維碼文末可以掃。
在孫悟空的七十二變中,我覺(jué)得最厲害的是分身能力,這也是他百試不得其爽的終極大招,每每都能打得妖怪摸不著北。
集群,學(xué)名叫 Cluster,可以翻譯為簇、聚類(lèi)、集群等多種意思,不同的翻譯,在技術(shù)世界里所表示的意思都不盡相同,但都有一個(gè)共同的指向,即群體。集群就是由一組計(jì)算機(jī)所組成的實(shí)體,通常作為一個(gè)整體向用戶(hù)提供資源和服務(wù)。
集群的研究和發(fā)展離不開(kāi)人們對(duì)高性能計(jì)算的追求,像我們熟悉的向量機(jī)、對(duì)稱(chēng)多處理機(jī)、工作站、超級(jí)計(jì)算機(jī)等等都是對(duì)高性能計(jì)算追求下的產(chǎn)物。
這些系統(tǒng)要么是提高 CPU 的主頻和總線帶寬來(lái)提高系統(tǒng)性能,要么是增加 CPU 個(gè)數(shù)和內(nèi)存容量來(lái)提高性能,但這些手段對(duì)性能的提高都是有限的。有人做過(guò)實(shí)驗(yàn),當(dāng) CPU 個(gè)數(shù)超過(guò)某一閾值時(shí),系統(tǒng)的性能反而會(huì)變差。其主要的瓶頸就在于 CPU 訪問(wèn)內(nèi)存的帶寬并不能隨著 CPU 個(gè)數(shù)的增加而有效增加。
相反,集群系統(tǒng)的性能可擴(kuò)展能力是線性增長(zhǎng)的。我們可以簡(jiǎn)單通過(guò)增加機(jī)器數(shù)來(lái)增加集群的運(yùn)算能力,相比購(gòu)買(mǎi)高性能的大型計(jì)算機(jī),同等運(yùn)算能力下,我們可以獲得更高的性?xún)r(jià)比。同時(shí),系統(tǒng)的可靠性也得到了增強(qiáng)。
歷史早在七十年代計(jì)算機(jī)廠商和研究機(jī)構(gòu)就開(kāi)始了對(duì)集群系統(tǒng)的研究和開(kāi)發(fā),首先創(chuàng)造性發(fā)明集群的是 Seymour Cray(西摩·克雷)—— 超級(jí)計(jì)算機(jī)之父。
Seymour 是一位美國(guó)工程師,在 1960 年代,CDC 公司開(kāi)始涉足高性能計(jì)算領(lǐng)域,彼時(shí)還是大型機(jī)的天下,這些大型機(jī)設(shè)計(jì)非常復(fù)雜,生產(chǎn)周期漫長(zhǎng),價(jià)格還非常昂貴。于是,當(dāng)時(shí)在 CDC 公司擔(dān)任總設(shè)計(jì)師的 Seymour 就決心建造出一臺(tái)他心目中的高性能計(jì)算機(jī)。
Seymour 出于工程師的直覺(jué),很快想到并行是提高計(jì)算機(jī)性能的有效方式。他使用廉價(jià)的方式來(lái)獲得跟大型機(jī)一樣的運(yùn)算能力。他將多個(gè)普通的處理器連接起來(lái),使它們能夠協(xié)同工作,這就是高性能計(jì)算機(jī)的原型。
后來(lái),IBM、HP 等公司學(xué)習(xí)了 Seymour 的這套架構(gòu),高性能計(jì)算機(jī)開(kāi)始迅速推廣,逐步取代原有的大型機(jī)。高性能計(jì)算機(jī)為當(dāng)時(shí)的登月計(jì)劃等大型科研項(xiàng)目作出了非常重要的貢獻(xiàn)。
然后進(jìn)入八十年代,在摩爾定律的指導(dǎo)下,CPU 頻率不斷提高,芯片不斷降價(jià),個(gè)人計(jì)算機(jī)強(qiáng)勢(shì)崛起。蘋(píng)果、微軟等公司借助這股東風(fēng)成為個(gè)人計(jì)算機(jī)時(shí)代的王者。隨之而來(lái)的就是高性能計(jì)算機(jī)市場(chǎng)遭到了吞噬,被迫只能退守公司服務(wù)器市場(chǎng)。
但很快,隨著互聯(lián)網(wǎng)的普及,高性能計(jì)算機(jī)又迎來(lái)新的一波熱潮。互聯(lián)網(wǎng)上用戶(hù)量龐大,普通 PC 難以應(yīng)付如此眾多的網(wǎng)絡(luò)請(qǐng)求,必須要依賴(lài)由高性能計(jì)算機(jī)組成的服務(wù)器集群。在 2000 年左右的網(wǎng)絡(luò)泡沫時(shí)期,成就了很多像 Sun 這樣的服務(wù)器生產(chǎn)商。
如今,IT 行業(yè)向云計(jì)算沖擊,諸如 Google、Apple、Amazon 等很巨頭紛紛建立起了自己的數(shù)據(jù)中心。集群的規(guī)模在不斷擴(kuò)大,為海量的數(shù)據(jù)提高基礎(chǔ)設(shè)施提供了支撐。根據(jù)不同的應(yīng)用場(chǎng)景,集群也演變出多種形態(tài),比如高性能集群、高可用集群、負(fù)載均衡集群等等。
集群元素集群不是簡(jiǎn)單的硬件堆疊,而是硬件和軟件的結(jié)合。從軟件上說(shuō),集群至少需要:
構(gòu)建于 TCP/IP 協(xié)議上的通信軟件,用于集群中節(jié)點(diǎn)之間的通信。
一套中心管理軟件,用于統(tǒng)一管理集群中節(jié)點(diǎn)的資源、任務(wù)和容錯(cuò)等等。
這兩點(diǎn)比較好理解,集群的規(guī)模往往是比較龐大的,對(duì)于管理員來(lái)說(shuō),需要隨時(shí)能夠知曉集群中各節(jié)點(diǎn)的業(yè)務(wù)正常與否,出問(wèn)題了應(yīng)該怎么保證業(yè)務(wù)能夠不中斷,遇到流量高峰和低谷的時(shí)候,又該怎么響應(yīng),這些操作如果純靠人工來(lái)完成那必將很慘烈。依靠軟件和網(wǎng)絡(luò)來(lái)完成自動(dòng)化的管理方式,可以將管理員解放出來(lái)。當(dāng)然,以上說(shuō)的兩點(diǎn)是比較寬泛的,用戶(hù)可以根據(jù)自身需求來(lái)部署不同的集群元素。
一個(gè)比較經(jīng)典的集群模型當(dāng)屬 Beowulf 集群,它通過(guò)一個(gè)節(jié)點(diǎn)統(tǒng)一將來(lái)自網(wǎng)絡(luò)的請(qǐng)求分配給各個(gè)節(jié)點(diǎn)進(jìn)行計(jì)算處理。
集群與分布式集群與分布式像一對(duì)孿生兄弟,傻傻分不清楚。在我看來(lái),它們之間沒(méi)有特別明確的分界線,集群離不開(kāi)分布式,分布式也需要集群。如果一定要做個(gè)區(qū)分,可以套用一個(gè)比喻來(lái)描述兩者的區(qū)別:
一家餐廳剛開(kāi)業(yè),由于成本限制招了一個(gè)廚師,慢慢地,餐廳生意越做越好,一個(gè)廚師已經(jīng)很難應(yīng)付過(guò)來(lái),于是又招了一個(gè),這兩個(gè)廚師水平相當(dāng),都能做同樣的事,兩個(gè)廚師之間的關(guān)系就是集群。兩廚師除了炒菜,還要負(fù)責(zé)洗菜、配菜等等的活,工作負(fù)荷已經(jīng)嚴(yán)重超標(biāo),為了讓廚師能專(zhuān)心炒菜,把菜做到極致,餐廳又招了配菜師來(lái)輔助廚師,廚師和配菜師之間的關(guān)系就是分布式。
這個(gè)例子比較形象,在網(wǎng)站開(kāi)發(fā)中也有類(lèi)似的關(guān)系,兩個(gè)全棧工程師之間就是集群的關(guān)系,前端工程師和后端工程師之間就屬于分布式的關(guān)系。
所以,一定要有區(qū)分的話就是:集群是一個(gè)業(yè)務(wù)部署在多個(gè)服務(wù)器上,而分布式是一個(gè)業(yè)務(wù)拆分成多個(gè)子業(yè)務(wù)部署在不同的服務(wù)器上。但在實(shí)際部署中,為了高性能,需要分布式部署,為了高可用,需要集群部署,這兩者都是業(yè)務(wù)所必須的指標(biāo)。所以,集群和分布式之間的關(guān)系是相互補(bǔ)充的。
虛擬化隨著虛擬化技術(shù)的發(fā)展,一臺(tái)服務(wù)器可以虛擬出多個(gè)虛擬機(jī),對(duì)外提供業(yè)務(wù),這種方式大大提高了資源的利用率,集群的部署也逐步從物理機(jī)過(guò)渡到虛擬機(jī),靈活性大大提高。但同時(shí)也帶來(lái)了更多新的研究課題。虛擬化計(jì)算、虛擬化存儲(chǔ)、虛擬化網(wǎng)絡(luò)、虛擬化安全等等這些課題共同推動(dòng)著云計(jì)算產(chǎn)業(yè)邁出一個(gè)又一個(gè)的臺(tái)階。
數(shù)據(jù)中心數(shù)據(jù)中心是集中存放和運(yùn)行服務(wù)器的地方,是規(guī)模最大的集群。隨著云計(jì)算和大數(shù)據(jù)概念的風(fēng)起云涌,Google、Amazon 等這些明星公司幕后的數(shù)據(jù)中心也開(kāi)始走入大眾的視野。數(shù)據(jù)中心要求有優(yōu)秀的架構(gòu)設(shè)計(jì)、電路設(shè)計(jì)、空間設(shè)計(jì)等等,還要有機(jī)制能夠應(yīng)對(duì)各種各樣的意外,否則一點(diǎn)小小的失誤,公司的股價(jià)恐怕就要跳水。
地理位置的選擇也是數(shù)據(jù)中心考慮的一個(gè)指標(biāo),隨著綠色數(shù)據(jù)中心概念的興起,越來(lái)越多人關(guān)注數(shù)據(jù)中心所帶來(lái)的能源問(wèn)題和環(huán)境問(wèn)題,選擇一個(gè)遠(yuǎn)離市區(qū),并且能利用天然水源和氣溫的地方,將會(huì)為數(shù)據(jù)中心的建設(shè)節(jié)約大量的成本。Google 等大公司的數(shù)據(jù)中心就有意放在高緯度、高海拔的地區(qū),以及有湖泊、河流流經(jīng)地區(qū),以享受天然的空調(diào)和冷卻水。
參考[1] 分布式與集群的區(qū)別是什么?
[2] 數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)演講
[3] Linux 高性能計(jì)算集群
[4] 高性能計(jì)算機(jī)傳奇
我的公眾號(hào) cloud_dev,號(hào)內(nèi)有大量書(shū)籍和視頻資源,后臺(tái)回復(fù)「1024」即可領(lǐng)取,分享的內(nèi)容包括但不限于云計(jì)算虛擬化、容器、OpenStack、K8S、霧計(jì)算、網(wǎng)絡(luò)、工具、SDN、OVS、DPDK、Linux、Go、Python、C/C++編程技術(shù)等內(nèi)容,歡迎大家關(guān)注。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/25509.html
摘要:線程線程,有時(shí)被稱(chēng)為輕量級(jí)進(jìn)程,,是程序執(zhí)行流的最小單元。進(jìn)程和線程區(qū)別進(jìn)程是資源分配的基本單位。說(shuō)得簡(jiǎn)單點(diǎn),下面這段代碼執(zhí)行的時(shí)候參考博文進(jìn)程與線程的一個(gè)簡(jiǎn)單解釋多線程和多進(jìn)程的區(qū)別小結(jié)多線程還是多進(jìn)程的選擇及區(qū)別加鎖 關(guān)于進(jìn)程與線程的簡(jiǎn)單理解(以工廠舉例:cup-》工廠,車(chē)間-》進(jìn)程,線程-》工人),可以參考阮一峰的博文進(jìn)程與線程的一個(gè)簡(jiǎn)單圖文解釋 先來(lái)了解下進(jìn)程和線程的概念關(guān)于多...
摘要:大家好,我是悟空呀上兩篇講解源碼的文章過(guò)于硬核領(lǐng)導(dǎo)讓我研究源碼啟動(dòng)過(guò)程領(lǐng)導(dǎo)叕讓我研究源碼注冊(cè)過(guò)程本篇將會(huì)給大家講解我在本地搭建的集群環(huán)境下,控制臺(tái)的參數(shù)說(shuō)明。目前悟空我的機(jī)器上顯示的個(gè)。悟空我的本機(jī)是往進(jìn)行注冊(cè)了。 大家好,我是悟空呀~上兩篇講解 Eureka 源碼的文章過(guò)于硬核:領(lǐng)導(dǎo)讓我研究 Eureka 源...
閱讀 1589·2023-04-26 01:54
閱讀 1621·2021-09-30 09:55
閱讀 2645·2021-09-22 16:05
閱讀 1856·2021-07-25 21:37
閱讀 2620·2019-08-29 18:45
閱讀 1886·2019-08-29 16:44
閱讀 1882·2019-08-29 12:34
閱讀 1346·2019-08-23 14:02