四大開源IaaS軟件云中較力
來(lái)源:CNW
蔣清野
摘要: 本文主要從架構(gòu),、功能,、社區(qū)和商業(yè)的角度來(lái)對(duì)OpenNebula,、Nimbus,、OpenStack和Eucalyptus這四個(gè)開源IaaS軟件進(jìn)行比較。
Abstract:
Key words :
當(dāng)前市場(chǎng)上可供選擇的開源IaaS軟件主要有四種,,分別是OpenNebula,、Nimbus、OpenStack和Eucalyptus,。初看上去,,這四大開源軟件各有千秋,難分伯仲,,以至于許多企業(yè)用戶在開源軟件選型時(shí)一時(shí)難以抉擇,。因此,筆者特意從架構(gòu),、功能,、社區(qū)和商業(yè)的角度來(lái)對(duì)OpenNebula、Nimbus,、OpenStack和Eucalyptus這四個(gè)開源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è)類別,一個(gè)是IaaS服務(wù)的使用者,,即終端用戶,,另一個(gè)是IaaS服務(wù)的提供者,也就是云管理員,。對(duì)終端用戶來(lái)說(shuō),,他所關(guān)心的是能不能夠通過(guò)這個(gè)系統(tǒng)方便地申請(qǐng)、創(chuàng)建,、啟動(dòng),、休眠、喚醒,、關(guān)閉,、銷毀虛擬機(jī),以及方便地監(jiān)控自己賬戶下所有虛擬機(jī)的處理器,、內(nèi)存,、磁盤和網(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ū)?使用開源軟件,,出了問(wèn)題就只能夠找社區(qū)了,。因此,我們需要專門討論一下與這幾個(gè)開源軟件所關(guān)聯(lián)的社區(qū)的規(guī)模,、活躍度和參與度。
此外,開源軟件的商業(yè)模式問(wèn)題也值得關(guān)注,。這個(gè)問(wèn)題又可以分為兩個(gè)方面,,一方面是開源軟件開發(fā)者如何盈利,另一方面是開源軟件使用者如何獲得專業(yè)支持和服務(wù),。對(duì)于基礎(chǔ)架構(gòu)服務(wù)這種關(guān)鍵性應(yīng)用來(lái)說(shuō),,在軟件選型過(guò)程當(dāng)中如果不考慮開源軟件的商業(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或者是磁盤陣列等其他存儲(chǔ)設(shè)備,。我們創(chuàng)建虛擬機(jī)的時(shí)候,ONED首先通過(guò)任務(wù)調(diào)度器確定將要運(yùn)行該虛擬機(jī)的計(jì)算節(jié)點(diǎn),,然后將相應(yīng)的磁盤映像文件拷貝到計(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)單地使用類似于NFS的共享文件系統(tǒng)方式將同一個(gè)目錄掛載到前端服務(wù)器和所有的計(jì)算節(jié)點(diǎn)上,。通過(guò)使用共享文件系統(tǒng),可以縮短部署虛擬機(jī)所需要的時(shí)間,,還可以方便地實(shí)現(xiàn)虛擬機(jī)的在線遷移,。使用共享文件系統(tǒng)的時(shí)候需要注意的是,如果某些虛擬機(jī)頻繁地進(jìn)行磁盤IO操作的話,,部署在同一共享文件系統(tǒng)上的所有虛擬機(jī)都會(huì)受到影響,。在這種情況下,,可以考慮將磁盤I/O密集型虛擬機(jī)的磁盤映像文件緩存在計(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)單的本地硬盤或者是負(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)于云硬盤,。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è)類似于S3的Cumulus存儲(chǔ)服務(wù),,Eucalyptus則進(jìn)一步將云硬盤和云存儲(chǔ)分開,。從架構(gòu)上來(lái)看,Eucalyptus的架構(gòu)和Amazon 的EC2/S3服務(wù)最為接近,。
類似于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)讀寫數(shù)據(jù);對(duì)于計(jì)算節(jié)點(diǎn)來(lái)講,,它既可以通過(guò)PUT和GET來(lái)讀寫數(shù)據(jù),還可以直接用文件I/O的模式來(lái)讀寫數(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)性組件,。
附表:四大開源IaaS軟件在功能上的差異
首先,,我們從終端用戶的角度來(lái)看四大開源IaaS軟件系統(tǒng)是不是有一個(gè)方便好用的門戶或者是客戶端去進(jìn)行各種各樣的操作。OpenNebula提供了基于瀏覽器的用戶門戶,,Nimbus則提供了一個(gè)基于Java的桌面客戶端,,Eucalyptus和OpenStack則需要利用命令行工具或者是第三方解決方案。
在云主機(jī),、云硬盤和云存儲(chǔ)著三類基礎(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ù)和用戶賬單等方面,,四大開源軟件基本還是空白。
由于缺少存儲(chǔ)方面的某些組件,,OpenNebula和Nimbus所提供的服務(wù)并不完全兼容于Amazon EC2/S3,,Eucalyptus和Nimbus則是和Amazon EC2/S3完全兼容的。
其次,,我們從云管理員的角度去考察這四種開源軟件是不是有一個(gè)方便好用的門戶或者是客戶端去進(jìn)行各種操作,。只有OpenNebula通過(guò)SunStone提供了基本上能夠用的管理門戶,Nimbus干脆就沒(méi)有管理員門戶,Eucalyptus有一個(gè)管理員門戶但是能夠做的事情非常有限,,OpenStack有一個(gè)正在開發(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)存、磁盤,、網(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)商賣出去的內(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)單易用的界面,,只需要選擇自己需要的軟,、硬件配置即可立即開通自己所需要的計(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)看,,開放源代碼的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ì)開源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 月之后開始呈現(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)目開始之日起就高于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)理,,立即開始了一系列的廣告、公關(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)開始呈現(xiàn)下滑的趨勢(shì),。Mark Atwood入職之后,側(cè)重于Eucalyptus企業(yè)版的宣傳和推廣,,在開發(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)和功能的綜合比較里面提到,開源IaaS解決方案要進(jìn)入生產(chǎn)環(huán)境,,還有很長(zhǎng)的路要走,。那么,開源IaaS軟件將來(lái)會(huì)朝什么方向去發(fā)展,,投資開發(fā)開源IaaS軟件的機(jī)構(gòu)的商業(yè)模式又是怎樣的呢?
讓我們看一看這幾個(gè)開源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ū)版中缺失的功能,。與此類似,,擁有OpenNebula項(xiàng)目的C12G Labs同時(shí)在維護(hù)社區(qū)版和專業(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)》中有這么一句話:“先以欲勾牽,,后令入佛智。”我想,,這句話完美地闡釋了開源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)載。