蔡志凱 來崇浩 陳勝凱 徐藝群



摘? 要: 虛擬仿真技術正在被越來越多的計算機網絡實驗教學,以克服實體實驗的不足。現有方案普遍采用VMware VRA平臺實現,沒有考慮節儉能耗和精簡存儲,導致服務器浪費了大量的電力和存儲,不符合“綠色”云計算思想。文章提出了一種新穎的能耗存儲精簡設計方案,根據教學計劃和實際需求,課前利用Python腳本,調用VRA平臺 REST API動態生成虛擬機資源,滿足實驗需要,并在課后回收銷毀,克服了傳統虛擬化網絡實驗設計浪費資源的弊端。
關鍵詞: 虛擬仿真; 計算機網絡實驗; 能耗存儲精簡; VMware VRA
中圖分類號:TP393? ? ? ? ? 文獻標志碼:A? ? ?文章編號: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 引言
計算機網絡是計算機及相關專業的一門核心基礎課程,在傳統的實驗教學中,普遍采用的是兩臺實體計算機獨立組網的方案,以便模擬服務器端/客戶端的架構,完成DNS、DHCP等網絡服務實驗。但是由于設備經費限制,很多高校的網絡實驗室設備陳舊、種類少、更新慢,使得學生實驗機會少,只能做一些簡單實驗[1]。而且傳統方案是機房采用雙網卡的計算機,一張網卡用于兩臺計算機獨立組網,另一張網卡用于連接Internet。這就對機房硬件提出了特殊需求,給機房維護工作帶來了難點,比如第二張PCI網卡比集成網卡更容易松動,經常會造成實驗時藍屏等故障。
隨著虛擬仿真技術的發展,越來越多的計算機網絡技術實驗課程,開始采用虛擬化平臺。一些學校采用了客戶端虛擬化方案,即使用VMware Workstation等軟件,在一臺實體機上虛擬出兩臺虛擬機,實現獨立組網的效果,以滿足實驗需要。另外一些虛擬化方案采用了Packet Tracer、GNS3等虛擬仿真軟件,但是這類軟件或沒有采用真正的虛擬機鏡像,只是簡單的命令行仿真,或需要在本機運行大量的虛擬機鏡像才能模擬復雜的拓撲結構,這對實驗室計算機配置提出了極高的要求,難以滿足[2-5]。還有些方案雖然采用了VMware vSphere服務器虛擬化技術,構建私有云平臺來滿足實驗要求[6]。但由于在實驗課程期間,虛擬機需要一直存在或者手工生成銷毀,因此浪費了大量的電力能耗和存儲空間,增加了實驗室運維工作量。
基于上述問題,如何解決傳統虛擬計算機網絡實驗存在的痛點,更好的提高計算機網絡課虛擬化實驗的效果,并在實驗過程中節省能耗和精簡存儲空間,成為一個需要迫切解決的課題。
1 基于VRA平臺的虛擬化方案
基于上述計算機網絡課虛擬仿真實驗方案的問題,本文提出了基于vSphere和VRA平臺的設計方案。vSphere 是VMware公司推出的服務器虛擬化解決方案,它是業界領先且可靠的虛擬化平臺。本平臺同時利用VMware提供的NSX虛擬化網絡,實現實驗小組之間虛擬網絡的隔離。
在vSphere的上層采用了VRA(vRealize Automation)平臺,以便讓師生利用其提供的工作流模板,批量生成實驗所需的虛擬設備和網絡拓撲。VRA是一個基于vSphere架構的IAAS平臺,IT組織能夠通過該平臺實現云計算服務的編排與自提供。圖1是虛擬化實驗中的一組虛擬機界面,其中客戶機是Win7,服務器是Redhat Linux,通過隔離的虛擬網絡來完成計算機網絡實驗。
該設計方案通過云計算方式,在不同組學生之間共享了CPU和內存等硬件資源,可以實現比采用VMware Workstation方案更復雜的網絡拓撲實驗。圖2是該方案下的虛擬仿真實驗教學模型。
2 能耗與存儲精簡方案
由于虛擬機部署和生成需要時間,一臺典型虛擬機的部署需要5-10分鐘。傳統此類虛擬化方案需要在課程前手工建立所需的幾十臺虛擬機,并且采用不銷毀虛擬機的方式,導致課程持續期間虛擬機一直存在,這就帶來了存儲空間和能耗的浪費問題。針對這一問題,本文提出了一種精簡容量和能耗的方案,利用VRA平臺提供的REST API,用Python腳本動態根據每周的實驗運行表,在凌晨服務器空閑時段生成當日課程所需的虛擬機,并在半夜回收銷毀這些虛擬機,真正按照課程需要來提供虛擬仿真實驗教學資源。
2.1 VRA平臺REST API
REST風格的API在分布式資源編程中日益流行。幾乎所有的云計算平臺服務架構,都提供了RESTful風格的編程接口,以便用戶能夠編程實現自定義的特殊服務需求,VRA平臺也不例外。VRA平臺的REST API幾乎提供了所有操作,包括列出藍圖服務目錄,請求虛擬機等。下面是一個REST API的endpoint樣例,它能夠列出VRA平臺當前所提供的服務目錄:http://serverip/component-registry/api/services [7]。
2.2 虛擬機的批量生成
在Linux中,Crontab命令被用來提交和管理用戶的需要周期性執行的任務,與windows下的計劃任務類似,我們利用它執行Python腳本,在每日凌晨讀入當日實驗課程表,如果需要生成某門課程所用虛擬機,則讀入相應班級的學生帳號。使用帳號密碼,調用REST API模擬登錄,首先獲取后續操作所需的TOKEN。在隨后的API調用中,都需要將該TOKEN加入HTTP請求頭部,以滿足認證需求。然后調用REST API獲取服務目錄,返回的服務目錄以JSON格式描述,核心內容如下:
可以看到,每門課程所需的拓撲藍圖在JSON中為一個OBJECT對象,腳本根據當前所需生成課程計劃的name,從JSON中獲取相應的id。隨后調用REST API,獲取該id對應藍圖所需的生成模板,返回的也是JSON數據,腳本將相應的生成虛擬機信息填入該模板,比如虛擬機名稱,內存容量等。最終調用生成藍圖的REST API,在HTTP頭部附加藍圖所需的生成信息模板,發送請求后,vRA平臺即可完成虛擬機的生成部署。下面是一段調用REST API獲取TOKEN和藍圖服務目錄的核心代碼:
2.3 虛擬機的批量銷毀
在實驗課程完畢之后,為了節儉能耗和磁盤空間,也必須及時使用腳本批量銷毀虛擬機資源。銷毀虛擬機的流程如圖4。
可以獲取該學生的所有已部署虛擬機資源,返回數據也是JSON格式,通過檢查數據中每一個虛擬機資源的["parentResourceRef"]["label"]項,也就是該虛擬機所屬的部署藍圖,就可以確定該虛擬機是否屬于所要銷毀的課程資源。如果是,調用相應的REST API 執行銷毀虛擬機操作。
3 結束語
本文分析了目前一些計算機網絡虛擬化實驗方案的缺點,提出了一種能夠精簡能耗和存儲的設計。該方案利用VRA平臺提供的REST API編程接口,執行Python腳本,根據實驗運行表,動態地生成與銷毀課程所需虛擬機資源。達到不同班級之間共享資源的目的,實現了云計算中的共享經濟,并精簡了能耗和存儲空間。但是目前的方案中,服務器集群資源沒有根據課程實際需求動態地調整,仍然浪費了不少能耗。因此需要進一步研究vSphere和VRA平臺編程接口,利用腳本動態開啟與關閉服務器,調整計算資源,進一步實現“綠色云計算”的思想。
參考文獻(References):
[1]徐巧枝.基于Packet Tracer的計算機網絡實驗教學方案[J].內蒙古師范大學學報,2012.3:144-146
[2] 唐燈平,朱艷琴,楊哲,曹國平,肖廣娣.計算機網絡管理虛擬仿真實驗平臺設計[J].實驗室科學,2016.2:76-80
[3] 唐燈平,朱艷琴,楊哲,曹國平,肖廣娣.基于虛擬仿真的計算機網絡管理課程教學模式探索[J].計算機教育,2016.2:142-146
[4] 張梁斌,高昆,梁世斌.基于Packet Tracer 的小型企業網絡應用架構的仿真實驗[J].實驗室研究與探索,2012.10:372-376
[5] 王淑娟.基于GNS3 與VMware 仿真虛擬網絡實驗室的研究[J].高校實驗室工作研究,2016.4:63-65
[6] 王成喜,孟安寧,基于VMware vSphere私有云計算模式的數字化實驗室建設[J].計算機與現代化,2017.7:124-126
[7] VMware. vRealize Automation Programming Guide[EB/OL].https://www.vmware.com,2017.
[8] 孫界平,琚生根,陳黎,周剛,師維.計算機網絡虛擬仿真實驗平臺的建設實踐[J].實驗技術與管理,2017.8:115-117
[9] 姜恩華,汪徐德,李素文,楊一軍.計算機網絡課程虛擬實驗室建設[J].實驗室科學,2012.1:132-135
[10] 陳遠聰.計算機網絡虛擬實驗教學平臺的設計與實現[J].赤峰學院學報,2017.33:9-11