來(lái)源:http://www.infoq.com/cn/articles/analyse-mesos-part-01
【編者按】Mesos是Apache下的開(kāi)源分布式資源管理框架,它被稱(chēng)為是分布式系統(tǒng)的內(nèi)核。Mesos最初是由加州大學(xué)伯克利分校的AMPLab開(kāi)發(fā)的,后在Twitter得到廣泛使用。InfoQ接下來(lái)將會(huì)策劃系列文章來(lái)為讀者剖析Mesos。本文是整個(gè)系列的第一篇,簡(jiǎn)單介紹了Mesos的背景、歷史以及架構(gòu)。
注:本文翻譯自Cloud Architect Musings,InfoQ中文站在獲得作者授權(quán)的基礎(chǔ)上對(duì)文章進(jìn)行了翻譯。
我討厭“軟件定義數(shù)據(jù)中心(SDDC)”這個(gè)詞,并不是因?yàn)槲屹|(zhì)疑這個(gè)概念,而是我發(fā)現(xiàn)很多公司都對(duì)這個(gè)詞有誤用,他們甚至直接把這個(gè)詞拿來(lái)套用,并急于把自己定位為下一代數(shù)據(jù)中心的創(chuàng)新者。具體來(lái)說(shuō),我認(rèn)為,在商用x86硬件上運(yùn)行軟件(應(yīng)用)并不是什么SDDC解決方案,它也不具備虛擬化硬件到資源池的能力。真正的SDDC底層基礎(chǔ)架構(gòu)應(yīng)該可以從運(yùn)行于其上的應(yīng)用程序中抽象出來(lái),并根據(jù)應(yīng)用程序不斷變化的需求,動(dòng)態(tài)且自動(dòng)地分配、重新分配應(yīng)用程序,然后運(yùn)行于數(shù)據(jù)中心的不同組件之中。
這就是為什么我一直興奮地要在后面介紹Mesos,一個(gè)Apache開(kāi)源項(xiàng)目。為什么我對(duì)Mesos如此興奮?回想x86虛擬化之初對(duì)數(shù)據(jù)中心曾經(jīng)的承諾:通過(guò)增加服務(wù)器利用率使其更高效,通過(guò)從物理基礎(chǔ)架構(gòu)抽象應(yīng)用使其更敏捷。雖然收獲頗豐,但是以虛擬機(jī)為單位,粒度仍不夠精細(xì),如果應(yīng)用程序都過(guò)于龐大,那就難以充分實(shí)現(xiàn)這一承諾。如今,飛速發(fā)展的容器技術(shù)、分布式應(yīng)用程序和微服務(wù)技術(shù)正悄然改變著我們對(duì)數(shù)據(jù)中心的運(yùn)行和管理方式。
試想,可否整合數(shù)據(jù)中心中的所有資源,并將它們放在一個(gè)大的虛擬池里,代替單獨(dú)的物理服務(wù)器;然后開(kāi)放諸如CPU、內(nèi)存和I/O這些基本資源而不是虛擬機(jī)?同樣,可否把應(yīng)用程序拆分成小的、隔離的任務(wù)單位,從而根據(jù)數(shù)據(jù)中心應(yīng)用的需求,從虛擬數(shù)據(jù)中心池中動(dòng)態(tài)分配任務(wù)資源?就像操作系統(tǒng)將PC的處理器和RAM放入資源池,使其可以為不同的進(jìn)程協(xié)調(diào)分配和釋放資源。進(jìn)一步講,我們可以把Mesos作為操作系統(tǒng)內(nèi)核,然后將數(shù)據(jù)中心看為PC。這也是正是我想說(shuō)的:Mesos正在改變數(shù)據(jù)中心,它讓真正的SDDC成為現(xiàn)實(shí)。
接下來(lái)我先介紹下Mesos的歷史。Mesos的起源于Google的數(shù)據(jù)中心資源管理系統(tǒng)Borg。你可以從WIRED雜志的這篇文章中了解更多關(guān)于Borg起源的信息及它對(duì)Mesos影響。Twitter從Google的Borg系統(tǒng)中得到啟發(fā),然后就開(kāi)發(fā)一個(gè)類(lèi)似的資源管理系統(tǒng)來(lái)幫助他們擺脫可怕的“失敗之鯨”(譯者注:見(jiàn)上圖)。后來(lái)他們注意到加州大學(xué)伯克利分校AMPLab正在開(kāi)發(fā)的名為Mesos的項(xiàng)目,這個(gè)項(xiàng)目的負(fù)責(zé)人是Ben Hindman,Ben是加州大學(xué)伯克利分校的博士研究生。后來(lái)Ben Hindman加入了Twitter,負(fù)責(zé)開(kāi)發(fā)和部署Mesos。現(xiàn)在Mesos管理著Twitter超過(guò)30,0000臺(tái)服務(wù)器上的應(yīng)用部署,“失敗之鯨”已成往事。其他公司紛至沓來(lái),也部署了Mesos,比如Airbnb(空中食宿網(wǎng))、eBay(電子港灣)和Netflix。
Mesos是如何讓Twitter和Airbnb這樣的公司,通過(guò)數(shù)據(jù)中心資源更高效的管理系統(tǒng),擴(kuò)展應(yīng)用的呢?我們從一個(gè)相當(dāng)簡(jiǎn)單但很優(yōu)雅的兩級(jí)調(diào)度架構(gòu)開(kāi)始說(shuō)起。
上圖修改自Apache Mesos網(wǎng)站上的圖片,如圖所示,Mesos實(shí)現(xiàn)了兩級(jí)調(diào)度架構(gòu),它可以管理多種類(lèi)型的應(yīng)用程序。第一級(jí)調(diào)度是Master的守護(hù)進(jìn)程,管理Mesos集群中所有節(jié)點(diǎn)上運(yùn)行的Slave守護(hù)進(jìn)程。集群由物理服務(wù)器或虛擬服務(wù)器組成,用于運(yùn)行應(yīng)用程序的任務(wù),比如Hadoop和MPI作業(yè)。第二級(jí)調(diào)度由被稱(chēng)作Framework的“組件”組成。Framework包括調(diào)度器(Scheduler)和執(zhí)行器(Executor)進(jìn)程,其中每個(gè)節(jié)點(diǎn)上都會(huì)運(yùn)行執(zhí)行器。Mesos能和不同類(lèi)型的Framework通信,每種Framework由相應(yīng)的應(yīng)用集群管理。上圖中只展示了Hadoop和MPI兩種類(lèi)型,其它類(lèi)型的應(yīng)用程序也有相應(yīng)的Framework。
Mesos Master協(xié)調(diào)全部的Slave,并確定每個(gè)節(jié)點(diǎn)的可用資源,
聚合計(jì)算跨節(jié)點(diǎn)的所有可用資源的報(bào)告,然后向注冊(cè)到Master的Framework(作為Master的客戶(hù)端)發(fā)出資源邀約。Framework可以根據(jù)應(yīng)用程序的需求,選擇接受或拒絕來(lái)自master的資源邀約。一旦接受邀約,Master即協(xié)調(diào)Framework和Slave,調(diào)度參與節(jié)點(diǎn)上任務(wù),并在容器中執(zhí)行,以使多種類(lèi)型的任務(wù),比如Hadoop和Cassandra,可以在同一個(gè)節(jié)點(diǎn)上同時(shí)運(yùn)行。
我將在接下來(lái)的文章中,詳細(xì)介紹Mesos的體系結(jié)構(gòu)和工作流。我認(rèn)為,Mesos使用的兩級(jí)調(diào)度架構(gòu)以及算法、隔離技術(shù)讓在同一個(gè)節(jié)點(diǎn)上運(yùn)行多種不同類(lèi)型的應(yīng)用成為了現(xiàn)實(shí),這才是數(shù)據(jù)中心的未來(lái)。正如我之前所述,這是到目前為止我所見(jiàn)過(guò)的,履行SDDC承諾最好的現(xiàn)成技術(shù)。
我希望這篇介紹讓你受用并吊起你了解Mesos的胃口。接下來(lái),我將帶你深入技術(shù)細(xì)節(jié),教你一些上手方法,還會(huì)告訴你如何加入社區(qū)。
查看英文原文:?APACHE MESOS: THE TRUE OS FOR THE SOFTWARE DEFINED DATA CENTER?
更多建議: