張 博 王志曉
(中國礦業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 徐州 221116)
2016年,“新工科”概念的提出為工程人才的培養(yǎng)與工程教育理論的探索提供了新視角和新思路,也是為了應(yīng)對新一輪科技革命和產(chǎn)業(yè)革命的浪潮[1]。與老工科相比,新工科更加重視學(xué)科的實(shí)用性以及各個(gè)學(xué)科之間的交叉性與綜合性,致力于提供一流的工程教育,培養(yǎng)多元化、創(chuàng)新型、復(fù)合型的卓越工程人才,促進(jìn)產(chǎn)業(yè)轉(zhuǎn)型,提高國家的核心競爭力[2]。
云計(jì)算技術(shù)作為“新工科”建設(shè)的重點(diǎn),國內(nèi)多所高校已積極開設(shè)云計(jì)算技術(shù)相關(guān)課程,主要介紹云計(jì)算基本理論,分析其關(guān)鍵技術(shù),闡述其基礎(chǔ)架構(gòu)及各種典型的云解決方案。該課程的突出特點(diǎn)是內(nèi)容豐富、綜合性強(qiáng)、學(xué)習(xí)量大、抽象性強(qiáng)、實(shí)踐性高,是一門較難學(xué)的課程。同時(shí),由于該課程的開設(shè)和建設(shè)還處于初期,且云計(jì)算行業(yè)的技術(shù)更新較快,目前尚無較成熟的課程建設(shè)先例供各大高校借鑒。因此,對云計(jì)算技術(shù)課程建設(shè)展開深入研究,整改教學(xué)內(nèi)容,優(yōu)化教學(xué)方法,加強(qiáng)課程與企業(yè)以及行業(yè)之間的聯(lián)系,提高課程的實(shí)踐性和應(yīng)用性,具有較強(qiáng)的實(shí)際意義和研究價(jià)值。
基于此,本文在總結(jié)本科計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)教學(xué)實(shí)踐的基礎(chǔ)上,針對虛擬化技術(shù)中的計(jì)算虛擬化設(shè)計(jì)了新穎的教學(xué)方案,通過提煉教學(xué)重點(diǎn)、創(chuàng)新教學(xué)方式、發(fā)展新的教學(xué)思路。本文對新工科建設(shè)背景下,工科院校云計(jì)算技術(shù)課堂教學(xué)改革有一定的借鑒意義。
本課程的授課對象為計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的大三學(xué)生。先期已學(xué)習(xí)了計(jì)算機(jī)組成原理、操作系統(tǒng)、數(shù)據(jù)庫原理、計(jì)算機(jī)網(wǎng)絡(luò)等先導(dǎo)課程,學(xué)生基本掌握了計(jì)算機(jī)科學(xué)相關(guān)的理論知識。同時(shí),在這門課程的第一章『什么是云計(jì)算?』中已學(xué)習(xí)了有關(guān)云計(jì)算的基礎(chǔ)知識,初步了解了云計(jì)算的特點(diǎn)、定義和服務(wù)模式等。但虛擬化的知識點(diǎn)多,涉及操作系統(tǒng)、編譯原理、計(jì)算機(jī)網(wǎng)絡(luò)等多門課程,這增加了學(xué)生從整體上掌握計(jì)算虛擬化的難度。因此,本章節(jié)的講學(xué)設(shè)計(jì)將運(yùn)用多種教學(xué)手段,圍繞這些重難點(diǎn)開展系統(tǒng)教學(xué)活動(dòng)。
基于云計(jì)算技術(shù)課程教學(xué)目標(biāo)點(diǎn),圍繞計(jì)算虛擬化技術(shù)相關(guān)知識點(diǎn),提出本章節(jié)內(nèi)容的教學(xué)目標(biāo),分為5點(diǎn):
(1)能夠理解什么是虛擬化,掌握裸金屬虛擬化(I型)和宿主型虛擬化(II型)的概念及各自的特點(diǎn)。
(2)理解并熟練掌握CPU 虛擬化、內(nèi)存虛擬化和I/O 虛擬化。
(3)熟練掌握開源和閉源的計(jì)算虛擬化解決方案,包括KVM和華為的FusionSphere。
(4)通過學(xué)習(xí)和掌握計(jì)算虛擬化技術(shù),進(jìn)一步為學(xué)習(xí)網(wǎng)絡(luò)虛擬化、存儲虛擬化以及OpenStack 開源云計(jì)算技術(shù)打下堅(jiān)實(shí)的基礎(chǔ)。
本章節(jié)內(nèi)容眾多,是進(jìn)入云計(jì)算技術(shù)的開篇內(nèi)容。如何結(jié)合課程內(nèi)容以及專業(yè)需求來提煉授課重點(diǎn)決定了最終的教學(xué)效果,也是教學(xué)目標(biāo)達(dá)成的重要保證。對于計(jì)算虛擬化技術(shù),以CPU虛擬化、內(nèi)存虛擬化和I/O虛擬化為教學(xué)重點(diǎn),重點(diǎn)講授計(jì)算虛擬化分類、CPU虛擬化方法、特權(quán)解除(Privilege deprivileging)和陷入模擬(Trap-and-Emulation)等關(guān)鍵知識點(diǎn),并引導(dǎo)學(xué)生運(yùn)用計(jì)算虛擬化理論理解KVM、Xen以及華為的FusionSphere的運(yùn)行機(jī)制。
理解什么是虛擬化,掌握虛擬化的分類。掌握大型機(jī)的經(jīng)典CPU虛擬化和x86架構(gòu)CPU虛擬化的三種解決方案,尤其是x86架構(gòu)CPU虛擬化的關(guān)鍵問題,即如何識別特權(quán)或敏感指令。
首先是設(shè)計(jì)課程導(dǎo)入環(huán)節(jié)。借鑒基于問題的學(xué)習(xí)策略(PBL)[3,4]。由于虛擬化最大的特點(diǎn)就是把物理機(jī)轉(zhuǎn)換為虛擬機(jī),所以從虛擬機(jī)是如何被創(chuàng)建出來的問題出發(fā),以基于內(nèi)核的虛擬機(jī)(Kernel-based Virtual Machine,KVM)配置文件為例(如圖1所示),引導(dǎo)學(xué)生討論什么是虛擬化。
圖1 KVM虛擬機(jī)配置文件
通過討論,使學(xué)生理解虛擬化的本質(zhì),即將物理服務(wù)器邏輯化,轉(zhuǎn)變成一個(gè)文件夾或文件,其中一部分用來記錄虛擬機(jī)的配置信息,如虛擬機(jī)的名稱、CPU和內(nèi)存配置,硬盤配置以及網(wǎng)絡(luò)配置等信息,另一部分用來保存用戶數(shù)據(jù)的磁盤文件,實(shí)現(xiàn)軟硬件的解耦。接著,進(jìn)一步引導(dǎo)學(xué)生討論虛擬化帶來的特性,比如每臺物理機(jī)上同時(shí)運(yùn)行多個(gè)虛擬機(jī)可以提高硬件資源利用率,降低運(yùn)行成本;軟硬件的解耦使虛擬機(jī)可以不受當(dāng)前物理服務(wù)器的限制,在集群范圍內(nèi)實(shí)現(xiàn)虛擬機(jī)的在線動(dòng)態(tài)遷移,進(jìn)而實(shí)現(xiàn)高可用性、動(dòng)態(tài)資源調(diào)度、容錯(cuò)容災(zāi)等特性。
隨后,進(jìn)入對虛擬化的理論闡釋環(huán)節(jié)。課程主體內(nèi)容的設(shè)計(jì)分為以下步驟:
(1)計(jì)算虛擬化的重要概念:如圖2所示,通過對比物理服務(wù)器架構(gòu)和虛擬機(jī)架構(gòu),介紹物理機(jī)(Host Machine)、物理機(jī)操作系統(tǒng)(Host OS)、虛擬機(jī)監(jiān)控器(Virtual Machine Monitor,VMM)、虛擬機(jī)(Guest Machine)和虛擬機(jī)操作系統(tǒng)(Guest OS)等概念。
圖2 物理架構(gòu)和虛擬化架構(gòu)
(2)計(jì)算虛擬化的分類:裸金屬虛擬化(I型)和宿主型虛擬化(II 型)。重點(diǎn)講解兩種類型虛擬化中虛擬機(jī)監(jiān)控器(VMM)的作用:I 型虛擬化中VMM 專門負(fù)責(zé)將物理硬件轉(zhuǎn)換為虛擬資源提供給虛擬機(jī)操作系統(tǒng)使用,所以稱為裸金屬。II型虛擬化中VMM只是物理機(jī)操作系統(tǒng)的一個(gè)應(yīng)用程序,通過調(diào)用物理機(jī)操作系統(tǒng)的服務(wù)獲得資源,實(shí)現(xiàn)CPU、內(nèi)存和I/O 設(shè)備的虛擬化,所以稱為宿主型。采用該結(jié)構(gòu)的虛擬化產(chǎn)品包括VMWare Workstation、Virtual PC等(圖3)。
圖3 計(jì)算虛擬化的分類
(3)介紹主流的I 型虛擬化產(chǎn)品(VMWare ESX Server、Citrix Xen Server和華為的FusionComputer)和II型虛擬化產(chǎn)品(VMWare Workstation、Virtual PC)架構(gòu),引導(dǎo)學(xué)生討論不同虛擬化產(chǎn)品所屬的虛擬化類型。
(4)總結(jié)I 型和II 型虛擬化的特點(diǎn):分區(qū)、隔離、封裝和獨(dú)立。
(1)CPU 虛擬化的發(fā)展史:由于CPU 虛擬化是本章的教學(xué)難點(diǎn),所以本節(jié)從CPU 虛擬化的發(fā)展史入手。通過介紹IBM大型機(jī)采用的CPU虛擬化技術(shù),引導(dǎo)學(xué)生回顧操作系統(tǒng)課程中介紹的分時(shí)操作系統(tǒng)原理,即將CPU切分為多個(gè)極短的時(shí)間片,通過時(shí)間片輪詢的方式,將一個(gè)CPU偽裝成多個(gè)虛擬CPU,并且讓每一個(gè)虛擬CPU看起來都在同時(shí)運(yùn)行,這就是CPU虛擬化的雛形。
(2)大型機(jī)的經(jīng)典CPU虛擬化方法:首先設(shè)置有關(guān)CPU虛擬化的關(guān)鍵問題,即:什么是CPU的分級保護(hù)域?什么是特權(quán)指令、普通指令和敏感指令?如果虛擬機(jī)操作系統(tǒng)(Guest OS)發(fā)出特權(quán)指令怎么執(zhí)行?引導(dǎo)學(xué)生進(jìn)入對CPU虛擬化的思考中,激發(fā)其學(xué)習(xí)興趣和探索精神。
隨后,進(jìn)入對CPU 虛擬化的理論闡釋環(huán)節(jié),結(jié)合此前提出的問題——虛擬機(jī)操作系統(tǒng)(Guest OS)發(fā)出特權(quán)指令的執(zhí)行過程?介紹IBM 大型機(jī)采用的經(jīng)典CPU 虛擬化方法,即特權(quán)解除(Privilege deprivileging)和陷入模擬(Trap-and-Emulation)。由于經(jīng)典CPU 虛擬化方法需要結(jié)合操作系統(tǒng)的中斷機(jī)制,所以在講解過程中設(shè)置了與中斷機(jī)制相關(guān)的提問環(huán)節(jié),如為什么需要中斷機(jī)制?中斷機(jī)制在CPU虛擬化中作用?等等。
(3)x86架構(gòu)的CPU虛擬化問題:首先設(shè)置問題,引導(dǎo)學(xué)生思考大型機(jī)上使用的經(jīng)典CPU 虛擬化技術(shù)能否移植到x86架構(gòu)服務(wù)器上?接著,通過分析x86架構(gòu)CPU采用CISC指令集與大型機(jī)CPU 采用的RISC 指令集之間的區(qū)別,分析經(jīng)典CPU 虛擬化技術(shù)無法直接用于x86 架構(gòu)CPU 虛擬化的原因——虛擬化漏洞問題,即CISC 指令集中19 條不屬于特權(quán)指令范圍的敏感指令無法被特權(quán)解除和陷入模擬捕獲。
隨后,通過引導(dǎo)學(xué)生思考如何解決虛擬化漏洞問題,引出x86架構(gòu)CPU虛擬化的三種解決方案——VMWare提出的全虛擬化、Xen提出的半虛擬化和硬件廠商提出的硬件輔助虛擬化。
1)全虛擬化:虛擬機(jī)監(jiān)控器(VMM)通過二進(jìn)制翻譯和模擬執(zhí)行特權(quán)或敏感指令,解決虛擬化漏洞問題。優(yōu)點(diǎn):不修改虛擬機(jī)操作系統(tǒng)(Guest OS),虛擬機(jī)的可以執(zhí)行性和兼容性強(qiáng)。缺點(diǎn):翻譯虛擬機(jī)操作系統(tǒng)(Guest OS)二進(jìn)制代碼,性能損耗大。
2)半虛擬化:修改虛擬機(jī)操作系統(tǒng)(Guest OS),使其意識到自己是被虛擬的,運(yùn)行時(shí)使用超級調(diào)用(Hypercall)代替特權(quán)或敏感指令。優(yōu)點(diǎn):與原始系統(tǒng)性能相近。缺點(diǎn):對于未開源的Windows系統(tǒng)無法實(shí)現(xiàn)半虛擬化。
3)硬件輔助虛擬化:全虛擬化和半虛擬化都有一個(gè)默認(rèn)的前提,即物理CPU不具備虛擬化功能,無法識別敏感指令,必須通過虛擬機(jī)監(jiān)控器(VMM)進(jìn)行模擬。硬件輔助虛擬化解決了上述問題,實(shí)現(xiàn)了CPU虛擬化的革命性變革。目前主流的x86架構(gòu)的CPU都支持了硬件虛擬化技術(shù)。
(4)總結(jié):點(diǎn)出x86架構(gòu)CPU虛擬化的關(guān)鍵問題,即如何識別特權(quán)或敏感指令。
討論1:結(jié)合1型和2型虛擬化的特點(diǎn)——分區(qū)、隔離、封裝和獨(dú)立,請2~3 位同學(xué)分別結(jié)合自己所學(xué)、所見舉一些實(shí)際的例子來討論。
討論2:從介紹開源的虛擬化技術(shù)基于內(nèi)核的虛擬機(jī)(Kernel-based Virtual Machine,KVM)和Xen 入手,討論KVM如何實(shí)現(xiàn)CPU全虛擬化?為什么Xen可以同時(shí)支持全虛擬化和半虛擬化?引導(dǎo)學(xué)生從實(shí)際案例入手,逐步探討具體虛擬化解決方案背后所蘊(yùn)含的虛擬化思想。
提問1:結(jié)合前述云計(jì)算的內(nèi)容,提問1~2位同學(xué)有關(guān)什么是云計(jì)算的特點(diǎn),以及虛擬化和云計(jì)算的區(qū)別與聯(lián)系。
提問2:針對操作系統(tǒng)相關(guān)知識,提問1~2 位同學(xué)。如,什么是分時(shí)操作系統(tǒng)?什么是CISC 指令集?什么是RISC指令集?
新工科背景下,為了解決教學(xué)內(nèi)容與行業(yè)需求以及前沿技術(shù)脫節(jié)的問題。我院與華為技術(shù)有限公司合作,聯(lián)合建設(shè)“智能基座”產(chǎn)教融合協(xié)同育人基地。將華為云計(jì)算技術(shù)引入到課程教學(xué)中,基于華為云計(jì)算基礎(chǔ)設(shè)施開展教學(xué):以FusionCompute 講解計(jì)算虛擬化、以FusionStorage 講解存儲虛擬化、以FusionNetwork 講解網(wǎng)絡(luò)虛擬化、以FusionAccess 講解桌面云架構(gòu)。通過校企合作,加快新工科建設(shè),以產(chǎn)業(yè)和技術(shù)發(fā)展的最新需求推動(dòng)高校人才培養(yǎng)改革、教學(xué)資源建設(shè)。
為了提高師資水平,我院安排課程負(fù)責(zé)人和骨干教師參加“全國高校計(jì)算機(jī)系統(tǒng)能力提升高級研修班”,學(xué)習(xí)華為云計(jì)算課程,并獲得全國高等學(xué)校計(jì)算機(jī)教育研究會(huì)聯(lián)合華為公司共同頒發(fā)的結(jié)業(yè)證書。
在學(xué)習(xí)通泛雅云平臺建課。根據(jù)課程的培養(yǎng)目標(biāo),實(shí)現(xiàn)課程教學(xué)資源的上傳下載、教學(xué)任務(wù)的布置、師生在線討論答疑、學(xué)生作業(yè)提交、老師在線考核、開源項(xiàng)目的共享等功能(圖4)。
圖4 學(xué)習(xí)通泛雅云平臺
虛擬化技術(shù)是進(jìn)入云計(jì)算技術(shù)的開篇內(nèi)容,是授課教師普遍認(rèn)為的教學(xué)重點(diǎn)和難點(diǎn)。面對眾多知識點(diǎn)無所適從,學(xué)生在學(xué)習(xí)時(shí)普遍具有畏懼心理,進(jìn)而對虛擬化這一部分的內(nèi)容產(chǎn)生厭學(xué)的情緒。為了使學(xué)生能在較為輕松的學(xué)習(xí)氛圍中不斷主動(dòng)汲取新知識,必須采用恰當(dāng)?shù)慕虒W(xué)方法和豐富的授課方式。通過運(yùn)用啟發(fā)式教學(xué),以問題為導(dǎo)向,引導(dǎo)學(xué)生主動(dòng)思考,逐步引出所要講授的關(guān)鍵內(nèi)容和難點(diǎn)內(nèi)容,激發(fā)學(xué)生的學(xué)習(xí)興趣,全面提升學(xué)習(xí)效果。