摘 要: 使用Eucalyptus作為私有云的實(shí)現(xiàn)平臺,,并利用KVM制作VM鏡像實(shí)例,,搭建了一個適合實(shí)驗室資源管理控制的實(shí)驗云計算平臺。
關(guān)鍵詞: 實(shí)驗云,;虛擬化,;鏡像實(shí)例
目前實(shí)驗室管理中面臨著大量的用戶系統(tǒng)需求和設(shè)備需求。這些需求包括:日常的教學(xué)工作需求,、學(xué)生實(shí)訓(xùn)的需求,,老師對科研和實(shí)驗的需求,實(shí)驗室部署各種管理系統(tǒng)(如設(shè)備資產(chǎn)管理系統(tǒng),、排課系統(tǒng),、開放實(shí)驗室預(yù)約系統(tǒng)等)的需求等。如何將有限的實(shí)驗設(shè)備資源進(jìn)行最大化的,、科學(xué)合理的分配利用是當(dāng)前急需解決的一項重要課題,。
隨著云計算的快速發(fā)展,相關(guān)云技術(shù)及產(chǎn)品的廣泛應(yīng)用,,可以借助云計算的開源產(chǎn)品搭建實(shí)驗室(實(shí)訓(xùn)中心)的私有云平臺,,幫助解決實(shí)驗資源日益增長的需求問題。利用云計算的虛擬化技術(shù)可以構(gòu)建多樣化的虛擬資源,,將個人桌面系統(tǒng),、服務(wù)器系統(tǒng)等操作系統(tǒng)及設(shè)備進(jìn)行虛擬化和實(shí)例化,為不同的用戶提供彈性計算系統(tǒng)架構(gòu)和設(shè)備,,滿足用戶的需求,。
當(dāng)前利用開源云計算產(chǎn)品搭建專用的私有云計算平臺是一個研究熱點(diǎn)。目前已有的開源云計算產(chǎn)品有 Eucalyptus,、OpenNebula,、Nimbus、ECP和OpenStack ,。參考文獻(xiàn)[1-2]對這些產(chǎn)品的VM管理,、集群管理,、狀態(tài)監(jiān)控、資源調(diào)度和網(wǎng)絡(luò)管理等方面的進(jìn)行比較分析[1-2],,從技術(shù)和應(yīng)用范圍來看Eucalyptus開源產(chǎn)品比較適合用于構(gòu)建所需的實(shí)驗云計算平臺,。本文采用Eucalyptus作為實(shí)驗云的實(shí)現(xiàn)平臺,并利用KVM技術(shù)進(jìn)行VM管理,,搭建了一個適合實(shí)驗室(實(shí)訓(xùn)中心)資源管理控制的私有云計算平臺,。
1 相關(guān)技術(shù)
1.1 Eucalyptus
Eucalyptus是由Nurmi D 等人開發(fā)的一個開源的云計算基礎(chǔ)設(shè)施服務(wù)(IaaS),與Amazon EC2的服務(wù)接口兼容[3]。Eucalyptus采用模塊化的設(shè)計,,由節(jié)點(diǎn)控制器(Node Controller),、集群控制器(Cluster Controller)、云控制器(Cloud Controller),、存儲控制器(Storage Controller)和Walrus組成,。這些組件可以進(jìn)行替換和升級,具有容易擴(kuò)展,、安裝和維護(hù) 的特點(diǎn),。Eucalyptus能夠工作在Linux/Ubuntu,Red Hat Enterprise Linux,CentOS等多種操作系統(tǒng)上,并且支持VMware, Xen和KVM hypervisors等虛擬化技術(shù),幫助用戶搭建所需的云基礎(chǔ)設(shè)施平臺[4-5],。
1.2 KVM虛擬化
KVM(Kernel-based Virtual Machine)是由以色列的一個開源組織Qumranet所開發(fā),,是一種開源的系統(tǒng)虛擬化模塊[6]。從LinuxV2.6.20版起KVM內(nèi)嵌在Linux內(nèi)核中,,將 Linux 主機(jī)變成一個虛擬機(jī)監(jiān)視器,,使它擁有本地虛擬化能力,能夠方便地使用Linux內(nèi)核提供的內(nèi)存管理,、多處理器支持等功能,,易于實(shí)現(xiàn)。KVM是采用基于x86硬件虛擬化技術(shù),,可以運(yùn)行在Intel VT-x和AMD SVM所支持的設(shè)備上[7],。KVM的虛擬化實(shí)現(xiàn)是采用宿主機(jī)(Host based)模型,并提供了一個虛擬化框架,需要QEMU作為平臺虛擬化的協(xié)助工具,,能夠?qū)μ幚砥?、顯卡、磁盤,、網(wǎng)絡(luò)設(shè)備等外設(shè)虛擬成完整的計算機(jī)系統(tǒng),。另外,KVM還需使用Libvirt管理虛擬機(jī),、API庫、deamon和virsh命令行工具協(xié)同工作,,才能完全實(shí)現(xiàn)云計算平臺的虛擬化工作[8-9],。
2 實(shí)驗云拓?fù)湓O(shè)計
在Eucalyptus的體系結(jié)構(gòu)設(shè)計中,云控制器是整個Eucalyptus系統(tǒng)的核心,負(fù)責(zé)高層次的資源調(diào)度,。Walrus是一個類似于Amazon S3的存儲服務(wù),,用于存儲虛擬機(jī)映像和用戶數(shù)據(jù)。集群控制器是一個集群的前端,,負(fù)責(zé)協(xié)調(diào)一個集群內(nèi)的計算資源,,并且管理集群內(nèi)的網(wǎng)絡(luò)流量。存儲控制器是一個與Amazon EBS類似的存儲塊設(shè)備,,可以用來存儲業(yè)務(wù)數(shù)據(jù),。節(jié)點(diǎn)控制器是最終的計算節(jié)點(diǎn),通過調(diào)用操作系統(tǒng)層的虛擬化技術(shù)來啟動和關(guān)閉虛擬機(jī)[10],。在同一個集群內(nèi)的所有計算節(jié)點(diǎn)必須在同一個子網(wǎng)內(nèi),。在一個集群內(nèi)通常需要部署一臺存儲服務(wù)器,為該集群內(nèi)的計算節(jié)點(diǎn)提供數(shù)據(jù)存儲服務(wù),。
根據(jù)Eucalyptus的體系設(shè)計結(jié)構(gòu)和實(shí)驗(實(shí)訓(xùn))中心現(xiàn)有的設(shè)備資源,,將云控制器和Walrus部署到一臺服務(wù)器上作為實(shí)驗云的控制中心;集群控制器和存儲器安裝到一臺服務(wù)器上作為實(shí)驗云的集群管理中心,;每個接入節(jié)點(diǎn)由4臺高性能工作站組成,,并在每臺工作站上實(shí)施KVM虛擬化,安裝需要的多個VM(Virtual Machines)系統(tǒng),。實(shí)驗(實(shí)訓(xùn))中心的任何一臺PC都可以作為客戶端訪問實(shí)驗云上的虛擬實(shí)例,,進(jìn)行相關(guān)的業(yè)務(wù)操作。實(shí)驗云的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示,,云的所有組成部分均部署在同一個局域網(wǎng)中,,便于實(shí)驗員對云平臺的管理維護(hù)和安全控制。
3 實(shí)驗云實(shí)現(xiàn)
3.1 Eucalyptus平臺搭建
根據(jù)實(shí)驗云網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)計,,進(jìn)行網(wǎng)絡(luò)IP地址規(guī)劃,,合理分配設(shè)備需要的IP地址,具體的分配如表1所示,。
?。?)系統(tǒng)安裝
為控制中心、集群管理和接入節(jié)點(diǎn)的服務(wù)器安裝Ubunutu Server系統(tǒng),。在控制中心的服務(wù)器上安裝云控制器和Walrus模塊,,集群管理的服務(wù)器上安裝cluster controller和strorage controller模塊。每臺接入節(jié)點(diǎn)的工作站除了安裝Node節(jié)點(diǎn)模塊外,,還需安裝bridge-util,、kvm和openssh-server3個額外的軟件包。bridge-util用于建立網(wǎng)橋,,kvm用于VM管理,,openssh-server為Node提供ssh服務(wù),。
在安裝的過程中需要設(shè)置好云控制器的主機(jī)名稱、虛擬機(jī)內(nèi)網(wǎng)模式,、網(wǎng)段,、子網(wǎng)掩碼和DNS以及集群管理的cluster name等參數(shù)內(nèi)容。在Node系統(tǒng)中需要配置以太網(wǎng)接口為橋接模式,,所有的VM系統(tǒng)的虛擬網(wǎng)絡(luò)接口將接入到這個橋上,,使用“sudo passwd <password>”命令設(shè)置臨時的Eucalyptus用戶密碼方便接入節(jié)點(diǎn)與控制中心建立連接。
(2)系統(tǒng)模塊注冊
在控制中心的云控制器中需要對Walrus,、Cluster Controller和Strorage Controller進(jìn)行注冊,,實(shí)現(xiàn)云控制器與各個模塊的連接。具體實(shí)現(xiàn)命令如下,。
euca_conf --register-walrus 10.34.35.10
euca_conf --register-cluster ClusterAIBLab 10.34.35.11
euca_conf --register-sccluster 10.34.35.11
注冊成功后系統(tǒng)會自動啟動這3個模塊的服務(wù),。然后需要注冊Node節(jié)點(diǎn),Node用于運(yùn)行VM實(shí)例,。先配置云控制器與Node的時間同步,,利用“sudo -u eucalyptus ssh-copy-id -i,eucalyptus/.ssh/id_rsa.pub,,[email protected]”命令將ssh公鑰傳輸?shù)礁鱾€Node中,。在Node中啟動Eucalyptus-nc服務(wù)后,控制中心的云控制器執(zhí)行“euca_conf --register-nodes 10.34.35.12”命令,,依次找到云拓?fù)渲?個Node節(jié)點(diǎn)的計算機(jī)并進(jìn)行注冊,。
(3)系統(tǒng)配置
在控制中心的服務(wù)器瀏覽器中輸入“https://10.34.35.10:8443”地址,,進(jìn)入云控制器平臺下載(x509)安全證書,,運(yùn)行Eucalyptus系統(tǒng)。第一次登錄時利用系統(tǒng)提供的默認(rèn)用戶名和密碼(均為admin)進(jìn)入系統(tǒng),,更改管理員密碼,、設(shè)置管理員的電子郵件地址、確認(rèn)云控制器主機(jī)的IP和查看各個注冊模塊,。為了便于用戶管理云平臺的虛擬機(jī)映像文件(EMI)資源,,需要在服務(wù)器上安裝EC2 API and AMI管理工具。利用AMI管理工具上載Eucalyptus系統(tǒng)默認(rèn)的Linux系統(tǒng)鏡像系統(tǒng)實(shí)例和綁定AMI-ID等,,借助EC2工具進(jìn)行虛擬機(jī)映像實(shí)例管理,。所有連接到控制中心的客戶端必須下載安裝(x509)安全證書才能使用實(shí)驗云的各種資源。
3.2 VM鏡像制作
完成Eucalyptus實(shí)驗云平臺的搭建工作后需要向云平臺添加鏡像系統(tǒng),,通過鏡像的實(shí)例化(系統(tǒng)虛擬化)為用戶提供科研服務(wù)和實(shí)驗服務(wù),。利用Win2008R2的ISO安裝文件在KVM中創(chuàng)建接入節(jié)點(diǎn)需要的VM,具體實(shí)現(xiàn)步驟如下,。
(1)創(chuàng)建虛擬系統(tǒng)
在接入節(jié)點(diǎn)的系統(tǒng)下創(chuàng)建存放鏡像文件需要的目錄,,命名為virtualsys,。使用“$dd if=/dev/zero of=~/virtualsys/ windows.win2008.img bs=1M count=20000”命令創(chuàng)建一個文件大小為20 GB的Windows Server 2008虛擬機(jī)磁盤文件。執(zhí)行“qemu-kvm -drive file= ~/virtualsys//windows.win2008.img,,If=scsi,boot=on -cdrom Win2008R2.iso -m 1024 -boot d”命令進(jìn)行系統(tǒng)安裝,Win2008在qume的環(huán)境下完成安裝后進(jìn)行遠(yuǎn)程桌面配置和建立遠(yuǎn)程桌面用戶,。
?。?)創(chuàng)建ramdisk文件
安裝syslinux并在/usr/lib/syslinux目錄下找到memdisk文件,將其復(fù)制到~/virtualsys目錄下,。利用“$dd if=/dev/zero of=~/virtualsys/win28-boot.img bs=512 count=2880”命令創(chuàng)建floppy鏡像文件win28-boot.img,。重啟Win2008虛擬機(jī),將floppy加載到虛擬機(jī)中,。進(jìn)入Windows Server 2008系統(tǒng),,為C盤下的boot.ini文件添加Windows系統(tǒng)啟動信息,然后將ntldr,、ntdetect.com,、sym_hi.sys和boot.ini文件復(fù)制到已經(jīng)格式化的floppy中。復(fù)制后將floppy中的sym_hi.sys改名為Ntbootdd.sys,,完成Win2008虛擬機(jī)啟動引導(dǎo)盤制作,。
(3)上傳虛擬鏡像
memdisk對應(yīng)kernel,,win28-boot.img對應(yīng)ramdisk,,windows.win2008.img對應(yīng)rootfs,分別將這3個文件進(jìn)行上傳,,并同時利用“euca-bundle-image -i”命令將rootfs與kernel和ramdisk綁定,,完成接入節(jié)點(diǎn)的VM創(chuàng)建。
3.3 啟動VM實(shí)例
鏡像上傳后,,在云控制中使用“euca-describe-images”命令查看虛擬機(jī)是否已經(jīng)成功,。上傳后進(jìn)行鏡像實(shí)例注冊,開放22端口并以規(guī)劃好的VM地址段分配IP,,系統(tǒng)會為每個鏡像實(shí)例分配一個“emi-ID”編號,,通過執(zhí)行“euca-run-instances -t c1.large emi-ID”命令,依次啟動Eucalyptus中的鏡像實(shí)例,。
在云控制器中執(zhí)行“watch -n5 euca-describe-instances”命令查看虛擬機(jī)實(shí)例的運(yùn)行情況,,如圖2所示。為了便于對VM的管理,,在接入節(jié)點(diǎn)上安裝了KVM的圖形管理工具軟件,,如圖3所示。根據(jù)虛擬系統(tǒng)管理軟件可以幫助實(shí)驗員查看虛擬實(shí)例的運(yùn)行情況,,掌握實(shí)例對資源的占用情況,,便于動態(tài)調(diào)節(jié)實(shí)例,。
實(shí)驗(實(shí)訓(xùn))中心的客戶端可以使用“$ rdesktop -u username -p passwd 172.16.1.3 -f”命令遠(yuǎn)程登錄IP地址為172.16.1.3的接入節(jié)點(diǎn)上的一臺運(yùn)行中的VM系統(tǒng)。
3.4 防火墻配置
為保證實(shí)驗(實(shí)訓(xùn))中心的客戶端與實(shí)驗云上的VM能夠互相訪問,,需要對Eucalyptus的包過濾系統(tǒng)進(jìn)行設(shè)置,。
在iptables包過濾防火墻中先清除原則的規(guī)劃,然后添加允許INPUT和FORWARD鏈規(guī)則,,用于向內(nèi)和向外轉(zhuǎn)發(fā)數(shù)據(jù)包,,并設(shè)置172.16.1.3~254的網(wǎng)段都能通過控制中心的eth0(連接外網(wǎng))接口向外發(fā)送數(shù)據(jù)包。另外,,還需要設(shè)置校園網(wǎng)用戶對實(shí)驗云上的VM服務(wù)器的訪問,,以訪問IP為172.16.1.3的網(wǎng)站服務(wù)器為例,在iptables中添加如下命令:
iptables -t nat -a PREROUTING -i eth0 -p tcp -m tcp -dport 22 -j DNAT -to-destination 172.16.1.3:22
iptables -t nat -a PREROUTING -i eth0 -p tcp -m tcp -dport 8089 -j DNAT -to-destination 172.16.1.3:8089
執(zhí)行以上兩條命令后,,校園網(wǎng)的客戶端用戶可以訪問到實(shí)驗(實(shí)訓(xùn))中心的網(wǎng)站服務(wù)器實(shí)例,。
本文通過對開源云計算產(chǎn)品的研究,選擇Eucalyptus作為實(shí)驗云計算的實(shí)現(xiàn)平臺,。利用Eucalyptus的系統(tǒng)架構(gòu)設(shè)計了實(shí)驗云的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),,在各個拓?fù)涔?jié)點(diǎn)上安裝所需的操作系統(tǒng),注冊各個組成模塊和配置網(wǎng)絡(luò)參數(shù),;然后利用KVM虛擬化技術(shù)進(jìn)行實(shí)驗云的鏡像系統(tǒng)制作,、上傳、綁定和啟動實(shí)例,;最后配置云平臺的iptables包過濾防火墻,,實(shí)現(xiàn)校園網(wǎng)用戶對實(shí)驗云上運(yùn)行實(shí)例的訪問,完成實(shí)驗云計算平臺的搭建,。未來的研究重點(diǎn)是利用已搭建好的實(shí)驗云平臺設(shè)計開發(fā)實(shí)驗室虛擬桌面系統(tǒng)和建設(shè)虛擬實(shí)驗室,,拓展實(shí)驗云的服務(wù)提供能力,更好地解決校園用戶與實(shí)驗室資源的供需問題,。
參考文獻(xiàn)
[1] 林利,石文昌.構(gòu)建云計算平臺的開源軟件綜述[J].計算機(jī)科學(xué),2012,39(11):1-7.
[2] 陳吉榮.構(gòu)建私有云計算平臺的EUCALYPTUS架構(gòu)分析[J].電腦知識與技術(shù),2010,6(15):3973-3975.
[3] 崔巍, 李益發(fā), 斯雪明.基于Eucalyptus的基礎(chǔ)設(shè)施即服務(wù)云框架協(xié)議設(shè)計[J].電子與信息學(xué)報,2012,34(7):1748-1754.
[4] 陳仲.基于EUCALYPTUS的虛擬云改進(jìn)研究[J].現(xiàn)代情報,2011,31(5):152-157.
[5] 方薇.Eucalyptus開源框架下云平臺的構(gòu)建與性能分析[J].計算機(jī)系統(tǒng)應(yīng)用,2012,12(6):1-5.
[6] 崔澤永.基于KVM的虛擬化研究及應(yīng)用[J].計算機(jī)技術(shù)與發(fā)展,2011,21(6):108-111.
[7] 黃煜.KVM虛擬化技術(shù)中處理器隔離的實(shí)現(xiàn)[J].計算機(jī)系統(tǒng)應(yīng)用,2012,12(1):179-182.
[8] 姚華超,王振宇.基于KVM_QEMU與Libvirt的虛擬化資源池構(gòu)建[J].計算機(jī)與現(xiàn)代化,2013(7):26-33.
[9] 李斌.基于KVM的服務(wù)器虛擬化環(huán)境實(shí)現(xiàn)[J].洛陽理工學(xué)院學(xué)報(自然科學(xué)版),2013,23(2):66-69.
[10]張帆.基于Eucalyptus構(gòu)建私有云計算平臺[J].電信科 學(xué),2011(11):57-61.