蔡志凱 來(lái)崇浩 陳勝凱 徐藝群
摘? 要: 虛擬仿真技術(shù)正在被越來(lái)越多的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué),以克服實(shí)體實(shí)驗(yàn)的不足?,F(xiàn)有方案普遍采用VMware VRA平臺(tái)實(shí)現(xiàn),沒有考慮節(jié)儉能耗和精簡(jiǎn)存儲(chǔ),導(dǎo)致服務(wù)器浪費(fèi)了大量的電力和存儲(chǔ),不符合“綠色”云計(jì)算思想。文章提出了一種新穎的能耗存儲(chǔ)精簡(jiǎn)設(shè)計(jì)方案,根據(jù)教學(xué)計(jì)劃和實(shí)際需求,課前利用Python腳本,調(diào)用VRA平臺(tái) REST API動(dòng)態(tài)生成虛擬機(jī)資源,滿足實(shí)驗(yàn)需要,并在課后回收銷毀,克服了傳統(tǒng)虛擬化網(wǎng)絡(luò)實(shí)驗(yàn)設(shè)計(jì)浪費(fèi)資源的弊端。
關(guān)鍵詞: 虛擬仿真; 計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn); 能耗存儲(chǔ)精簡(jiǎn); VMware VRA
中圖分類號(hào):TP393? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ?文章編號(hào):1006-8228(2019)07-11-03
Abstract: Virtual simulation technology is being used more and more in computer network experiment teaching to overcome the shortcomings of physical experiment. Current solutions are generally implemented on VMware VRA platform, without considering the energy saving and storage simplifying, resulting in the server wasting a lot of power and storage, which is not in line with the "green" cloud computing idea. This paper proposes a novel design scheme with energy saving and storage simplifying. According to the teaching plan and actual needs, Python script is used which calls REST API of VRA platform to dynamically generate virtual machine resources before class to meet the needs of experiment, and then recycle and destroy them after class, thus overcoming the shortcomings of wasting resources in traditional virtualized network experiment design scheme.
Key words: virtual simulation; computer network experiment; energy and storage saving; VMware VRA
0 引言
計(jì)算機(jī)網(wǎng)絡(luò)是計(jì)算機(jī)及相關(guān)專業(yè)的一門核心基礎(chǔ)課程,在傳統(tǒng)的實(shí)驗(yàn)教學(xué)中,普遍采用的是兩臺(tái)實(shí)體計(jì)算機(jī)獨(dú)立組網(wǎng)的方案,以便模擬服務(wù)器端/客戶端的架構(gòu),完成DNS、DHCP等網(wǎng)絡(luò)服務(wù)實(shí)驗(yàn)。但是由于設(shè)備經(jīng)費(fèi)限制,很多高校的網(wǎng)絡(luò)實(shí)驗(yàn)室設(shè)備陳舊、種類少、更新慢,使得學(xué)生實(shí)驗(yàn)機(jī)會(huì)少,只能做一些簡(jiǎn)單實(shí)驗(yàn)[1]。而且傳統(tǒng)方案是機(jī)房采用雙網(wǎng)卡的計(jì)算機(jī),一張網(wǎng)卡用于兩臺(tái)計(jì)算機(jī)獨(dú)立組網(wǎng),另一張網(wǎng)卡用于連接Internet。這就對(duì)機(jī)房硬件提出了特殊需求,給機(jī)房維護(hù)工作帶來(lái)了難點(diǎn),比如第二張PCI網(wǎng)卡比集成網(wǎng)卡更容易松動(dòng),經(jīng)常會(huì)造成實(shí)驗(yàn)時(shí)藍(lán)屏等故障。
隨著虛擬仿真技術(shù)的發(fā)展,越來(lái)越多的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)實(shí)驗(yàn)課程,開始采用虛擬化平臺(tái)。一些學(xué)校采用了客戶端虛擬化方案,即使用VMware Workstation等軟件,在一臺(tái)實(shí)體機(jī)上虛擬出兩臺(tái)虛擬機(jī),實(shí)現(xiàn)獨(dú)立組網(wǎng)的效果,以滿足實(shí)驗(yàn)需要。另外一些虛擬化方案采用了Packet Tracer、GNS3等虛擬仿真軟件,但是這類軟件或沒有采用真正的虛擬機(jī)鏡像,只是簡(jiǎn)單的命令行仿真,或需要在本機(jī)運(yùn)行大量的虛擬機(jī)鏡像才能模擬復(fù)雜的拓?fù)浣Y(jié)構(gòu),這對(duì)實(shí)驗(yàn)室計(jì)算機(jī)配置提出了極高的要求,難以滿足[2-5]。還有些方案雖然采用了VMware vSphere服務(wù)器虛擬化技術(shù),構(gòu)建私有云平臺(tái)來(lái)滿足實(shí)驗(yàn)要求[6]。但由于在實(shí)驗(yàn)課程期間,虛擬機(jī)需要一直存在或者手工生成銷毀,因此浪費(fèi)了大量的電力能耗和存儲(chǔ)空間,增加了實(shí)驗(yàn)室運(yùn)維工作量。
基于上述問題,如何解決傳統(tǒng)虛擬計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)存在的痛點(diǎn),更好的提高計(jì)算機(jī)網(wǎng)絡(luò)課虛擬化實(shí)驗(yàn)的效果,并在實(shí)驗(yàn)過程中節(jié)省能耗和精簡(jiǎn)存儲(chǔ)空間,成為一個(gè)需要迫切解決的課題。
1 基于VRA平臺(tái)的虛擬化方案
基于上述計(jì)算機(jī)網(wǎng)絡(luò)課虛擬仿真實(shí)驗(yàn)方案的問題,本文提出了基于vSphere和VRA平臺(tái)的設(shè)計(jì)方案。vSphere 是VMware公司推出的服務(wù)器虛擬化解決方案,它是業(yè)界領(lǐng)先且可靠的虛擬化平臺(tái)。本平臺(tái)同時(shí)利用VMware提供的NSX虛擬化網(wǎng)絡(luò),實(shí)現(xiàn)實(shí)驗(yàn)小組之間虛擬網(wǎng)絡(luò)的隔離。
在vSphere的上層采用了VRA(vRealize Automation)平臺(tái),以便讓師生利用其提供的工作流模板,批量生成實(shí)驗(yàn)所需的虛擬設(shè)備和網(wǎng)絡(luò)拓?fù)?。VRA是一個(gè)基于vSphere架構(gòu)的IAAS平臺(tái),IT組織能夠通過該平臺(tái)實(shí)現(xiàn)云計(jì)算服務(wù)的編排與自提供。圖1是虛擬化實(shí)驗(yàn)中的一組虛擬機(jī)界面,其中客戶機(jī)是Win7,服務(wù)器是Redhat Linux,通過隔離的虛擬網(wǎng)絡(luò)來(lái)完成計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)。
該設(shè)計(jì)方案通過云計(jì)算方式,在不同組學(xué)生之間共享了CPU和內(nèi)存等硬件資源,可以實(shí)現(xiàn)比采用VMware Workstation方案更復(fù)雜的網(wǎng)絡(luò)拓?fù)鋵?shí)驗(yàn)。圖2是該方案下的虛擬仿真實(shí)驗(yàn)教學(xué)模型。
2 能耗與存儲(chǔ)精簡(jiǎn)方案
由于虛擬機(jī)部署和生成需要時(shí)間,一臺(tái)典型虛擬機(jī)的部署需要5-10分鐘。傳統(tǒng)此類虛擬化方案需要在課程前手工建立所需的幾十臺(tái)虛擬機(jī),并且采用不銷毀虛擬機(jī)的方式,導(dǎo)致課程持續(xù)期間虛擬機(jī)一直存在,這就帶來(lái)了存儲(chǔ)空間和能耗的浪費(fèi)問題。針對(duì)這一問題,本文提出了一種精簡(jiǎn)容量和能耗的方案,利用VRA平臺(tái)提供的REST API,用Python腳本動(dòng)態(tài)根據(jù)每周的實(shí)驗(yàn)運(yùn)行表,在凌晨服務(wù)器空閑時(shí)段生成當(dāng)日課程所需的虛擬機(jī),并在半夜回收銷毀這些虛擬機(jī),真正按照課程需要來(lái)提供虛擬仿真實(shí)驗(yàn)教學(xué)資源。
2.1 VRA平臺(tái)REST API
REST風(fēng)格的API在分布式資源編程中日益流行。幾乎所有的云計(jì)算平臺(tái)服務(wù)架構(gòu),都提供了RESTful風(fēng)格的編程接口,以便用戶能夠編程實(shí)現(xiàn)自定義的特殊服務(wù)需求,VRA平臺(tái)也不例外。VRA平臺(tái)的REST API幾乎提供了所有操作,包括列出藍(lán)圖服務(wù)目錄,請(qǐng)求虛擬機(jī)等。下面是一個(gè)REST API的endpoint樣例,它能夠列出VRA平臺(tái)當(dāng)前所提供的服務(wù)目錄:http://serverip/component-registry/api/services [7]。
2.2 虛擬機(jī)的批量生成
在Linux中,Crontab命令被用來(lái)提交和管理用戶的需要周期性執(zhí)行的任務(wù),與windows下的計(jì)劃任務(wù)類似,我們利用它執(zhí)行Python腳本,在每日凌晨讀入當(dāng)日實(shí)驗(yàn)課程表,如果需要生成某門課程所用虛擬機(jī),則讀入相應(yīng)班級(jí)的學(xué)生帳號(hào)。使用帳號(hào)密碼,調(diào)用REST API模擬登錄,首先獲取后續(xù)操作所需的TOKEN。在隨后的API調(diào)用中,都需要將該TOKEN加入HTTP請(qǐng)求頭部,以滿足認(rèn)證需求。然后調(diào)用REST API獲取服務(wù)目錄,返回的服務(wù)目錄以JSON格式描述,核心內(nèi)容如下:
可以看到,每門課程所需的拓?fù)渌{(lán)圖在JSON中為一個(gè)OBJECT對(duì)象,腳本根據(jù)當(dāng)前所需生成課程計(jì)劃的name,從JSON中獲取相應(yīng)的id。隨后調(diào)用REST API,獲取該id對(duì)應(yīng)藍(lán)圖所需的生成模板,返回的也是JSON數(shù)據(jù),腳本將相應(yīng)的生成虛擬機(jī)信息填入該模板,比如虛擬機(jī)名稱,內(nèi)存容量等。最終調(diào)用生成藍(lán)圖的REST API,在HTTP頭部附加藍(lán)圖所需的生成信息模板,發(fā)送請(qǐng)求后,vRA平臺(tái)即可完成虛擬機(jī)的生成部署。下面是一段調(diào)用REST API獲取TOKEN和藍(lán)圖服務(wù)目錄的核心代碼:
2.3 虛擬機(jī)的批量銷毀
在實(shí)驗(yàn)課程完畢之后,為了節(jié)儉能耗和磁盤空間,也必須及時(shí)使用腳本批量銷毀虛擬機(jī)資源。銷毀虛擬機(jī)的流程如圖4。
可以獲取該學(xué)生的所有已部署虛擬機(jī)資源,返回?cái)?shù)據(jù)也是JSON格式,通過檢查數(shù)據(jù)中每一個(gè)虛擬機(jī)資源的["parentResourceRef"]["label"]項(xiàng),也就是該虛擬機(jī)所屬的部署藍(lán)圖,就可以確定該虛擬機(jī)是否屬于所要銷毀的課程資源。如果是,調(diào)用相應(yīng)的REST API 執(zhí)行銷毀虛擬機(jī)操作。
3 結(jié)束語(yǔ)
本文分析了目前一些計(jì)算機(jī)網(wǎng)絡(luò)虛擬化實(shí)驗(yàn)方案的缺點(diǎn),提出了一種能夠精簡(jiǎn)能耗和存儲(chǔ)的設(shè)計(jì)。該方案利用VRA平臺(tái)提供的REST API編程接口,執(zhí)行Python腳本,根據(jù)實(shí)驗(yàn)運(yùn)行表,動(dòng)態(tài)地生成與銷毀課程所需虛擬機(jī)資源。達(dá)到不同班級(jí)之間共享資源的目的,實(shí)現(xiàn)了云計(jì)算中的共享經(jīng)濟(jì),并精簡(jiǎn)了能耗和存儲(chǔ)空間。但是目前的方案中,服務(wù)器集群資源沒有根據(jù)課程實(shí)際需求動(dòng)態(tài)地調(diào)整,仍然浪費(fèi)了不少能耗。因此需要進(jìn)一步研究vSphere和VRA平臺(tái)編程接口,利用腳本動(dòng)態(tài)開啟與關(guān)閉服務(wù)器,調(diào)整計(jì)算資源,進(jìn)一步實(shí)現(xiàn)“綠色云計(jì)算”的思想。
參考文獻(xiàn)(References):
[1]徐巧枝.基于Packet Tracer的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)方案[J].內(nèi)蒙古師范大學(xué)學(xué)報(bào),2012.3:144-146
[2] 唐燈平,朱艷琴,楊哲,曹國(guó)平,肖廣娣.計(jì)算機(jī)網(wǎng)絡(luò)管理虛擬仿真實(shí)驗(yàn)平臺(tái)設(shè)計(jì)[J].實(shí)驗(yàn)室科學(xué),2016.2:76-80
[3] 唐燈平,朱艷琴,楊哲,曹國(guó)平,肖廣娣.基于虛擬仿真的計(jì)算機(jī)網(wǎng)絡(luò)管理課程教學(xué)模式探索[J].計(jì)算機(jī)教育,2016.2:142-146
[4] 張梁斌,高昆,梁世斌.基于Packet Tracer 的小型企業(yè)網(wǎng)絡(luò)應(yīng)用架構(gòu)的仿真實(shí)驗(yàn)[J].實(shí)驗(yàn)室研究與探索,2012.10:372-376
[5] 王淑娟.基于GNS3 與VMware 仿真虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室的研究[J].高校實(shí)驗(yàn)室工作研究,2016.4:63-65
[6] 王成喜,孟安寧,基于VMware vSphere私有云計(jì)算模式的數(shù)字化實(shí)驗(yàn)室建設(shè)[J].計(jì)算機(jī)與現(xiàn)代化,2017.7:124-126
[7] VMware. vRealize Automation Programming Guide[EB/OL].https://www.vmware.com,2017.
[8] 孫界平,琚生根,陳黎,周剛,師維.計(jì)算機(jī)網(wǎng)絡(luò)虛擬仿真實(shí)驗(yàn)平臺(tái)的建設(shè)實(shí)踐[J].實(shí)驗(yàn)技術(shù)與管理,2017.8:115-117
[9] 姜恩華,汪徐德,李素文,楊一軍.計(jì)算機(jī)網(wǎng)絡(luò)課程虛擬實(shí)驗(yàn)室建設(shè)[J].實(shí)驗(yàn)室科學(xué),2012.1:132-135
[10] 陳遠(yuǎn)聰.計(jì)算機(jī)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)教學(xué)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].赤峰學(xué)院學(xué)報(bào),2017.33:9-11