(一):為軟件定義數(shù)據(jù)中心而生的操作系統(tǒng)

2018-02-24 16:03 更新

來源:http://www.infoq.com/cn/articles/analyse-mesos-part-01

【編者按】Mesos是Apache下的開源分布式資源管理框架,它被稱為是分布式系統(tǒng)的內(nèi)核。Mesos最初是由加州大學(xué)伯克利分校的AMPLab開發(fā)的,后在Twitter得到廣泛使用。InfoQ接下來將會策劃系列文章來為讀者剖析Mesos。本文是整個系列的第一篇,簡單介紹了Mesos的背景、歷史以及架構(gòu)。

注:本文翻譯自Cloud Architect Musings,InfoQ中文站在獲得作者授權(quán)的基礎(chǔ)上對文章進(jìn)行了翻譯。


我討厭“軟件定義數(shù)據(jù)中心(SDDC)”這個詞,并不是因為我質(zhì)疑這個概念,而是我發(fā)現(xiàn)很多公司都對這個詞有誤用,他們甚至直接把這個詞拿來套用,并急于把自己定位為下一代數(shù)據(jù)中心的創(chuàng)新者。具體來說,我認(rèn)為,在商用x86硬件上運行軟件(應(yīng)用)并不是什么SDDC解決方案,它也不具備虛擬化硬件到資源池的能力。真正的SDDC底層基礎(chǔ)架構(gòu)應(yīng)該可以從運行于其上的應(yīng)用程序中抽象出來,并根據(jù)應(yīng)用程序不斷變化的需求,動態(tài)且自動地分配、重新分配應(yīng)用程序,然后運行于數(shù)據(jù)中心的不同組件之中。

這就是為什么我一直興奮地要在后面介紹Mesos,一個Apache開源項目。為什么我對Mesos如此興奮?回想x86虛擬化之初對數(shù)據(jù)中心曾經(jīng)的承諾:通過增加服務(wù)器利用率使其更高效,通過從物理基礎(chǔ)架構(gòu)抽象應(yīng)用使其更敏捷。雖然收獲頗豐,但是以虛擬機(jī)為單位,粒度仍不夠精細(xì),如果應(yīng)用程序都過于龐大,那就難以充分實現(xiàn)這一承諾。如今,飛速發(fā)展的容器技術(shù)、分布式應(yīng)用程序和微服務(wù)技術(shù)正悄然改變著我們對數(shù)據(jù)中心的運行和管理方式。

試想,可否整合數(shù)據(jù)中心中的所有資源,并將它們放在一個大的虛擬池里,代替單獨的物理服務(wù)器;然后開放諸如CPU、內(nèi)存和I/O這些基本資源而不是虛擬機(jī)?同樣,可否把應(yīng)用程序拆分成小的、隔離的任務(wù)單位,從而根據(jù)數(shù)據(jù)中心應(yīng)用的需求,從虛擬數(shù)據(jù)中心池中動態(tài)分配任務(wù)資源?就像操作系統(tǒng)將PC的處理器和RAM放入資源池,使其可以為不同的進(jìn)程協(xié)調(diào)分配和釋放資源。進(jìn)一步講,我們可以把Mesos作為操作系統(tǒng)內(nèi)核,然后將數(shù)據(jù)中心看為PC。這也是正是我想說的:Mesos正在改變數(shù)據(jù)中心,它讓真正的SDDC成為現(xiàn)實。

接下來我先介紹下Mesos的歷史。Mesos的起源于Google的數(shù)據(jù)中心資源管理系統(tǒng)Borg。你可以從WIRED雜志的這篇文章中了解更多關(guān)于Borg起源的信息及它對Mesos影響。Twitter從Google的Borg系統(tǒng)中得到啟發(fā),然后就開發(fā)一個類似的資源管理系統(tǒng)來幫助他們擺脫可怕的“失敗之鯨”(譯者注:見上圖)。后來他們注意到加州大學(xué)伯克利分校AMPLab正在開發(fā)的名為Mesos的項目,這個項目的負(fù)責(zé)人是Ben Hindman,Ben是加州大學(xué)伯克利分校的博士研究生。后來Ben Hindman加入了Twitter,負(fù)責(zé)開發(fā)和部署Mesos。現(xiàn)在Mesos管理著Twitter超過30,0000臺服務(wù)器上的應(yīng)用部署,“失敗之鯨”已成往事。其他公司紛至沓來,也部署了Mesos,比如Airbnb(空中食宿網(wǎng))、eBay(電子港灣)和Netflix。

Mesos是如何讓Twitter和Airbnb這樣的公司,通過數(shù)據(jù)中心資源更高效的管理系統(tǒng),擴(kuò)展應(yīng)用的呢?我們從一個相當(dāng)簡單但很優(yōu)雅的兩級調(diào)度架構(gòu)開始說起。

上圖修改自Apache Mesos網(wǎng)站上的圖片,如圖所示,Mesos實現(xiàn)了兩級調(diào)度架構(gòu),它可以管理多種類型的應(yīng)用程序。第一級調(diào)度是Master的守護(hù)進(jìn)程,管理Mesos集群中所有節(jié)點上運行的Slave守護(hù)進(jìn)程。集群由物理服務(wù)器或虛擬服務(wù)器組成,用于運行應(yīng)用程序的任務(wù),比如Hadoop和MPI作業(yè)。第二級調(diào)度由被稱作Framework的“組件”組成。Framework包括調(diào)度器(Scheduler)和執(zhí)行器(Executor)進(jìn)程,其中每個節(jié)點上都會運行執(zhí)行器。Mesos能和不同類型的Framework通信,每種Framework由相應(yīng)的應(yīng)用集群管理。上圖中只展示了Hadoop和MPI兩種類型,其它類型的應(yīng)用程序也有相應(yīng)的Framework。

Mesos Master協(xié)調(diào)全部的Slave,并確定每個節(jié)點的可用資源,
聚合計算跨節(jié)點的所有可用資源的報告,然后向注冊到Master的Framework(作為Master的客戶端)發(fā)出資源邀約。Framework可以根據(jù)應(yīng)用程序的需求,選擇接受或拒絕來自master的資源邀約。一旦接受邀約,Master即協(xié)調(diào)Framework和Slave,調(diào)度參與節(jié)點上任務(wù),并在容器中執(zhí)行,以使多種類型的任務(wù),比如Hadoop和Cassandra,可以在同一個節(jié)點上同時運行。

我將在接下來的文章中,詳細(xì)介紹Mesos的體系結(jié)構(gòu)和工作流。我認(rèn)為,Mesos使用的兩級調(diào)度架構(gòu)以及算法、隔離技術(shù)讓在同一個節(jié)點上運行多種不同類型的應(yīng)用成為了現(xiàn)實,這才是數(shù)據(jù)中心的未來。正如我之前所述,這是到目前為止我所見過的,履行SDDC承諾最好的現(xiàn)成技術(shù)。

我希望這篇介紹讓你受用并吊起你了解Mesos的胃口。接下來,我將帶你深入技術(shù)細(xì)節(jié),教你一些上手方法,還會告訴你如何加入社區(qū)。

查看英文原文:?APACHE MESOS: THE TRUE OS FOR THE SOFTWARE DEFINED DATA CENTER?

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號