吳闋++陳云芳
摘 要:伴隨著云計(jì)算的推廣,教育私有云逐漸成為一種滿足更多教學(xué)需求的主要手段。文章在分析教育云應(yīng)用的基礎(chǔ)上,提出一種基于開源虛擬桌面的嵌入式實(shí)驗(yàn)平臺(tái),并具體說明平臺(tái)的架構(gòu)和系統(tǒng)的實(shí)現(xiàn)過程。
關(guān)鍵詞:教育云;虛擬桌面;嵌入式開發(fā)板
1 云計(jì)算及其教育價(jià)值
云計(jì)算將計(jì)算機(jī)、服務(wù)器以及運(yùn)行在此類設(shè)備上的應(yīng)用程序、服務(wù)組成一個(gè)可以依托互聯(lián)網(wǎng)來訪問的資源池。用戶可以利用各種終端請求資源池中的軟硬件資源。
云計(jì)算技術(shù)的發(fā)展帶動(dòng)了分布式計(jì)算、并行計(jì)算和網(wǎng)格計(jì)算的發(fā)展?,F(xiàn)階段,涉及云計(jì)算領(lǐng)域的廠商分成兩種,第一種是只提供固有技術(shù)的云環(huán)境或云計(jì)算技術(shù)的部分技術(shù)支持的廠商,我們稱之為云服務(wù)引擎商。另一類則是諸如Google、Microsoft、Amazon、IBM、Yahoo這樣的IT企業(yè),它們是真正意義上的云服務(wù)供應(yīng)商,可以提供操作系統(tǒng)、數(shù)據(jù)庫等許多功能性服務(wù)。雖然不同廠商的產(chǎn)品在結(jié)構(gòu)上差異較大,但它們都按照IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺(tái)即服務(wù))以及SaaS(軟件即服務(wù))3種層次標(biāo)準(zhǔn)區(qū)分。
1.1 云計(jì)算的教育價(jià)值
云計(jì)算技術(shù)和教育系統(tǒng)的有機(jī)結(jié)合,誕生了教育云這一獨(dú)特的新型IT服務(wù)。傳統(tǒng)教育資源的界限也在不斷模糊,除了傳統(tǒng)的教學(xué)樓、師資、課本,更多像是計(jì)算機(jī)、平臺(tái)、經(jīng)驗(yàn)、數(shù)據(jù)等新興的或?qū)嶓w或抽象的概念也被納入了教育資源的范疇。未來,在信息化教育建設(shè)上,此類元素將獲得更高的權(quán)重。伴隨著越來越多的高校和教育機(jī)構(gòu)對教育云模式的認(rèn)可,不同的平臺(tái)、數(shù)據(jù)、計(jì)算資源、存儲(chǔ)資源將會(huì)按照科學(xué)的方式重新組合升級(jí),依托于云計(jì)算技術(shù)、虛擬化技術(shù)服務(wù)于學(xué)生。信息化教育的發(fā)展意味著未來會(huì)出現(xiàn)更多的教育系統(tǒng)互聯(lián)、教育資源共享以及更高效的教學(xué)活動(dòng)。
虛擬化方案方面,教學(xué)場景與傳統(tǒng)的企業(yè)場景有許多不同之處。首先,教育系統(tǒng)中,虛擬化的規(guī)模不大,適用于企業(yè)的數(shù)百或數(shù)千臺(tái)機(jī)器的虛擬化方案對于教育系統(tǒng)不是必要的;其次,教學(xué)實(shí)驗(yàn)中底層需要接入的外設(shè)種類繁雜,企業(yè)級(jí)虛擬化對底層外設(shè)的兼容性和擴(kuò)展性較差,很難滿足特定的教學(xué)需求;最后,現(xiàn)有的解決方案對于教育系統(tǒng)而言價(jià)格過高且不開源,高?;蚪逃龣C(jī)構(gòu)的IT團(tuán)隊(duì)難以通過二次開發(fā)設(shè)計(jì)符合教學(xué)場景的特性。
1.2 教育云的應(yīng)用
機(jī)房實(shí)驗(yàn)室虛擬化是教育云的一項(xiàng)主要運(yùn)用,許多高校的課程安排需要機(jī)房實(shí)驗(yàn)室根據(jù)教學(xué)需求在短時(shí)間內(nèi)切換到不同的實(shí)驗(yàn)系統(tǒng)甚至設(shè)備上。
1.2.1 虛擬化方案
機(jī)房實(shí)驗(yàn)室虛擬化最重要的兩點(diǎn)就是虛擬化和云桌面的實(shí)現(xiàn),這兩者可以統(tǒng)一納入虛擬桌面基礎(chǔ)架構(gòu),目前最具代表性的廠商是VMware和Citrix。此外,Microsoft、Redhat、Oracle等廠商也有包含各自特點(diǎn)的產(chǎn)品或解決方案[1-4]??偟膩碚f,相對成熟的虛擬化解決方案均集中在VMware的vSphere和Citrix的XenServer套件上。各廠商采用的技術(shù)見表1。
VMware公司的vSphere平臺(tái)從硬件中提取出系統(tǒng)、應(yīng)用和數(shù)據(jù),統(tǒng)一存放在數(shù)據(jù)中心里,這些元素彼此隔離,獨(dú)立存在,企業(yè)的IT團(tuán)隊(duì)可以單獨(dú)對它們進(jìn)行管理和調(diào)整。系統(tǒng)方面,VMware支持目前最流行的Windows和Linux的各種發(fā)行版;存儲(chǔ)方面,VMware系列產(chǎn)品同時(shí)具備本地和網(wǎng)絡(luò)存儲(chǔ)(NAS或SAN)能力,格式上會(huì)將數(shù)據(jù)保存為VMware公司特有的虛擬機(jī)文件系統(tǒng);備份和恢復(fù)方面,“vSphere數(shù)據(jù)恢復(fù)(Data Recovery in vSphere)”部件為虛擬機(jī)提供了備份功能,用戶可以利用此功能為虛擬機(jī)保存周期性的快照,這個(gè)工具的缺點(diǎn)是無法嗅探到應(yīng)用[1]。
Citrix公司的XenServer平臺(tái)是由開源虛擬機(jī)項(xiàng)目Xen發(fā)展而來的,許多業(yè)界領(lǐng)先IT廠商參與其中,發(fā)展迅速,技術(shù)架構(gòu)也非常領(lǐng)先。XenServer充分利用了Intel VT和AMD-V這類CPU廠商開發(fā)的硬件輔助虛擬化,它擁有更快捷、更高效的虛擬化計(jì)算能力。所以,XenServer平臺(tái)上的虛擬機(jī)在性能上幾乎可以與物理機(jī)相抗衡,管理上卻比相同數(shù)量級(jí)的物理機(jī)要容易得多,效率更高[2]。
1.2.2 遠(yuǎn)程桌面協(xié)議方案
在虛擬桌面基礎(chǔ)架構(gòu)中,核心的部分是遠(yuǎn)程桌面協(xié)議。協(xié)議規(guī)定了用戶輸入的信息按照何種格式打包壓縮、如何加密等。這些信息封裝完畢后通過網(wǎng)絡(luò)傳給虛擬機(jī),以約定的同種協(xié)議解析、輸入,虛擬機(jī)以相同的方式將信息傳回給用戶。當(dāng)前主流的遠(yuǎn)程桌面協(xié)議包括RDP、ICA、PCoIP、SPICE以及VNC。
其中,RDP、ICA和PCoIP協(xié)議都是企業(yè)私有的,SPICE和VNC則是開源的協(xié)議,開源的優(yōu)勢之一在于可以支持多種操作系統(tǒng)。SPICE協(xié)議對于底層KVM的依賴較高, VNC協(xié)議的工作原理是客戶端與服務(wù)端之間互相傳輸用戶的輸入和遠(yuǎn)程桌面的變化,它底層建立在遠(yuǎn)程幀緩沖協(xié)議(remote frame buffer protocol)之上。VNC基礎(chǔ)架構(gòu)簡單,其跨平臺(tái)兼容性能十分優(yōu)秀,可以連接不同的操作系統(tǒng)進(jìn)行遠(yuǎn)程控制訪問,這也是我們采用它作為遠(yuǎn)程訪問協(xié)議方案的主要原因。
2 基于開源桌面的嵌入式實(shí)驗(yàn)平臺(tái)
2.1 系統(tǒng)架構(gòu)
本文提出的“基于開源虛擬桌面的嵌入式實(shí)驗(yàn)平臺(tái)”是一種不同于傳統(tǒng)教學(xué)系統(tǒng)的虛擬機(jī)房實(shí)驗(yàn)室。該系統(tǒng)依托學(xué)校內(nèi)的局域網(wǎng)隔離真實(shí)機(jī)房,將服務(wù)器、嵌入式開發(fā)板等實(shí)驗(yàn)室設(shè)備以學(xué)生用戶為單位分配,學(xué)生在原機(jī)房內(nèi)以遠(yuǎn)程桌面的形式訪問實(shí)驗(yàn)環(huán)境。虛擬實(shí)驗(yàn)平臺(tái)架構(gòu)如圖1所示。
服務(wù)器虛擬化套件Xen在服務(wù)器端建立資源池,創(chuàng)建計(jì)算資源池和存儲(chǔ)池,在池中創(chuàng)建若干個(gè)Ubuntu和 Windows系統(tǒng)的虛擬機(jī),為學(xué)生用戶提供實(shí)驗(yàn)環(huán)境,還包括架設(shè)遠(yuǎn)程桌面服務(wù)器以及為運(yùn)維團(tuán)隊(duì)提供管理窗口。
實(shí)驗(yàn)環(huán)境的虛擬機(jī)安裝嵌入式開發(fā)板的教學(xué)軟件,本地部署VNC服務(wù)端,與校園網(wǎng)隔離,建立與遠(yuǎn)程桌面服務(wù)器的單一網(wǎng)絡(luò)連接,通過telnet訪問局域網(wǎng)內(nèi)的開發(fā)板進(jìn)行開發(fā),同時(shí)瀏覽器提供網(wǎng)絡(luò)攝像頭監(jiān)控開發(fā)板的窗口。endprint
遠(yuǎn)程桌面服務(wù)器的虛擬機(jī)安裝Guacamole,Guacamole是一個(gè)由不同Java程序構(gòu)成的Web應(yīng)用,它被設(shè)計(jì)成一個(gè)API,允許二次開發(fā)[5]??赏ㄟ^部署在Tomcat的war包修改Web頁面的樣式和參數(shù)。具體實(shí)現(xiàn)過程如圖2所示。
遠(yuǎn)程桌面服務(wù)器通過Web容器為用戶提供遠(yuǎn)程訪問。當(dāng)連接建立時(shí),Web頁面的http協(xié)議自動(dòng)接管與服務(wù)端之間的通信。命令行支持telnet和ssh兩種協(xié)議。圖形桌面支持RDP和VNC兩種協(xié)議,分別用于與Windows平臺(tái)和Linux平臺(tái)建立遠(yuǎn)程控制連接。遠(yuǎn)程桌面協(xié)議由一個(gè)稱為Guacd的中間層服務(wù)轉(zhuǎn)換為Guacamole Protocol,使客戶端和Web應(yīng)用程序根據(jù)協(xié)議傳輸,服務(wù)端的Web應(yīng)用程序解析協(xié)議,代替用戶完成客戶端的工作,連接到遠(yuǎn)程機(jī)器。遠(yuǎn)程桌面服務(wù)器虛擬機(jī)同時(shí)連接校園網(wǎng)和機(jī)房局域網(wǎng),將局域網(wǎng)中的云桌面分發(fā)給校園網(wǎng)環(huán)境內(nèi)的學(xué)生用戶。
2.2 系統(tǒng)的優(yōu)點(diǎn)
2.2.1 操作機(jī)與云桌面系統(tǒng)隔離
學(xué)生用戶只需要登錄云桌面系統(tǒng)賬號(hào),就可以遠(yuǎn)程訪問教學(xué)所需的實(shí)驗(yàn)環(huán)境和軟件。這些部署已經(jīng)在服務(wù)器的虛擬機(jī)上完成,學(xué)生用戶可以在不同的機(jī)房實(shí)驗(yàn)室通過PC或手機(jī)登錄和操作自己的實(shí)驗(yàn)環(huán)境,這樣,提高了教學(xué)的靈活性、實(shí)驗(yàn)環(huán)境的安全性以及管理效率,實(shí)驗(yàn)環(huán)境的復(fù)制與備份工作也變得更為簡單高效。
2.2.2 科學(xué)部署
系統(tǒng)中需要解決的一個(gè)問題就是把開發(fā)板以云桌面和視頻監(jiān)控的形式提供給學(xué)生用戶。由于維護(hù)、管理等因素,以開發(fā)板為例的各種特定的實(shí)驗(yàn)設(shè)備以云桌面和服務(wù)的形式交付給學(xué)生則更加高效、安全。采用這種架構(gòu),在擴(kuò)展性上也有獨(dú)特的優(yōu)勢,由于學(xué)生用戶接觸到的只是遠(yuǎn)程桌面,在更改系統(tǒng)架構(gòu)的時(shí)候,只需要在后臺(tái)就可以完成。
2.2.3 實(shí)驗(yàn)環(huán)境與傳統(tǒng)機(jī)房兼容
傳統(tǒng)的機(jī)房實(shí)驗(yàn)室絕大多數(shù)都部署了Windows操作系統(tǒng),而Linux平臺(tái)的實(shí)驗(yàn)通常只能在虛擬機(jī)上完成,采用該系統(tǒng)可以通過云桌面將實(shí)驗(yàn)環(huán)境與Windows平臺(tái)隔離,解決了應(yīng)用的依賴以及驅(qū)動(dòng)等問題,減少不同實(shí)驗(yàn)環(huán)境發(fā)生沖突的幾率。
3 系統(tǒng)實(shí)現(xiàn)
部署本系統(tǒng)時(shí)主要涉及的技術(shù)是服務(wù)器虛擬化和開源的遠(yuǎn)程虛擬桌面的實(shí)現(xiàn)。
3.1 實(shí)驗(yàn)平臺(tái)
服務(wù)器通過光纖交換機(jī)連接到網(wǎng)絡(luò)存儲(chǔ)、嵌入式開發(fā)板和網(wǎng)絡(luò)攝像頭。虛擬機(jī)部署如圖3所示。
開源的虛擬桌面由Guacamole服務(wù)器實(shí)現(xiàn),依賴于Web應(yīng)用提供給學(xué)生。Ubuntu虛擬機(jī)設(shè)置桌面共享后允許VNC客戶端的遠(yuǎn)程訪問請求。Web網(wǎng)頁相當(dāng)于VNC的客戶端,由具備WebSocket、Canvas、JavaScript特性的HTML5瀏覽器將云桌面輸出給學(xué)生用戶。虛擬桌面提供一切學(xué)生需要的應(yīng)用程序和依賴,同時(shí),網(wǎng)絡(luò)攝像頭查看的嵌入式開發(fā)板也通過虛擬桌面的Web網(wǎng)頁提供給學(xué)生。虛擬桌面如圖4所示。
3.2 性能分析
與其他場景下的虛擬化方案相比,該方案開銷低,外設(shè)兼容性滿足各種利用串口和網(wǎng)口通信的嵌入式開發(fā)板,更適合教學(xué)場景規(guī)模。利用Xen與網(wǎng)絡(luò)存儲(chǔ)的設(shè)計(jì),物理上使用多服務(wù)器以實(shí)現(xiàn)多層次的高可用性、災(zāi)難恢復(fù)和動(dòng)態(tài)遷移的特性。虛擬桌面的設(shè)計(jì)只傳輸鍵鼠事件,減少網(wǎng)絡(luò)帶寬開銷,同時(shí)實(shí)現(xiàn)系統(tǒng)的隔離,真實(shí)的實(shí)驗(yàn)機(jī)、嵌入式開發(fā)板、網(wǎng)絡(luò)拓?fù)涠茧[藏起來,只對學(xué)生呈現(xiàn)一個(gè)虛擬桌面。
使用該方案,學(xué)生按照權(quán)限遠(yuǎn)程獲得仿真桌面,產(chǎn)生不同的計(jì)算資源需求可以按需分配在多臺(tái)物理機(jī)上,實(shí)現(xiàn)負(fù)載均衡。真實(shí)的操作在虛擬機(jī)上完成,高可用性和動(dòng)態(tài)遷移保證了即使一臺(tái)機(jī)器宕機(jī),也可以在另一臺(tái)機(jī)器上繼續(xù)運(yùn)行操作,這樣就保證了數(shù)據(jù)安全和教學(xué)流暢性。統(tǒng)一后臺(tái)部署的實(shí)驗(yàn)環(huán)境為學(xué)生省去了許多工作量,同時(shí)避免開發(fā)過程中出現(xiàn)其他錯(cuò)誤。VNC服務(wù)器允許根據(jù)帶寬設(shè)置桌面?zhèn)鬏攷?、分辨率、色彩位?shù)等參數(shù)來保證使用流暢性。與傳統(tǒng)教學(xué)環(huán)境或是其他場景的虛擬化方案相比,本平臺(tái)設(shè)計(jì)顯示出更強(qiáng)的實(shí)用性。
3.3 未來展望
未來,可以使用更加輕量級(jí)的Docker技術(shù)完成虛擬化需求,部署本文系統(tǒng)中的實(shí)驗(yàn)環(huán)境。Docker技術(shù)是Linux平臺(tái)的一個(gè)開源引擎,用于實(shí)現(xiàn)操作系統(tǒng)級(jí)別的虛擬化,它可以為應(yīng)用程序創(chuàng)建一個(gè)可移植的容器封裝,這些根據(jù)鏡像所創(chuàng)建的容器可以高效便捷地發(fā)布[6]。通過這種方式打包發(fā)布Web應(yīng)用的優(yōu)勢在于啟動(dòng)快、資源占用小、隔離性好、安全性高。具體實(shí)施可以將VNC加入到Docker的鏡像中去實(shí)現(xiàn)通信功能模塊,完成鏡像創(chuàng)建后只要修改容器中的VNC Server就可以把封裝的應(yīng)用發(fā)布出去,實(shí)現(xiàn)用戶可以在任何平臺(tái)通過VNC客戶端或Web網(wǎng)頁訪問。
4 結(jié) 語
基于開源虛擬桌面的實(shí)驗(yàn)平臺(tái)主要運(yùn)用云計(jì)算技術(shù)和虛擬化的技術(shù),改進(jìn)了傳統(tǒng)機(jī)房實(shí)驗(yàn)室的組織架構(gòu),利用計(jì)算資源的時(shí)間和空間需求差異滿足實(shí)際教學(xué)需求,降低了高校對基礎(chǔ)設(shè)施的持有成本和管理成本,具備良好的實(shí)用價(jià)值。該系統(tǒng)的設(shè)計(jì)提出了以云桌面遠(yuǎn)程交付實(shí)驗(yàn)環(huán)境和設(shè)備的思路,符合國家教育信息化的規(guī)劃,將促進(jìn)教育信息化的發(fā)展,具有良好的發(fā)展前景。
參考文獻(xiàn):
[1] Citrix官方網(wǎng)站[EB/OL]. [2017-04-24]. http://www.citrix.com.
[2] VMware官方網(wǎng)站[EB/OL]. [2017-04-24]. http://www.vmware.com.
[3] 紅帽子虛擬化官方網(wǎng)站[EB/OL]. [2017-04-24]. http://www.redhat.com/products/virtualization.
[4] 微軟虛擬化官方網(wǎng)站[EB/OL]. [2017-04-24]. http://www.microsoft.com/china/CIO/virtualization/overall.mspx.
[5] Guacamole官方網(wǎng)站[EB/OL]. [2017-04-24]. http://guacamole.incubator.apache.org.
[6] 馬越, 黃剛. 基于Docker的應(yīng)用軟件虛擬化研究[J]. 軟件, 2015, 36(3): 10-14.
(編輯:彭遠(yuǎn)紅)endprint