文/羅英偉
系統(tǒng)虛擬化技術(shù)在校園中的應(yīng)用
文/羅英偉
虛擬化技術(shù)在校園中的應(yīng)用十分廣泛,為校園信息化建設(shè)提供了許多非常好的方法。北大網(wǎng)絡(luò)所目前正在具體實(shí)現(xiàn)各種面向校園應(yīng)用的虛擬化上機(jī)實(shí)驗(yàn)環(huán)境,并將973VMM應(yīng)用到校園中的其他系統(tǒng)中去。
在20世紀(jì)70年代,IBM推出了VM/3 7 0,成為最早的系統(tǒng)級(jí)虛擬機(jī)。當(dāng)時(shí),研究虛擬化技術(shù)是為了充分利用相對(duì)昂貴的硬件資源。近年來(lái),隨著硬件性能的不斷提高,虛擬化技術(shù)再次成為研究熱點(diǎn)。由于虛擬化技術(shù)能靈活組織管理計(jì)算機(jī)資源,為用戶提供個(gè)性化的應(yīng)用環(huán)境,在節(jié)約計(jì)算資源的同時(shí),還提高了系統(tǒng)的穩(wěn)定性和可靠性,其在應(yīng)用中體現(xiàn)出來(lái)的優(yōu)勢(shì)也日益顯著——虛擬化技術(shù)在云計(jì)算和校園中的應(yīng)用就是其中很重要的一個(gè)方面。
隨著第五代計(jì)算機(jī)、高性能計(jì)算、互聯(lián)網(wǎng)、網(wǎng)格、虛擬化等技術(shù)的逐漸興起,“云計(jì)算”這個(gè)概念逐漸出現(xiàn)在我們的視野里。云計(jì)算技術(shù)向我們展示了一種新的商業(yè)模式。在這種模式下,將計(jì)算能力和計(jì)算資源看成一種商品進(jìn)行流通,就像我們?nèi)粘I钪袑?duì)水電的使用一樣,我們將根據(jù)自己的需求去獲得所需的計(jì)算服務(wù),并為自己所獲得的服務(wù)付費(fèi)。在這種商業(yè)模式里,不同的角色對(duì)“云計(jì)算”的看法不同。對(duì)于普通用戶來(lái)說(shuō),他們將應(yīng)用放在“云里跑”,如Google Doc;對(duì)于應(yīng)用開發(fā)者,他們主要實(shí)現(xiàn)以瀏覽器為中心的用戶界面;而應(yīng)用部署者的任務(wù)是快速部署和配置,比如10分鐘里在1000臺(tái)服務(wù)器上部署一個(gè)應(yīng)用,或者調(diào)整該應(yīng)用的配置;設(shè)施擁有者負(fù)責(zé)針對(duì)不同應(yīng)用負(fù)載的動(dòng)態(tài)需求,實(shí)現(xiàn)設(shè)備的高“可動(dòng)員性”。云計(jì)算根據(jù)不同的服務(wù)內(nèi)容可分為一系列的XaaS,如:
將軟件作為服務(wù)的SaaS(Software as a Service),如Salesforce online CRM服務(wù);
將平臺(tái)作為服務(wù)的PaaS(Platform as a Service),如Google App Engine;
將基礎(chǔ)設(shè)施作為服務(wù)的IaaS(Infrastructure as a Service),如Amazon EC2/S3/SQS服務(wù);
將管理作為服務(wù)的Management as a Service、將存儲(chǔ)作為服務(wù)的Storage as a Service……
圖1 虛擬機(jī)體系結(jié)構(gòu)
虛擬化是一種將底層物理設(shè)備與上層操作系統(tǒng)、軟件分離的去耦合技術(shù)。在虛擬化技術(shù)出現(xiàn)之前,計(jì)算機(jī)上的程序和軟件都是運(yùn)行在真實(shí)的計(jì)算環(huán)境上,獨(dú)享所有的計(jì)算資源。虛擬化技術(shù)通過(guò)在硬件和操作系統(tǒng)之間增加了一個(gè)去耦合的中間層次——虛擬機(jī)管理器(Virtual Machine Monitor,VMM),使得程序和軟件可以運(yùn)行在一個(gè)虛擬出來(lái)的計(jì)算環(huán)境中,它們共享計(jì)算機(jī)上的所有資源,這樣大大提高了資源的利用率。虛擬化的目標(biāo)是實(shí)現(xiàn)IT資源利用效率和靈活性的最大化。如圖1所示,多個(gè)系統(tǒng)(虛擬機(jī),Virtual Machine,VM)融合在一臺(tái)物理機(jī)上,使得資源利用率提高;同時(shí),應(yīng)用系統(tǒng)也不再依賴特定的硬件,使得系統(tǒng)維護(hù)靈活。
虛擬機(jī)具有動(dòng)態(tài)構(gòu)建、動(dòng)態(tài)部署、相互隔離、動(dòng)態(tài)資源調(diào)整等特征。我們可以通過(guò)在線備份技術(shù)來(lái)實(shí)現(xiàn)容錯(cuò)支持,還可以通過(guò)在線遷移、服務(wù)器融合等技術(shù)來(lái)實(shí)現(xiàn)資源調(diào)度和綠色計(jì)算。比如一臺(tái)物理機(jī)的資源不夠了,可以將其上的虛擬機(jī)在線遷移到另一臺(tái)資源充足的物理機(jī)上繼續(xù)工作。在這個(gè)過(guò)程中停機(jī)時(shí)間非常短,終端感覺(jué)不出來(lái),并且遷移過(guò)程對(duì)于Web服務(wù)器的性能幾乎沒(méi)有影響。
目前市場(chǎng)上主要的虛擬化產(chǎn)品有以下四種:VMware、Xen、KVM及Microsoft Hyper-V。國(guó)內(nèi)正在進(jìn)行虛擬化研究的項(xiàng)目主要有973計(jì)劃項(xiàng)目“計(jì)算系統(tǒng)虛擬化基礎(chǔ)理論與方法研究”(http://grid.hust.edu.cn/973/),863計(jì)劃以及國(guó)家自然科學(xué)基金也支持了不少這方面的研究課題。
當(dāng)前系統(tǒng)虛擬化技術(shù)的主要研究方向有以下四個(gè)方面:
1. 分析虛擬環(huán)境下應(yīng)用程序的特征,提供面向應(yīng)用的、高效的資源虛擬化方法。
2. 從虛擬機(jī)資源管理著手,根據(jù)應(yīng)用程序的特征,解決云計(jì)算服務(wù)的虛擬機(jī)動(dòng)態(tài)部署與調(diào)度過(guò)程中多層面的動(dòng)態(tài)資源管理問(wèn)題,保證云計(jì)算服務(wù)質(zhì)量,提高資源利用率。
在單機(jī)環(huán)境下虛擬機(jī)資源可以采取靜態(tài)分配和動(dòng)態(tài)分配兩種調(diào)度方式。靜態(tài)分配方式基本能滿足虛擬機(jī)的需求,但仍會(huì)造成資源的浪費(fèi)。另外,純靜態(tài)的預(yù)測(cè)并不能反映虛擬機(jī)運(yùn)行狀態(tài)的動(dòng)態(tài)變化,在虛擬機(jī)運(yùn)行的不同時(shí)刻,其計(jì)算特征仍然會(huì)有所變化。動(dòng)態(tài)分配方式通過(guò)在虛擬機(jī)管理器中增加對(duì)虛擬機(jī)運(yùn)行時(shí)刻的計(jì)算特征的動(dòng)態(tài)變化的監(jiān)測(cè),采取相應(yīng)的機(jī)制調(diào)整虛擬機(jī)間的資源分配。
在多機(jī)環(huán)境下,應(yīng)該基于多機(jī)資源協(xié)調(diào)預(yù)測(cè),合理實(shí)施虛擬機(jī)遷移。我們可以針對(duì)云計(jì)算中虛擬機(jī)的資源需求及整個(gè)環(huán)境的節(jié)能需求,設(shè)計(jì)實(shí)現(xiàn)一套合理誘發(fā)虛擬機(jī)遷移的機(jī)制。一方面,當(dāng)一個(gè)物理機(jī)上的資源不能滿足它上面虛擬機(jī)的需求時(shí),可以通過(guò)遷移平衡負(fù)載,即消除熱點(diǎn)物理機(jī)、滿足更大的資源需求;另一方面,很多時(shí)候資源非常空閑,我們可以通過(guò)遷移減少活動(dòng)的物理機(jī),將虛擬機(jī)融合,從而達(dá)到節(jié)能的目的。但是值得注意的是:虛擬機(jī)遷移開銷較大,遷移需謹(jǐn)慎。只有在預(yù)期虛擬機(jī)計(jì)算特征明顯且將較持久地改變?yōu)榱硪环N狀態(tài)時(shí),進(jìn)行遷移才是最優(yōu)的選擇。
3. 可信的虛擬計(jì)算環(huán)境及其管理。當(dāng)終端用戶將虛擬機(jī)從私有云轉(zhuǎn)移到公有云時(shí),虛擬機(jī)管理器是否安全、是否值得信賴也是我們目前非常關(guān)注的一個(gè)問(wèn)題,如圖2所示。
4. 虛擬化的標(biāo)準(zhǔn)。目前虛擬化的標(biāo)準(zhǔn)主要由國(guó)際標(biāo)準(zhǔn)化組織DMTF(Distributed Management Task Force,http://www.dmtf.org)的SVPC工作組(System Virtualization,Partitioning, and Clustering)組織研究與制訂,其中面向云計(jì)算的基本標(biāo)注包括SVP(Server Virtualization and Partitioning)、OVF(Open Virtualization Format)等。其中OVF是基于虛擬化的云計(jì)算互操作的基礎(chǔ),它使得同一個(gè)虛擬機(jī)能夠運(yùn)行在不同廠商的虛擬機(jī)管理器上成為可能,如圖3所示。
圖2 可信的虛擬計(jì)算環(huán)境
虛擬機(jī)的快速部署能力、便捷的系統(tǒng)管理方式以及較高的資源利用率,的確為我們帶來(lái)很多好處,同時(shí)也帶來(lái)了許多挑戰(zhàn)。虛擬化的性能、虛擬化環(huán)境的可信逐漸成為虛擬化技術(shù)的重要問(wèn)題,管理控制虛擬機(jī)的成本和復(fù)雜性也將爆炸式增長(zhǎng)。
關(guān)于虛擬化與云計(jì)算的關(guān)系,有一些不同的看法。從將基礎(chǔ)設(shè)施作為服務(wù)的IaaS來(lái)講,虛擬化就是云計(jì)算的基石。當(dāng)然,也有些人認(rèn)為虛擬化和云計(jì)算并無(wú)必然聯(lián)系,如Google的云計(jì)算服務(wù)。
圖3 開放虛擬化格式
圖4 傳統(tǒng)的網(wǎng)絡(luò)教室
網(wǎng)絡(luò)教室
傳統(tǒng)的網(wǎng)絡(luò)教室基于操作系統(tǒng)的多用戶支持來(lái)提供服務(wù),用戶通過(guò)遠(yuǎn)程登錄使用服務(wù)器,如圖4所示。這種模式的缺點(diǎn)在于:首先是隔離性差。單個(gè)使用者的錯(cuò)誤行為導(dǎo)致了宕機(jī)或者被感染病毒,整個(gè)系統(tǒng)都將崩潰;其次是權(quán)限低。使用者的權(quán)限必須被設(shè)定為較低以保證整個(gè)系統(tǒng)的安全性。在此限制下使用者不能執(zhí)行特權(quán)操作,比如隨意安裝軟件和對(duì)系統(tǒng)進(jìn)行設(shè)定等;資源分配不公平也是它的一個(gè)缺點(diǎn)。如果一位使用者執(zhí)行了耗費(fèi)計(jì)算的操作,其他使用者將被牽連,甚至整個(gè)系統(tǒng)將會(huì)變得極慢。
虛擬網(wǎng)絡(luò)教室通過(guò)虛擬機(jī)的方式提供服務(wù),每個(gè)用戶使用一個(gè)自己的虛擬機(jī),如圖5所示。這種模式的技術(shù)難點(diǎn)在于:如何實(shí)現(xiàn)大量虛擬機(jī)的快速啟動(dòng)、以及如何保證用戶的交互體驗(yàn)。虛擬網(wǎng)絡(luò)教室相對(duì)于傳統(tǒng)網(wǎng)絡(luò)教室而言,有如下優(yōu)點(diǎn):首先是隔離性強(qiáng),多臺(tái)虛擬機(jī)彼此完全隔離,就像是多臺(tái)獨(dú)立的物理主機(jī);其次是使用權(quán)限最高。每個(gè)使用者是以管理員的身份登錄虛擬機(jī),他可以最高權(quán)限的方式執(zhí)行所有指令,這使得用戶體驗(yàn)達(dá)到最佳;最后是資源分配公平。虛擬化平臺(tái)的管理員可以設(shè)定合適的規(guī)則,在創(chuàng)建時(shí)設(shè)定或者運(yùn)行時(shí)調(diào)整,使得每個(gè)虛擬機(jī)都能公平得到資源。
多課程實(shí)驗(yàn)環(huán)境支持
不同課程要求的實(shí)驗(yàn)環(huán)境不同,如課程A需要Windows+DirectX+MPI環(huán)境,而課程B卻需要Redhat Linux+MySQL+Apache環(huán)境。我們可以采用虛擬化技術(shù)來(lái)支持多課程實(shí)驗(yàn)環(huán)境。準(zhǔn)備好不同配置環(huán)境的虛擬機(jī),如上例子,我們可以事先準(zhǔn)備好Windows+DirectX+MPI環(huán)境的虛擬機(jī)和Redhat Linux+MySQL+Apache環(huán)境的虛擬機(jī),放在虛擬機(jī)庫(kù)中。當(dāng)進(jìn)行某門課程時(shí),我們只需從虛擬機(jī)庫(kù)中將該課程相應(yīng)的虛擬機(jī)部署到不同的機(jī)器上并加以啟動(dòng)即可,如圖6所示。虛擬化方法相對(duì)于傳統(tǒng)方法而言,更加靈活方便,也更容易管理。
個(gè)性化上機(jī)環(huán)境
傳統(tǒng)的公共上機(jī)環(huán)境有許多缺陷和不足。在傳統(tǒng)的公共上機(jī)環(huán)境中,每臺(tái)計(jì)算機(jī)都安裝有固定的操作系統(tǒng)和軟件,學(xué)生不能自由添加刪除程序,學(xué)生的私人數(shù)據(jù)文件只能保存在計(jì)算機(jī)的公共磁盤或網(wǎng)絡(luò)磁盤上,沒(méi)有獨(dú)立性和安全性,容易被他人修改或誤刪。為此,我們基于虛擬化技術(shù)提出了個(gè)性化上機(jī)環(huán)境的概念。個(gè)性化上機(jī)環(huán)境即讓學(xué)生擁有自己的虛擬機(jī),用戶在公共機(jī)房的任何一臺(tái)計(jì)算機(jī)上都能啟動(dòng)一個(gè)完全屬于自己的、獨(dú)立的、安全的個(gè)性化操作系統(tǒng)。公共虛擬機(jī)鏡像存儲(chǔ)在硬盤中,學(xué)生的個(gè)性化環(huán)境存儲(chǔ)在U盤里。當(dāng)學(xué)生需要從物理機(jī)1上轉(zhuǎn)移到物理機(jī)2中進(jìn)行工作時(shí),他只需關(guān)閉操作系統(tǒng),從物理機(jī)1中拔出U盤,插入物理機(jī)2,重新啟動(dòng)所需操作系統(tǒng),繼續(xù)工作即可,如圖7所示。
上述三種基于虛擬化技術(shù)的上機(jī)實(shí)驗(yàn)環(huán)境模式,為未來(lái)校園中提供了一種全新的機(jī)房管理模式。在這種模式下,管理員只需管理虛擬機(jī)鏡像,教師需要按課程設(shè)計(jì)實(shí)驗(yàn)環(huán)境,不再受機(jī)房管理的約束,而學(xué)生則可以獲得多樣的實(shí)驗(yàn)環(huán)境。
校園服務(wù)、圖書館中的服務(wù)器融合
在校園里有大量的服務(wù)器來(lái)支持各種校園服務(wù),比如各院系服務(wù)器、E-mail服務(wù)器、FTP服務(wù)器、圖書館中各種文獻(xiàn)期刊數(shù)據(jù)庫(kù)的鏡像服務(wù)器等。這些服務(wù)器利用率低、能耗大、管理成本高。為此,可以基于虛擬化技術(shù)進(jìn)行服務(wù)器融合:多個(gè)服務(wù)的虛擬機(jī)運(yùn)行于同一個(gè)物理機(jī)上,相互隔離,保證服務(wù)的可靠性,節(jié)約投資,管理方便,如圖8所示。
關(guān)鍵服務(wù)的容錯(cuò)管理
設(shè)備維修和設(shè)備失效是校園環(huán)境中很容易出現(xiàn)的兩種情況。出現(xiàn)這兩種情況后,可以通過(guò)虛擬化技術(shù)進(jìn)行容錯(cuò)管理。當(dāng)設(shè)備需要維修時(shí),可以通過(guò)虛擬機(jī)在線遷移將該設(shè)備上的虛擬機(jī)遷移到其它設(shè)備上,而不需要將工作暫停,如圖9所示。當(dāng)設(shè)備失效時(shí),還可以通過(guò)虛擬機(jī)進(jìn)行熱備份,避免數(shù)據(jù)的丟失,如圖10所示。
動(dòng)態(tài)虛擬集群
在傳統(tǒng)的集群架構(gòu)和應(yīng)用程序需求之間存在一些矛盾:共享的集群環(huán)境如何滿足用戶的不同環(huán)境需求?多任務(wù)的共享集群環(huán)境如何調(diào)度?異構(gòu)集群如何共同處理任務(wù)?為此,我們提出了基于虛擬機(jī)的動(dòng)態(tài)集群——讓N臺(tái)虛擬機(jī)“浮動(dòng)”運(yùn)行在M臺(tái)物理機(jī)上,N和M動(dòng)態(tài)可變,虛擬機(jī)構(gòu)成了一個(gè)個(gè)的集群節(jié)點(diǎn),利用虛擬機(jī)的Suspend/Resume、ballooning等技術(shù)減小同一物理節(jié)點(diǎn)上分屬不同虛擬集群的虛擬機(jī)之間的轉(zhuǎn)移代價(jià),如圖11所示。
圖5 虛擬網(wǎng)絡(luò)教室
圖6 多課程實(shí)驗(yàn)環(huán)境支持
圖7 個(gè)性化上機(jī)環(huán)境
北大網(wǎng)絡(luò)所(http://ncis.pku.edu.cn)
它在虛擬化和云計(jì)算方面進(jìn)行了如下工作:
分布式環(huán)境下的虛擬資源環(huán)境管理系統(tǒng)973VMM。依托國(guó)家973計(jì)劃項(xiàng)目“計(jì)算系統(tǒng)虛擬化基礎(chǔ)理論與方法研究(http://grid.hust.edu.cn/973/)”,在開源Xen的基礎(chǔ)上,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)擁有自己核心技術(shù)的自適應(yīng)的虛擬機(jī)管理器——973VMM,可以用于管理異構(gòu)硬件,支撐異構(gòu)操作系統(tǒng),如圖12所示。該項(xiàng)目是虛擬機(jī)領(lǐng)域國(guó)家惟一支持的973計(jì)劃項(xiàng)目,除北京大學(xué)外,項(xiàng)目團(tuán)隊(duì)還包括華中科技大學(xué)、清華大學(xué)、國(guó)防科技大學(xué)、上海交通大學(xué)、浙江大學(xué)、江南計(jì)算所、航天二院等,在虛擬化方法、基于虛擬機(jī)的快速部署、虛擬集群調(diào)度、基于虛擬機(jī)遷移的容災(zāi)等領(lǐng)域取得了大量成果。
天網(wǎng)TFS/MapReduce/BigHive
為了支持中國(guó)網(wǎng)絡(luò)信息博物館(http://www.infomall.cn/)中的近40TB網(wǎng)頁(yè)數(shù)據(jù)的管理和高效再訪問(wèn),開展數(shù)據(jù)存儲(chǔ)與組織技術(shù)方面的研究,我們采用C++實(shí)現(xiàn)了以GFS、MapReduce和BigTable為代表的Google云計(jì)算平臺(tái)。這是目前已知的中國(guó)惟一一個(gè)完全自主的G F S/MapReduce/BigTable實(shí)現(xiàn),如圖13所示。
混合云存AmazingStore
P2P存儲(chǔ)系統(tǒng)能夠自動(dòng)的聚合網(wǎng)絡(luò)上的空閑存儲(chǔ)和帶寬資源,是存儲(chǔ)系統(tǒng)的一個(gè)重要分支。隨著邊緣資源的迅速增長(zhǎng)和傳統(tǒng)存儲(chǔ)系統(tǒng)面臨的問(wèn)題增多,P2P存儲(chǔ)系統(tǒng)的研究在當(dāng)前更有實(shí)際意義。
圖8 校園服務(wù)器融合
圖9 虛擬機(jī)在線遷移
圖10 虛擬機(jī)熱備份
圖11 基于虛擬機(jī)的動(dòng)態(tài)集群
圖12 973VMM
圖13 天網(wǎng)TFS/MapReduce/BigHive
圖14 混合云存儲(chǔ)AmazingStore
然而,由于P2P網(wǎng)絡(luò)中節(jié)點(diǎn)的高動(dòng)態(tài)性,如何進(jìn)行高效的維護(hù)成為構(gòu)建P2P存儲(chǔ)系統(tǒng)的一個(gè)核心難題。我們?cè)跀?shù)據(jù)維護(hù)方面做了深入研究,給出了完整的解決方案,包括:提出更細(xì)粒度的可用性模型及基于節(jié)點(diǎn)在線模式的數(shù)據(jù)分發(fā)方案;提出一種基于時(shí)間閾值的數(shù)據(jù)修復(fù)方案Neutralizer;提出一種自動(dòng)配置的錯(cuò)誤預(yù)防方案AutoProc。并將上述方案實(shí)例化成一個(gè)實(shí)際運(yùn)行的P2P存儲(chǔ)系統(tǒng)AmazingStore。對(duì)系統(tǒng)實(shí)際運(yùn)行數(shù)據(jù)的測(cè)量表明,系統(tǒng)能夠提供高可用和可靠的數(shù)據(jù)存儲(chǔ)服務(wù),并且充分利用了網(wǎng)絡(luò)的邊緣帶寬,具有極高的吞吐率。同時(shí),AmazingStore系統(tǒng)可以方便的和數(shù)據(jù)中心融合,提高數(shù)據(jù)中心的可用性和降低數(shù)據(jù)中心的開銷,如圖14所示。
云數(shù)據(jù)庫(kù)
動(dòng)態(tài)數(shù)據(jù)遷移與負(fù)載均衡。云數(shù)據(jù)庫(kù)是一種查詢密集型大規(guī)模分布式數(shù)據(jù)庫(kù)系統(tǒng),其響應(yīng)速度強(qiáng)烈依賴于數(shù)據(jù)分布與查詢負(fù)載的均衡性,如何針對(duì)查詢?cè)L問(wèn)模式建立數(shù)據(jù)動(dòng)態(tài)遷移策略,是提高系統(tǒng)整體查詢響應(yīng)速度的關(guān)鍵,這也是當(dāng)前Cloud Database數(shù)據(jù)分片需要解決的核心問(wèn)題。針對(duì)這一問(wèn)題,我們與知名數(shù)據(jù)庫(kù)廠商合作設(shè)計(jì)和實(shí)現(xiàn)了兩類數(shù)據(jù)動(dòng)態(tài)遷移與負(fù)載均衡的機(jī)制。
(北京大學(xué)信息科學(xué)技術(shù)學(xué)院)