四大開(kāi)源IaaS軟件云中較力
來(lái)源:CNW
蔣清野
摘要: 本文主要從架構(gòu)、功能、社區(qū)和商業(yè)的角度來(lái)對(duì)OpenNebula、Nimbus、OpenStack和Eucalyptus這四個(gè)開(kāi)源IaaS軟件進(jìn)行比較。
Abstract:
Key words :
當(dāng)前市場(chǎng)上可供選擇的開(kāi)源IaaS軟件主要有四種,分別是OpenNebula、Nimbus、OpenStack和Eucalyptus。初看上去,這四大開(kāi)源軟件各有千秋,難分伯仲,以至于許多企業(yè)用戶在開(kāi)源軟件選型時(shí)一時(shí)難以抉擇。因此,筆者特意從架構(gòu)、功能、社區(qū)和商業(yè)的角度來(lái)對(duì)OpenNebula、Nimbus、OpenStack和Eucalyptus這四個(gè)開(kāi)源IaaS軟件進(jìn)行比較,以供讀者參考。
本文作者:蔣清野
在架構(gòu)方面,我們關(guān)心的是它包括哪些組件,各個(gè)組件之間的關(guān)系和通信方式,以及這樣的設(shè)計(jì)會(huì)如何影響到整個(gè)系統(tǒng)的擴(kuò)展性和伸縮性。這里所說(shuō)的擴(kuò)展性,是指為相關(guān)軟件添加新的功能模塊的能力。例如,當(dāng)新的虛擬化技術(shù)出現(xiàn)時(shí),云管理員能不能相對(duì)容易地為新的虛擬化技術(shù)提供支持。在伸縮性方面,我們關(guān)心的是相關(guān)軟件究竟能夠管理多大規(guī)模的數(shù)據(jù)中心,如果它不能夠管理更大規(guī)模的數(shù)據(jù)中心,其性能瓶頸主要在什么地方。
在功能方面,我們關(guān)心它是否能夠滿足用戶的需求。我們所說(shuō)的用戶包括兩個(gè)類(lèi)別,一個(gè)是IaaS服務(wù)的使用者,即終端用戶,另一個(gè)是IaaS服務(wù)的提供者,也就是云管理員。對(duì)終端用戶來(lái)說(shuō),他所關(guān)心的是能不能夠通過(guò)這個(gè)系統(tǒng)方便地申請(qǐng)、創(chuàng)建、啟動(dòng)、休眠、喚醒、關(guān)閉、銷(xiāo)毀虛擬機(jī),以及方便地監(jiān)控自己賬戶下所有虛擬機(jī)的處理器、內(nèi)存、磁盤(pán)和網(wǎng)絡(luò)使用狀況。對(duì)于云管理員來(lái)說(shuō),他關(guān)心的是能不能夠通過(guò)這個(gè)系統(tǒng)方便地監(jiān)控整個(gè)數(shù)據(jù)中心(甚至是多個(gè)數(shù)據(jù)中心)所有物理機(jī)和虛擬機(jī)的資源使用狀況,能不能在盡可能少的物理機(jī)上運(yùn)行盡可能多的虛擬機(jī)以達(dá)到節(jié)能減排的目的。從理論上來(lái)講,基礎(chǔ)架構(gòu)服務(wù)的終端用戶只需要關(guān)心自己所使用的虛擬機(jī)資源而不必關(guān)心虛擬機(jī)后面的技術(shù)細(xì)節(jié)。但是當(dāng)云服務(wù)出現(xiàn)故障的時(shí)候,我們會(huì)發(fā)現(xiàn)終端用戶比云管理員更關(guān)心云服務(wù)的高可用性、數(shù)據(jù)備份策略等細(xì)節(jié),并且迫切地希望存在某些途徑讓自己的虛擬機(jī)和別人的虛擬機(jī)得到特殊的照顧。從工程的角度來(lái)講世界上不存在絕對(duì)不會(huì)失效的系統(tǒng),但是這些需求可以轉(zhuǎn)變成功能或者是產(chǎn)品,使得云服務(wù)提供商可以為不同的用戶提供不同的服務(wù)。
為什么要關(guān)心社區(qū)?使用開(kāi)源軟件,出了問(wèn)題就只能夠找社區(qū)了。因此,我們需要專(zhuān)門(mén)討論一下與這幾個(gè)開(kāi)源軟件所關(guān)聯(lián)的社區(qū)的規(guī)模、活躍度和參與度。
此外,開(kāi)源軟件的商業(yè)模式問(wèn)題也值得關(guān)注。這個(gè)問(wèn)題又可以分為兩個(gè)方面,一方面是開(kāi)源軟件開(kāi)發(fā)者如何盈利,另一方面是開(kāi)源軟件使用者如何獲得專(zhuān)業(yè)支持和服務(wù)。對(duì)于基礎(chǔ)架構(gòu)服務(wù)這種關(guān)鍵性應(yīng)用來(lái)說(shuō),在軟件選型過(guò)程當(dāng)中如果不考慮開(kāi)源軟件的商業(yè)模式問(wèn)題,將來(lái)可能會(huì)遇到一些麻煩。
架構(gòu)詳解
1.OpenNebula 3.0
圖1是OpenNebula的整體架構(gòu)圖。前端(FRONT-END)通過(guò)瀏覽器和Web Service向云管理員和終端用戶提供服務(wù)。ONED是OpenNebula的核心服務(wù)進(jìn)程,包括虛擬化管理模塊和任務(wù)調(diào)度模塊。ONED通過(guò)SSH方式連接到計(jì)算節(jié)點(diǎn),并通過(guò)虛擬化驅(qū)動(dòng)(Drivers)來(lái)調(diào)用計(jì)算節(jié)點(diǎn)上的虛擬化控制命令。當(dāng)計(jì)算節(jié)點(diǎn)使用KVM或者是VMWare ESXi作為虛擬化技術(shù)時(shí),OpenNebula使用libvirt所提供的接口遠(yuǎn)程調(diào)用計(jì)算節(jié)點(diǎn)上的虛擬化控制命令。當(dāng)計(jì)算節(jié)點(diǎn)使用Xen作為虛擬化技術(shù)時(shí),OpenNebula通過(guò)SSH登錄到計(jì)算節(jié)點(diǎn)執(zhí)行相關(guān)的虛擬化控制命令。計(jì)算節(jié)點(diǎn)通過(guò)前端的映像驅(qū)動(dòng)(Images)獲得需要運(yùn)行的操作系統(tǒng)映像文件。需要說(shuō)明的是,還有監(jiān)控、用戶界面和云服務(wù)API等一些前端模塊沒(méi)有出現(xiàn)在該圖上。
圖1 OpenNebula整體架構(gòu)圖
圖2是OpenNebula的存儲(chǔ)結(jié)構(gòu)圖。OpenNebula使用映像倉(cāng)庫(kù)(Image Repository)來(lái)保存操作系統(tǒng)映像文件。這個(gè)映像倉(cāng)庫(kù)要能夠被OpenNebula的前端直接訪問(wèn),可以是SAN、NAS或者是磁盤(pán)陣列等其他存儲(chǔ)設(shè)備。我們創(chuàng)建虛擬機(jī)的時(shí)候,ONED首先通過(guò)任務(wù)調(diào)度器確定將要運(yùn)行該虛擬機(jī)的計(jì)算節(jié)點(diǎn),然后將相應(yīng)的磁盤(pán)映像文件拷貝到計(jì)算節(jié)點(diǎn)上,最后通過(guò)虛擬化驅(qū)動(dòng)調(diào)用相應(yīng)的虛擬化技術(shù)創(chuàng)建虛擬機(jī)并啟動(dòng)運(yùn)行。對(duì)于一個(gè)小型的私有云來(lái)講,可以簡(jiǎn)單地使用類(lèi)似于NFS的共享文件系統(tǒng)方式將同一個(gè)目錄掛載到前端服務(wù)器和所有的計(jì)算節(jié)點(diǎn)上。通過(guò)使用共享文件系統(tǒng),可以縮短部署虛擬機(jī)所需要的時(shí)間,還可以方便地實(shí)現(xiàn)虛擬機(jī)的在線遷移。使用共享文件系統(tǒng)的時(shí)候需要注意的是,如果某些虛擬機(jī)頻繁地進(jìn)行磁盤(pán)IO操作的話,部署在同一共享文件系統(tǒng)上的所有虛擬機(jī)都會(huì)受到影響。在這種情況下,可以考慮將磁盤(pán)I/O密集型虛擬機(jī)的磁盤(pán)映像文件緩存在計(jì)算節(jié)點(diǎn)上,這樣只有運(yùn)行在同一計(jì)算節(jié)點(diǎn)上的虛擬機(jī)會(huì)受到影響。
圖2 OpenNebula存儲(chǔ)結(jié)構(gòu)圖
在網(wǎng)絡(luò)方面,OpenNebula通過(guò)在計(jì)算節(jié)點(diǎn)上配置網(wǎng)橋的方式為虛擬機(jī)提供網(wǎng)絡(luò)連接。如圖3所示,一個(gè)計(jì)算節(jié)點(diǎn)配置了兩個(gè)網(wǎng)橋,其中一個(gè)連接到公網(wǎng),另外一個(gè)連接到內(nèi)網(wǎng)。需要注意的是,在同一個(gè)計(jì)算集群中,所有計(jì)算節(jié)點(diǎn)的網(wǎng)橋配置必須是同樣的。另外,OpenNebula可以通過(guò)配置文件來(lái)指定某個(gè)網(wǎng)絡(luò)可用的IP范圍,并且在創(chuàng)建虛擬機(jī)的時(shí)候通過(guò)配置文件直接指定虛擬機(jī)的IP,因此OpenNebula可以在沒(méi)有DHCP服務(wù)器的情況下為虛擬機(jī)分配IP。
圖3 OpenNebula網(wǎng)絡(luò)結(jié)構(gòu)圖
剛才我們所提到的架構(gòu)、存儲(chǔ)和網(wǎng)絡(luò),都屬于虛擬化管理的范疇。在虛擬化管理的基礎(chǔ)上,OpenNebula使用一個(gè)稱為SunStone的用戶界面,使得云管理員和終端用戶都能夠通過(guò)瀏覽器訪問(wèn)被OpenNebula所管理的基礎(chǔ)架構(gòu),在各自的權(quán)限范圍內(nèi)執(zhí)行虛擬機(jī)生命周期管理操作,就形成了一個(gè)完整的基礎(chǔ)架構(gòu)服務(wù)系統(tǒng)。
2.Nimbus 2.8
接下來(lái)我們看一看Nimbus這個(gè)項(xiàng)目。從架構(gòu)圖(圖4)來(lái)看,Nimbus的架構(gòu)設(shè)計(jì)和OpenNebula是非常相像的。用戶通過(guò)瀏覽器界面訪問(wèn)Nimbus服務(wù),管理節(jié)點(diǎn)通過(guò)SSH和libvirt調(diào)用計(jì)算節(jié)點(diǎn)上的Xen或者KVM命令。不同的地方主要有兩個(gè),一個(gè)是它通過(guò)DHCP服務(wù)器為虛擬機(jī)分配IP,另一個(gè)是它使用了一個(gè)名為Cumulus的云存儲(chǔ)服務(wù)。
圖4 Nimbus整體架構(gòu)圖
圖5是Cumulus云存儲(chǔ)的架構(gòu)圖??梢钥闯觯珻umulus由多個(gè)功能模塊組成。從頂層看,它是一個(gè)與Amazon S3相兼容的云存儲(chǔ)服務(wù);從底層看,它可以搭建在簡(jiǎn)單的本地硬盤(pán)或者是負(fù)責(zé)的HDFS上。在云計(jì)算這個(gè)領(lǐng)域,Amazon S3是事實(shí)上的云存儲(chǔ)標(biāo)準(zhǔn)。Nimbus使用云存儲(chǔ)來(lái)提供存儲(chǔ)服務(wù),從架構(gòu)上來(lái)說(shuō)比使用共享文件系統(tǒng)的OpenNebula更接近于Amazon EC2/S3。
圖5 Cumulus云存儲(chǔ)架構(gòu)圖
讀者可能會(huì)問(wèn),用云存儲(chǔ)來(lái)作為基礎(chǔ)架構(gòu)服務(wù)的關(guān)鍵組件,在性能上會(huì)不會(huì)有問(wèn)題呢?我們測(cè)試過(guò)Culumus、scp、gridFtp和本地文件系統(tǒng)在上載和下載不同大小的文件時(shí)的吞吐量。測(cè)試結(jié)果顯示,當(dāng)被操作的文件較小的情況下,Culumus的性能較差,但是與scp和gridFtp的性能在同一水平上;當(dāng)被操作的文件大小超過(guò)1GB的時(shí)候,Culumus的性能與本地文件系統(tǒng)接近??紤]到操作系統(tǒng)映像文件的大小通常會(huì)超過(guò)1 GB,可以認(rèn)為使用Culumus來(lái)存儲(chǔ)操作系統(tǒng)映像文件是沒(méi)有問(wèn)題的。
3.Eucalyp 2.0.3
Eucalyptus的架構(gòu)(圖6)和OpenNebula以及Nimbus相比有兩個(gè)明顯的不同。首先,在計(jì)算節(jié)點(diǎn)(Node Controller)和云控制器(Cloud Controller)之間,多了一個(gè)叫做集群控制器(Cluster Controller)的組件。其次,在Eucalyptus中有兩個(gè)負(fù)責(zé)存儲(chǔ)的組件,一個(gè)叫做Walrus存儲(chǔ)控制器(Walrus Storage Controller,WS3),另外一個(gè)叫做彈性塊存儲(chǔ)(Elastic Block Storage,EBS)。
圖6:Eucalyp 2.0.3架構(gòu)圖
引入集群控制器這個(gè)組件后,Eucalyptus中的虛擬化管理功能就由集群控制器來(lái)承擔(dān)。也就是說(shuō),當(dāng)用戶向Eucalyptus的云控制器請(qǐng)求計(jì)算資源的時(shí)候,Eucalyptus的云控制器根據(jù)各個(gè)計(jì)算集群的資源使用狀況將用戶的請(qǐng)求轉(zhuǎn)發(fā)給某個(gè)計(jì)算集群的集群控制器,集群控制器再根據(jù)本集群中各個(gè)計(jì)算節(jié)點(diǎn)的資源使用狀況決定在哪個(gè)計(jì)算節(jié)點(diǎn)上創(chuàng)建和運(yùn)行虛擬機(jī)。
如果將Eucalyptus的架構(gòu)和OpenNebula以及Nimbus的架構(gòu)來(lái)做個(gè)比較,可以看出Eucalyptus的計(jì)算集群和OpenNebula以及Nimbus在功能上基本是等價(jià)的。我們知道,當(dāng)計(jì)算節(jié)點(diǎn)的數(shù)量較多的時(shí)候,虛擬化管理模塊,以及系統(tǒng)監(jiān)控模塊的壓力就會(huì)比較大,可能會(huì)影響到整個(gè)系統(tǒng)的性能。假定Eucalyptus、OpenNebula以及Nimbus的虛擬化管理模塊的實(shí)現(xiàn)水平是相當(dāng)?shù)模?dāng)OpenNebula和Nimbus由于計(jì)算節(jié)點(diǎn)數(shù)量增加而出現(xiàn)性能問(wèn)題的時(shí)候,Eucalyptus可以通過(guò)增加計(jì)算集群的方法來(lái)實(shí)現(xiàn)橫向擴(kuò)展。從這個(gè)意義上說(shuō),Eucalyptus的架構(gòu)設(shè)計(jì)提供了更大程度的擴(kuò)展性,能夠支撐更大規(guī)模的基礎(chǔ)架構(gòu)。
剛才我們說(shuō)到,Eucalyptus中有兩個(gè)負(fù)責(zé)存儲(chǔ)的組件。一個(gè)是WS3,與Amazon的簡(jiǎn)單存儲(chǔ)服務(wù)(Simple Storage Service,S3)相對(duì)應(yīng);另外一個(gè)是EBS,與Amazon的彈性塊存儲(chǔ)(Elastic Block Store,EBS)相對(duì)應(yīng)。EBS可以被當(dāng)做塊設(shè)備掛載到虛擬機(jī)上,相當(dāng)于云硬盤(pán)。EBS能夠提供較大的容量,具有較好的I/O性能。S3則是一種基于Key-Value的網(wǎng)絡(luò)存儲(chǔ),有人也把它叫做云存儲(chǔ)。S3使得用戶能夠通過(guò)簡(jiǎn)單的API在網(wǎng)絡(luò)上存儲(chǔ)和讀取數(shù)據(jù)。
在我們已經(jīng)提到的三個(gè)IaaS軟件中,OpenNebula直接使用共享文件系統(tǒng)作為存儲(chǔ),Nimbus使用了一個(gè)類(lèi)似于S3的Cumulus存儲(chǔ)服務(wù),Eucalyptus則進(jìn)一步將云硬盤(pán)和云存儲(chǔ)分開(kāi)。從架構(gòu)上來(lái)看,Eucalyptus的架構(gòu)和Amazon 的EC2/S3服務(wù)最為接近。
類(lèi)似于S3的云存儲(chǔ)服務(wù)使得用戶能夠通過(guò)簡(jiǎn)單的API在網(wǎng)絡(luò)上存儲(chǔ)和讀取數(shù)據(jù),但是對(duì)于數(shù)據(jù)密集型應(yīng)用來(lái)說(shuō),使用S3服務(wù)可能會(huì)出現(xiàn)性能方面的問(wèn)題。最近卡耐基梅隆大學(xué)的并行數(shù)據(jù)實(shí)驗(yàn)室基于Walrus云存儲(chǔ)實(shí)現(xiàn)了pWalrus云存儲(chǔ)服務(wù)。pWalrus實(shí)際上把數(shù)據(jù)存放在一個(gè)并行的文件系統(tǒng)上。對(duì)于互聯(lián)網(wǎng)用戶來(lái)講,他可以通過(guò)簡(jiǎn)單的PUT和GET來(lái)讀寫(xiě)數(shù)據(jù);對(duì)于計(jì)算節(jié)點(diǎn)來(lái)講,它既可以通過(guò)PUT和GET來(lái)讀寫(xiě)數(shù)據(jù),還可以直接用文件I/O的模式來(lái)讀寫(xiě)數(shù)據(jù)。經(jīng)過(guò)這樣的改進(jìn)后,pWalrus能夠提供更好的I/O性能,也能夠進(jìn)一步保障數(shù)據(jù)的安全性。
4.OpenStack
OpenStack架構(gòu)圖(圖7)看起來(lái)有點(diǎn)費(fèi)勁,因?yàn)檫@張圖里面的組件太多了。筆者給這些組件做一下分組,包含在橙色方框里面的是前端,包含在藍(lán)色方框里面的是計(jì)算節(jié)點(diǎn),包含在綠色方框里面的是存儲(chǔ)服務(wù)。
圖7 OpenStack架構(gòu)圖
在前端部分,終端用戶通過(guò)nova-api訪問(wèn)OpenStack請(qǐng)求計(jì)算資源。OpenStack首先對(duì)用戶進(jìn)行身份認(rèn)證,然后通過(guò)任務(wù)調(diào)度器(nova-scheduler)確定在哪一個(gè)計(jì)算節(jié)點(diǎn)上創(chuàng)建新的虛擬機(jī)。
在計(jì)算節(jié)點(diǎn)這個(gè)部分,OpenStack通過(guò)libvirt和Xen API來(lái)進(jìn)行虛擬機(jī)生命周期管理。計(jì)算節(jié)點(diǎn)上的網(wǎng)絡(luò)界面是通過(guò)nova-network這個(gè)組件來(lái)管理的。
在存儲(chǔ)服務(wù)部分,OpenStack提供了兩個(gè)存儲(chǔ)組件。其中,nova-volume提供彈性塊設(shè)備服務(wù),相當(dāng)于Amazon EBS;nova-objectstore提供簡(jiǎn)單存儲(chǔ)服務(wù),相當(dāng)于Amazon S3。
OpenStack的各個(gè)組件之間不共享任何狀態(tài),各個(gè)組件之間通過(guò)中間這張圖中間用紅色圈出的消息隊(duì)列(MQ)來(lái)進(jìn)行異步通信。OpenStack中的任意組件可以安裝在任意服務(wù)器上,只需要在配置文件里面指定MQ服務(wù)器的地址即可。因此,MQ可能成為整個(gè)系統(tǒng)的性能瓶頸。在這種情況下,可以通過(guò)增加一臺(tái)MQ服務(wù)器來(lái)解決。
到現(xiàn)在為止,我們已經(jīng)能夠全面了解OpenNebula、Nimbus、Eucalyptus和OpenStack的架構(gòu)。盡管每個(gè)軟件的設(shè)計(jì)思路和實(shí)現(xiàn)細(xì)節(jié)各有千秋,但是都可以歸結(jié)為三個(gè)比較大的模塊:一是通常被稱為云控制器的前端,包括用戶界面、編程接口和任務(wù)調(diào)度組件;二是虛擬化管理,包括網(wǎng)絡(luò)管理和虛擬機(jī)管理;三是存儲(chǔ)服務(wù),包括彈性塊設(shè)備和簡(jiǎn)單存儲(chǔ)服務(wù)。在這三大模塊的基礎(chǔ)上,還可以添加監(jiān)控、報(bào)表、分析、計(jì)費(fèi)等等外圍組件。這些組件往往是運(yùn)營(yíng)方面的要求,不是基礎(chǔ)架構(gòu)服務(wù)的核心技術(shù),本文就不作詳細(xì)討論了。
功能綜合比較
在了解過(guò)OpenNebula、Nimbus、Eucalyptus和OpenStack在架構(gòu)上的差異之后,下面簡(jiǎn)單地比較一下這四個(gè)系統(tǒng)在功能上的差異。這里所說(shuō)的功能,是指缺省的基本組件安裝配置完畢后即可立即使用的功能,不包括尚未正式發(fā)布的試驗(yàn)性組件。
附表:四大開(kāi)源IaaS軟件在功能上的差異
首先,我們從終端用戶的角度來(lái)看四大開(kāi)源IaaS軟件系統(tǒng)是不是有一個(gè)方便好用的門(mén)戶或者是客戶端去進(jìn)行各種各樣的操作。OpenNebula提供了基于瀏覽器的用戶門(mén)戶,Nimbus則提供了一個(gè)基于Java的桌面客戶端,Eucalyptus和OpenStack則需要利用命令行工具或者是第三方解決方案。
在云主機(jī)、云硬盤(pán)和云存儲(chǔ)著三類(lèi)基礎(chǔ)架構(gòu)服務(wù)中,OpenNebula僅提供云主機(jī)服務(wù),Nimbus增加了云存儲(chǔ)服務(wù),Eucalyptus和OpenStack都能夠提供全面的服務(wù)。此外,OpenNebula的用戶能夠直接通過(guò)基于瀏覽器的VNC訪問(wèn)虛擬機(jī)的控制臺(tái),其他三個(gè)系統(tǒng)的終端用戶暫時(shí)無(wú)法直接訪問(wèn)虛擬機(jī)的控制臺(tái)。
四個(gè)系統(tǒng)的終端用戶均可創(chuàng)建自定義的虛擬機(jī)模板,但是實(shí)現(xiàn)的難易程度有較大差別。
只有OpenNebula提供了簡(jiǎn)單的監(jiān)控報(bào)表,能夠報(bào)告虛擬機(jī)的處理器核內(nèi)存使用狀況。
在備份、恢復(fù)和用戶賬單等方面,四大開(kāi)源軟件基本還是空白。
由于缺少存儲(chǔ)方面的某些組件,OpenNebula和Nimbus所提供的服務(wù)并不完全兼容于Amazon EC2/S3,Eucalyptus和Nimbus則是和Amazon EC2/S3完全兼容的。
其次,我們從云管理員的角度去考察這四種開(kāi)源軟件是不是有一個(gè)方便好用的門(mén)戶或者是客戶端去進(jìn)行各種操作。只有OpenNebula通過(guò)SunStone提供了基本上能夠用的管理門(mén)戶,Nimbus干脆就沒(méi)有管理員門(mén)戶,Eucalyptus有一個(gè)管理員門(mén)戶但是能夠做的事情非常有限,OpenStack有一個(gè)正在開(kāi)發(fā)中的Dashboard但是不能夠算數(shù)。
在服務(wù)器監(jiān)控、虛擬機(jī)監(jiān)控和監(jiān)控報(bào)表這個(gè)領(lǐng)域,只有OpenNebula提供了湊合能用的解決方案,其他三個(gè)系統(tǒng)都沒(méi)有這方面的功能。有人會(huì)說(shuō)服務(wù)器和虛擬機(jī)的監(jiān)控可以通過(guò)Nagios或者是Zabbix等監(jiān)控框架來(lái)實(shí)現(xiàn),但是從基礎(chǔ)架構(gòu)服務(wù)的發(fā)展趨勢(shì)來(lái)看,將監(jiān)控組件納入IaaS管理系統(tǒng),是非常有必要的。
OpenNebula和OpenStack提供了基于命令行的虛擬機(jī)在線遷移功能,Nimbus和Eucalyptus則沒(méi)有提供這個(gè)功能。
在物理機(jī)動(dòng)態(tài)負(fù)載調(diào)整、虛擬機(jī)高可用性、備份與恢復(fù)、報(bào)警機(jī)制和運(yùn)營(yíng)計(jì)費(fèi)等方面,這四個(gè)軟件基本還是空白。
在一個(gè)成熟的虛擬化管理系統(tǒng)(例如ConVirt)中,必然會(huì)有對(duì)物理機(jī)和虛擬機(jī)的監(jiān)控模塊。監(jiān)控模塊以一定的頻率記錄物理機(jī)和虛擬機(jī)的處理器、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)使用狀況,并以圖表的方式展現(xiàn)給用戶。當(dāng)虛擬機(jī)的運(yùn)行狀況有問(wèn)題的時(shí)候,可以自動(dòng)地重啟(甚至是在另外的物理服務(wù)器上重啟)虛擬機(jī),從而實(shí)現(xiàn)虛擬機(jī)的高可用性。在這些監(jiān)控?cái)?shù)據(jù)的基礎(chǔ)上,可以手動(dòng)甚至是自動(dòng)地對(duì)物理機(jī)的負(fù)載進(jìn)行調(diào)整,例如,通過(guò)在線遷移把某些負(fù)載比較輕的虛擬機(jī)整合到數(shù)量較少的服務(wù)器上,空閑出來(lái)的服務(wù)器就可以進(jìn)入休眠狀態(tài)從而達(dá)到節(jié)能目的。當(dāng)虛擬機(jī)的負(fù)載比較重的時(shí)候,系統(tǒng)又可以自動(dòng)喚醒某些處于休眠狀態(tài)的服務(wù)器,并通過(guò)在線遷移把一些虛擬機(jī)遷移到新的服務(wù)器上。大多數(shù)VPS用戶都知道他們的虛擬機(jī)是和別人的虛擬機(jī)共享一臺(tái)物理機(jī)的,但是他們可能不知道在同一臺(tái)物理機(jī)上所運(yùn)行的虛擬機(jī)的處理器總和是超過(guò)這臺(tái)物理機(jī)的處理器總和的。同樣,運(yùn)營(yíng)商賣(mài)出去的內(nèi)存總和,也是超過(guò)物理機(jī)的內(nèi)存總和的。這種情況我們叫做超售,也就是over-commit。對(duì)于一個(gè)基礎(chǔ)架構(gòu)服務(wù)提供商來(lái)說(shuō),必須要有一套監(jiān)控分析、在線遷移、負(fù)載調(diào)整的工具才能夠在實(shí)現(xiàn)超售的同時(shí)提供較好的用戶體驗(yàn)。
隨著服務(wù)器性能的不斷提高,數(shù)據(jù)中心虛擬化以及基礎(chǔ)架構(gòu)服務(wù)是一個(gè)不可阻擋的趨勢(shì)。對(duì)于終端用戶來(lái)說(shuō),他們需要的是一個(gè)簡(jiǎn)單易用的界面,只需要選擇自己需要的軟、硬件配置即可立即開(kāi)通自己所需要的計(jì)算資源,并且隨時(shí)可以看在自己賬戶下所有計(jì)算資源的使用狀況。對(duì)于云管理員來(lái)說(shuō),他們同樣需要一個(gè)的簡(jiǎn)單易用界面,能夠管理一個(gè)跨越多個(gè)數(shù)據(jù)中心的基礎(chǔ)架構(gòu),能夠基于系統(tǒng)的運(yùn)行情況自動(dòng)地進(jìn)行負(fù)載調(diào)整,從而實(shí)現(xiàn)最大的投資收益。從目前的狀況來(lái)看,與其他幾個(gè)IaaS軟件相比較,OpenNebula能夠給終端用戶和云管理員提供更多的功能。但是從基礎(chǔ)架構(gòu)服務(wù)提供商的角度來(lái)看,開(kāi)放源代碼的IaaS解決方案要進(jìn)入生產(chǎn)環(huán)境,還有很長(zhǎng)的路要走。
透過(guò)社區(qū)與商業(yè)看趨勢(shì)
1.數(shù)據(jù)
現(xiàn)在我們花一點(diǎn)時(shí)間從社區(qū)和商業(yè)的角度來(lái)對(duì)開(kāi)源IaaS軟件進(jìn)行一下比較。由于Nimbus這個(gè)項(xiàng)目的社區(qū)規(guī)模很小,沒(méi)有明顯的商業(yè)訴求,我們暫時(shí)把它放在這個(gè)分析比較之外。
筆者在去年9 月份整理出2009年1月以來(lái)Eucalyptus、OpenNebula和OpenStack社區(qū)的郵件列表和論壇數(shù)據(jù)。數(shù)據(jù)顯示,OpenNebula社區(qū)自2009年以來(lái)一直保持良好的發(fā)展勢(shì)頭,其討論主題數(shù)、討論帖子數(shù)和參與討論的總?cè)藬?shù)都在穩(wěn)步增長(zhǎng)。但是該項(xiàng)目在 2011年4 月之后開(kāi)始呈現(xiàn)衰落的勢(shì)頭。Eucalyptus社區(qū)在2010年6 月之前發(fā)展迅猛,無(wú)論是討論主題數(shù)、討論帖子數(shù)和參與討論的總?cè)藬?shù)都是OpenNebula社區(qū)的兩到三倍左右。但是Eucalyptus社區(qū)自2010 年6 月之后逐步衰落,盡管在2010年10月前后有過(guò)數(shù)次復(fù)興的趨勢(shì),但是最終日漸式微并于2011年5 月前后降低到OpenNebula社區(qū)的同等水平。新興的OpenStack社區(qū)在創(chuàng)立初期發(fā)展緩慢,但是從2011年1 月起呈現(xiàn)出爆發(fā)的勢(shì)頭。目前OpenStack社區(qū)的討論主題數(shù)、討論帖子數(shù)和參與討論的總?cè)藬?shù)都在OpenNebula社區(qū)和Eucalyptus社區(qū)之上,但是尚未達(dá)到Eucalyptus社區(qū)在2010年6 月的規(guī)模。
通常來(lái)講,一個(gè)討論主題得到的回復(fù)數(shù)越多,表明該主題的討論越深入。一個(gè)論壇或者郵件列表如果只有主帖而沒(méi)有回復(fù),說(shuō)明這個(gè)社區(qū)的參與程度很低。因此,平均意義上的“討論帖子數(shù)/討論主題數(shù)”則反映了一個(gè)社區(qū)的參與程度。歷史數(shù)據(jù)顯示,OpenNebula社區(qū)和Eucalyptus社區(qū)的參與度基本上是接近的。在2010年8 月以前,Eucalyptus社區(qū)的參與度略高于OpenNebula社區(qū)。在2010年8 月以后,OpenNebula社區(qū)的參與度略高于Eucalyptus社區(qū)。但是OpenStack社區(qū)的參與度從2010年6 月項(xiàng)目開(kāi)始之日起就高于OpenNebula社區(qū)和Ecualyptus社區(qū)。除了個(gè)別異常月份之外,OpenStack社區(qū)的參與度通常是其他兩者的兩倍甚至是更高。
2.人物
說(shuō)到OpenStack社區(qū)的迅猛成長(zhǎng),就不能不提到OpenStack的社區(qū)經(jīng)理(Community Manager)Stephen Spector。Stephen Spector在1997年到2010年之間一直在Citrix工作,負(fù)責(zé)軟件聯(lián)盟并擔(dān)任Xen.org的社區(qū)經(jīng)理,在社區(qū)管理方面可以說(shuō)是擁有豐富的經(jīng)驗(yàn)。他于2010年9 月跳槽到Rackspace擔(dān)任OpenStack的社區(qū)經(jīng)理,立即開(kāi)始了一系列的廣告、公關(guān)、宣傳、結(jié)盟活動(dòng)。通過(guò)論壇和郵件列表討論OpenStack的人數(shù),從無(wú)到有直到超越已經(jīng)運(yùn)營(yíng)了兩年多的Eucalyptus和OpenNebula社區(qū),僅僅用了6 個(gè)月的時(shí)間。聲明要參與OpenStack項(xiàng)目的公司和機(jī)構(gòu),在短短的12個(gè)月內(nèi)就達(dá)到了140個(gè)之多。不過(guò)Stephen Spector在今年10月份跳槽到了戴爾負(fù)責(zé)產(chǎn)品和市場(chǎng),未來(lái)OpenStack社區(qū)會(huì)朝哪個(gè)方向發(fā)展,還是個(gè)未知數(shù)。
Stephen Spector
很巧的是,Eucalyptus項(xiàng)目的社區(qū)經(jīng)理Mark Atwood也是2010年9月入職的。在他入職之前,Eucalyptus社區(qū)已經(jīng)開(kāi)始呈現(xiàn)下滑的趨勢(shì)。Mark Atwood入職之后,側(cè)重于Eucalyptus企業(yè)版的宣傳和推廣,在開(kāi)發(fā)者和用戶社區(qū)這個(gè)領(lǐng)域并沒(méi)有太大作為,導(dǎo)致Eucalyptus的社區(qū)活躍度進(jìn)一步下滑。Eucalyptus顯然已經(jīng)注意到了這個(gè)問(wèn)題,并且于今年10月雇傭了Greg DeKoenigsburg來(lái)負(fù)責(zé)社區(qū)方面的工作。Greg DeKoenigsburg在2004到2010年之間在RedHat工作,負(fù)責(zé)Fedora的社區(qū)工作。至于Greg DeKoenigsburg上任之后Eucalyptus社區(qū)的狀況是否會(huì)有所改善,我們還需要一段時(shí)間來(lái)慢慢觀察。
Mark Atwood
Greg DeKoenigsburg
在社區(qū)運(yùn)營(yíng)這一塊,OpenNebula和Eucalyptus和OpenStack項(xiàng)目有所不同。OpenNebula項(xiàng)目的社區(qū)經(jīng)理是一個(gè)志愿者的角色,從2009年9 月起一直由芝加哥大學(xué)的Borja Sotomayor擔(dān)任。在2004到2010年之間,Borja Sotomayor在芝加哥大學(xué)計(jì)算機(jī)系讀碩士和博士,并在拿到博士學(xué)位后在芝加哥大學(xué)擔(dān)任講師??梢哉J(rèn)為,OpenNebula項(xiàng)目在社區(qū)建設(shè)方面的投入并不大,但它的社區(qū)發(fā)展顯然是良性的,并且在近期逐步超越了曾經(jīng)是如日中天的Eucalyptus社區(qū)。如果一定要為此尋找一個(gè)原因的話,我們只能夠說(shuō)是OpenNebula這個(gè)項(xiàng)目做得實(shí)在是太好了。
Borja Sotomayor
3.趨勢(shì)
剛才我們?cè)诩軜?gòu)和功能的綜合比較里面提到,開(kāi)源IaaS解決方案要進(jìn)入生產(chǎn)環(huán)境,還有很長(zhǎng)的路要走。那么,開(kāi)源IaaS軟件將來(lái)會(huì)朝什么方向去發(fā)展,投資開(kāi)發(fā)開(kāi)源IaaS軟件的機(jī)構(gòu)的商業(yè)模式又是怎樣的呢?
讓我們看一看這幾個(gè)開(kāi)源IaaS背后的機(jī)構(gòu)都在提供什么樣的產(chǎn)品和服務(wù)吧。Eucalyptus公司一直在維護(hù)社區(qū)版和商業(yè)版兩個(gè)不同的版本,今年8 月份剛剛發(fā)布的Eucalyptus 3企業(yè)版提供了高可用性、負(fù)載管理、RBAC(基于角色的訪問(wèn)控制)權(quán)限管理、配額管理、運(yùn)營(yíng)計(jì)費(fèi)等等在社區(qū)版中缺失的功能。與此類(lèi)似,擁有OpenNebula項(xiàng)目的C12G Labs同時(shí)在維護(hù)社區(qū)版和專(zhuān)業(yè)版兩個(gè)不同的版本,并且在今年11月發(fā)布了可供商用的OpenNebula Pro 3.0。OpenStack項(xiàng)目的后臺(tái)老板RackSpace則推出了稱為RackSpace Cloud Private Edition的服務(wù),既可以為客戶建設(shè)數(shù)據(jù)中心,又可以提供私有云解決方案。
鳩摩羅什大師所譯的《維摩詰所說(shuō)經(jīng)》中有這么一句話:“先以欲勾牽,后令入佛智。”我想,這句話完美地闡釋了開(kāi)源IaaS軟件的發(fā)展趨勢(shì)。
【作者簡(jiǎn)介】
蔣清野,Unix-Center.Net創(chuàng)始人。1999年獲得清華大學(xué)學(xué)士學(xué)位,2000年獲得美國(guó)伊里諾大學(xué)香檳分校碩士學(xué)位。曾就職于美國(guó)導(dǎo)航與控制公司、SUN等公司,目前供職于海南天涯在線網(wǎng)絡(luò)科技有限公司,負(fù)責(zé)天涯云計(jì)算平臺(tái)的規(guī)劃和實(shí)施。蔣清野的個(gè)人博客地址為http://www.qyjohn.net/
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。