劉春紅,宋 耕,徐曉潔
(河南師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院,河南新鄉(xiāng)453007)
隨著我國高等教育事業(yè)的快速發(fā)展,需要建設(shè)大量的專業(yè)實(shí)驗(yàn)室以保證教學(xué)質(zhì)量。由于仿真技術(shù)的進(jìn)步,虛擬實(shí)驗(yàn)室成為一種省錢、快速的實(shí)踐教學(xué)手段。虛擬實(shí)驗(yàn)室的概念提出至今僅十余年,經(jīng)歷了仿真、虛擬現(xiàn)實(shí)等階段,目前在發(fā)達(dá)國家已經(jīng)十分普及,在國內(nèi)也越來越受到重視,國內(nèi)多數(shù)高校根據(jù)自身教學(xué)需求建立了虛擬實(shí)驗(yàn)室,但同時(shí)也帶來一些問題,例如同一院校各專業(yè)的虛擬實(shí)驗(yàn)室建設(shè)時(shí),服務(wù)器等昂貴IT設(shè)備重復(fù)購置、設(shè)備購買時(shí)一般按最大需求量購買、各專業(yè)實(shí)驗(yàn)室均需配備IT技術(shù)人員進(jìn)行維護(hù)[1-5]等,這種狀況導(dǎo)致各學(xué)校虛擬實(shí)驗(yàn)室的建設(shè)成本、維護(hù)成本高,而設(shè)備利用率低的問題日益突出。針對這些問題,本文提出了基于OpenStack云平臺的虛擬實(shí)驗(yàn)室解決方案。方案通過建設(shè)OpenStack私有云平臺,管理服務(wù)器等IT資源,全校各專業(yè)共享設(shè)備資源,云平臺統(tǒng)一管理資源。學(xué)校各專業(yè)可將其虛擬實(shí)驗(yàn)室部署在私有云上,當(dāng)實(shí)驗(yàn)用戶大量增加時(shí),分配更多的虛擬機(jī)來滿足用戶需求,在實(shí)驗(yàn)用戶減少時(shí),釋放虛擬機(jī)到資源池,實(shí)現(xiàn)“按需分配”的服務(wù),使學(xué)校的實(shí)驗(yàn)設(shè)備具有更好的資源利用率。
計(jì)算機(jī)網(wǎng)絡(luò)等課程的實(shí)驗(yàn)教學(xué)中,常需要使用交換機(jī)、路由器等核心網(wǎng)絡(luò)設(shè)備進(jìn)行實(shí)驗(yàn),使學(xué)生能動(dòng)手設(shè)計(jì)和配置一個(gè)中小型的計(jì)算機(jī)局域網(wǎng),從而掌握構(gòu)建管理網(wǎng)絡(luò)的常用技能。但核心網(wǎng)絡(luò)設(shè)備往往價(jià)格昂貴,購置需耗費(fèi)大量資金,這嚴(yán)重影響了網(wǎng)絡(luò)實(shí)驗(yàn)設(shè)備的充足提供。Packet Tracer、GNS3、Dynamips等網(wǎng)絡(luò)仿真軟件,能模仿路由交換設(shè)備的操作系統(tǒng),為網(wǎng)絡(luò)課程的學(xué)習(xí)者提供了完全真實(shí)的設(shè)備使用環(huán)境,使學(xué)習(xí)者能方便地設(shè)計(jì)、配置、分析排除網(wǎng)絡(luò)故障,并能分析數(shù)據(jù)包在網(wǎng)絡(luò)中的詳細(xì)處理過程,觀察網(wǎng)絡(luò)實(shí)時(shí)運(yùn)行情況。采用網(wǎng)絡(luò)仿真軟件可進(jìn)行真正意義的網(wǎng)絡(luò)實(shí)驗(yàn),如虛擬局域網(wǎng)的劃分,各種路由協(xié)議配置,靜態(tài)路由RIP協(xié)議等,可替代核心網(wǎng)絡(luò)設(shè)備進(jìn)行訓(xùn)練。
目前國內(nèi)大部分高校的虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室采用C/S應(yīng)用模式,構(gòu)建一個(gè)專業(yè)實(shí)驗(yàn)室,需在一個(gè)局域網(wǎng)中,配備專用的服務(wù)器并管理它。學(xué)生通過客戶端計(jì)算機(jī)登陸使用,每臺計(jì)算機(jī)都需安裝相應(yīng)的軟件,仿真的計(jì)算量由客戶端來承擔(dān),還需要定期對每個(gè)網(wǎng)絡(luò)實(shí)驗(yàn)室的計(jì)算機(jī)系統(tǒng)軟件和網(wǎng)絡(luò)仿真軟件進(jìn)行升級、更新和修補(bǔ)漏洞,定期對重要數(shù)據(jù)進(jìn)行保護(hù)。而且客戶端隨時(shí)會(huì)面臨病毒、誤操作等損害系統(tǒng)安全的威脅,系統(tǒng)維護(hù)成本高,安全性差。
然而,一個(gè)學(xué)校各個(gè)專業(yè)分別建立專業(yè)實(shí)驗(yàn)室,專業(yè)實(shí)驗(yàn)課的設(shè)備利用率不高。以筆者所在的計(jì)算機(jī)與信息工程學(xué)院開設(shè)班數(shù)最多課程《計(jì)算機(jī)網(wǎng)絡(luò)》實(shí)驗(yàn)課為例,《計(jì)算機(jī)網(wǎng)絡(luò)》是計(jì)算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程、通信工程3個(gè)專業(yè)的專業(yè)必修課,一學(xué)年中春季、秋季均開課,計(jì)算機(jī)專業(yè)有4個(gè)班,網(wǎng)絡(luò)和通信各有2個(gè)班學(xué)生學(xué)習(xí),按照培養(yǎng)大綱講授和實(shí)驗(yàn)學(xué)時(shí)3+2的比例要求計(jì)算,每周網(wǎng)絡(luò)實(shí)驗(yàn)室的使用率約20%。同樣,其它專業(yè)課程的實(shí)驗(yàn)設(shè)備利用率也很低,因此,各專業(yè)可以共享服務(wù)器等資源,提高利用率。
云計(jì)算技術(shù)通過建立服務(wù)器資源池,利用虛擬化技術(shù)實(shí)現(xiàn)資源共享,以虛擬機(jī)的形式分配資源。云平臺可動(dòng)態(tài)分配虛擬資源[6-7],根據(jù)實(shí)驗(yàn)用戶的需求變化,動(dòng)態(tài)調(diào)整虛擬機(jī)的分配策略,當(dāng)實(shí)驗(yàn)用戶大量增加時(shí),分配更多數(shù)量的虛擬機(jī)來應(yīng)對用戶需求高峰,在實(shí)驗(yàn)用戶減少時(shí),釋放虛擬機(jī)資源,回收到資源池中,以便于其它應(yīng)用申請使用。全校各專業(yè)共享實(shí)驗(yàn)設(shè)備資源,將網(wǎng)絡(luò)模擬軟件部署在云平臺,云端服務(wù)器響應(yīng)用戶服務(wù)請求,創(chuàng)建虛擬機(jī),提供請求的虛擬實(shí)驗(yàn)環(huán)境,并可以在云端搭建多種網(wǎng)絡(luò)專業(yè)實(shí)驗(yàn)環(huán)境,同時(shí)向用戶提供多種專業(yè)實(shí)驗(yàn)室。利用云計(jì)算技術(shù)的彈性服務(wù)技術(shù)特點(diǎn),云平臺根據(jù)實(shí)驗(yàn)用戶的需求變化,通過虛擬機(jī)的伸縮分配,實(shí)現(xiàn)動(dòng)態(tài)調(diào)整服務(wù)資源,使實(shí)驗(yàn)設(shè)備等資源有更好的資源利用率。同時(shí),應(yīng)用系統(tǒng)運(yùn)行在虛擬機(jī)上,通過網(wǎng)絡(luò)為客戶端提供應(yīng)用服務(wù),還可以避免系統(tǒng)中由服務(wù)器造成單點(diǎn)故障和性能瓶頸,保證整個(gè)系統(tǒng)的穩(wěn)定[4]。
將基于云計(jì)算技術(shù)的虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室設(shè)計(jì)引入網(wǎng)絡(luò)工程專業(yè)實(shí)踐教學(xué)中,一方面為學(xué)校節(jié)省了實(shí)驗(yàn)實(shí)訓(xùn)所需的資金,另一方面又可以為進(jìn)行高層次網(wǎng)絡(luò)技術(shù)學(xué)習(xí)的學(xué)生提供較理想的實(shí)踐環(huán)境,通過一系列的綜合測試和技能實(shí)驗(yàn),使學(xué)生真正掌握計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的實(shí)驗(yàn)技能,強(qiáng)化對所學(xué)知識的理解,大大改善教學(xué)效果。通過與其它軟件或設(shè)備的結(jié)合,使得網(wǎng)絡(luò)技術(shù)綜合性實(shí)驗(yàn)實(shí)訓(xùn)環(huán)境更容易構(gòu)建,為高校建立一個(gè)覆蓋各個(gè)層次教學(xué)和綜合實(shí)驗(yàn)要求的公共實(shí)驗(yàn)室提供有效的借鑒,因此,本方案具有良好的推廣價(jià)值。
云計(jì)算領(lǐng)域主流的開源云計(jì)算系統(tǒng)有Hadoop、Eucalyptus、OpenStack等。相對于前兩者,OpenStack具有更好的開放性和資源管理能力[8]。
OpenStack是一個(gè)開源軟件項(xiàng)目計(jì)劃,由美國國家航空航天局和Rackspace合作研發(fā),Apache許可證授權(quán),可以用它建立和運(yùn)行云計(jì)算管理系統(tǒng)和存儲(chǔ)架構(gòu),實(shí)現(xiàn)基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a service,IaaS)。相比于其它云計(jì)算系統(tǒng),OpenStack具有易于部署、管理,有良好的伸縮性等特點(diǎn),更符合本方案的設(shè)計(jì)要求,因此選擇OpenStack作為虛擬實(shí)驗(yàn)室的云平臺系統(tǒng)。
OpenStack 由 Nova、Swift、Glance、Keystone 和 Horizon 模塊組成,其中,Nova 是云平臺的控制器,Swift是一個(gè)大容量可擴(kuò)展的內(nèi)置冗余和容錯(cuò)機(jī)制的對象存儲(chǔ)系統(tǒng),Glance是一個(gè)虛擬機(jī)鏡像的存儲(chǔ)查詢和檢索系統(tǒng),Keystone為OpenStack云提供了認(rèn)證和管理用戶賬號和角色信息服務(wù),Horizon是提供給用戶來使用云平臺的Web前端界面。
OpenStack云平臺虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室系統(tǒng)架構(gòu)如圖1示,分為云計(jì)算平臺和基礎(chǔ)設(shè)備兩大部分。其中,基礎(chǔ)設(shè)備包含計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)設(shè)備,云平臺包括OpenStack中的Nova計(jì)算節(jié)點(diǎn)模塊、Swift云存儲(chǔ)模塊、Dashboard用戶認(rèn)證與鏡像管理模塊,在云平臺上的鏡像服務(wù)集成Packet Tracer、GNS3、Dynamips等網(wǎng)絡(luò)仿真軟件,通過鏡像可以創(chuàng)建需要的虛擬機(jī)實(shí)例。該設(shè)計(jì)框架把存儲(chǔ)、設(shè)備和計(jì)算資源集中起來,構(gòu)成一個(gè)虛擬的教學(xué)資源池,云平臺統(tǒng)一管理,根據(jù)客戶的請求分配虛擬機(jī)資源,提供網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境。
圖1 OpenStack云平臺虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室的系統(tǒng)架構(gòu)
本文在實(shí)驗(yàn)時(shí),使用多臺服務(wù)器集群的方式來搭建虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室云端,該平臺使用1臺IBM x3650服務(wù)器作為控制節(jié)點(diǎn),2臺IBM x3650服務(wù)器作為計(jì)算節(jié)點(diǎn)。節(jié)點(diǎn)IP配置和所需安裝服務(wù)如表1所示。
服務(wù)器節(jié)點(diǎn)的拓?fù)鋱D如圖2示,其中計(jì)算節(jié)點(diǎn)的固定 IP 為 10.0.0.33,虛擬機(jī)實(shí)例的 IP 從10.0.0.33 開始獲取,F(xiàn)loating IP 為192.168.1.34,虛擬機(jī)實(shí)例獲取外網(wǎng)IP 地址從 192.168.1.34 開始。
表1 OpenStack云平臺節(jié)點(diǎn)配置
圖2 OpenStack網(wǎng)絡(luò)拓?fù)鋱D
目前OpenStack可以采用多種方法進(jìn)行構(gòu)建[9-11],如源碼安裝、DevStack腳本安裝、Puppet安裝等,本文采用源碼安裝。按照圖3進(jìn)行部署,其中關(guān)鍵步驟如下。
圖3 OpenStack部署流程
1)所有節(jié)點(diǎn)安裝 ubuntu 12.04 操作系統(tǒng),bridge 網(wǎng)橋,Ntp,Iscsi,rabbitmq,Python 支持組件,2 個(gè)計(jì)算節(jié)點(diǎn)安裝KVM。
2)OpenStack各模塊的安裝和配置。
①控制節(jié)點(diǎn)安裝mysql,創(chuàng)建nova,keystone,glance,swift等需要用到的數(shù)據(jù)庫,存儲(chǔ)使用的虛擬機(jī)名稱,地址,用戶名,密碼和上傳鏡像的名稱位置等信息;
②服務(wù)認(rèn)證服務(wù)器安裝Keystone,配置keystone.conf文件;
③在云存儲(chǔ)服務(wù)器上安裝swift組件,配置Proxy Server,配置Ring,對應(yīng)于環(huán)的端口配置rsyncd.conf、account server、container server和 object server;
④鏡像管理服務(wù)器安裝glance組件,上傳windows鏡像到云端;
⑤在控制節(jié)點(diǎn)安裝核心組件nova,計(jì)算節(jié)點(diǎn)安裝nova.conf配置文件,nova主要是計(jì)算功能,創(chuàng)建虛擬機(jī)實(shí)例,分配虛擬機(jī)IP等功能,設(shè)置時(shí)需要將public_interface設(shè)置為eth0,flat_interface設(shè)置為eth1,flat_network_bridge要設(shè)置為虛擬網(wǎng)卡br100,使得虛擬機(jī)可以與外網(wǎng)通信;
⑥安裝Dashbaord,這是管理虛擬機(jī)實(shí)例創(chuàng)建和綁定IP的網(wǎng)頁管理界面。
3)使用KVM虛擬機(jī),創(chuàng)建windows操作系統(tǒng)鏡像,用于創(chuàng)建虛擬機(jī)。
4)在構(gòu)建好的windows鏡像中安裝Packet Tracer、GNS3、Dynamips等仿真軟件,編寫前端登錄和注冊界面。
5)創(chuàng)建虛擬機(jī)實(shí)例。
①用nova創(chuàng)建fixed_range,floating_range,分配模式為dhcp,取值范圍如圖2所示;
②創(chuàng)建虛擬機(jī)的密鑰ssh-keygen,并上傳密鑰到數(shù)據(jù)庫;
③打開防火墻,添加tcp、udp、icmp規(guī)則;
④創(chuàng)建虛擬機(jī),鏡像名是glance上傳的windows鏡像,綁定外網(wǎng)IP。
登錄Dashbaord管理虛擬機(jī)界面,使虛擬機(jī)實(shí)例處于active狀態(tài),用戶通過vnc軟件,遠(yuǎn)程登錄訪問IP為192.168.1.34的虛擬機(jī)實(shí)例,自主選擇使用虛擬機(jī)上面的Packet Tracer、GNS3、Dynamips等軟件,進(jìn)行實(shí)驗(yàn)。
學(xué)院網(wǎng)絡(luò)工程專業(yè)的《計(jì)算機(jī)網(wǎng)絡(luò)》、《TCP/IP協(xié)議分析》和《網(wǎng)絡(luò)管理》等課程,在使用該方案搭建的虛擬實(shí)驗(yàn)室云平臺上進(jìn)行虛擬專業(yè)實(shí)驗(yàn)室的部署和試運(yùn)行。運(yùn)行結(jié)果表明,方案運(yùn)行性能穩(wěn)定,管理方便,可實(shí)現(xiàn)按需分配虛擬網(wǎng)絡(luò)實(shí)驗(yàn)資源,能滿足網(wǎng)絡(luò)工程專業(yè)相關(guān)課程教學(xué)的需要。
本文利用云計(jì)算的彈性資源管理技術(shù)能有效提高資源利用率的特點(diǎn),將云計(jì)算技術(shù)運(yùn)用在虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室建設(shè)中,提出基于OpenStack的虛擬網(wǎng)絡(luò)工程專業(yè)實(shí)驗(yàn)室的建設(shè)方案,并通過在網(wǎng)絡(luò)工程專業(yè)相關(guān)實(shí)驗(yàn)課程的試運(yùn)行,驗(yàn)證方案的有效性。通過在虛擬機(jī)上創(chuàng)建不同的仿真軟件,還可以實(shí)現(xiàn)其他專業(yè)實(shí)驗(yàn)室的虛擬,推廣到更多專業(yè)的實(shí)驗(yàn)室建設(shè)。在本方案實(shí)現(xiàn)的基礎(chǔ)上,利用OpenStack開源和開放的資源管理特點(diǎn),進(jìn)一步研究云平臺上彈性資源管理的改進(jìn)和實(shí)現(xiàn),更好地提高系統(tǒng)的利用率,是下一步研究的內(nèi)容。
[1]魯慧民,劉剛.基于云計(jì)算理念的虛擬實(shí)驗(yàn)教學(xué)系統(tǒng)設(shè)計(jì)探討[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(4):334-337.
[2]羅國瑋,蘭瑞樂.基于云計(jì)算的高??蒲袑?shí)驗(yàn)平臺構(gòu)建研究[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(4):115-117.
[3]顧春峰,李偉斌,蘭秀風(fēng).基于VMware_GNS3實(shí)現(xiàn)虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室[J].實(shí)驗(yàn)室研究與探索,2012,31(1):73-75.
[4]王琴,王寶俊.基于云計(jì)算的虛擬多媒體教室的研究與架構(gòu)[J].電化教育研究,2012,(1):65-67.
[5]章澤昂,鄔家煒.基于云計(jì)算的教育信息化平臺的研究[J].中國遠(yuǎn)程教育,2010,(11):66-69.
[6]劉鵬.云計(jì)算[M].北京:電子工業(yè)出版社,2010∶97-101.
[7]陳康,鄭緯民.云計(jì)算:系統(tǒng)實(shí)例與研究現(xiàn)狀[J].軟件學(xué)報(bào),2009,20(5):1 337-1 348.
[8]李小寧,李磊,金連文等.基于OpenStack構(gòu)建私有云計(jì)算平臺[J]電信科學(xué),2012,28(9):1-8.
[9]OpenStack community.OpenStack Installation Guide for Ubuntu 12.04[EB/OL].[2014-07-01].http://docs.openstack.org.
[10]arhaiyun.OpenStack 的架構(gòu)詳解.[EB/OL].[2013-03-22].http://blog.csdn.net/arhaiyun/article/details/8705290.
[11]shenycs.OpenStack 鏡像管理[EB/OL].[2012-09-12].http://blog.csdn.net/shenycs/article/details/7970759.