天天看點

深入淺出Mesos(一):為軟體定義資料中心而生的作業系統

我讨厭“軟體定義資料中心(SDDC)”這個詞,并不是因為我質疑這個概念,而是我發現很多公司都對這個詞有誤用,他們甚至直接把這個詞拿來套用,并急于把自己定位為下一代資料中心的創新者。具體來說,我認為,在商用x86硬體上運作軟體(應用)并不是什麼SDDC解決方案,它也不具備虛拟化硬體到資源池的能力。真正的SDDC底層基礎架構應該可以從運作于其上的應用程式中抽象出來,并根據應用程式不斷變化的需求,動态且自動地配置設定、重新配置設定應用程式,然後運作于資料中心的不同元件之中。這就是為什麼我一直興奮地要在後面介紹Mesos,一個Apache開源項目。為什麼我對Mesos如此興奮?回想x86虛拟化之初對資料中心曾經的承諾:通過增加伺服器使用率使其更高效,通過從實體基礎架構抽象應用使其更靈活。雖然收獲頗豐,但是以虛拟機為機關,粒度仍不夠精細,如果應用程式都過于龐大,那就難以充分實作這一承諾。如今,飛速發展的容器技術、分布式應用程式和微服務技術正悄然改變着我們對資料中心的運作和管理方式。

試想,可否整合資料中心中的所有資源,并将它們放在一個大的虛拟池裡,代替單獨的實體伺服器;然後開放諸如CPU、記憶體和I/O這些基本資源而不是虛拟機?同樣,可否把應用程式拆分成小的、隔離的任務機關,進而根據資料中心應用的需求,從虛拟資料中心池中動态配置設定任務資源?就像作業系統将PC的處理器和RAM放入資源池,使其可以為不同的程序協調配置設定和釋放資源。進一步講,我們可以把Mesos作為作業系統核心,然後将資料中心看為PC。這也是正是我想說的:Mesos正在改變資料中心,它讓真正的SDDC成為現實。

Mesos是如何讓Twitter和Airbnb這樣的公司,通過資料中心資源更高效的管理系統,擴充應用的呢?我們從一個相當簡單但很優雅的兩級排程架構開始說起。

<a href="http://cdn.infoqstatic.com/statics_s1_20160405-0343u1/resource/articles/analyse-mesos-part-01/zh/resources/0413011.jpg"></a>

上圖修改自Apache Mesos網站上的圖檔,如圖所示,Mesos實作了兩級排程架構,它可以管理多種類型的應用程式。第一級排程是Master的守護程序,管理Mesos叢集中所有節點上運作的Slave守護程序。叢集由實體伺服器或虛拟伺服器組成,用于運作應用程式的任務,比如Hadoop和MPI作業。第二級排程由被稱作Framework的“元件”組成。Framework包括排程器(Scheduler)和執行器(Executor)程序,其中每個節點上都會運作執行器。Mesos能和不同類型的Framework通信,每種Framework由相應的應用叢集管理。上圖中隻展示了Hadoop和MPI兩種類型,其它類型的應用程式也有相應的Framework。

Mesos Master協調全部的Slave,并确定每個節點的可用資源,

聚合計算跨節點的所有可用資源的報告,然後向注冊到Master的Framework(作為Master的用戶端)發出資源邀約。Framework可以根據應用程式的需求,選擇接受或拒絕來自master的資源邀約。一旦接受邀約,Master即協調Framework和Slave,排程參與節點上任務,并在容器中執行,以使多種類型的任務,比如Hadoop和Cassandra,可以在同一個節點上同時運作。

我将在接下來的文章中,詳細介紹Mesos的體系結構和工作流。我認為,Mesos使用的兩級排程架構以及算法、隔離技術讓在同一個節點上運作多種不同類型的應用成為了現實,這才是資料中心的未來。正如我之前所述,這是到目前為止我所見過的,履行SDDC承諾最好的現成技術。

我希望這篇介紹讓你受用并吊起你了解Mesos的胃口。接下來,我将帶你深入技術細節,教你一些上手方法,還會告訴你如何加入社群。