劉春紅,宋 耕,徐曉潔
(河南師范大學計算機與信息工程學院,河南新鄉453007)
隨著我國高等教育事業的快速發展,需要建設大量的專業實驗室以保證教學質量。由于仿真技術的進步,虛擬實驗室成為一種省錢、快速的實踐教學手段。虛擬實驗室的概念提出至今僅十余年,經歷了仿真、虛擬現實等階段,目前在發達國家已經十分普及,在國內也越來越受到重視,國內多數高校根據自身教學需求建立了虛擬實驗室,但同時也帶來一些問題,例如同一院校各專業的虛擬實驗室建設時,服務器等昂貴IT設備重復購置、設備購買時一般按最大需求量購買、各專業實驗室均需配備IT技術人員進行維護[1-5]等,這種狀況導致各學校虛擬實驗室的建設成本、維護成本高,而設備利用率低的問題日益突出。針對這些問題,本文提出了基于OpenStack云平臺的虛擬實驗室解決方案。方案通過建設OpenStack私有云平臺,管理服務器等IT資源,全校各專業共享設備資源,云平臺統一管理資源。學校各專業可將其虛擬實驗室部署在私有云上,當實驗用戶大量增加時,分配更多的虛擬機來滿足用戶需求,在實驗用戶減少時,釋放虛擬機到資源池,實現“按需分配”的服務,使學校的實驗設備具有更好的資源利用率。
計算機網絡等課程的實驗教學中,常需要使用交換機、路由器等核心網絡設備進行實驗,使學生能動手設計和配置一個中小型的計算機局域網,從而掌握構建管理網絡的常用技能。但核心網絡設備往往價格昂貴,購置需耗費大量資金,這嚴重影響了網絡實驗設備的充足提供。Packet Tracer、GNS3、Dynamips等網絡仿真軟件,能模仿路由交換設備的操作系統,為網絡課程的學習者提供了完全真實的設備使用環境,使學習者能方便地設計、配置、分析排除網絡故障,并能分析數據包在網絡中的詳細處理過程,觀察網絡實時運行情況。采用網絡仿真軟件可進行真正意義的網絡實驗,如虛擬局域網的劃分,各種路由協議配置,靜態路由RIP協議等,可替代核心網絡設備進行訓練。
目前國內大部分高校的虛擬網絡實驗室采用C/S應用模式,構建一個專業實驗室,需在一個局域網中,配備專用的服務器并管理它。學生通過客戶端計算機登陸使用,每臺計算機都需安裝相應的軟件,仿真的計算量由客戶端來承擔,還需要定期對每個網絡實驗室的計算機系統軟件和網絡仿真軟件進行升級、更新和修補漏洞,定期對重要數據進行保護。而且客戶端隨時會面臨病毒、誤操作等損害系統安全的威脅,系統維護成本高,安全性差。
然而,一個學校各個專業分別建立專業實驗室,專業實驗課的設備利用率不高。以筆者所在的計算機與信息工程學院開設班數最多課程《計算機網絡》實驗課為例,《計算機網絡》是計算機科學與技術、網絡工程、通信工程3個專業的專業必修課,一學年中春季、秋季均開課,計算機專業有4個班,網絡和通信各有2個班學生學習,按照培養大綱講授和實驗學時3+2的比例要求計算,每周網絡實驗室的使用率約20%。同樣,其它專業課程的實驗設備利用率也很低,因此,各專業可以共享服務器等資源,提高利用率。
云計算技術通過建立服務器資源池,利用虛擬化技術實現資源共享,以虛擬機的形式分配資源。云平臺可動態分配虛擬資源[6-7],根據實驗用戶的需求變化,動態調整虛擬機的分配策略,當實驗用戶大量增加時,分配更多數量的虛擬機來應對用戶需求高峰,在實驗用戶減少時,釋放虛擬機資源,回收到資源池中,以便于其它應用申請使用。全校各專業共享實驗設備資源,將網絡模擬軟件部署在云平臺,云端服務器響應用戶服務請求,創建虛擬機,提供請求的虛擬實驗環境,并可以在云端搭建多種網絡專業實驗環境,同時向用戶提供多種專業實驗室。利用云計算技術的彈性服務技術特點,云平臺根據實驗用戶的需求變化,通過虛擬機的伸縮分配,實現動態調整服務資源,使實驗設備等資源有更好的資源利用率。同時,應用系統運行在虛擬機上,通過網絡為客戶端提供應用服務,還可以避免系統中由服務器造成單點故障和性能瓶頸,保證整個系統的穩定[4]。
將基于云計算技術的虛擬網絡實驗室設計引入網絡工程專業實踐教學中,一方面為學校節省了實驗實訓所需的資金,另一方面又可以為進行高層次網絡技術學習的學生提供較理想的實踐環境,通過一系列的綜合測試和技能實驗,使學生真正掌握計算機網絡技術的實驗技能,強化對所學知識的理解,大大改善教學效果。通過與其它軟件或設備的結合,使得網絡技術綜合性實驗實訓環境更容易構建,為高校建立一個覆蓋各個層次教學和綜合實驗要求的公共實驗室提供有效的借鑒,因此,本方案具有良好的推廣價值。
云計算領域主流的開源云計算系統有Hadoop、Eucalyptus、OpenStack等。相對于前兩者,OpenStack具有更好的開放性和資源管理能力[8]。
OpenStack是一個開源軟件項目計劃,由美國國家航空航天局和Rackspace合作研發,Apache許可證授權,可以用它建立和運行云計算管理系統和存儲架構,實現基礎設施即服務(Infrastructure as a service,IaaS)。相比于其它云計算系統,OpenStack具有易于部署、管理,有良好的伸縮性等特點,更符合本方案的設計要求,因此選擇OpenStack作為虛擬實驗室的云平臺系統。
OpenStack 由 Nova、Swift、Glance、Keystone 和 Horizon 模塊組成,其中,Nova 是云平臺的控制器,Swift是一個大容量可擴展的內置冗余和容錯機制的對象存儲系統,Glance是一個虛擬機鏡像的存儲查詢和檢索系統,Keystone為OpenStack云提供了認證和管理用戶賬號和角色信息服務,Horizon是提供給用戶來使用云平臺的Web前端界面。
OpenStack云平臺虛擬網絡實驗室系統架構如圖1示,分為云計算平臺和基礎設備兩大部分。其中,基礎設備包含計算、存儲和網絡設備,云平臺包括OpenStack中的Nova計算節點模塊、Swift云存儲模塊、Dashboard用戶認證與鏡像管理模塊,在云平臺上的鏡像服務集成Packet Tracer、GNS3、Dynamips等網絡仿真軟件,通過鏡像可以創建需要的虛擬機實例。該設計框架把存儲、設備和計算資源集中起來,構成一個虛擬的教學資源池,云平臺統一管理,根據客戶的請求分配虛擬機資源,提供網絡實驗環境。

圖1 OpenStack云平臺虛擬網絡實驗室的系統架構
本文在實驗時,使用多臺服務器集群的方式來搭建虛擬網絡實驗室云端,該平臺使用1臺IBM x3650服務器作為控制節點,2臺IBM x3650服務器作為計算節點。節點IP配置和所需安裝服務如表1所示。
服務器節點的拓撲圖如圖2示,其中計算節點的固定 IP 為 10.0.0.33,虛擬機實例的 IP 從10.0.0.33 開始獲取,Floating IP 為192.168.1.34,虛擬機實例獲取外網IP 地址從 192.168.1.34 開始。

表1 OpenStack云平臺節點配置

圖2 OpenStack網絡拓撲圖
目前OpenStack可以采用多種方法進行構建[9-11],如源碼安裝、DevStack腳本安裝、Puppet安裝等,本文采用源碼安裝。按照圖3進行部署,其中關鍵步驟如下。

圖3 OpenStack部署流程
1)所有節點安裝 ubuntu 12.04 操作系統,bridge 網橋,Ntp,Iscsi,rabbitmq,Python 支持組件,2 個計算節點安裝KVM。
2)OpenStack各模塊的安裝和配置。
①控制節點安裝mysql,創建nova,keystone,glance,swift等需要用到的數據庫,存儲使用的虛擬機名稱,地址,用戶名,密碼和上傳鏡像的名稱位置等信息;
②服務認證服務器安裝Keystone,配置keystone.conf文件;
③在云存儲服務器上安裝swift組件,配置Proxy Server,配置Ring,對應于環的端口配置rsyncd.conf、account server、container server和 object server;
④鏡像管理服務器安裝glance組件,上傳windows鏡像到云端;
⑤在控制節點安裝核心組件nova,計算節點安裝nova.conf配置文件,nova主要是計算功能,創建虛擬機實例,分配虛擬機IP等功能,設置時需要將public_interface設置為eth0,flat_interface設置為eth1,flat_network_bridge要設置為虛擬網卡br100,使得虛擬機可以與外網通信;
⑥安裝Dashbaord,這是管理虛擬機實例創建和綁定IP的網頁管理界面。
3)使用KVM虛擬機,創建windows操作系統鏡像,用于創建虛擬機。
4)在構建好的windows鏡像中安裝Packet Tracer、GNS3、Dynamips等仿真軟件,編寫前端登錄和注冊界面。
5)創建虛擬機實例。
①用nova創建fixed_range,floating_range,分配模式為dhcp,取值范圍如圖2所示;
②創建虛擬機的密鑰ssh-keygen,并上傳密鑰到數據庫;
③打開防火墻,添加tcp、udp、icmp規則;
④創建虛擬機,鏡像名是glance上傳的windows鏡像,綁定外網IP。
登錄Dashbaord管理虛擬機界面,使虛擬機實例處于active狀態,用戶通過vnc軟件,遠程登錄訪問IP為192.168.1.34的虛擬機實例,自主選擇使用虛擬機上面的Packet Tracer、GNS3、Dynamips等軟件,進行實驗。
學院網絡工程專業的《計算機網絡》、《TCP/IP協議分析》和《網絡管理》等課程,在使用該方案搭建的虛擬實驗室云平臺上進行虛擬專業實驗室的部署和試運行。運行結果表明,方案運行性能穩定,管理方便,可實現按需分配虛擬網絡實驗資源,能滿足網絡工程專業相關課程教學的需要。
本文利用云計算的彈性資源管理技術能有效提高資源利用率的特點,將云計算技術運用在虛擬網絡實驗室建設中,提出基于OpenStack的虛擬網絡工程專業實驗室的建設方案,并通過在網絡工程專業相關實驗課程的試運行,驗證方案的有效性。通過在虛擬機上創建不同的仿真軟件,還可以實現其他專業實驗室的虛擬,推廣到更多專業的實驗室建設。在本方案實現的基礎上,利用OpenStack開源和開放的資源管理特點,進一步研究云平臺上彈性資源管理的改進和實現,更好地提高系統的利用率,是下一步研究的內容。
[1]魯慧民,劉剛.基于云計算理念的虛擬實驗教學系統設計探討[J].實驗技術與管理,2012,29(4):334-337.
[2]羅國瑋,蘭瑞樂.基于云計算的高校科研實驗平臺構建研究[J].實驗技術與管理,2012,29(4):115-117.
[3]顧春峰,李偉斌,蘭秀風.基于VMware_GNS3實現虛擬網絡實驗室[J].實驗室研究與探索,2012,31(1):73-75.
[4]王琴,王寶俊.基于云計算的虛擬多媒體教室的研究與架構[J].電化教育研究,2012,(1):65-67.
[5]章澤昂,鄔家煒.基于云計算的教育信息化平臺的研究[J].中國遠程教育,2010,(11):66-69.
[6]劉鵬.云計算[M].北京:電子工業出版社,2010∶97-101.
[7]陳康,鄭緯民.云計算:系統實例與研究現狀[J].軟件學報,2009,20(5):1 337-1 348.
[8]李小寧,李磊,金連文等.基于OpenStack構建私有云計算平臺[J]電信科學,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 的架構詳解.[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.