張 帆 ,李 磊 ,楊成胡 ,陳麗珍
(1.華南理工大學(xué)電子與信息學(xué)院 廣州 510641;2.廣東省電子技術(shù)研究所 廣州 510631)
云計(jì)算是近年來發(fā)展起來的一個(gè)重要的IT技術(shù),它將計(jì)算任務(wù)分布在多臺計(jì)算機(jī)構(gòu)成的資源池上,使用戶能夠按需獲取計(jì)算能力、存儲空間和信息服務(wù)[1]。但是由于不同區(qū)域的資源池存在一定的異構(gòu)性,用戶使用時(shí)需要比較專業(yè)的計(jì)算機(jī)知識,以克服異構(gòu)性帶來的兼容、協(xié)同等問題。此外,公有云昂貴的服務(wù)價(jià)格和對硬件、軟件的較高要求都不適宜本地中小型集群用戶使用。
因此,為方便用戶進(jìn)行大規(guī)模的應(yīng)用開發(fā)和并行處理,彈性計(jì)算系統(tǒng)在為用戶提供大量計(jì)算資源時(shí),應(yīng)該提供一個(gè)硬件資源、系統(tǒng)架構(gòu)、軟件程序均一致的運(yùn)行環(huán)境,這樣也利于系統(tǒng)進(jìn)行性能分析和調(diào)整資源策略[2]。特別地,對于科研或者項(xiàng)目開發(fā)團(tuán)隊(duì)而言,在長期的項(xiàng)目過程中,需要有統(tǒng)一、穩(wěn)定的開發(fā)環(huán)境以滿足開發(fā)、整合、測試等不同階段的需求[3]。
鑒于上述提到公有云和異構(gòu)化的一些問題,本文的出發(fā)點(diǎn)在于:
·如何構(gòu)建一個(gè)適合本地環(huán)境的私有云;
·針對實(shí)驗(yàn)或者開發(fā)環(huán)境構(gòu)建一個(gè)云計(jì)算環(huán)境,使實(shí)驗(yàn)室可以對計(jì)算資源同構(gòu)化的應(yīng)用及其性能進(jìn)行評估和探索。
在實(shí)際實(shí)驗(yàn)中,本文基于Eucalyptus開源軟件包,實(shí)現(xiàn)了在科研實(shí)驗(yàn)室環(huán)境中搭建私有云計(jì)算平臺、制作開發(fā)環(huán)境的鏡像,既使得資源能夠彈性分配,也使得計(jì)算資源同構(gòu)化,提高開發(fā)效率。
Eucalyptus是由加州大學(xué)圣芭芭拉分校建立的開源項(xiàng)目[4],旨在幫助用戶完成對各種虛擬設(shè)備、虛擬機(jī)實(shí)例的全局性掌控,對整個(gè)集群的計(jì)算能力進(jìn)行動態(tài)配置。它是Amazon EC2的開源實(shí)現(xiàn),并采用模塊化設(shè)計(jì),提供了一個(gè)開放的、可擴(kuò)展的研究和實(shí)驗(yàn)平臺,主要面向研究社區(qū)[5]。利用Eucalyptus不僅可以提供IaaS服務(wù),如Linux和Windows平臺服務(wù);同時(shí)利用鏡像服務(wù)資源可以很便捷地提供多種平臺的PaaS服務(wù),如實(shí)驗(yàn)室計(jì)算仿真資源平臺等。Eucalyptus云分層拓?fù)鋄6]如圖1所示。
基于Eucalyptus開源框架,本文所搭建的私有云計(jì)算平臺由客戶端、控制器及計(jì)算節(jié)點(diǎn)3個(gè)角色組成,其中客戶端可由實(shí)驗(yàn)室局域網(wǎng)段中的任何一臺物理機(jī)構(gòu)建;控制器由云控制器(CLC)、集群控制器(CC)、存儲控制器(SC)及Walrus組成[7],安裝在同一臺物理機(jī)上;計(jì)算節(jié)點(diǎn)即為節(jié)點(diǎn)控制器(NC),由支持VT技術(shù)的10臺物理機(jī)組成,主要用于運(yùn)行虛擬實(shí)例,提供計(jì)算服務(wù)。
考慮到本私有云主要應(yīng)用在科研和中小型企業(yè)應(yīng)用環(huán)境下,云的各個(gè)組成部分均位于同一局域網(wǎng)內(nèi),通過交換機(jī)完成它們的互聯(lián),同時(shí)局域網(wǎng)內(nèi)的任何一臺用戶物理機(jī)均可以直接訪問云或使用云計(jì)算資源。本文構(gòu)造的云平臺框架如圖2所示。
目前Eucalyptus可以采用多種方式進(jìn)行構(gòu)建,支持CentOS、Debian等操作系統(tǒng)??紤]到構(gòu)建的便捷性,本文采用 UEC(ubuntu enterprise cloud)系統(tǒng)[8]進(jìn)行實(shí)驗(yàn),使用的Ubuntu Server版本為 11.04,Eucalyptus版本為 2.0.2,部署流程如圖3所示。
在部署過程中,首先需要保證控制器與各計(jì)算節(jié)點(diǎn)間時(shí)間同步,才能完成后續(xù)的注冊工作和云各個(gè)部分工作的時(shí)間一致性。因此可將控制器作為NTP(時(shí)間同步協(xié)議)的服務(wù)器,然后修改計(jì)算節(jié)點(diǎn)的NTP配置文件,使之以控制器為時(shí)間同步服務(wù)器。將NC節(jié)點(diǎn)端的操作指令 “zf@NC:~$sudo vi/etc/NTP.conf”修改為“server 218.192.168.***”。控制器的IP地址根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境填寫。
在完成時(shí)間同步的修改后,CLC通過 ssh(secure shell)向NC節(jié)點(diǎn)傳輸協(xié)議密鑰,同時(shí)在CLC使用Eucalyptus節(jié)點(diǎn)發(fā)現(xiàn)命令,即可完成NC節(jié)點(diǎn)向云控制器的注冊:
zf@CC:~$sudo euca_conf--discover-nodes
當(dāng)云完成了云控制節(jié)點(diǎn)和至少一個(gè)計(jì)算節(jié)點(diǎn)的注冊后,即完成了初步部署工作,此后客戶端可登錄該控制節(jié)點(diǎn)申請、管理計(jì)算資源[9]。圖4展示了客戶端申請計(jì)算資源并連接、使用的情況。
當(dāng) Eucalyptus具備了 CLC、CC、SC、Walrus以及至少一個(gè)NC后,管理員可以向云注冊服務(wù)平臺定制鏡像,使得云可以向用戶提供實(shí)例服務(wù)。定制鏡像流程如圖5所示。
在定制過程中,創(chuàng)建虛擬磁盤及安裝啟動虛擬機(jī)的操作與Linux下運(yùn)行VM一致,均采用KVM虛擬機(jī)實(shí)現(xiàn)[10]。通過圖5中的第4步,為鏡像定制軟件和服務(wù),即根據(jù)實(shí)驗(yàn)室的開發(fā)需要,在虛擬機(jī)上安裝相應(yīng)的開發(fā)環(huán)境或開啟相關(guān)服務(wù)。這樣制作得到的鏡像被用戶實(shí)例化后,也可以運(yùn)行定制的開發(fā)軟件和服務(wù)[11],即為用戶提供特殊的平臺服務(wù)。
比如制作Linux鏡像時(shí),安裝并開啟了vnc遠(yuǎn)程控制服務(wù):
$sudo apt-get install vnc4server
$sudo/etc/init.d/vnc4server start
當(dāng)用戶申請?jiān)撎摂M鏡像實(shí)例化后,該實(shí)例也隨即開啟vnc服務(wù),這樣,用戶就可以使用vnc遠(yuǎn)程控制該實(shí)例。圖6顯示了客戶端使用vnc登錄實(shí)例的情況。
同樣地,在制作Windows鏡像時(shí)若打開了RDP服務(wù),用戶則可以通過遠(yuǎn)程可視化登錄使用Windows實(shí)例。并且,針對實(shí)驗(yàn)室開發(fā)環(huán)境,可在制作鏡像時(shí)安裝適當(dāng)?shù)拈_發(fā)環(huán)境,如 Java、QT、SQL Server等[12],用戶在登錄云時(shí)便可使用鏡像提供的軟件服務(wù),即PaaS服務(wù),使得用戶通過云便可以直接使用完善的軟件平臺服務(wù),避免了用戶逐一安裝客戶機(jī)及相關(guān)軟件的繁瑣工作,提高了工作效率。本文在定制鏡像時(shí)添加了MATLAB軟件,用戶可直接登錄云使用該軟件平臺服務(wù),如圖7所示,避免了用戶在每個(gè)機(jī)器上都安裝本地MATLAB程序;并且可同時(shí)啟動多個(gè)實(shí)例運(yùn)行MATLAB程序進(jìn)行仿真,提高了工作和計(jì)算的效率,縮短了仿真時(shí)間。
以下從時(shí)間、硬件、成本、擴(kuò)展性4個(gè)方面分析本文構(gòu)建的私有云提供同構(gòu)化計(jì)算資源的性能,并與傳統(tǒng)的單實(shí)體機(jī)進(jìn)行對比。
時(shí)間對比:使虛擬實(shí)例的配置與未接入云平臺時(shí)客戶機(jī)的硬件資源配置相一致,然后對兩個(gè)MATLAB仿真任務(wù)在不同平臺上運(yùn)行所需的時(shí)間進(jìn)行對比,見表1。從表1可以看出,由于云可同時(shí)啟用多個(gè)實(shí)例完成仿真,相比單一物理機(jī)的仿真,仿真時(shí)間縮短,其運(yùn)算效率顯著提高。
硬件對比:加入云平臺后,可免去MATLAB對客戶端硬件的要求,有利于低配置客戶參與工作,也可提高客戶端本地資源自由度。但是,在定制的鏡像中,若指定使用硬盤容量為20 GB,除去Windows系統(tǒng)及MATLAB程序外,VM實(shí)例中用戶可用空間為10 GB,此時(shí),在NC端,一個(gè)虛擬硬盤可用資源只有大約50%。
成本對比:私有云除了性能高效外,還可降低成本,提高投入產(chǎn)出比。在本文的測試中,1個(gè)計(jì)算節(jié)點(diǎn)運(yùn)行5個(gè)實(shí)例,每個(gè)實(shí)例的使用概率為50%~80%,得到的“成本節(jié)省百分比-計(jì)算節(jié)點(diǎn)數(shù)”分析如圖8所示。如以1個(gè)計(jì)算節(jié)點(diǎn)、50%的使用概率為例,則實(shí)際使用的實(shí)例數(shù)為2.5個(gè),因此節(jié)省的機(jī)器數(shù)、能源、占地等成本為60%。由圖8分析可知,隨著計(jì)算節(jié)點(diǎn)數(shù)的增加,應(yīng)用私有云節(jié)省的成本也增加。該特點(diǎn)在用于教學(xué)或者科研實(shí)驗(yàn)室時(shí)表現(xiàn)突出,以60個(gè)人的實(shí)驗(yàn)室為例,僅需13臺計(jì)算機(jī)便可完成整個(gè)實(shí)驗(yàn)室資源的提供。
表1 MATLAB任務(wù)在單實(shí)體機(jī)與私有云平臺上運(yùn)行的時(shí)間
擴(kuò)展性對比:在應(yīng)用該私有云之前,若要升級或擴(kuò)展MATLAB,則每個(gè)客戶機(jī)都要執(zhí)行相關(guān)操作,時(shí)間和硬件都有所要求。而在使用私有云計(jì)算平臺后,升級和擴(kuò)展工作只需在某實(shí)例上執(zhí)行,并重新上傳和注冊kernel、ramdisk等信息即可提供新版本給用戶,時(shí)間或者是硬件上都具有獨(dú)特的優(yōu)越性,避免了用戶維護(hù)軟件環(huán)境和重構(gòu)軟件環(huán)境的繁瑣工作。
綜上所述,私有云具有較低的成本,能在較短的時(shí)間內(nèi)完成程序開發(fā)、仿真設(shè)計(jì)等數(shù)據(jù)處理應(yīng)用部署,大大縮短了科研工作及項(xiàng)目研發(fā)周期,具有實(shí)際意義。同時(shí),接入云計(jì)算的應(yīng)用或服務(wù)可方便地通過VM鏡像進(jìn)行升級和擴(kuò)展,增加客戶端的使用效率和服務(wù)體驗(yàn)。
根據(jù)本文構(gòu)建私有云計(jì)算平臺的實(shí)踐經(jīng)驗(yàn),在此給出在搭建平臺和定制實(shí)例過程中遇到的一些常見問題和相關(guān)的解決方法。
(1)無法注冊計(jì)算節(jié)點(diǎn)問題
解決辦法:由于沒實(shí)現(xiàn)同步性規(guī)則,導(dǎo)致節(jié)點(diǎn)無法完成注冊。此時(shí)先確認(rèn)NC與CC時(shí)間同步并且NC已獲取CC的ssh公鑰;部件注冊信息不全,需要重新注冊Cluster、SC、Walrus等部件,再注冊 NC。
(2)無法用ssh連接實(shí)例問題
解決辦法:刪除.ssh文件夾下的文本內(nèi)容,重新下載數(shù)字證書并獲取Eucalyptus環(huán)境變量,重啟ssh并建立新的密鑰對進(jìn)行連接。
(3)資源空間不足問題
解決辦法:查看可用資源量,可能由于本地/計(jì)算節(jié)點(diǎn)資源均已被占用,或者是NC的ssh服務(wù)與多個(gè)客戶機(jī)在聯(lián)機(jī),工作負(fù)荷較大,此時(shí)需要等待或重啟該服務(wù)。
本文提出了基于Eucalyptus構(gòu)建私有云計(jì)算平臺的一種實(shí)踐方案,旨在為科研及中小企業(yè)項(xiàng)目研發(fā)團(tuán)隊(duì)提供彈性計(jì)算服務(wù),滿足不同用戶、不同階段的要求,同時(shí),通過在虛擬鏡像中集成各種開發(fā)環(huán)境及開發(fā)工具,可提供硬件資源、系統(tǒng)架構(gòu)、軟件程序一致的實(shí)例環(huán)境。通過分析集成MATLAB環(huán)境的虛擬實(shí)例和兩個(gè)實(shí)驗(yàn)仿真應(yīng)用,驗(yàn)證了私有云計(jì)算平臺在計(jì)算資源同構(gòu)化方面的優(yōu)良性能。
本文在實(shí)驗(yàn)過程中發(fā)現(xiàn)提供同構(gòu)化資源時(shí),VM實(shí)例的資源開銷較大,利用率還不夠高,這是進(jìn)一步優(yōu)化私有云的重要研究方向之一。
1 劉鵬.云計(jì)算.北京:電子工業(yè)出版社,2010
2 劉菲,張波.淺談中小型企業(yè)私有云計(jì)算解決方案.技術(shù)應(yīng)用,2010,7(1)
3 Ogrizovic D,Svilicic B,Tijan E.Open source science clouds.MIPRO,Opatija,Croatia,2010
4 陳吉榮.構(gòu)建私有云計(jì)算平臺的Eucalyptus架構(gòu)分析.電腦知識與技術(shù),2010,6(15):3 973~3 975
5 Eucalyptus Community.http://open.eucalyptus.com/,2011
6 Daniel Nurmi,Rich Wolski.Eucalyptus:a report on an elastic utility computing archietecture. http://open.eucalyptus.com/documents/nurmi_et_al-eucalyptus_tech_report-august_2008.pdf
7 Corderio T,Damalio D,Pereira N,et al.Open source cloud computing platforms.In:2010 Ninth International Conference on Grid and Cloud Computing(GCC 2010),2010
8 UEC Book,http://cloud.ubuntu.com/docs/uec-book/,2010
9 Nurmi D,Wolski R,Grzegorczyk C,et al.The Eucalyptus open-source cloud-computing system.In:Cloud Computing and Applications 2008(CCA08),2008
10 李剛建.基于虛擬化技術(shù)的云計(jì)算平臺架構(gòu)研究.吉林建筑工程學(xué)院學(xué)報(bào),2011,28(1):79~81
11 The Eucalyptus open-source cloud-computing system.http://open.eucalyptus.com/,2010
12 Srirama S,Batrashev O,Vainikko E.SciCloud:scientific computing on the cloud.In:2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing(CCGRID2010),2010