陳 龍,崔舒寧,薄鈞戈,謝 濤
(西安交通大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,陜西 西安 710049)
近年來(lái),社會(huì)的信息化速度呈指數(shù)級(jí)增長(zhǎng),互聯(lián)網(wǎng)的應(yīng)用也已得到普及,以云計(jì)算、大數(shù)據(jù)以及人工智能為代表的新技術(shù)得到了迅猛發(fā)展,因此使得各行各業(yè)充分利用新技術(shù)的優(yōu)勢(shì)來(lái)促進(jìn)自身改革和發(fā)展成為可能。目前,我國(guó)高校的信息化建設(shè)經(jīng)歷了網(wǎng)絡(luò)化、數(shù)字化、集成化3個(gè)階段,以“智慧化”為典型特征迎來(lái)了第4 個(gè)階段[1]。同時(shí),伴隨著“新工科”[2]概念的提出,如何將前沿技術(shù)與高校的信息化建設(shè)和基礎(chǔ)教學(xué)相結(jié)合,實(shí)現(xiàn)“智慧化”教育和“新工科”建設(shè)的目標(biāo),已成為高校信息化建設(shè)和教育教學(xué)改革的一個(gè)熱點(diǎn)話題。
現(xiàn)階段,很多高校通過(guò)購(gòu)置新設(shè)備、部署新平臺(tái)等手段來(lái)提高信息化建設(shè)的水平,還有些高校為了滿足學(xué)生日常上機(jī)實(shí)驗(yàn)的需求建立了相應(yīng)的計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心,這些措施不僅消耗了大量的財(cái)力和物力,而且這些資源閑置率較高,未能充分利用,造成教學(xué)資源的嚴(yán)重浪費(fèi)[3]。同時(shí),隨著時(shí)間的推移,日益陳舊的設(shè)備也無(wú)法滿足實(shí)驗(yàn)教學(xué)的新需求,而購(gòu)置新設(shè)備又在一定程度上加重了學(xué)校經(jīng)費(fèi)開支的壓力。如何利用現(xiàn)有設(shè)備,結(jié)合前沿信息技術(shù),打造能滿足教學(xué)和科研雙重需求的教學(xué)資源平臺(tái),已成為當(dāng)前高校信息化建設(shè)急需解決的一道難題。隨著云計(jì)算的出現(xiàn)和發(fā)展,尤其是開源軟件的免費(fèi)提供和分布式系統(tǒng)的日漸成熟,使高校利用自身技術(shù)解決上述問(wèn)題成為可能[4-6]。
目前,很多高校在信息化建設(shè)方面取得了很大進(jìn)展,不僅在軟硬件環(huán)境方面有很大的改善,而且在教學(xué)和科研方面也能起到一定的支撐作用。然而,隨著時(shí)間的推移和設(shè)備更新?lián)Q代的加速,不少問(wèn)題日益凸顯,以西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心(下稱“實(shí)驗(yàn)中心”)為例,主要有以下幾個(gè)方面的問(wèn)題。
目前,實(shí)驗(yàn)中心的升級(jí)維護(hù)主要依靠人工來(lái)完成,運(yùn)維人員定期對(duì)機(jī)器進(jìn)行檢查,更換不符合要求的軟硬件設(shè)備,導(dǎo)致運(yùn)維人員成本太高;每年高校的擴(kuò)招必然導(dǎo)致學(xué)生人數(shù)持續(xù)增長(zhǎng),隨之而來(lái)的就是實(shí)驗(yàn)中心的擴(kuò)建和新設(shè)備的采購(gòu)。與此同時(shí),隨著時(shí)間的推移,日益陳舊的設(shè)備也將面臨更新?lián)Q代的問(wèn)題,這將給學(xué)校經(jīng)費(fèi)開支帶來(lái)很大的壓力。此外,實(shí)驗(yàn)中心的這些資源在大多數(shù)情況下處于空閑狀態(tài),使用率較低,造成教學(xué)資源的嚴(yán)重浪費(fèi),無(wú)形中增加了運(yùn)維成本。
實(shí)驗(yàn)中心運(yùn)維人員會(huì)根據(jù)每門課的教學(xué)要求預(yù)先在一臺(tái)機(jī)器上裝好所需的上機(jī)實(shí)驗(yàn)環(huán)境,然后再通過(guò)網(wǎng)絡(luò)硬盤數(shù)據(jù)拷貝的方式安裝到其他機(jī)器上。通常一臺(tái)機(jī)器安裝有多個(gè)操作系統(tǒng)和軟件環(huán)境,需要根據(jù)不同的教學(xué)需求進(jìn)行選擇。如果涉及系統(tǒng)或者軟件的升級(jí)和配置,則需要對(duì)所有機(jī)器進(jìn)行操作,不僅增加了工作量,而且造成管理復(fù)雜,提高了管理的成本[7-8]。
為了保護(hù)機(jī)器的安全,目前實(shí)驗(yàn)中心使用硬盤保護(hù)卡,因此學(xué)生無(wú)法將未完成的實(shí)驗(yàn)數(shù)據(jù)保存到本地以供下次繼續(xù)進(jìn)行實(shí)驗(yàn),導(dǎo)致實(shí)驗(yàn)過(guò)程不連續(xù),無(wú)法保證良好的教學(xué)效果。而如果使用U 盤進(jìn)行拷貝,又無(wú)法有效保證系統(tǒng)和設(shè)備的安全。同時(shí),由于實(shí)驗(yàn)中心開放時(shí)間和地點(diǎn)的限制,學(xué)生無(wú)法自由上機(jī)實(shí)驗(yàn),有悖于現(xiàn)代化自主學(xué)習(xí)的理念。
隨著“新工科”概念的提出,云計(jì)算、大數(shù)據(jù)和人工智能等前沿技術(shù)將陸續(xù)引入到計(jì)算機(jī)教學(xué)中,學(xué)生在學(xué)習(xí)理論知識(shí)的同時(shí),還需要切身動(dòng)手體驗(yàn)這些技術(shù)帶來(lái)的直觀效果。然而,目前實(shí)驗(yàn)中心無(wú)法提供虛擬化和分布式的計(jì)算環(huán)境,導(dǎo)致實(shí)驗(yàn)教學(xué)效果不理想,影響學(xué)生的學(xué)習(xí)興趣和積極性。
云計(jì)算技術(shù)是近年來(lái)得到快速發(fā)展的一種嶄新的計(jì)算模式,正成為信息領(lǐng)域研究的熱點(diǎn),幾乎所有IT 巨頭,包括亞馬遜、IBM 和微軟都將云計(jì)算作為未來(lái)發(fā)展的主要策略之一[9-12]。它的出現(xiàn)和發(fā)展為解決上述問(wèn)題提供了思路。
目前,已有部分高校利用云計(jì)算技術(shù)在實(shí)現(xiàn)資源共享、按需分配、統(tǒng)一管理等方面的優(yōu)點(diǎn),探索建立基于云計(jì)算的實(shí)驗(yàn)教學(xué)平臺(tái)[13-15],這些有意義的探索工作為實(shí)驗(yàn)中心在建設(shè)教學(xué)資源云平臺(tái)的過(guò)程中提供了理論支撐和實(shí)踐經(jīng)驗(yàn)。
結(jié)合云計(jì)算的基本特征,可以發(fā)現(xiàn)云計(jì)算為解決高校教學(xué)資源建設(shè)過(guò)程中存在的問(wèn)題提供了行之有效的方法,其靈活性、可擴(kuò)展性、高可靠性、超大計(jì)算能力等特征正符合當(dāng)前高校信息化建設(shè)的需求。目前,教學(xué)資源云平臺(tái)的建設(shè)主要有3 種選擇方案,即自主研發(fā)解決方案、商業(yè)解決方案和開源解決方案。表1 對(duì)這3 種方案的特點(diǎn)進(jìn)行了對(duì)比分析[16]。
從表1 中可以看出,在這3 種解決方案中,開源解決方案無(wú)需各種軟件的商業(yè)授權(quán)費(fèi)用,使用成本遠(yuǎn)低于商業(yè)解決方案。一般不需要編寫大量代碼,主要工作是規(guī)劃、實(shí)施和集成等,其技術(shù)難度遠(yuǎn)小于自行開發(fā)方案。此外,開源解決方案的可擴(kuò)展性強(qiáng),能有效避免廠家鎖定問(wèn)題。筆者認(rèn)為這是目前比較適合我國(guó)高校實(shí)際情況的構(gòu)建模式,因此筆者討論的教學(xué)資源云平臺(tái)的構(gòu)建與應(yīng)用采用開源云計(jì)算方案。
目前技術(shù)上可行的開源云計(jì)算主要有ORCA、Nimbus、Eucalyptus、OpenNebula和ClousStack 幾種。相比之下較為成熟且有成功案例的產(chǎn)品有OpenNebula、Eucalyptus、CloudStack 和OpenStack。調(diào)查發(fā)現(xiàn),已有很多企業(yè)和高校采用OpenStack 搭建私有云,如構(gòu)建基于OpenStack 的創(chuàng)新實(shí)驗(yàn)室云平臺(tái)[17],構(gòu)建基于OpenStack 的教學(xué)和科研實(shí)驗(yàn)云計(jì)算平臺(tái)[18],以及構(gòu)建基于OpenStack 的高校實(shí)驗(yàn)室云計(jì)算管理平臺(tái)[19]等。鑒于上述案例以及OpenStack 具有的可控性、兼容性和擴(kuò)展性等優(yōu)點(diǎn),筆者基于OpenStack 搭建教學(xué)資源云平臺(tái),為實(shí)驗(yàn)中心提供一個(gè)動(dòng)態(tài)可擴(kuò)展、超強(qiáng)處理能力的平臺(tái),為后續(xù)的教學(xué)和科研工作提供強(qiáng)有力的支撐。
OpenStack 是由Rackspace 公司和美國(guó)國(guó)家航空航天局(NASA)聯(lián)合開發(fā)的云計(jì)算平臺(tái),旨在幫助服務(wù)提供商和企業(yè)內(nèi)部實(shí)現(xiàn)基礎(chǔ)設(shè)施服務(wù)(Infrastructure as a Service,IaaS)[20],即 類似于Amazon EC2 和S3 的功能。由于OpenStack采用Apache2.0 許可證發(fā)布源代碼,因此在發(fā)布之后的短短兩年時(shí)間內(nèi)就吸引了IBM、思科、惠普等175 個(gè)企業(yè)和組織的加入,自2010 年10 月開始,OpenStack 至今已經(jīng)發(fā)布了從Austin 到Rocky 共18 個(gè)版本[21],幾乎是半年一個(gè)版本的更新速度。
基于上述對(duì)云計(jì)算以及OpenStack 的研究分析,筆者構(gòu)建了教育資源云平臺(tái)的體系架構(gòu)(如圖1 所示)。
(1)基礎(chǔ)設(shè)施層包括物理資源層和虛擬資源層兩個(gè)方面:物理資源層主要包括計(jì)算機(jī)資源、存儲(chǔ)器資源和網(wǎng)絡(luò)設(shè)備資源等構(gòu)建云平臺(tái)所需的所有硬件資源,位于基礎(chǔ)設(shè)施的最底層;虛擬資源層是通過(guò)虛擬機(jī)、虛擬存儲(chǔ)和虛擬網(wǎng)絡(luò)等一系列的虛擬化手段,將物理資源層中的硬件資源虛擬化成可以按需調(diào)度的虛擬資源池。
圖1 教育資源云平臺(tái)體系架構(gòu)圖
(2)平臺(tái)管理層主要包括用戶管理、資源管理、鏡像管理和安全管理,是云計(jì)算服務(wù)管理體系中最重要的一層。其中用戶管理主要包括計(jì)費(fèi)管理、請(qǐng)求管理以及身份管理;資源管理主要包括故障檢測(cè)、監(jiān)控統(tǒng)計(jì)以及負(fù)載均衡等;鏡像管理包括鏡像的創(chuàng)建、部署和存儲(chǔ)等操作;安全管理包括綜合防護(hù)、安全審計(jì)、訪問(wèn)授權(quán)以及身份認(rèn)證等安全相關(guān)的多個(gè)方面。
(3)用戶接口層通過(guò)提供圖形化的接口服務(wù)來(lái)獲得用戶的服務(wù)要求,主要包括對(duì)服務(wù)的注冊(cè)、查找、訪問(wèn)和監(jiān)控等功能。
基于上述對(duì)教育資源云平臺(tái)體系架構(gòu)介紹,筆者所搭建的教育資源云平臺(tái)主要由計(jì)算服務(wù)(Nova)、鏡像服務(wù)(Glance)、身份認(rèn)證服務(wù)(Keystone)和Web 界面服務(wù)(Horizon)共4 個(gè)部分組成(沒有使用存儲(chǔ)服務(wù)(Swift)。計(jì)算服務(wù)主要提供虛擬化實(shí)例運(yùn)行和管理、網(wǎng)絡(luò)管理以及訪問(wèn)控制等功能,它是云平臺(tái)的控制器;鏡像服務(wù)主要負(fù)責(zé)管理平臺(tái)中的虛擬機(jī)鏡像,提供對(duì)鏡像的存儲(chǔ)、查詢等服務(wù);身份認(rèn)證服務(wù)主要提供身份認(rèn)證和管理功能;Web 界面服務(wù)為使用云平臺(tái)的用戶提供了一個(gè)Web 頁(yè)面,通過(guò)它可以方便快捷的進(jìn)行業(yè)務(wù)操作和平臺(tái)管理工作。OpenStack 的各個(gè)服務(wù)的關(guān)系如圖2所示。
OpenStack 可以有多種部署方式。
(1)單節(jié)點(diǎn)部署,所有服務(wù)運(yùn)行在一臺(tái)服務(wù)器上,該服務(wù)器既負(fù)責(zé)虛擬的調(diào)度管理、鏡像管理、網(wǎng)絡(luò)管理等控制任務(wù),又負(fù)責(zé)計(jì)算任務(wù)。
(2)雙節(jié)點(diǎn)部署,分為控制節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)兩個(gè),將計(jì)算任務(wù)從控制節(jié)點(diǎn)中分離出來(lái),運(yùn)行在計(jì)算結(jié)點(diǎn)上,控制節(jié)點(diǎn)只負(fù)責(zé)控制任務(wù)。
(3)多節(jié)點(diǎn)部署,將Glance、Keystone等服務(wù)從控制節(jié)點(diǎn)分離出來(lái),單獨(dú)創(chuàng)建鏡像服務(wù)器和認(rèn)證服務(wù)器,同時(shí)增加多臺(tái)計(jì)算節(jié)點(diǎn)、增強(qiáng)計(jì)算能力,形成多節(jié)點(diǎn)部署。
圖2 OpenStack 服務(wù)關(guān)系
為了便于后期的擴(kuò)展和維護(hù),也為了適應(yīng)實(shí)際的生產(chǎn)環(huán)境,可以采用多節(jié)點(diǎn)部署方式(如圖3 所示)。
當(dāng)前主流的OpenStack 構(gòu)建方式主要有以下3 種。
(1)軟件包安裝。目前,OpenStack 的相關(guān)資源軟件包都已經(jīng)集成到了各大操作系統(tǒng)里面,因此可以直接通過(guò)自動(dòng)化網(wǎng)絡(luò)的安裝方式來(lái)完成OpenStack 環(huán)境的搭建。
(2)自動(dòng)化腳本安裝。OpenStack 的自動(dòng)化安裝腳本有很多種,目前主流的是Devstack 和Fuel,其中Devstack可以通過(guò)運(yùn)行腳本完成OpenStack 的“一鍵安裝”,從而讓開發(fā)者可以快速搭建一個(gè)環(huán)境;Fuel則更為震撼,它將幾乎所有的安裝過(guò)程都Web 化,用戶只需在網(wǎng)頁(yè)上做一些簡(jiǎn)單的配置就可以完成OpenStack 的安裝。
(3)源碼安裝。先從OpenStack 的官網(wǎng)上將源代碼資源包下載到本地,然后再根據(jù)自己的實(shí)際需求對(duì)配置文件進(jìn)行修改,最后一步一步地執(zhí)行源碼安裝過(guò)程。這種方式比前兩種更為復(fù)雜繁瑣,需要具有一定的Linux 操作基礎(chǔ)及計(jì)算機(jī)專業(yè)知識(shí),但是這種方式比前兩種更能滿足用戶的個(gè)性化需求。
由于各大高校對(duì)教學(xué)資源的信息化建設(shè)需求各有不同,基于上述分析,源碼安裝的方式毫無(wú)疑問(wèn)能夠更好地滿足不同的教學(xué)需求。因此,筆者基于這點(diǎn)考慮,也采用源碼安裝的方式來(lái)部署OpenStack,以便能根據(jù)本中心的實(shí)際需求來(lái)進(jìn)行配置參數(shù)的設(shè)定和修改。整個(gè)部署過(guò)程主要分為4 個(gè)部分,即Keystone 部署、Glance 部署、Nova 部署和Horizon 部署。
圖3 云平臺(tái)的部署
Keystone 的部署,Keystone 是OpenStack 中用于身份驗(yàn)證的項(xiàng)目,任何服務(wù)請(qǐng)求都需要經(jīng)過(guò)它的驗(yàn)證獲得服務(wù)的endpoint(指向服務(wù)的訪問(wèn)鏈接)才能訪問(wèn)該服務(wù),在部署OpenStack時(shí),首先要安裝Keystone 并在Keystone 中注冊(cè)Nova、Glance 等服務(wù),使得各服務(wù)可以被授權(quán)和使用。Keystone 的具體部署流程如圖4 所示。
Glance 的部署,Glance 主要負(fù)責(zé)虛擬機(jī)鏡像的管理,通過(guò)Glance 可以完成鏡像的上傳、存儲(chǔ)、注冊(cè)、驗(yàn)證以及刪除等操作。Glance 的具體部署流程如圖5 所示。
Nova 的部署,Nova 提供虛擬化實(shí)例運(yùn)行和管理、網(wǎng)絡(luò)管理以及訪問(wèn)控制等功能,它是云平臺(tái)的控制器,同時(shí)也是三個(gè)核心OpenStack項(xiàng)目中最復(fù)雜的一個(gè)項(xiàng)目,它的擴(kuò)展還包括Quantum 和Melange 等項(xiàng)目。Nova 的具體部署流程如圖6 所示。
Horizon 的部署,Horizon 是OpenStack 中基于Web 的管理控制臺(tái),采用Python 和Django 結(jié)構(gòu)開發(fā)的。Horizon 的具體部署流程如圖7 所示。
圖4 keystone 配置流程
圖5 Glance 配置流程
圖6 Nova 配置流程
圖7 Horizon 配置流程
基于OpenStack 的教學(xué)資源云平臺(tái)目前已經(jīng)投入使用,最典型的應(yīng)用就是云桌面。根據(jù)實(shí)驗(yàn)教學(xué)的具體應(yīng)用需求定制符合實(shí)驗(yàn)教學(xué)培養(yǎng)方案的云計(jì)算系統(tǒng),向客戶端推送具有針對(duì)性的實(shí)驗(yàn)環(huán)境(包括Win7、Win10、Win XP、Linux 等多個(gè)操作系統(tǒng),且安裝好實(shí)驗(yàn)所需軟件),一個(gè)云桌面可以同時(shí)推送到多個(gè)不同配置的硬件設(shè)備(PC 機(jī)、筆記本、瘦客戶端、手機(jī)等),同時(shí)也可以給一個(gè)硬件設(shè)備推送多個(gè)云桌面。目前,實(shí)驗(yàn)中心主要采用“課程云桌面”和“固定云桌面”兩種方式向教師和學(xué)生提供服務(wù)[22]。
課程云桌面是支持傳統(tǒng)定時(shí)上下課的上課場(chǎng)景,學(xué)生上課前需對(duì)實(shí)驗(yàn)相關(guān)環(huán)境以及課程等信息進(jìn)行設(shè)置,在每次課程上課前管理系統(tǒng)會(huì)為每個(gè)學(xué)生推送一個(gè)課程所需的環(huán)境,學(xué)生只需輸入正確的用戶名及密碼就能使用,課程結(jié)束后對(duì)云桌面進(jìn)行收回。其使用流程如圖8 所示。
目前本中心已有2 門課程以“課程云桌面”的形式使用了這套解決方案,分別是90 人的高級(jí)程序設(shè)計(jì)課以及30 人的可視化程序設(shè)計(jì)課,這2 門課程由于是嚴(yán)格按照具體的上課時(shí)間段進(jìn)行上課,2 個(gè)班使用的原實(shí)驗(yàn)中心的老舊計(jì)算機(jī)作為終端使用,遠(yuǎn)程接入云桌面,為學(xué)生提供了高性能、高可靠的桌面教學(xué)服務(wù)。
圖8 課程云桌面設(shè)置流程圖
固定云桌面不同于課程云桌面,不參與云桌面的自動(dòng)調(diào)度,為教師或者需長(zhǎng)時(shí)間進(jìn)行實(shí)驗(yàn)的課程提供類似傳統(tǒng)PC 機(jī)的服務(wù)。教師可以使用固定云桌面進(jìn)行辦公、實(shí)驗(yàn)、多媒體教學(xué)等多場(chǎng)景應(yīng)用,從而擺脫了U 盤攜帶、無(wú)法通過(guò)移動(dòng)設(shè)備進(jìn)行訪問(wèn)桌面等問(wèn)題。目前,實(shí)驗(yàn)中心已為十多位教師建立了二十多個(gè)固定云桌面。同時(shí),筆者還在每年進(jìn)行的小學(xué)期實(shí)訓(xùn)中,采用“固定云桌面”的形式,為學(xué)生提供一個(gè)連續(xù)的實(shí)驗(yàn)環(huán)境,滿足了游戲開發(fā)、單片機(jī)開發(fā)、HIS 系統(tǒng)開發(fā)等多個(gè)不同實(shí)訓(xùn)項(xiàng)目的教學(xué)實(shí)驗(yàn)要求,順利地完成了小學(xué)期實(shí)訓(xùn)的任務(wù)。
截至目前,云桌面的使用情況見表2。
從表2 可以看出,使用的軟件從一般程序設(shè)計(jì)類課程需用的開發(fā)工具Visual Studio2015、Sql Server2012 等到一些專業(yè)課需用的專有軟件AutoCAD、Rhino、SPSS、Qt 5.3.0 等,說(shuō)明教育資源云平臺(tái)利用云桌面的典型應(yīng)用已經(jīng)可以滿足教學(xué)實(shí)驗(yàn)的相關(guān)要求,對(duì)傳統(tǒng)的實(shí)驗(yàn)中心上機(jī)模式有了很大的改進(jìn),進(jìn)一步證明了教育資源云平臺(tái)建設(shè)的可行性和具有的實(shí)際應(yīng)用價(jià)值。
云計(jì)算是當(dāng)前“新工科”建設(shè)的熱點(diǎn)問(wèn)題,也是高校信息化建設(shè)的主要方向。筆者結(jié)合本中心的實(shí)際建設(shè)需求,在中心現(xiàn)有設(shè)備和物理架構(gòu)的基礎(chǔ)上,構(gòu)建了基于OpenStack 的教學(xué)資源云平臺(tái),并將其用于實(shí)際的教學(xué)實(shí)驗(yàn)和科研工作中,取得了一定的成果。該平臺(tái)的建立不僅實(shí)現(xiàn)了實(shí)驗(yàn)室資源的合理利用,也提高了師生教學(xué)實(shí)驗(yàn)和研發(fā)工作的效率。平臺(tái)的成功搭建只是信息化建設(shè)的開始,對(duì)于一些重點(diǎn)和難點(diǎn)技術(shù)問(wèn)題,還需在后續(xù)的研究中繼續(xù)探索,并通過(guò)與大數(shù)據(jù)、人工智能以及物聯(lián)網(wǎng)等前沿技術(shù)的融合,形成新的教學(xué)內(nèi)容和實(shí)驗(yàn)案例,充分發(fā)揮其在科研和教學(xué)中的作用,實(shí)現(xiàn)高校教學(xué)的數(shù)字化、自動(dòng)化和網(wǎng)絡(luò)化。平臺(tái)主要構(gòu)建過(guò)程將制作為視頻教材,加入到中國(guó)大學(xué)MOOC 的相關(guān)課程中,以便學(xué)生能更好地了解和使用OpenStack 云平臺(tái),同時(shí)也能對(duì)高校教學(xué)資源的信息化建設(shè)提供有益的借鑒。
表2 云桌面使用情況