蘇朋程
(貴州師范大學(xué) 教務(wù)處,貴州 貴陽 550025)
云計算研究虛擬化技術(shù)的研究
蘇朋程
(貴州師范大學(xué) 教務(wù)處,貴州 貴陽 550025)
虛擬化是云計算的本質(zhì)核心問題,由于所涉及的技術(shù)問題寬泛,從縱向及橫向綜合進(jìn)行分析。結(jié)合云桌面應(yīng)用系統(tǒng)實(shí)例、網(wǎng)絡(luò)中間層驅(qū)動開發(fā)實(shí)例、Windows操作系統(tǒng)驅(qū)動例子程序FileDisk.c及HttpDisk.c,通過分析操作系統(tǒng)內(nèi)核,研究云計算原理、體系結(jié)構(gòu),以及云計算實(shí)現(xiàn)的技術(shù)基礎(chǔ),從硬件的虛擬化、系統(tǒng)的虛擬化兩個方面展開研究,并在此基礎(chǔ)上結(jié)合驅(qū)動技術(shù)調(diào)用操作系統(tǒng)內(nèi)核接口實(shí)現(xiàn)部分操作系統(tǒng)內(nèi)核功能。采用網(wǎng)絡(luò)中間驅(qū)動技術(shù)實(shí)現(xiàn)了虛擬網(wǎng)卡,同時結(jié)合其他云計算系統(tǒng)的應(yīng)用及對其維護(hù)經(jīng)驗(yàn),分析了云計算虛擬技術(shù)底層有關(guān)問題及解決辦法,得出云計算虛擬化技術(shù)設(shè)計及實(shí)現(xiàn)的分層結(jié)構(gòu)、調(diào)用操作系統(tǒng)內(nèi)核接口可解決系統(tǒng)藍(lán)屏并提高實(shí)時響應(yīng)效率的結(jié)論。實(shí)例應(yīng)用表明,云計算的體系結(jié)構(gòu)的構(gòu)建及實(shí)現(xiàn)是基于軟件、硬件及系統(tǒng)虛擬化的。
云計算;虛擬技術(shù);內(nèi)核;網(wǎng)絡(luò)中間層驅(qū)動技術(shù)
云計算是繼分布式計算、并行計算、網(wǎng)格計算等發(fā)展而來的一個新計算模式,具有分布式及并行處理等優(yōu)點(diǎn),同時還具備負(fù)載均衡、資源共享、便于維護(hù)等特點(diǎn)。基于這些優(yōu)點(diǎn)及特點(diǎn),近年來,云計算越來越受到學(xué)術(shù)界及IT行業(yè)的重視,相關(guān)技術(shù)日益成熟并實(shí)現(xiàn)產(chǎn)品商業(yè)化,云計算產(chǎn)品已投入到教育、醫(yī)療、交通等行業(yè)。隨著云計算產(chǎn)品投入實(shí)際應(yīng)用范圍的增多,出現(xiàn)
了硬件兼容、虛擬設(shè)備的穩(wěn)定性及可靠性問題,客戶機(jī)電腦系統(tǒng)藍(lán)屏、物理設(shè)備與虛擬設(shè)備的實(shí)時響應(yīng)問題。要解決這些問題,需要從云計算虛擬底層技術(shù)進(jìn)行分析,因?yàn)樵朴嬎阆到y(tǒng)只是提供了應(yīng)用層面的功能及操作,虛擬技術(shù)屏蔽了應(yīng)用層與硬件之間的驅(qū)動工作機(jī)理,給用戶提供了各種虛擬應(yīng)用。一般說來,云計算體系結(jié)構(gòu)分為三層[1]:應(yīng)用層、平臺層和基礎(chǔ)設(shè)施層?;A(chǔ)設(shè)施層即要研究的“虛擬技術(shù)底層”,該層經(jīng)過虛擬化的硬件資源和相關(guān)管理功能的集合,實(shí)現(xiàn)了內(nèi)部流程自動化和資源管理優(yōu)化,從而向上層應(yīng)用提供動態(tài)、靈活的基礎(chǔ)設(shè)施層服務(wù)[2]。文獻(xiàn)[3]采用虛擬機(jī)管理層、功能層、邏輯層、調(diào)度層、GUI層等七層結(jié)構(gòu)研究了虛擬化條件下云平臺故障排除問題。通過大量文獻(xiàn),并結(jié)合高校的云計算工程實(shí)例,以及作者所實(shí)現(xiàn)的虛擬網(wǎng)絡(luò)接口卡等例程,分析總結(jié)了云計算的核心技術(shù)——虛擬化技術(shù)。
虛擬化概念及技術(shù)起源于20世紀(jì)50年代,20世紀(jì)60年代,IBM360系統(tǒng)首次采用了虛擬化平臺Hypervisor。國外有以IBM、VMare、Xen/Citrix和Microsoft為代表的虛擬化業(yè)界的四大廠商,國內(nèi)有聯(lián)想、華為等公司使用自己的源代碼開發(fā)出了虛擬化產(chǎn)品,他們提供了成熟、多方位、廣泛的虛擬化產(chǎn)品,實(shí)現(xiàn)了從服務(wù)器、存儲、網(wǎng)絡(luò)到桌面、虛擬應(yīng)用,甚至數(shù)據(jù)中心的虛擬化。
云計算模式的虛擬化,從宏觀層面可以分為系統(tǒng)虛擬化、網(wǎng)絡(luò)虛擬化、服務(wù)器虛擬化、虛擬機(jī)等等;從微觀層面可分為CPU、內(nèi)存、磁盤、網(wǎng)卡、I/O設(shè)備的虛擬化。根據(jù)虛擬技術(shù)底層開發(fā)的過程來看,宏觀層面的虛擬化是建立在對計算機(jī)相關(guān)設(shè)備虛擬化的基礎(chǔ)上的。云計算體系結(jié)構(gòu)分為三層,因此,虛擬技術(shù)框架可以對應(yīng)分為三層,從底層向上分別為:基礎(chǔ)設(shè)施層、硬件虛擬層、應(yīng)用虛擬層?;A(chǔ)設(shè)施層為硬件虛擬層、應(yīng)用虛擬層提供基礎(chǔ)設(shè)施保障,實(shí)現(xiàn)硬件設(shè)備在操作系統(tǒng)內(nèi)核的無縫綁定與釋放;硬件虛擬層實(shí)現(xiàn)對硬件設(shè)備的虛擬化,向下提供接口調(diào)用操作系統(tǒng)內(nèi)核功能,向上提供接口與應(yīng)用軟件實(shí)現(xiàn)應(yīng)用虛擬化;應(yīng)用虛擬層,即應(yīng)用系統(tǒng)的虛擬化,在基礎(chǔ)設(shè)施層、硬件虛擬層的支持下,結(jié)合應(yīng)用軟件、網(wǎng)絡(luò)通信,應(yīng)用得以實(shí)現(xiàn)虛擬化,如虛擬桌面。
云計算虛擬技術(shù)所實(shí)現(xiàn)的硬件、操作系統(tǒng)多樣化,因此,有關(guān)公司、學(xué)術(shù)機(jī)構(gòu)采用的具體實(shí)現(xiàn)技術(shù)也不完全一樣,但它們有一個共同點(diǎn),那就是離不開對物理設(shè)備的虛擬化、調(diào)用已有操作系統(tǒng)內(nèi)核功能[4]。例如虛擬化存儲,袁東風(fēng)等研究了基于KVM的B/S架構(gòu)虛擬化[5],實(shí)現(xiàn)對磁盤的虛擬化,如新建和刪除虛擬磁盤,并將虛擬磁盤名作為參數(shù)傳遞給Web服務(wù)器。KVM全稱為Kernel-based Virtual Machine,由此可看出虛擬技術(shù)離不開對操作系統(tǒng)內(nèi)核功能的調(diào)用。對于操作系統(tǒng)內(nèi)核功能的調(diào)用,Windows操作系統(tǒng)提供了文件驅(qū)動開發(fā)包用于實(shí)現(xiàn)對磁盤文件的虛擬化開發(fā),可虛擬出新的文件磁盤盤符;微軟公司提供的NDIS網(wǎng)絡(luò)驅(qū)動開發(fā)包,用于實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議、將網(wǎng)絡(luò)設(shè)備虛擬化,筆者采用NDIS網(wǎng)絡(luò)中間層驅(qū)動技術(shù),實(shí)現(xiàn)了對RJ45接口類型網(wǎng)絡(luò)接口卡的虛擬化。
2.1 網(wǎng)絡(luò)接口卡虛擬化
網(wǎng)絡(luò)接口卡虛擬化要完成兩個主要功能,一是需要綁定物理設(shè)備,即綁定物理網(wǎng)絡(luò)接口卡,通過網(wǎng)絡(luò)中間驅(qū)動層的協(xié)議接口實(shí)現(xiàn)對物理網(wǎng)絡(luò)接口卡的控制,即對物理網(wǎng)絡(luò)接口卡收發(fā)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行數(shù)據(jù)成幀處理,控制通過它的網(wǎng)絡(luò)數(shù)據(jù)出或入;二是要通過網(wǎng)絡(luò)中間層驅(qū)動提供的微端口向上一層協(xié)議層(TCP/IP協(xié)議)提供微端口,即虛擬的網(wǎng)絡(luò)接口卡,實(shí)現(xiàn)對物理網(wǎng)絡(luò)數(shù)據(jù)包的重新封裝,可以實(shí)現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)的加解密等功能,通過重寫微軟提供的中間層驅(qū)動程序passthru.c源程序里的receive()和send()函數(shù)實(shí)現(xiàn)。這樣,網(wǎng)絡(luò)中間層驅(qū)動程序就實(shí)現(xiàn)了網(wǎng)絡(luò)接口卡虛擬化,安裝好驅(qū)動程序后,在電腦控制面板的網(wǎng)絡(luò)適配器的屬性處可看見新增了一個跟物理網(wǎng)絡(luò)接口卡一模一樣的圖標(biāo),這就是虛擬網(wǎng)卡。虛擬網(wǎng)卡的名稱是通過安裝驅(qū)動程序的inf安裝文件里“設(shè)備名稱”指定的。
物理網(wǎng)卡、虛擬網(wǎng)卡、應(yīng)用程序接口關(guān)系結(jié)構(gòu)圖如圖1所示。
圖1 物理網(wǎng)卡、虛擬網(wǎng)卡、應(yīng)用程序接口關(guān)系結(jié)構(gòu)圖
文中采用微軟公司提供的DDK(Driver Development Kit)開發(fā)出了虛擬網(wǎng)卡驅(qū)動程序Passthru.sys,實(shí)驗(yàn)對象為Windows XP操作系統(tǒng),實(shí)驗(yàn)結(jié)果見圖2。
2.2 虛擬機(jī)內(nèi)存
虛擬機(jī)內(nèi)存可以理解成虛擬內(nèi)存,是虛擬機(jī)使用的內(nèi)存。虛擬內(nèi)存是通過驅(qū)動技術(shù)對操作系統(tǒng)所使用的物理內(nèi)存將部分除外的空閑部分綁定后返回給用戶的又一個虛擬設(shè)備,即虛擬機(jī)內(nèi)存。在虛擬機(jī)里,它和物理機(jī)系統(tǒng)一樣是獨(dú)立的線性連續(xù)可尋址的存儲單元,具有獨(dú)自的虛擬機(jī)內(nèi)存地址,與物理內(nèi)存地址存在映射對應(yīng)關(guān)系。驅(qū)動程序?qū)崿F(xiàn)物理內(nèi)存與虛擬機(jī)內(nèi)存的映射轉(zhuǎn)換。在此基礎(chǔ)上[6],虛擬機(jī)Xen使用影子頁表實(shí)現(xiàn)對虛擬內(nèi)存與物理內(nèi)存的映射轉(zhuǎn)換[7],實(shí)現(xiàn)用戶虛擬內(nèi)存、虛擬機(jī)內(nèi)存、物理內(nèi)存三者之間的相互映射轉(zhuǎn)換,具體分析如下。
圖2 虛擬網(wǎng)卡實(shí)驗(yàn)安裝結(jié)果圖
硬件抽象層中的虛擬機(jī)系統(tǒng)存在三個層次內(nèi)存概念:一是用戶虛擬內(nèi)存,虛擬機(jī)系統(tǒng)運(yùn)行的服務(wù)、進(jìn)程所訪問的內(nèi)存,即用戶應(yīng)用程序在虛擬機(jī)系統(tǒng)運(yùn)行時所使用的內(nèi)存[8];二是虛擬機(jī)實(shí)時內(nèi)存,即虛擬機(jī)運(yùn)行環(huán)境的物理內(nèi)存;三是物理內(nèi)存,即物理主機(jī)的內(nèi)存。三者之間的映射關(guān)系如圖3所示。
圖3 虛擬機(jī)系統(tǒng)的內(nèi)存映射關(guān)系圖
因此,云計算虛擬技術(shù)的內(nèi)存調(diào)度是兩級調(diào)度,從用戶的角度自上而下為:第一級,用戶應(yīng)用程序所使用內(nèi)存到虛擬機(jī)實(shí)時內(nèi)存的調(diào)度;第二級,虛擬機(jī)內(nèi)存調(diào)度物理內(nèi)存。在第二級的內(nèi)存調(diào)度方面,主要是通過內(nèi)核驅(qū)動技術(shù)在底層實(shí)現(xiàn)對物理內(nèi)存的綁定、創(chuàng)建、使用自旋鎖對某段地址空間的內(nèi)存獨(dú)占使用,使用完畢釋放該自旋鎖以達(dá)到釋放虛擬機(jī)系統(tǒng)所獨(dú)占內(nèi)存。在第一級,可以通過API接口實(shí)現(xiàn)用戶程序?qū)μ摂M機(jī)內(nèi)存的申請使用、釋放。目前,內(nèi)存的底層分配問題得到了解決,而且在虛擬機(jī)之間對何時分配內(nèi)存、如何分配等問題也有大量研究。文獻(xiàn)[6]研究了虛擬機(jī)之間的內(nèi)存調(diào)度算法,通過邏輯地址空間和全局?jǐn)U展地址空閑空間構(gòu)成,以提高內(nèi)存資源利用率。虛擬機(jī)內(nèi)存與物理內(nèi)存之間是一一映射的關(guān)系,而且虛擬機(jī)內(nèi)存與物理內(nèi)存之間是無地址沖突的。
2.3 磁盤文件虛擬化
從物理磁盤文件到虛擬機(jī)文件系統(tǒng)的映射,可通過三層映射轉(zhuǎn)換實(shí)現(xiàn)尋址讀寫功能[6]。磁盤文件虛擬化,與網(wǎng)絡(luò)驅(qū)動開發(fā)類似,微軟提供了文件系統(tǒng)驅(qū)動開發(fā)包IFS DDK,并提供了相關(guān)例程filedisk.c、httpdisk.c。文件系統(tǒng)可分為本地文件系統(tǒng)、網(wǎng)絡(luò)文件系統(tǒng),filedisk.c用于開發(fā)本地文件系統(tǒng),httpdisk.c用于開發(fā)網(wǎng)絡(luò)文件系統(tǒng),用戶可以根據(jù)實(shí)際需要在這兩個源程序文件的相關(guān)函數(shù)中添加特定功能的源代碼,實(shí)現(xiàn)虛擬文件系統(tǒng),以及對文件的加解密等功能。在上述兩個源程序文件中,可實(shí)現(xiàn)文件系統(tǒng)的操作有:磁盤文件創(chuàng)建、磁盤文件加載、磁盤文件的控制(打開、讀寫)、磁盤文件的卸載。與本地文件系統(tǒng)不同的是,網(wǎng)絡(luò)文件系統(tǒng)創(chuàng)建了遠(yuǎn)程磁盤設(shè)備對象,具體實(shí)現(xiàn)技術(shù)方面增加了網(wǎng)絡(luò)套接字的鏈接及斷開,遠(yuǎn)程磁盤存儲空間的創(chuàng)建、讀寫、釋放等功能。本地文件系統(tǒng)、網(wǎng)絡(luò)文件系統(tǒng)在底層技術(shù)方面,都采用了IRP實(shí)現(xiàn)對物理磁盤的綁定后向用戶提供一個虛擬的磁盤設(shè)備,并且需要解決對共享存儲空間的獨(dú)占及共享問題。無論是微軟所提供的DDK開發(fā)工具,還是開源文件系統(tǒng)OpenStack、Hadoop、Linux工具,都不可避免調(diào)用操作系統(tǒng)的內(nèi)核接口[7]。
2.4 指令集虛擬化
指令集虛擬化對于大家來說并不陌生,Java虛擬機(jī)之所以能跨操作系統(tǒng)運(yùn)行,是因?yàn)镴ava虛擬機(jī)運(yùn)行時執(zhí)行其指令,將Java源程序解釋成字節(jié)碼,這些字節(jié)碼經(jīng)過瀏覽器這一應(yīng)用程序解釋成目標(biāo)代碼后運(yùn)行。虛擬服務(wù)器、微軟虛擬機(jī)的運(yùn)行同樣也執(zhí)行虛擬指令,虛擬指令集是將各種處理器的指令翻譯為虛擬指令,是對原處理器指令的重新構(gòu)建。虛擬指令可屏蔽不同型號CPU處理器指令之間的差異,該項(xiàng)功能正是云計算架構(gòu)在不同的硬件設(shè)備、不同系統(tǒng)、不同平臺上的底層技術(shù)基礎(chǔ)及優(yōu)點(diǎn)。
2.5 其他設(shè)備虛擬化
其他設(shè)備的虛擬化包括CPU、光驅(qū)等設(shè)備的虛擬化。虛擬光驅(qū)的應(yīng)用已歷經(jīng)多年,如以VMare公司推出的虛擬光驅(qū)為代表,應(yīng)用于多操作系統(tǒng)的安裝等。CPU虛擬化主要應(yīng)用在云計算服務(wù)器上,根據(jù)云端應(yīng)用數(shù)量的多少動態(tài)分配CPU資源,在虛擬系統(tǒng)軟件及硬件的支持下,CPU可虛擬出2n指數(shù)級的數(shù)量,但實(shí)際應(yīng)用環(huán)境中其數(shù)量有限,必須根據(jù)實(shí)際需求進(jìn)行分配。CPU的虛擬化需要電腦主板硬件支持,否則不可實(shí)現(xiàn)。
系統(tǒng)及應(yīng)用虛擬化是虛擬技術(shù)在宏觀層面的實(shí)現(xiàn)結(jié)果,是在上述設(shè)備、磁盤文件等虛擬化實(shí)現(xiàn)的基礎(chǔ)之上,如虛擬機(jī)、虛擬服務(wù)器。虛擬機(jī)是一套完整的計算機(jī)軟硬件虛擬系統(tǒng),包括操作系統(tǒng)、內(nèi)存、CPU、硬盤等軟硬件。虛擬計算機(jī)概念最早由IBM公司在二十世紀(jì)六七十年代提出。虛擬化技術(shù)通過在現(xiàn)有硬件平臺上增加一層虛擬機(jī)監(jiān)控器(VirtualMachineMonitor,VMM)軟件來實(shí)現(xiàn)對系統(tǒng)的虛擬化[8-11]。應(yīng)用虛擬化在教育行業(yè)中的方式之一是虛擬云桌面,如廣州杰賽科技的云桌面系統(tǒng)。該系統(tǒng)采用KVM架構(gòu),其核心是建立在Linux內(nèi)核基礎(chǔ)上的虛擬機(jī),虛擬桌面以模板的方式建立并保存在云服務(wù)器上,教師可根據(jù)不同的教學(xué)需求安裝不同的教學(xué)軟件后保存為新的模板。采用基于KVM架構(gòu)的虛擬云桌面的優(yōu)點(diǎn)是:系統(tǒng)安全穩(wěn)定,病毒感染減少,便于教學(xué)軟硬件的集中維護(hù),節(jié)省硬件及人力資源投入。
4.1 穩(wěn)定性及可靠性問題
由于虛擬設(shè)備、虛擬系統(tǒng)是建立在硬件設(shè)備、操作系統(tǒng)基礎(chǔ)之上,在技術(shù)實(shí)現(xiàn)方面需要綁定物理設(shè)備,而且同時要調(diào)用操作系統(tǒng)中斷、內(nèi)存資源等,因此不可避免地與操作系統(tǒng)因搶占中斷資源、內(nèi)存讀寫而發(fā)生沖突,表現(xiàn)為電腦藍(lán)屏、死機(jī)。要解決此類問題,必須在底層(操作系統(tǒng)內(nèi)核)綁定硬件設(shè)備,可以采用操作系統(tǒng)開發(fā)公司提供的驅(qū)動開發(fā)工具、開發(fā)平臺進(jìn)行設(shè)備虛擬化、應(yīng)用虛擬化。
4.2 物理設(shè)備與虛擬設(shè)備實(shí)時響應(yīng)問題
虛擬設(shè)備有本地虛擬設(shè)備、遠(yuǎn)程虛擬設(shè)備之分,遠(yuǎn)程虛擬設(shè)備是遠(yuǎn)程服務(wù)器上為用戶定制的虛擬桌面上顯示的設(shè)備,容易將本地虛擬設(shè)備與遠(yuǎn)程虛擬設(shè)備混淆。虛擬設(shè)備的響應(yīng)速度遠(yuǎn)比不上實(shí)際硬件設(shè)備,虛擬設(shè)備是通過程序在功能上模擬實(shí)現(xiàn)硬件設(shè)備的功能,對于如虛擬桌面這樣的應(yīng)用來說,其桌面上顯示的如揚(yáng)聲器等設(shè)備,即使用鼠標(biāo)調(diào)整其音量大小,也會出現(xiàn)用于其綁定的硬件設(shè)備位于遠(yuǎn)端網(wǎng)絡(luò)中心機(jī)房而在本地?zé)o法聽見聲音效果等現(xiàn)象。此外,對虛擬桌面的應(yīng)用軟件實(shí)時響應(yīng)問題,特別是圖形、視頻類教學(xué)軟件,這些軟件對服務(wù)器的CPU主頻、內(nèi)存、網(wǎng)絡(luò)帶寬都有較高要求,因此會導(dǎo)致教學(xué)出現(xiàn)實(shí)時性差、網(wǎng)絡(luò)延遲等問題??梢岳脧姆?wù)器方面增加如內(nèi)存、更換更高主頻的CPU,在網(wǎng)絡(luò)方面通過端口匯聚以增加網(wǎng)絡(luò)交換機(jī)的背板帶寬、增加校園骨干網(wǎng)到樓的光纖數(shù)量及其帶寬等方式予以解決。針對應(yīng)用于教育行業(yè)的虛擬桌面VDI系統(tǒng),在學(xué)生客戶機(jī)運(yùn)行Photoshop、3Dmax等圖形教學(xué)軟件,以解決虛擬服務(wù)器的瓶頸問題,在硬件方面國內(nèi)外推出了GPU,提高了網(wǎng)絡(luò)通信及圖形處理速度及效率[12]。
4.3 系統(tǒng)藍(lán)屏問題
系統(tǒng)藍(lán)屏問題比較復(fù)雜,有操作系統(tǒng)本身的原因,也有軟硬件兼容的原因,實(shí)際問題應(yīng)具體分析。
(1)中斷請求沖突。根據(jù)系統(tǒng)藍(lán)屏的提示信息,知道其主要原因是硬件對于中斷請求入口地址與系統(tǒng)的中斷請求入口地址相沖突(操作系統(tǒng)啟動時出現(xiàn)藍(lán)屏,提示信息中有地址訪問沖突,沖突地址為0x0000**),可修改硬件設(shè)備的中斷請求的入口地址。
(2)硬件未通過微軟公司的認(rèn)證。對于該問題,在安裝硬件驅(qū)動程序時,如果此硬件設(shè)備驅(qū)動未通過微軟公司的認(rèn)證,系統(tǒng)會給出提示消息,解決辦法就是獲得微軟公司的認(rèn)證通過。虛擬化涉及硬件、軟操作系統(tǒng),因此,在中斷請求、內(nèi)存的申請使用[13]、CPU及系統(tǒng)時間片的使用方面[14],如果處理不當(dāng),將會導(dǎo)致系統(tǒng)藍(lán)屏。
(3)目標(biāo)內(nèi)存、磁盤被其他程序鎖定使用,當(dāng)虛擬化軟件訪問該內(nèi)存、磁盤時會導(dǎo)致藍(lán)屏。在實(shí)際使用虛擬云桌面的過程中,不可避免會遇到藍(lán)屏情況,解決辦法是:
①對于Windows系統(tǒng),修改IRP結(jié)構(gòu)的指向相應(yīng)設(shè)備對象(device object)的指針,修改為指向其他地址空間的內(nèi)存或空閑磁盤;
②增加I/O通道數(shù)量,避免虛擬化與操作系統(tǒng)爭用I/O中斷而導(dǎo)致藍(lán)屏,此方案是筆者所在學(xué)校建設(shè)云實(shí)驗(yàn)室使用華為技術(shù)有限公司的云計算應(yīng)用系統(tǒng)技術(shù)的解決方案;
③對于如Linux等開源工具,可重寫操作系統(tǒng)內(nèi)核程序、云系統(tǒng)軟件并編譯替換之。
近年來,云計算產(chǎn)品層出不窮,應(yīng)用廣泛。云計算可在已有軟硬件資源上實(shí)施整合實(shí)現(xiàn),高效地利用現(xiàn)存的軟硬件資源,涉及存儲、數(shù)據(jù)處理、計算、網(wǎng)絡(luò)通信等領(lǐng)域,在底層技術(shù)實(shí)現(xiàn)方面則必須無縫地與硬件綁定和釋放,同時在內(nèi)核層必須與操作系統(tǒng)協(xié)調(diào)地調(diào)配軟硬件資源,在應(yīng)用層如何高效地與應(yīng)用軟件實(shí)時動態(tài)交互,做到穩(wěn)定、安全可靠、高效是云計算的重點(diǎn)研究課題,虛擬技術(shù)底層問題是其核心重點(diǎn)。隨著技術(shù)的日趨完善,云計算與大數(shù)據(jù)將完美地結(jié)合在一起,其產(chǎn)品將廣泛地應(yīng)用到人們的工作、學(xué)習(xí)、商貿(mào)、生活及娛樂等領(lǐng)域。其中,最核心的仍然是虛擬化技術(shù),虛擬化的對象及內(nèi)容也越來越多,相關(guān)技術(shù)將統(tǒng)一標(biāo)準(zhǔn)化,虛擬化所支持的應(yīng)用系統(tǒng)也日趨穩(wěn)定完善。通過調(diào)查大量文獻(xiàn),在總結(jié)已有研究成果的基礎(chǔ)上,結(jié)合高校云計算系統(tǒng)實(shí)際工程的建設(shè)及維護(hù)工程,使人們對云計算系統(tǒng)及其核心技術(shù)有一個系統(tǒng)本質(zhì)的認(rèn)識,在開發(fā)云計算應(yīng)用工程或維護(hù)工作中有一個重點(diǎn)把握方向。
[1] 汪 愷,張功萱,周秀敏.基于容器虛擬化技術(shù)研究[J].計算機(jī)技術(shù)與發(fā)展,2015,25(8):138-141.
[2] Chapman M, Magenheimer D J, Ranganathan P. MagiXen:combining binary translation and virtualization[R].[s.l.]:[s.n.],2007.
[3] 崔競松,路昊宇,郭 遲,等.基于事件驅(qū)動機(jī)制的虛擬化故障檢測恢復(fù)系統(tǒng)[J].計算機(jī)工程,2015,41(2):7-11.
[4] Smith E, Nair R. The architecture of virtual machines[J].Computer,2005,38(5):32-38.
[5] 黨 飛,江銘炎,袁東風(fēng).基于KVM的B/S架構(gòu)虛擬化管理系統(tǒng)[J].計算機(jī)工程與設(shè)計,2013,34(6):2252-2256.
[6] 蔡志強(qiáng),丁麗萍,賀也平.一種基于虛擬機(jī)的動態(tài)內(nèi)存泄露檢測方法[J].計算機(jī)應(yīng)用與軟件,2012,29(9):10-13.
[7] Devine S W,Bugnion E,Rosenblum M.Virtualization system including a virtual machine monitor for a compute with a segmented architecture:US,6397242 B1[P].2002-05-28.
[8] King S T,Dunlap G W,Chen P M.Debugging operating systems with time-traveling virtual machine[C]//Proc of the 2005 USENIX annual technical conference.[s.l.]:USENIX,2005:1-15.
[9] 李雪竹,陳國龍.云計算虛擬化平臺的內(nèi)存資源全局優(yōu)化研究[J].計算機(jī)工程,2015,41(7):55-59.
[10]Intelvirtualization technology: hardware support for efficient processor virtualization[S].[s.l.]:[s.n.],2006.
[11] 魯志軍,祖立軍.云計算虛擬化環(huán)境下開源鏡像對比分析[J].計算機(jī)應(yīng)用與軟件,2015,32(8):84-87.
[12] 張玉潔,呂相文,張云洲.GPU虛擬化環(huán)境下的數(shù)據(jù)通信策略研究[J].計算機(jī)技術(shù)與發(fā)展,2015,25(8):24-28.
[13] 趙少卡,李立耀,凌 曉,等.基于OpenStack的清華云平臺構(gòu)建與調(diào)度方案設(shè)計[J].計算機(jī)應(yīng)用,2013,33(12):3335-3338.
[14] 王 凱,侯紫峰.Xen虛擬CPU空閑調(diào)度算法[J].計算機(jī)研究與發(fā)展,2013,50(11):2429-2435.
Investigation on Cloud Computing for Virtualization Technology
SU Peng-cheng
(Department of Teaching,Guizhou Normal University,Guiyang 550025,China)
Virtualization is the essential core of the cloud computing.Because the technical issues involved are broad,analysis with the vertical and horizontal integration point of view have been conducted.Some cases and examples have been investigated,such as cloud desktop application system which is used in colleges and universities,NDIS programming cases,and windows operating system driver programming cases both FileDisk.c and HttpDisk.c.The research processing has been carried on two factors,one of which is virtualization of hardware,the other is virtualization of system,and in the research processing,several factors are to be considered,such as the kernel operating system,the theory of cloud computing and structure,and the implementation techniques of cloud computing.Based on analyzing these programming cases and examples,the bottom technologies concerned with cloud computing and virtualization problems have been resolved.Experimental results show that to design and implement cloud computing and virtualization are based on layered structure system,also based on invoking operation system kernel interface,not only Blue Screen of Death can be solved but also computing and virtualization system efficiency can be promoted in this way.Results of practical application show that the architecture and implementation of cloud computing architecture is based on software,hardware and system virtualization.
cloud computing;virtualization technology;kernel;intermediate NDIS drivers technology
2016-04-25
2016-08-17
時間:2017-03-07
貴州省科技計劃基金項(xiàng)目(黔科合J字[2011]2216)
蘇朋程(1976-),男,碩士,高級實(shí)驗(yàn)師,研究方向?yàn)榇髷?shù)據(jù)、云計算。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170307.0920.008.html
TP316
A
1673-629X(2017)04-0029-05
10.3969/j.issn.1673-629X.2017.04.007