亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        私有云環(huán)境下基于虛擬集群的資源共享方法*

        2017-08-16 11:10:19劉沛東鐘業(yè)弘曹東剛
        計(jì)算機(jī)與生活 2017年8期
        關(guān)鍵詞:計(jì)算資源容器集群

        劉沛東,安 博,鐘業(yè)弘,王 虎,曹東剛+

        1.北京大學(xué) 高可信軟件技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,北京 100871

        2.北京大學(xué)(天津?yàn)I海)新一代信息技術(shù)研究院,天津 300450

        私有云環(huán)境下基于虛擬集群的資源共享方法*

        劉沛東1,2,安 博1,2,鐘業(yè)弘1,2,王 虎1,2,曹東剛1,2+

        1.北京大學(xué) 高可信軟件技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,北京 100871

        2.北京大學(xué)(天津?yàn)I海)新一代信息技術(shù)研究院,天津 300450

        隨著云計(jì)算與大數(shù)據(jù)處理的飛速發(fā)展,越來越多的應(yīng)用框架開始使用“云”的方式運(yùn)行,這對企業(yè)私有云平臺提出了一些重要挑戰(zhàn):如何讓私有云環(huán)境有限的物理資源支持多個應(yīng)用框架和多個用戶,不僅能保證絕大多數(shù)現(xiàn)有的異構(gòu)應(yīng)用同時運(yùn)行,還能為新應(yīng)用提供擴(kuò)展性與彈性支持。提出了一種新的服務(wù)模型ClaaS(cluster as a service),用一種簡單而易于實(shí)現(xiàn)的方式為中小規(guī)模的數(shù)據(jù)中心解決了上述問題。ClaaS的主要思路是將虛擬化的單位擴(kuò)展為集群,為分布式的應(yīng)用框架直接提供虛擬的集群環(huán)境。這樣,大部分的分布式應(yīng)用就可以在無需任何修改的條件下直接運(yùn)行在虛擬的集群環(huán)境中。為了驗(yàn)證ClaaS的可行性,基于現(xiàn)有的輕量化容器技術(shù)和軟件定義網(wǎng)絡(luò)技術(shù)等實(shí)現(xiàn)了一個開源輕量級私有云系統(tǒng)Docklet,能夠支持用戶按需共享資源,支持Spark、MPI等各種計(jì)算框架,及Python、R、Java等語言,并在真實(shí)教學(xué)科研環(huán)境中提供、部署服務(wù)。最后描述了系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),并進(jìn)行了實(shí)驗(yàn)與評估。

        云計(jì)算;虛擬機(jī)群;ClaaS;軟件定義

        1 引言

        如今,伴隨數(shù)據(jù)規(guī)模的膨脹與數(shù)據(jù)使用方式的增加,在許多企業(yè)內(nèi)部,需要運(yùn)行的計(jì)算框架越來越多[1]。同時,應(yīng)用框架本身的多樣性也隨著云計(jì)算和大數(shù)據(jù)處理技術(shù)的發(fā)展而快速上升。在當(dāng)今的環(huán)境下 Hadoop(http://hadoop.apache.org)、Spark(http://spark.apache.org)、Storm(http://storm.apache.org)這樣的分布式應(yīng)用框架占據(jù)主流地位,而MPI(http://www.mpi-forum.org/docs)和OpenMP(http://openmp.org/wp/)這樣的傳統(tǒng)分布式或并行應(yīng)用框架也扮演著相當(dāng)重要的角色。分析這些使用計(jì)算資源的方式,不難發(fā)現(xiàn)它們的一些共性,其中最為重要的就是它們都需要依托集群資源來使得計(jì)算效率最大化。然而,許多中小型的企業(yè)和組織只擁有有限的計(jì)算資源,對他們而言,為每一個需要運(yùn)行的應(yīng)用框架單獨(dú)配置集群花銷巨大且浪費(fèi)資源,幾乎不可能實(shí)現(xiàn)。因此,他們迫切需要一種簡單而高效的方法來在各種應(yīng)用框架之間共享計(jì)算資源,解決資源共享率低和資源浪費(fèi)的問題[2],在滿足運(yùn)算需求的前提下減少在計(jì)算資源方面的開銷。此外,同一個機(jī)構(gòu)下的不同用戶出于各種原因也會需要同一個計(jì)算框架的不同副本。例如,A用戶在運(yùn)行版本1的Spark的同時,另一個用戶B需要同時運(yùn)行版本2的Spark,這就需要為計(jì)算資源提供多用戶和多實(shí)例的支持。

        目前,在同一個物理集群中為不同框架提供計(jì)算資源方面已經(jīng)有了一些解決方案[3]。Mesos[4]是其中有代表性的一種,它通過合理地封裝、調(diào)度資源,提供了一套可行的共享資源方法。然而,Mesos對于不包括在它支持列表里的計(jì)算框架而言不夠靈活,甚至需要使用者編寫新的調(diào)度代碼來使得這些框架運(yùn)行在Mesos上。例如,在Mesos上運(yùn)行MPI程序就需要用戶額外編寫一個調(diào)度腳本,這對不夠精通Mesos的使用者而言是一個相當(dāng)大的負(fù)擔(dān)。而且在Mesos中,用戶通常共享同一框架的同一個實(shí)例,讓不同用戶出于各種原因(比如安全性)運(yùn)行同一框架的不同實(shí)例有時是非常困難的。而Borg[5]、Apollo[6]、Omega[7]這樣的系統(tǒng)又過于專有化,需要巨量的計(jì)算資源與定制化的應(yīng)用,難以在中小型私有云中進(jìn)行使用。

        為了解決上述私有云環(huán)境下的資源共享問題,本文提出了ClaaS(cluster as a service)的概念。ClaaS的目標(biāo)是構(gòu)建一個可擴(kuò)展的高效而易于使用的系統(tǒng),這一系統(tǒng)可以向私有云中可信的用戶提供虛擬集群服務(wù),能夠支持用戶按需共享資源。用戶可以方便地僅通過Web接口在線創(chuàng)建虛擬集群,在集群中運(yùn)行Spark和MPI這樣的應(yīng)用,而無需掌握有關(guān)新系統(tǒng)的復(fù)雜知識。與以往的解決方案最重大的不同是,ClaaS提供“虛擬集群即服務(wù)”,包括若干虛擬單位(虛擬機(jī)或容器)和網(wǎng)絡(luò)設(shè)施,而非單個的虛擬單位,作為一個單元。

        ClaaS有如下的能力和優(yōu)勢:其一,提供簡單可靠的資源管理與作業(yè)管理技術(shù);其二,不同進(jìn)程可以通過虛擬集群提供的可靠通信方法形成一個整體;其三,ClaaS系統(tǒng)會按需為每個計(jì)算框架構(gòu)建一個虛擬的私有子網(wǎng);最后,由于每個應(yīng)用的負(fù)載在實(shí)際應(yīng)用中不盡相同,ClaaS的虛擬集群提供可伸縮性以實(shí)現(xiàn)更高的資源利用率。

        基于ClaaS的理念,開發(fā)了一個輕量的可擴(kuò)展的云系統(tǒng)Docklet。為了減少中間過程的性能損耗,Docklet使用了Linux容器LXC(http://lxc.sourceforge.net/lxc.html)。LXC目前集成在Linux內(nèi)核中,擁有封裝和隔離資源的功能[8]。相較于其他資源封裝手段,該項(xiàng)技術(shù)對于ClaaS而言更高效,更加適合私有云環(huán)境。同時,在Docklet中使用了軟件定義技術(shù)來幫助管理和虛擬化集群資源。對于多用途的應(yīng)用,Docklet提供了簡單的Restful接口。Docklet可方便地支持Spark、Storm、MPI、Hadoop、MapReduce、HDFS、Akka、Erlang、RabbitMQ和Jupyter等應(yīng)用,所有這些應(yīng)用都可以簡單地通過瀏覽器訪問而無需額外部署軟件環(huán)境,這對于企業(yè)用戶而言是十分易于使用的。Docklet已經(jīng)在多個教育科研環(huán)境進(jìn)行了部署,提供教學(xué)實(shí)驗(yàn)環(huán)境、大數(shù)據(jù)分析等服務(wù),代碼在github開源(https://github.com/unias/docklet)。

        本文組織結(jié)構(gòu)如下:第2章敘述了相關(guān)工作;第3章描述了ClaaS模型和虛擬集群的概念;第4章描述了基于ClaaS模型的Docklet系統(tǒng)設(shè)計(jì);第5章給出了一些實(shí)例和實(shí)驗(yàn);最后給出了一些結(jié)論,同時描述了未來的工作。

        2 相關(guān)工作

        Mesos[4]是一個支持多框架共享物理資源的開源資源調(diào)度引擎,得到了廣泛的應(yīng)用。但Mesos的一個問題是,并非所有應(yīng)用都能簡單地代入Mesos中運(yùn)行,讓Mesos支持新的框架是一件困難的工作,程序員需要編寫許多額外的代碼來完成這一目標(biāo)。在最壞的情況下,程序員甚至需要調(diào)整應(yīng)用框架的源代碼,使其適應(yīng)Mesos。此外,Mesos還缺乏多用戶的隔離支持,比起提供ClaaS,它更專注于資源調(diào)度。在ClaaS中,通過使用軟件定義技術(shù),新的應(yīng)用框架可以很容易得到支持,同時ClaaS也提供多用戶支持。

        ClaaS使用了Linux容器技術(shù)LXC。Felter等人[9]對比了傳統(tǒng)虛擬機(jī)和Linux容器間的性能差異,列出了二者性能損耗的細(xì)節(jié)。其實(shí)驗(yàn)結(jié)果指出,幾乎在所有情況下,Linux容器在性能上等同于或超過傳統(tǒng)虛擬機(jī)?;谠搶?shí)驗(yàn)的結(jié)果,為了提升整體性能表現(xiàn),本文在虛擬化方面放棄虛擬機(jī)而使用容器。Docker是另一種容器技術(shù)的封裝,本文沒有采用Docker而采用LXC技術(shù)的原因是Docker技術(shù)更復(fù)雜,而LXC更輕量簡單,適合本文面向的私有云環(huán)境。

        Doelitzscher等人[10]描述了一個用于為私有云中的研究項(xiàng)目與機(jī)器學(xué)習(xí)任務(wù)按需提供高性能計(jì)算資源的云解決方案,該方案可以在需要時使用亞馬遜的公有云作為擴(kuò)展資源池。Brock等人[11]也提出了在云設(shè)施中提供整個集群作為服務(wù)的概念。與以上工作不同的是,本文更專注于為任意不同的應(yīng)用框架構(gòu)建一個高效易用的ClaaS平臺,并支持靈活的資源調(diào)度。

        OpenStack[12]是一個按節(jié)點(diǎn)分配資源、部署系統(tǒng)環(huán)境的開源私有云平臺,它在不改變程序源代碼和操作方式的條件下就能在同一集群里運(yùn)行各種不同的應(yīng)用框架。和ClaaS不同之處在于,它其實(shí)是使用虛擬機(jī)的方法隔離了資源,依舊是一次提供單個虛擬資源的模式,對于許多分布式的彈性的應(yīng)用框架而言缺乏效率與擴(kuò)展性。OpenStack工作在基礎(chǔ)設(shè)施即服務(wù)(infrastructure as a service,IaaS)層面,因此對于應(yīng)用框架本身并不友好。使用類似OpenStack的工具構(gòu)建、管理、使用一個虛擬云平臺是一件十分繁重而復(fù)雜的工作。

        3 ClaaS與Vcluster模型

        ClaaS不僅不同于提供單節(jié)點(diǎn)服務(wù)的IaaS,與對程序提供應(yīng)用接口的平臺即服務(wù)(platform as a service,PaaS)也有很大的區(qū)別。它通過直接提供集群作為服務(wù)單元,描述了一種通用的定義不同應(yīng)用的方法,同時為私有云環(huán)境下的應(yīng)用實(shí)現(xiàn)了高兼容性、高效性與高擴(kuò)展性支持。

        3.1 Vcluster與它的優(yōu)勢

        ClaaS提供給用戶的是虛擬集群Vcluster(virtual cluster),每個Vcluster包括一系列分布式的同構(gòu)的節(jié)點(diǎn)與連接它們的網(wǎng)絡(luò)設(shè)施,對于用戶而言Vcluster可以看成是物理集群環(huán)境,從而可以安裝運(yùn)行自己所需要的分布式計(jì)算框架。在ClaaS中,使用者可以將不同的應(yīng)用框架部署在不同的Vcluster中,這樣的設(shè)計(jì)有如下的優(yōu)點(diǎn):

        (1)靈活性。Vcluster中的每個節(jié)點(diǎn)都提供和傳統(tǒng)虛擬機(jī)相似的環(huán)境,任何應(yīng)用框架都可以簡單地移植到Vcluster中,通過創(chuàng)建新的Vcluster來支持和擴(kuò)展。

        (2)可擴(kuò)展性。同一Vcluster中的不同節(jié)點(diǎn)可以透明地在不同物理機(jī)器上運(yùn)行,由此使得單個應(yīng)用框架可以利用不同位置的物理資源。

        (3)伸縮性。每個Vcluster都允許內(nèi)部的應(yīng)用方便地控制工作節(jié)點(diǎn)的生存周期,這對應(yīng)用自身通過調(diào)度實(shí)現(xiàn)彈性有著極大幫助。

        (4)可定義性。Vcluster可以通過軟件定義技術(shù)描述和重建,用戶可以自定義分布式結(jié)構(gòu)、遷移策略、運(yùn)行腳本及其他特征,這使得Vcluster的使用十分靈活。同時,該特性獨(dú)立于硬件結(jié)構(gòu)。

        如圖1所示,ClaaS提供的這種服務(wù)模型使得它比在IaaS層面操作更有優(yōu)勢,而且它在部署分布式框架時也能做到和PaaS模式類似。

        3.2 ClaaS中的軟件定義技術(shù)

        在虛擬化過程中,使用了軟件定義技術(shù),利用靈活的軟件協(xié)議來代替固定的硬件設(shè)備。例如,軟件定義網(wǎng)絡(luò)、軟件定義存儲等。在Vcluster層面,同樣使用了這一類技術(shù),本文稱之為軟件定義虛擬集群。軟件定義的虛擬集群需要用戶提供構(gòu)建邏輯集群,處理集群狀態(tài)變化和執(zhí)行內(nèi)部應(yīng)用的一些關(guān)鍵參數(shù)。

        Fig.1 Multiple Vcluster for multiple tenants圖1 多租戶條件下的多個Vcluster

        軟件定義虛擬集群有如下兩方面的優(yōu)勢:

        (1)簡化集群部署的復(fù)雜度。ClaaS的用戶無需單獨(dú)配置每一個節(jié)點(diǎn),只需要提供一些簡單的策略來處理集群伸縮、節(jié)點(diǎn)恢復(fù)與節(jié)點(diǎn)遷移這樣的事件。

        (2)簡化分布式設(shè)備的管理。Vcluster與其內(nèi)部的應(yīng)用可以隨時被方便、快捷而安全地共享或重現(xiàn),這無疑同時減輕了管理員和用戶的學(xué)習(xí)與使用成本。

        4 ClaaS支持系統(tǒng)Docklet的設(shè)計(jì)與實(shí)現(xiàn)

        Docklet是設(shè)計(jì)用來支持ClaaS的平臺系統(tǒng),它是一個開源項(xiàng)目(https://github.com/unias/docklet)。

        Docklet是為擁有中小型數(shù)據(jù)中心的企業(yè)或科研機(jī)構(gòu)設(shè)計(jì)的輕量級私有云平臺,使員工能方便地共享使用有限的計(jì)算資源。這些用戶通常有很多在物理機(jī)或虛擬機(jī)上工作的經(jīng)驗(yàn),且不太愿意接受很高的時間花費(fèi)去學(xué)習(xí)一套新系統(tǒng)的使用方法。人們希望Docklet提供的虛擬集群可以像用戶熟悉的傳統(tǒng)物理機(jī)或虛擬機(jī)一樣使用。同時,Docklet引入了一些方便用戶使用的新特性。例如,提供一份軟件定義的文檔,就可以迅速構(gòu)建并重現(xiàn)一個特定的Vcluster,并在它啟動時自動運(yùn)行指定的應(yīng)用框架或服務(wù)。同時,還希望它可以在占用盡量少的物理資源的情況下表現(xiàn)良好。

        除此之外,Docklet還要求Vcluster擁有彈性,以便使用Hadoop和Spark這樣的分布式程序或框架。在Docklet的設(shè)計(jì)中,用戶和Vcluster內(nèi)部的程序都可以方便地控制Vcluster的規(guī)模。為了讓Docklet對擴(kuò)展和外部監(jiān)督更加開放,應(yīng)該提供一套簡單易用的接口。在目前版本中,使用了HTTP協(xié)議下REST-ful風(fēng)格的接口,以保證只需要瀏覽器就可以使用Docklet提供的服務(wù)。

        4.1 結(jié)構(gòu)設(shè)計(jì)

        Docklet的用戶視圖見圖2。用戶通過工作空間(workspace)來訪問自己的資源,workspace就是包含用戶應(yīng)用與數(shù)據(jù)的工作空間,在這個空間里,用戶可以進(jìn)行運(yùn)行應(yīng)用、分析數(shù)據(jù)等操作。每個workspace在底層通過一個對應(yīng)的Vcluster來支持,而Vcluster是Docklet進(jìn)行資源管理的一個單元。一個Vcluster由一系列節(jié)點(diǎn)與連接它們的私有子網(wǎng)構(gòu)成。用戶可以在瀏覽器中創(chuàng)建、刪除、重啟、擴(kuò)展與收縮Vcluster來管理自己的資源。與此同時,每個workspace為用戶提供了一個Portal來訪問和操作Vcluster中的節(jié)點(diǎn)。每個節(jié)點(diǎn)之間是分開的,只有同一個Vcluster中的節(jié)點(diǎn)可以通過網(wǎng)絡(luò)互相訪問,即不同Vcluster的節(jié)點(diǎn)無法彼此影響。在實(shí)現(xiàn)細(xì)節(jié)上,每個虛擬節(jié)點(diǎn)都是一個LXC容器。

        Fig.2 User's perspective of Vcluster and workspace圖2 Vcluster和worksapce的用戶視角

        Vcluster中的節(jié)點(diǎn)需要通過鏡像創(chuàng)建,Docklet使用的鏡像和虛擬機(jī)鏡像或Docker鏡像很相似。Docklet采用了一種簡單卻有效的技術(shù)來構(gòu)建、分享和使用適用于不同條件的鏡像。如果需要向Docklet中添加對一種新框架的支持,用戶可以簡單地在一個節(jié)點(diǎn)中搭建好對應(yīng)的軟件環(huán)境,然后將這個節(jié)點(diǎn)的快照保存為鏡像。用戶還可以在Docklet的所有用戶間共享這個鏡像,一旦一個鏡像被設(shè)置為共享,所有用戶都可以訪問并使用它。對于之后的用戶而言,共享鏡像使得應(yīng)用的部署被大大簡化了。

        圖3展示了Docklet的主要組成構(gòu)件。Docklet使用了一個Web服務(wù)器來為用戶展示圖形界面,一個http服務(wù)器來處理發(fā)來的各種請求。圖中的Core指的是Docklet的核心,它包含一個master進(jìn)程,若干個運(yùn)行在每一臺物理機(jī)上處理具體工作的worker進(jìn)程,搭建網(wǎng)絡(luò)基礎(chǔ)設(shè)施的網(wǎng)絡(luò)構(gòu)件,以及遠(yuǎn)程過程調(diào)用(remote procedure call,RPC)構(gòu)件。在系統(tǒng)的更底層,ETCD(https://coreos.com/etcd/docs)被用來存儲系統(tǒng)運(yùn)行中產(chǎn)生的信息,分布式文件系統(tǒng)被用于存儲用戶的磁盤數(shù)據(jù)。

        Fig.3 Architecture of Docklet圖3 Docklet的結(jié)構(gòu)

        在物理層面上,Docklet服務(wù)器分為計(jì)算服務(wù)器和存儲服務(wù)器,計(jì)算服務(wù)器提供處理器、內(nèi)存等計(jì)算資源和一小部分存儲資源(通常被軟件運(yùn)行環(huán)境占用),而存儲服務(wù)器提供絕大多數(shù)的存儲資源。這樣計(jì)算和存儲分離的設(shè)計(jì)適合中小規(guī)模的集群,可以使得Docklet具有較好的彈性伸縮能力和較靈活的系統(tǒng)擴(kuò)展能力。與此同時,存儲對于用戶而言是透明的,用戶無需關(guān)心計(jì)算節(jié)點(diǎn)中數(shù)據(jù)的存儲位置。目前,本文使用GlusterFS(http://www.gluster.org)作為底層的分布式文件系統(tǒng),其他能達(dá)到同樣功能的文件系統(tǒng)(如Ceph)也可以用于Docklet中。

        當(dāng)master進(jìn)程接收到創(chuàng)建Vcluster請求時,會根據(jù)物理資源的狀態(tài)和已有Vcluster的負(fù)載決定新的Vcluster的部署位置。當(dāng)Docklet已準(zhǔn)備好創(chuàng)建一個Vcluster后,它會將創(chuàng)建容器的參數(shù)傳遞給合適的worker,然后開始構(gòu)造該Vcluster的網(wǎng)絡(luò)結(jié)構(gòu),Docklet的網(wǎng)絡(luò)構(gòu)件會保障該Vcluster容器間的正常通信。鏡像的保存則使用了邏輯卷管理(logical volume manager,LVM)和AUFS(advanced multi-layered unification filesystem,以UNIONFS[13]為原理),以便容器可以被方便地保存和在用戶間共享、重現(xiàn),而monitor模塊主要負(fù)責(zé)展示物理資源和虛擬集群的運(yùn)行狀況。

        在Docklet中,用戶可以在瀏覽器中創(chuàng)建一個彈性的、動態(tài)的、無需額外配置就可以開始運(yùn)行所需任務(wù)的虛擬集群(例如,創(chuàng)建集群之后直接運(yùn)行Spark作業(yè))。該集群可以隨時停止或重啟,也可以被分享給系統(tǒng)內(nèi)的其他用戶。當(dāng)作業(yè)運(yùn)行時,用戶通過一個網(wǎng)頁了解到集群的各種狀態(tài)。作業(yè)完成后,邏輯集群就可以被刪除并釋放所占用的資源。

        對每個workspace而言,Docklet提供一個門戶來讓用戶可以從外部網(wǎng)絡(luò)直接訪問Vcluster的內(nèi)部節(jié)點(diǎn)。在目前版本中,使用了一個開源項(xiàng)目Jupyter來實(shí)現(xiàn)在瀏覽器中遠(yuǎn)程操作節(jié)點(diǎn)的功能。

        4.2 Docklet的特點(diǎn)

        Docklet有如下特點(diǎn):

        (1)隔離性。Docklet采取了很多措施,防止單個節(jié)點(diǎn)出現(xiàn)問題時可能影響到其他節(jié)點(diǎn)和外部環(huán)境的情況出現(xiàn),這些措施包括CGroup、Capacity Drop、Namespace、NetFilter、Apparmor、Filesystem Quota等。

        (2)高效性。單臺物理機(jī)可以被多個用戶的Vcluster中的節(jié)點(diǎn)共享,這有利于在資源有限的情況下高效利用計(jì)算資源。

        (3)簡單性。對用戶而言在Docklet上部署基于集群的應(yīng)用是十分快捷的,因?yàn)镈ocklet將其中許多復(fù)雜單調(diào)的工作,例如子網(wǎng)配置、數(shù)據(jù)共享空間、SSH公私鑰配置,簡化或自動完成了。

        (4)透明性。無論虛擬節(jié)點(diǎn)在哪一臺物理機(jī)上,有沒有被遷移,從外部來看,該節(jié)點(diǎn)的IP地址、根文件系統(tǒng)和共享數(shù)據(jù)等參數(shù)都不會發(fā)生變化。

        4.3 接口設(shè)計(jì)

        為了方便內(nèi)部修改與外部擴(kuò)展,Docklet的應(yīng)用程序編程接口(application programming interface,API)是按照RESTful風(fēng)格設(shè)計(jì)的,以下列出了一些重要的API。對于這些API來說,返回類型都是“application/json”。

        4.4 虛擬網(wǎng)絡(luò)

        Docklet的虛擬集群Vcluster各個節(jié)點(diǎn)要求是能在一個虛擬網(wǎng)絡(luò)子網(wǎng)中,彼此互相聯(lián)通,從而像物理集群一樣可安裝運(yùn)行分布式應(yīng)用。Docklet的虛擬網(wǎng)絡(luò)功能大部分建立在OpenVSwitch(http://openvswitch.org/support/dist-docs/)與iptables的基礎(chǔ)上,OpenVSwitch是OpenFlow[14]技術(shù)的開源實(shí)現(xiàn),在Docklet中主要被用來建立虛擬子網(wǎng)。網(wǎng)絡(luò)模塊給同一個Vcluster中的節(jié)點(diǎn)提供一個透明的虛擬子網(wǎng),讓它們看起來出于同一個真正的局域網(wǎng)中。Docklet的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,各個宿主機(jī)間建立了連接容器的GRE(generic routing encapsulation)通道,這些通道無需額外的網(wǎng)絡(luò)設(shè)備支持。當(dāng)一個Vcluster準(zhǔn)備被創(chuàng)建時,Docklet會建立一個子網(wǎng),該Vcluster中的容器會在這個子網(wǎng)下生成,同時Docklet會配置好SSH公鑰和私鑰,使得容器間可以彼此免密碼登錄。

        Fig.4 Docklet network on multi-hosts圖4 多宿主機(jī)網(wǎng)絡(luò)結(jié)構(gòu)

        5 實(shí)驗(yàn)與評估

        為了展示Docklet的特性和使用效果,本文在真實(shí)環(huán)境的物理機(jī)下進(jìn)行了一些實(shí)驗(yàn)。以下的實(shí)驗(yàn)與評估都基于3臺擁有400 GB物理內(nèi)存,32核CPU(Xeon E5-2670 2.60 GHz)的裝有Docklet的物理機(jī)。Docklet配置每個容器使用1個CPU和4 GB的內(nèi)存。此外,該物理集群中還包括額外的3臺用作全局NFS存儲的機(jī)器,每臺機(jī)器擁有3 TB的RAID5磁盤陣列(redundant arrays of independent disks,RAID)。

        5.1 樣例:Spark作業(yè)

        該實(shí)例展示了在Docklet上部署Spark的過程,如圖5所示。登錄Docklet后,創(chuàng)建新的workspace,此時該workspace里默認(rèn)有1個節(jié)點(diǎn)。之后,將該workspace擴(kuò)展到3個節(jié)點(diǎn),其中的Vcluster含有3個節(jié)點(diǎn),它們的名字分別是系統(tǒng)默認(rèn)的host-0、host-1、host-2。使用Jupyter進(jìn)入host-0之后,執(zhí)行如下的腳本。Spark的運(yùn)行狀態(tài)可以從Docklet提供的代理鏈接中查看。

        Start scripts for Spark

        root@host-0:~#cd/home/spark

        root@host-0:/home/spark#./sbin/start-master.sh

        root@host-0:/home/spark#ssh root@host-1/home/spark/sbin/start-slave.sh spark://host-0:7077

        root@host-0:/home/spark#ssh root@host-2/home/spark/sbin/start-slave.sh spark://host-0:7077

        root@host-0:/home/spark#./bin/spark-submit--master spark://host-0:7077 examples/src/main/python/pi.py 10

        Fig.5 Spark example圖5 Spark樣例

        5.2 樣例:MPI作業(yè)

        MPI也可以在Docklet上方便地運(yùn)行,集群的配置方法同Spark的例子,在host-0中執(zhí)行如下腳本就可以開始MPI作業(yè)(假設(shè)MPI程序是program.cpp)。

        Start scripts for MPI

        root@host-0:~#cd/nfs

        root@host-0:/nfs#mpic++./program.cpp-o mpi.bin

        root@host-0:/nfs#mpiexec-hosts host-0,host-1,host-2-n 6./mpi.bin〉/nfs/result.out

        5.3 評估:I/O密集型作業(yè)

        本實(shí)驗(yàn)中,在Docklet上測試了I/O密集型的Map-Reduce任務(wù),一個處理GlusterFS中14 GB/37 GB數(shù)據(jù)的并行word count程序。GlusterFS和Docklet節(jié)點(diǎn)間的數(shù)據(jù)交換完全通過TCP/IP網(wǎng)絡(luò)進(jìn)行。表1展示了該實(shí)驗(yàn)在I/O任務(wù)中產(chǎn)生的結(jié)果??梢钥闯?,Docklet實(shí)現(xiàn)了應(yīng)有的并行效果。

        Table1 Speedup of I/O jobs with scalable working nodes表1 可伸縮工作節(jié)點(diǎn)進(jìn)行I/O工作的加速比

        5.4 評估:彈性測試

        本實(shí)驗(yàn)中,通過一個Spark PageRank作業(yè)來測試Docklet的彈性表現(xiàn)。由于每個super-step的計(jì)算復(fù)雜度基本都是相等且穩(wěn)定的,每個super-step花費(fèi)的時間基本隨工作節(jié)點(diǎn)數(shù)量的上升而下降,Docklet的彈性管理器(在集群擴(kuò)展或收縮的時候被調(diào)用)會在固定的時間改變集群的工作節(jié)點(diǎn)數(shù)量。圖6展示了該作業(yè)的運(yùn)行效率與Vcluster中節(jié)點(diǎn)數(shù)量的關(guān)系。值得注意的是,新加入的Spark slave需要花10s左右的時間來初始化并準(zhǔn)備運(yùn)行作業(yè),而釋放節(jié)點(diǎn)會立即降低Spark的運(yùn)算效率。由此可知,Docklet實(shí)現(xiàn)了基本的彈性控制。

        Fig.6 Correlation of Vcluster size and performance圖6 虛擬集群規(guī)模與運(yùn)算性能的關(guān)系

        5.5 評估:網(wǎng)絡(luò)性能測試

        本測試中,測試結(jié)果均基于傳統(tǒng)的路由器和交換機(jī),并未使用額外的高級硬件,網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示,測量了物理機(jī)與物理機(jī),物理機(jī)與容器,容器與容器之間的網(wǎng)絡(luò)吞吐量。此外,容器間的網(wǎng)橋采用OpenVSwitch(v2.4.0)GRE通道(圖中的ovs-bridge),OpenVSwitch設(shè)備的MTU值被設(shè)置為1 420。

        Fig.7 Topology of testing environment圖7 網(wǎng)絡(luò)測試環(huán)境結(jié)構(gòu)

        P0、P1、P2代表物理機(jī)(physical host),C0a、C0b、C1、C2代表容器(container)。表2展示了網(wǎng)絡(luò)吞吐量和網(wǎng)絡(luò)傳輸過程中的ovs-bridge之間的關(guān)系。實(shí)驗(yàn)證明,當(dāng)前版本基于傳統(tǒng)硬件OpenVSwitch,效率并不高,之后可以用VLAN或SDN[15]優(yōu)化的芯片來提升效率。

        Table2 Data transmission throughput between nodes表2 各節(jié)點(diǎn)間網(wǎng)絡(luò)吞吐量

        6 結(jié)束語

        本文提出了一種私有云環(huán)境下基于虛擬集群的資源共享方法ClaaS,介紹了支持ClaaS的Docklet系統(tǒng)及其實(shí)現(xiàn),該系統(tǒng)兼有OpenStack與Mesos這兩種方法的優(yōu)點(diǎn),為應(yīng)用框架提供了可擴(kuò)展性、兼容性以及軟件定義的方法。

        ClaaS是一種方便易用的在不同應(yīng)用框架之間共享集群的方法,它大大簡化了部署和配置各種應(yīng)用,特別是分布式應(yīng)用的過程,還提供了多用戶支持與隨時重建應(yīng)用所需環(huán)境的功能。Docklet平臺可以生成獨(dú)立于硬件結(jié)構(gòu)的虛擬集群,并利用設(shè)計(jì)好的特殊機(jī)制讓其中的容器更好地工作。

        未來的工作包括兩點(diǎn):一是更加智能的負(fù)載均衡算法,可以使得Docklet根據(jù)物理資源的當(dāng)前狀態(tài)及歷史狀態(tài)找出資源使用率變化的規(guī)律,從而更好地調(diào)整容器分布,提高資源利用率;二是更加高效的彈性伸縮,在獲取全局狀態(tài)的前提下對縱向和橫向的彈性伸縮進(jìn)行更好的支持,從而優(yōu)化整個物理集群的狀態(tài)。

        [1]Cheng Xueqi,Jin Xiaolong,Wang Yuanzhuo,et al.Survey on big data system and analytic technology[J].Journal of Software,2014,25(9):1889-1908.

        [2]Lu Xicheng,Wang Huaimin,Wang Ji.Internet virtual computing environment-iVCE:concept and architecture[J].Science in China:Series E Information Sciences,2006,36(10):1081-1099.

        [3]Zhan Hanglong,Cao Donggang,Xie Bing.Graph processing framework supporting elastic scalability in distributed shared environment[J].Journal of Frontiers of Computer Science and Technology,2016,10(7):901-914.

        [4]HindmanB,KonwinskiA,Zaharia M,et al.Mesos:a platform for fine-grained resource sharing in the data center[C]//Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation,Boston,USA,Mar 30-Apr 1,2011.Berkeley,USA:USENIX Association,2011:295-308.

        [5]VermaA,Pedrosa L,Korupolu M,et al.Large-scale cluster management at Google with Borg[C]//Proceedings of the 10th European Conference on Computer Systems,Bordeaux,France,Apr 21-24,2015.New York:ACM,2015:18.

        [6]Boutin E,Ekanayake J,Lin Wei,et al.Apollo:scalable and coordinated scheduling for cloud-scale computing[C]//Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation,Broomfield,USA,Oct 6-8,2014.Berkeley,USA:USENIX Association,2014:285-300.

        [7]Schwarzkopf M,KonwinskiA,Abd-El-Malek M,et al.Omega:flexible,scalable schedulers for large compute clusters[C]//Proceedings of the 8th ACM European Conference on Computer Systems,Prague,Czech Republic,Apr 14-17,2013.New York:ACM,2013:351-364.

        [8]Bernstein D.Containers and cloud:from LXC to Docker to Kubernetes[J].IEEE Cloud Computing,2014,1(3):81-84.

        [9]Felter W,FerreiraA,RajamonyR,et al.An updated performance comparison of virtual machines and Linux containers[J].Technology,2014,25482:171-172.

        [10]D?litzscher F,Held M,Reich C,et al.ViteraaS:virtual cluster as a service[C]//Proceedings of the 3rd International Conference on Cloud Computing Technology and Science,Athens,Greece,Nov 29-Dec 1,2011.Washington:IEEE Computer Society,2011:652-657.

        [11]Brock M,GoscinskiA.Atechnology to expose a cluster asa service in a cloud[C]//Proceedings of the 8th Australasian Symposium on Parallel and Distributed Computing,Brisbane,Australia,Jan 1,2010.Darlinghurst,Australia:Australian Computer Society,Inc,2010:3-12.

        [12]OpenStack,NASA and Rackspace[EB/OL].[2016-07-23].http://docs.openstack.org.

        [13]Quigley D,Sipek J,Wright C P,et al.Unionfs:user-and community-oriented development of a unification filesystem[C]//Proceedings of the 2006 Ottawa Linux Symposium,2006,2:349-362.

        [14]McKeown N,Anderson T,Balakrishnan H,et al.OpenFlow:enabling innovation in campus networks[J].ACM SIGCOMM Computer Communication Review,2008,38(2):69-74.

        [15]Software-defined networking:the new norm for networks.Open Networking Foundation,2012.

        附中文參考文獻(xiàn):

        [1]程學(xué)旗,靳小龍,王元卓,等.大數(shù)據(jù)系統(tǒng)和分析技術(shù)綜述[J].軟件學(xué)報,2014,25(9):1889-1908.

        [2]盧錫城,王懷民,王戟.虛擬計(jì)算環(huán)境iVCE:概念與體系結(jié)構(gòu)[J].中國科學(xué):E輯信息科學(xué),2006,36(10):1081-1099.

        [3]詹杭龍,曹東剛,謝冰.分布共享環(huán)境下支持彈性伸縮的圖處理框架[J].計(jì)算機(jī)科學(xué)與探索,2016,10(7):901-914.

        Virtual Cluster Based Resource SharingApproach for Private Cloud Environment*

        LIU Peidong1,2,AN Bo1,2,ZHONG Yehong1,2,WANG Hu1,2,CAO Donggang1,2+
        1.Key Lab of High Confidence Software Technologies(Peking University),Ministry of Education,Beijing 100871,China
        2.Peking University Information Technology Institute(Tianjin Binhai),Tianjin 300450,China
        +Corresponding author:E-mail:caodg@pku.edu.cn

        LIU Peidong,AN Bo,ZHONG Yehong,et al.Virtual cluster based resource sharing approach for private cloud environment.Journal of Frontiers of Computer Science and Technology,2017,11(8):1204-1213.

        With the rapid development of cloud computing and big data processing,an increasing number of application frameworks are being considered to run in a“cloud way”.This development brings about several challenges to the enterprise private cloud computing platform,e.g.,sharing limited cluster resources effectively among different frameworks and users,being able to run most existing heterogeneous applications,as well as providing scalability and elasticity support for newly emerged frameworks.This paper proposes a new service model,namely,cluster as a service(ClaaS),which is suitable for medium and small-sized data centers to solve these problems in a relatively easy and general way.The idea behind this model is to virtualize the cluster environment for distributed application frameworks.Most applications can directly run in the virtual cluster environment without any modification,which is a great advantage.Based on lightweight containers and software-defined network,this paper implements an opensource system of ClaaS named Docklet to prove the feasibility of this service model.Docklet is able to distribute resources to users according to their needs,support frameworks like Spark,MPI,and languages like Python,R andJava.Moreover,Docklet is now used to provide and deploy services in real scenarios of teaching and researching.Finally,this paper describes the design and implementation of this system,then presents several examples and evaluates the entire system.

        cloud computing;virtual cluster;ClaaS;software definition

        ang was born in 1975.He

        the Ph.D.degree from School of Electronics Engineering and Computer Science,Peking University in 2004.Now he is an associate professor at Software Engineering Institute,School of Electronics Engineering and Computer Science,Peking University,and the senior member of CCF.His research interests include system software,parallel and distributed computing,etc. 曹東剛(1975—),男,山東威海人,2004年于北京大學(xué)信息科學(xué)技術(shù)學(xué)院獲得博士學(xué)位,現(xiàn)為北京大學(xué)軟件工程研究所副教授,CCF高級會員,主要研究領(lǐng)域?yàn)橄到y(tǒng)軟件,并行計(jì)算與分布式計(jì)算等。

        LIU Peidong was born in 1995.He is an M.S.candidate at Software Engineering Institute,Peking University.His research interests include big data,system software,parallel and distributed computing,etc.劉沛東(1995—),男,江西新余人,北京大學(xué)碩士研究生,主要研究領(lǐng)域?yàn)榇髷?shù)據(jù),系統(tǒng)軟件,并行計(jì)算與分布式計(jì)算等。

        AN Bo was born in 1992.He is a Ph.D.candidate at Software Engineering Institute,Peking University.His research interests include cloud computing,system software and distributed computing,etc.安博(1992—),男,陜西榆林人,北京大學(xué)博士研究生,主要研究領(lǐng)域?yàn)樵朴?jì)算,系統(tǒng)軟件,分布式計(jì)算等。

        ZHONG Yehong was born in 1994.He is an M.S.candidate at Software Engineering Institute,Peking University.His research interests include operating system,big data,distributed computing and cloud computing,etc.鐘業(yè)弘(1994—),男,海南文昌人,北京大學(xué)碩士研究生,主要研究領(lǐng)域?yàn)椴僮飨到y(tǒng),大數(shù)據(jù),分布式計(jì)算與云計(jì)算等。

        WANG Hu was born in 1989.He is an M.S.candidate at Software Engineering Institute,Peking University.His research interests include big data,system software,parallel and distributed computing,etc.王虎(1989—),男,河南南陽人,北京大學(xué)碩士研究生,主要研究領(lǐng)域?yàn)榇髷?shù)據(jù),系統(tǒng)軟件,并行計(jì)算與分布式計(jì)算等。

        A

        :TP391

        *The National Natural Science Foundation of China under Grant Nos.61272154,61421091(國家自然科學(xué)基金);the National Science and Technology Major Project of China under Grant No.2016YFB1000105(國家重點(diǎn)研發(fā)計(jì)劃).

        Received 2016-09,Accepted 2016-11.

        CNKI網(wǎng)絡(luò)優(yōu)先出版:2016-11-11,http://www.cnki.net/kcms/detail/11.5602.TP.20161111.1627.004.html

        ISSN 1673-9418 CODEN JKYTA8

        Journal of Frontiers of Computer Science and Technology 1673-9418/2017/11(08)-1204-10

        10.3778/j.issn.1673-9418.1609030

        E-mail:fcst@vip.163.com

        http://www.ceaj.org

        Tel:+86-10-89056056

        猜你喜歡
        計(jì)算資源容器集群
        Different Containers不同的容器
        基于模糊規(guī)劃理論的云計(jì)算資源調(diào)度研究
        難以置信的事情
        改進(jìn)快速稀疏算法的云計(jì)算資源負(fù)載均衡
        海上小型無人機(jī)集群的反制裝備需求與應(yīng)對之策研究
        一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:40
        基于Wi-Fi與Web的云計(jì)算資源調(diào)度算法研究
        耦合分布式系統(tǒng)多任務(wù)動態(tài)調(diào)度算法
        Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
        勤快又呆萌的集群機(jī)器人
        日韩三级一区二区不卡| 天堂av一区二区在线观看| 日韩av在线不卡观看| 亚洲一区二区三区视频免费看 | 麻豆AⅤ无码不卡| 国产成人AV乱码免费观看| 国产一级黄色片在线播放| 白丝爆浆18禁一区二区三区| 国产精品成人一区二区三区| 精品久久久久久电影院| 男女搞基视频免费网站| 三个男吃我奶头一边一个视频| 成人看片黄a免费看那个网址| 人妻av一区二区三区av免费| 国产成人av三级三级三级在线| 久久婷婷五月综合色丁香| 亚州少妇无套内射激情视频| 亚洲a人片在线观看网址| 亚洲日产乱码在线中文字幕| 亚洲国产精品无码久久久| 国产人澡人澡澡澡人碰视频| 久久99精品久久久久久国产人妖| 五月开心六月开心婷婷网| 在线看片免费人成视频电影| 免费一级特黄欧美大片久久网 | 久久亚洲色一区二区三区| 无码国产激情在线观看| 日本一区二区三区中文字幕视频| 亚洲国产女性内射第一区二区| 少妇被粗大的猛烈进出免费视频| 911精品国产91久久久久| 国产丝袜美腿诱惑在线观看 | 亚洲精品国产av成人网| av天堂午夜精品一区| 色妞www精品视频| 国产桃色精品网站| 青青草视频在线观看网| 亚洲avav天堂av在线网爱情| 精品欧美久久99久久久另类专区| 国产一区二区不卡av| 精品国产第一国产综合精品|