欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種內(nèi)核虛擬機(jī)組織架構(gòu)模式的實(shí)現(xiàn)方法

文檔序號(hào):6331356閱讀:218來源:國知局
專利名稱:一種內(nèi)核虛擬機(jī)組織架構(gòu)模式的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種內(nèi)核虛擬機(jī)組織架構(gòu)模式的實(shí)現(xiàn)方法,主要是涉及內(nèi)核虛擬機(jī) (Kernel-Based Virtual Machine,簡稱KVM)在Linux操作環(huán)境下的組織架構(gòu)模式,以內(nèi)核 虛擬機(jī)為基礎(chǔ),實(shí)現(xiàn)其虛擬機(jī)軟件架構(gòu)的優(yōu)化,涉及虛擬化監(jiān)控程序優(yōu)化技術(shù)。屬于計(jì)算機(jī) 技術(shù)領(lǐng)域。
背景技術(shù)
1、虛擬機(jī)的應(yīng)用近年來,隨著虛擬化技術(shù)在x86體系結(jié)構(gòu)下的不斷發(fā)展和單臺(tái)物理機(jī)性能的不斷 提高,使得一臺(tái)物理機(jī)提供多個(gè)不同模擬計(jì)算環(huán)境成為可能,在實(shí)踐上則表現(xiàn)為虛擬化軟 件的流行及云計(jì)算架構(gòu)的興起。在單臺(tái)物理機(jī)上運(yùn)行多個(gè)虛擬機(jī),每個(gè)虛擬機(jī)模擬一種特 定的計(jì)算機(jī)架構(gòu)并運(yùn)行相應(yīng)的操作系統(tǒng),使得物理機(jī)的計(jì)算資源得以充分利用。虛擬機(jī)技 術(shù)用于數(shù)據(jù)中心、云計(jì)算等服務(wù)提供領(lǐng)域,則可以實(shí)現(xiàn)服務(wù)整合,監(jiān)控一體化,進(jìn)而提升服 務(wù)質(zhì)量及資源復(fù)用率。通過虛擬機(jī)技術(shù),物理機(jī)中的可用資源在邏輯上被分為不同的集合,每個(gè)集合與 其他集合之間屬于隔離關(guān)系。其中不能直接訪問被隔離對(duì)象的資源空間。這些不同的隔離 集合分別被稱為主機(jī)(Host)、虛擬機(jī)監(jiān)控器(VMM,Virtual Machine Monitor)以及多個(gè)虛 擬機(jī)(VM,Virtual Machine)。在內(nèi)核虛擬機(jī)架構(gòu)中,VMM可以與Host共存,并作為Host的 一個(gè)進(jìn)程出現(xiàn),由Host上運(yùn)行的操作系統(tǒng)(Host OS)調(diào)度。不同的VM也作為Host上的單 獨(dú)進(jìn)程出現(xiàn)。VMM通過Host OS提供的進(jìn)程調(diào)用模式,調(diào)用不同的虛擬機(jī)進(jìn)程,從而實(shí)現(xiàn)在 不同虛擬機(jī)之間進(jìn)行切換。這種模式下,VMM利用進(jìn)程對(duì)進(jìn)程擁有的內(nèi)部資源的保護(hù)機(jī)制, 來隔離不同的虛擬機(jī)。整個(gè)架構(gòu)應(yīng)具有很好的隔離性、可擴(kuò)展性和可靠性,且能夠簡單方便 的進(jìn)行部署和管理維護(hù)。隨著虛擬化在x86架構(gòu)上的日趨成熟化,虛擬機(jī)技術(shù)也越來越多的用在實(shí)際應(yīng)用 中。但是當(dāng)前成熟的軟件虛擬化技術(shù)在處理一部分指令時(shí),需要將這部分指令移交至主機(jī) 操作系統(tǒng)執(zhí)行,這會(huì)導(dǎo)致業(yè)務(wù)處理能力的下降。尤其是在10操作密集時(shí),VMM需要頻繁地 停止當(dāng)前正在運(yùn)行的虛擬機(jī),將控制權(quán)交給Host 0S,在Host OS處理完成后,通過進(jìn)程調(diào) 度,將使用權(quán)交還給VMM,再由VMM調(diào)用相應(yīng)虛擬機(jī)執(zhí)行下面的操作。整個(gè)處理過程的冗余 導(dǎo)致Host資源使用率的異常提升,以及虛擬機(jī)業(yè)務(wù)效率的嚴(yán)重降低。為了更好的實(shí)現(xiàn)虛擬化技術(shù)在實(shí)際工程中的使用,有必要提出一種新的內(nèi)核虛擬 機(jī)的組織架構(gòu)模式,來更好的處理VM與VMM,VMM與Host之間的交互,來達(dá)到全面提升虛擬 機(jī)性能的目的。2、硬件虛擬化技術(shù)通過VMM的資源重映射功能,底層物理資源為VM在ISA層面(Instruction Set Architecture,指令集架構(gòu))提供了一個(gè)邏輯上等價(jià)的計(jì)算機(jī)體系結(jié)構(gòu)及相應(yīng)資源集合, 為客戶操作系統(tǒng)虛擬出一個(gè)邏輯硬件層。
因?yàn)楝F(xiàn)行軟件虛擬化技術(shù)在體系結(jié)構(gòu)組織上存在著問題,芯片廠商推出了基于硬 件的硬件虛擬化技術(shù)。支持虛擬化的CPU的ISA集經(jīng)過特別設(shè)計(jì),專門增加了特定的ISA 指令,來控制虛擬過程。通過對(duì)虛擬化過程進(jìn)行直接操縱的ISA指令,VMM與Host OS之間 的交互可以更加直接快速。硬件虛擬化技術(shù)可提供基于芯片的功能,借助兼容VMM軟件能 夠改進(jìn)純軟件解決方案。硬件虛擬化對(duì)常用的處理器特權(quán)級(jí)別進(jìn)行一定的修改。在常規(guī)狀態(tài)下,x86處理 器有四個(gè) CPL (Current Privilege Level),分別為 RingO_Ring3。只有在 RingO-2 級(jí)別下運(yùn) 行時(shí),處理器才可以訪問特權(quán)資源或者執(zhí)行特權(quán)指令;一般情況下x86平臺(tái)上的軟件只運(yùn) 行在RingO和Ring3兩個(gè)級(jí)別,RingO負(fù)責(zé)OS的運(yùn)行,Ring3則負(fù)責(zé)用戶進(jìn)程的運(yùn)行。VMM 為了保證對(duì)資源的整體掌控,需要運(yùn)行在RingO級(jí)別,但是與之對(duì)應(yīng)的Guest OS需要管理 自身擁有的邏輯資源,同時(shí)因?yàn)椴荒苡绊慔ost OS與VMM對(duì)物理機(jī)整體資源的管理,也不能 運(yùn)行在RingO級(jí)別,所以Guest只能運(yùn)行在Ringl或者Ring3級(jí)別(Ring2級(jí)別一般不被使 用)。而為了實(shí)現(xiàn)上的便利,Guest OS—般往往被降級(jí)在Ring3等級(jí)上實(shí)現(xiàn)。硬件虛擬化下,芯片可以直接支持兩種格式的操作,一種用于VMM,另外一種用于 客戶操作系統(tǒng)。相對(duì)于在x86體系結(jié)構(gòu)下的最高特權(quán)級(jí)是ring 0級(jí),硬件虛擬化架構(gòu)定 義了一些新的指令、寄存器以及控制域來實(shí)現(xiàn)一個(gè)更高特權(quán)級(jí)的模式,該特權(quán)級(jí)又被稱為 "Ring-I“ (AMD)級(jí)或者“Root模式”(Intel)。同時(shí),硬件虛擬化架構(gòu)還定義了專用的虛擬 機(jī)控制結(jié)構(gòu)體(AMD 的 SVM 架構(gòu)Virtual Machine Control Blocks (VMCB),Intel 的 VT 架 構(gòu)Virtual Machine Control Struct (VMCS)),該結(jié)構(gòu)體用于對(duì)異常行為的控制,并且不 允許在處理器核心之間共享,它控制著虛擬機(jī)監(jiān)控器和客戶操作系統(tǒng)的切換。3、內(nèi)核虛擬機(jī)的發(fā)展內(nèi)—才以豐幾(KVM, Kernel-Based Virtual Machine) i由 Qumranet &司(已被 Redhat公司收購)開發(fā)的基于Linux開源操作系統(tǒng)的一個(gè)開源VMM。KVM基于Linux內(nèi) 核,它所管理的每一個(gè)虛擬機(jī)實(shí)例被Linux操作系統(tǒng)的看作是一個(gè)進(jìn)程,因此可以充分利 用Linux操作系統(tǒng)的調(diào)度算法與策略,所有標(biāo)準(zhǔn)的Linux進(jìn)程管理工具都可以應(yīng)用于虛擬 機(jī),使得在VMM在實(shí)現(xiàn)上更加,對(duì)虛擬資源的控制和調(diào)度開銷也變得更低,管理工具可以直 接對(duì)已有Linux相關(guān)工具進(jìn)行復(fù)用。KVM是由KVM Driver和稍微修改過的Qemu組成,其中 KVM Driver是作為Linux的一個(gè)模塊,Qemu負(fù)責(zé)管理1/0設(shè)備。KVM Driver加入到標(biāo)準(zhǔn)的Linux內(nèi)核中,被組織成Linux中的標(biāo)準(zhǔn)字符設(shè)備(/ dev/kvm),用戶模式的Qemu可以通過一系列的ioctl系統(tǒng)調(diào)用訪問這個(gè)字符設(shè)備從而創(chuàng)建 和運(yùn)行虛擬機(jī)。KVM Driver的加入使得整個(gè)Linux內(nèi)核成為一個(gè)虛擬機(jī)監(jiān)控器(VMM),并 且在原有Linux操作系統(tǒng)兩種執(zhí)行模式(用戶模式和內(nèi)核模式)的基礎(chǔ)上,增加了一種客 戶模式(擁有自己的內(nèi)核模式和用戶模式),這三種模式不同的分工分別是客戶模式執(zhí)行非1/0的客戶代碼。虛擬機(jī)就運(yùn)行在客戶模式下。內(nèi)核模式實(shí)現(xiàn)到客戶模式的切換,處理由于1/0或其他指令引起的從客戶模式 的退出。KVM Driver工作在這種模式下。用戶模式代表客戶執(zhí)行1/0指令。Qemu運(yùn)行在這種模式下。當(dāng)前的KVM客戶模式下,在虛擬機(jī)執(zhí)行10指令時(shí),需要從客戶模式退出到用戶模 式進(jìn)行10操作,操作完后再返回客戶模式。這種模式下,如果進(jìn)行頻繁的退出返回,則會(huì)導(dǎo)致虛擬機(jī)I/O性能的急劇降低。例如高密度的網(wǎng)絡(luò)1/0,以及小塊數(shù)據(jù)的頻繁讀寫過程等, 都會(huì)造成虛擬機(jī)進(jìn)程占用主機(jī)資源率異常升高,同時(shí)虛擬機(jī)內(nèi)應(yīng)用處理數(shù)據(jù)效率降低,甚 至因?yàn)轫憫?yīng)時(shí)間過長導(dǎo)致I/O失敗。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種內(nèi)核虛擬機(jī)組織架構(gòu)模式的實(shí)現(xiàn)方法,為內(nèi)核虛擬機(jī) 提供了一種新的整體組織架構(gòu),它實(shí)現(xiàn)了虛擬機(jī)與主機(jī)以及與外界之間高效的通用通信方 式,通過對(duì)硬件虛擬化的軟件模擬,簡化虛擬機(jī)從客戶態(tài)切換到內(nèi)核態(tài)再到用戶態(tài)的過程, 降低虛擬機(jī)開銷,在這種架構(gòu)下的內(nèi)核虛擬機(jī),可以有更好的I/O表現(xiàn),與已有的虛擬機(jī)I/ 0性能提升方式相比,對(duì)Guest OS與系統(tǒng)驅(qū)動(dòng)的修改更少,更有利于實(shí)現(xiàn)資源的整合,提高 物理服務(wù)器的利用率。一種內(nèi)核虛擬機(jī)組織架構(gòu)模式的實(shí)現(xiàn)方法,包括如下步驟(一 )、創(chuàng)建對(duì)應(yīng)的虛擬機(jī)狀態(tài)記錄數(shù)據(jù)結(jié)構(gòu)步驟1 在虛擬機(jī)啟動(dòng)時(shí),構(gòu)建一個(gè)特定的struct架構(gòu)VPCS(Virtual Process Control Structure),用于記錄虛擬機(jī)的虛擬設(shè)備與底層物理資源的對(duì)應(yīng)關(guān)系。步驟2 =VPCS數(shù)據(jù)結(jié)構(gòu)用于記錄虛擬機(jī)中的各種邏輯部件與真實(shí)的物理器件之間 的映射關(guān)系,并設(shè)置相應(yīng)的數(shù)據(jù)緩沖區(qū)步驟3 虛擬機(jī)啟動(dòng)后,VPCS結(jié)構(gòu)常駐內(nèi)存。步驟4 在執(zhí)行用戶態(tài)指令時(shí),依照原有KVM運(yùn)行模式執(zhí)行指令。步驟5 在執(zhí)行需要內(nèi)核態(tài)執(zhí)行的指令時(shí),虛擬機(jī)進(jìn)程掛起,Linux操作系統(tǒng)調(diào)度 KVM進(jìn)行處理,并將所需處理結(jié)果直接送至虛擬機(jī)進(jìn)程地址空間相應(yīng)位置,繼續(xù)調(diào)度虛擬機(jī) 進(jìn)程運(yùn)行。步驟6 在執(zhí)行塊型I/O操作(例如磁盤讀寫)時(shí),通過VPCS結(jié)構(gòu)中的設(shè)備映射 關(guān)系直接將虛擬機(jī)內(nèi)存空間(即虛擬機(jī)進(jìn)程的進(jìn)程空間)與物理機(jī)內(nèi)存空間進(jìn)行映射,并 進(jìn)行相應(yīng)數(shù)據(jù)傳輸操作。步驟7 在執(zhí)行鍵盤或鼠標(biāo)等低頻率中斷操作時(shí),依照中斷模擬的方法進(jìn)行設(shè)備 映射,保證在虛擬機(jī)進(jìn)程活動(dòng)時(shí),鼠標(biāo)、鍵盤等產(chǎn)生的中斷被處理后直接反映在虛擬機(jī)進(jìn)程 的地址空間中。步驟8 在執(zhí)行網(wǎng)絡(luò)I/O等高頻率中斷操作時(shí),參照NAPI模式,為每塊網(wǎng)絡(luò)設(shè)備開 辟buffer,在buffer充滿之后,一次性將其移入對(duì)應(yīng)虛擬機(jī)進(jìn)程的相應(yīng)地址空間中(即將 相應(yīng)數(shù)據(jù)塊放入Guest OS的內(nèi)核態(tài)地址空間中)。( 二)、對(duì)內(nèi)核虛擬機(jī)的運(yùn)行模式進(jìn)行修改步驟1 :KVM作為內(nèi)核模塊,負(fù)責(zé)vCPU與vMemory的模擬,作為Daemon進(jìn)程常駐 Linux內(nèi)核態(tài)。步驟2 =QEMU作為1/0管理模塊,運(yùn)行在Linux用戶態(tài)。步驟3 每個(gè)虛擬機(jī)作為一個(gè)獨(dú)立的用戶進(jìn)程,運(yùn)行在Linux用戶態(tài)。QEMU與每個(gè) 虛擬機(jī)進(jìn)程共享其相應(yīng)的1/0操作結(jié)構(gòu)。步驟4 在Guest OS需要CPL Ring 0-2的相應(yīng)權(quán)限以執(zhí)行CPU相關(guān)指令或內(nèi)存 相關(guān)指令時(shí),則將所需要求傳遞給KVM,因?yàn)镵VM運(yùn)行在內(nèi)核態(tài)下,處于Ring 0特權(quán)環(huán)內(nèi),故可以對(duì)相關(guān)硬件進(jìn)行操作,并更新對(duì)應(yīng)虛擬機(jī)進(jìn)程空間中的VPCS結(jié)構(gòu)。步驟5:在Guest OS需要CPL Ring0_2的相應(yīng)權(quán)限以執(zhí)行I/O相關(guān)指令時(shí),則將 所需要求傳遞給QEMU,由KVM處理QEMU提交的請(qǐng)求,通過VPCS結(jié)構(gòu)中的物理地址與虛擬機(jī) 地址空間映射關(guān)系,直接建立從物理I/O設(shè)備數(shù)據(jù)緩存區(qū)到虛擬機(jī)地址空間的連接,以DMA 方式進(jìn)行數(shù)據(jù)傳輸,或以中斷方式直接處理由鼠標(biāo)或者鍵盤弓丨起的I/O操作。本發(fā)明的優(yōu)點(diǎn)及功效在于由于內(nèi)核虛擬機(jī)運(yùn)行于Linux內(nèi)核這一特性,可以將 VMM直接置于CPL的Ring 0級(jí)別,而通過引入VPCS結(jié)構(gòu),將虛擬機(jī)進(jìn)程空間地址與物理地 址的轉(zhuǎn)換關(guān)系常駐內(nèi)存,從而可以不再對(duì)系統(tǒng)特權(quán)模式進(jìn)行修改。而引入的物理設(shè)備與邏 輯設(shè)備的映射關(guān)系表,也為虛擬機(jī)進(jìn)程直接與底層資源進(jìn)行交互提供了方便。已有的虛擬化技術(shù)下,對(duì)計(jì)算密集型應(yīng)用(計(jì)算任務(wù)為主的應(yīng)用,特點(diǎn)是ISA指令 流中需要虛擬機(jī)陷入執(zhí)行的比例較低)的虛擬化較為成功;但是對(duì)I/O密集型應(yīng)用(與外 界進(jìn)行數(shù)據(jù)交互為主的應(yīng)用,經(jīng)常需要虛擬機(jī)退出到更低的特權(quán)模式下進(jìn)行Guest OS中指 令流的模擬)的虛擬化則在效率仍有提升余地。在服務(wù)器上,當(dāng)多個(gè)虛擬機(jī)運(yùn)行于同一個(gè)物理服務(wù)器時(shí),內(nèi)核虛擬機(jī)提供了很好 的隔離性、安全性。但是在實(shí)際使用過程中,因?yàn)镮/O操作的比例占據(jù)很高的部分,虛擬機(jī) 不一定能夠及時(shí)處理所有的I/O請(qǐng)求。因此本發(fā)明提出了一種全新的內(nèi)核虛擬機(jī)組織架構(gòu) 模式,引入新的VPCS數(shù)據(jù)結(jié)構(gòu),對(duì)物理機(jī)上每個(gè)虛擬機(jī)進(jìn)程的邏輯資源與物理資源映射進(jìn) 行封裝并使其常駐內(nèi)存,實(shí)現(xiàn)一種通用的虛擬機(jī)I/O性能提升的模式,具有很好的實(shí)用價(jià) 值和前景。


圖1本發(fā)明系統(tǒng)總體框架示意2本發(fā)明內(nèi)核虛擬機(jī)整體架構(gòu)示意圖
圖3本發(fā)明內(nèi)核虛擬機(jī)進(jìn)程結(jié)構(gòu)對(duì)應(yīng)示意4本發(fā)明內(nèi)核虛擬機(jī)進(jìn)程調(diào)度過程示意圖
具體實(shí)施例方式見圖1、圖2、圖3,圖4所示,具體實(shí)施步驟如下一種內(nèi)核虛擬機(jī)的新的軟件實(shí)施架構(gòu),其特征如下(一 )、為每個(gè)正在運(yùn)行的虛擬機(jī)進(jìn)程創(chuàng)建一個(gè)VPCS結(jié)構(gòu),在創(chuàng)建運(yùn)行中的虛擬機(jī) 進(jìn)程時(shí)分配并常駐內(nèi)存。其具體步驟如下步驟1 當(dāng)一個(gè)虛擬機(jī)啟動(dòng)時(shí),在創(chuàng)建虛擬機(jī)進(jìn)程空間的PD (Process Descriptor,進(jìn)程描述符)時(shí)增加相應(yīng)的VPCS數(shù)據(jù)結(jié)構(gòu)(或者指向VPCS結(jié)構(gòu)的指針),并 在后臺(tái)運(yùn)行的KVM Daemon中創(chuàng)建對(duì)應(yīng)的VPCS隊(duì)列,每一個(gè)進(jìn)程對(duì)應(yīng)一個(gè)VPCS數(shù)據(jù)結(jié)構(gòu)。步驟2 =VPCS數(shù)據(jù)結(jié)構(gòu)用于記錄虛擬機(jī)中的各種邏輯部件與真實(shí)的物理器件之間 的映射關(guān)系,包括vCPU與pCPU的對(duì)應(yīng)關(guān)系,虛擬機(jī)進(jìn)程的進(jìn)程地址空間與該進(jìn)程所在物理 地址空間的地址映射關(guān)系,邏輯硬盤分區(qū)在實(shí)際物理硬盤中的存儲(chǔ)位置,以及其他需要?jiǎng)?chuàng) 建的邏輯外設(shè)與物理外設(shè)的對(duì)應(yīng)關(guān)系。這種對(duì)應(yīng)關(guān)系的關(guān)鍵是物理外設(shè)的數(shù)據(jù)緩沖區(qū)能夠 直接與虛擬機(jī)進(jìn)程地址空間中的虛擬外設(shè)邏輯緩沖區(qū)進(jìn)行直接數(shù)據(jù)傳輸。
步驟3 虛擬機(jī)啟動(dòng)后,VPCS結(jié)構(gòu)常駐內(nèi)存,VMM通過管理VPCS結(jié)構(gòu)來對(duì)多個(gè)虛擬 機(jī)進(jìn)行管理。步驟4 在執(zhí)行用戶態(tài)指令時(shí),依照原有KVM的運(yùn)行模式執(zhí)行指令。即計(jì)算/訪存 指令直接在虛擬機(jī)內(nèi)完成,無需陷入。步驟5 在執(zhí)行需要內(nèi)核態(tài)執(zhí)行的指令時(shí),虛擬機(jī)進(jìn)程掛起,Linux操作系統(tǒng)調(diào)度 KVM進(jìn)行處理,并將所需處理結(jié)果直接送至虛擬機(jī)進(jìn)程地址空間相應(yīng)位置,繼續(xù)調(diào)度虛擬機(jī) 進(jìn)程運(yùn)行。步驟6 在執(zhí)行塊型I/O操作(例如磁盤讀寫)時(shí),通過VPCS結(jié)構(gòu)中的設(shè)備映射 關(guān)系直接將虛擬機(jī)內(nèi)存空間(即虛擬機(jī)進(jìn)程的進(jìn)程空間)中相應(yīng)數(shù)據(jù)經(jīng)過VPCS轉(zhuǎn)換后,得 到其在物理地址空間中的位置,使得真實(shí)物理地址直接與設(shè)備進(jìn)行交互。步驟7 在執(zhí)行鍵盤或鼠標(biāo)等低頻率中斷操作時(shí),依照中斷模擬的方法進(jìn)行設(shè)備 映射,保證在虛擬機(jī)進(jìn)程活動(dòng)時(shí),鼠標(biāo)、鍵盤等產(chǎn)生的中斷被處理后直接反映在虛擬機(jī)進(jìn)程 的地址空間中。步驟8 在執(zhí)行網(wǎng)絡(luò)I/O等高頻率中斷操作時(shí),參照NAPI模式,為每塊網(wǎng)絡(luò)設(shè)備開 辟buffer,在buffer充滿之后,一次性將其移入對(duì)應(yīng)虛擬機(jī)進(jìn)程的相應(yīng)地址空間中(即將 相應(yīng)數(shù)據(jù)塊放入Guest OS的內(nèi)核態(tài)地址空間中)。實(shí)現(xiàn)一次中斷處理多個(gè)數(shù)據(jù)包,以提高 系統(tǒng)整體性能。如果buffer被填滿,則由虛擬機(jī)操作系統(tǒng)將數(shù)據(jù)統(tǒng)一處理。如果虛擬機(jī)因 為某種原因未能及時(shí)響應(yīng),可以將后續(xù)數(shù)據(jù)包存放至備用的buffer中,利用這種方法可以 有效降低丟包率,進(jìn)而解決可能出現(xiàn)的虛擬機(jī)響應(yīng)不及時(shí)問題。( 二)、修改內(nèi)核虛擬機(jī)的運(yùn)行模式,使VMM部分作為Daemon進(jìn)程運(yùn)行在Linux內(nèi) 核態(tài),同時(shí)不同的虛擬機(jī)進(jìn)程作為Linux的普通進(jìn)程運(yùn)行在用戶態(tài)。其具體步驟如下步驟1 :KVM作為內(nèi)核模塊,可以將其定位為Daemon進(jìn)程,使之常駐Linux內(nèi)核。步驟2 =QEMU作為I/O管理模塊,運(yùn)行在Linux用戶態(tài)。步驟3 活動(dòng)的虛擬機(jī)進(jìn)程作為普通的Linux用戶進(jìn)程被Linux內(nèi)核調(diào)度程序控 制。步驟4 如果虛擬機(jī)進(jìn)程需要RingO級(jí)別權(quán)限,則更新VPCS,將控制權(quán)交給KVM ; KVM調(diào)用QEMU處理I/O操作,或直接在內(nèi)核態(tài)下執(zhí)行特權(quán)指令。KVM按照自己所保持的VPCS 鏈表中相應(yīng)VPCS結(jié)構(gòu)的映射關(guān)系,將結(jié)果直接寫入某塊物理內(nèi)存,該塊物理內(nèi)存的地址由 VPCS結(jié)構(gòu)中描述的地址映射關(guān)系與虛擬機(jī)進(jìn)程掛起前更新在VPCS中的邏輯地址空間共同 決定。
權(quán)利要求
一種內(nèi)核虛擬機(jī)組織架構(gòu)模式的實(shí)現(xiàn)方法,包括如下步驟(一)、創(chuàng)建對(duì)應(yīng)的虛擬機(jī)狀態(tài)記錄數(shù)據(jù)結(jié)構(gòu)步驟1在虛擬機(jī)啟動(dòng)時(shí),構(gòu)建一個(gè)特定的struct架構(gòu)VPCS,用于記錄虛擬機(jī)的虛擬設(shè)備與底層物理資源的對(duì)應(yīng)關(guān)系;步驟2VPCS數(shù)據(jù)結(jié)構(gòu)用于記錄虛擬機(jī)中的各種邏輯部件與真實(shí)的物理器件之間的映射關(guān)系,并設(shè)置相應(yīng)的數(shù)據(jù)緩沖區(qū);步驟3虛擬機(jī)啟動(dòng)后,VPCS結(jié)構(gòu)常駐內(nèi)存;步驟4在執(zhí)行用戶態(tài)指令時(shí),依照原有KVM運(yùn)行模式執(zhí)行指令;步驟5在執(zhí)行需要內(nèi)核態(tài)執(zhí)行的指令時(shí),虛擬機(jī)進(jìn)程掛起,Linux操作系統(tǒng)調(diào)度KVM進(jìn)行處理,并將所需處理結(jié)果直接送至虛擬機(jī)進(jìn)程地址空間相應(yīng)位置,繼續(xù)調(diào)度虛擬機(jī)進(jìn)程運(yùn)行;步驟6在執(zhí)行塊型I/O操作時(shí),通過VPCS結(jié)構(gòu)中的設(shè)備映射關(guān)系直接將虛擬機(jī)內(nèi)存空間與物理機(jī)內(nèi)存空間進(jìn)行映射,并進(jìn)行相應(yīng)數(shù)據(jù)傳輸操作;步驟7在執(zhí)行鍵盤或鼠標(biāo)等低頻率中斷操作時(shí),依照中斷模擬的方法進(jìn)行設(shè)備映射,保證在虛擬機(jī)進(jìn)程活動(dòng)時(shí),鼠標(biāo)、鍵盤產(chǎn)生的中斷被處理后直接反映在虛擬機(jī)進(jìn)程的地址空間中;步驟8在執(zhí)行網(wǎng)絡(luò)I/O等高頻率中斷操作時(shí),為每塊網(wǎng)絡(luò)設(shè)備開辟buffer,在buffer充滿之后,一次性將其移入對(duì)應(yīng)虛擬機(jī)進(jìn)程的相應(yīng)地址空間中;(二)、對(duì)內(nèi)核虛擬機(jī)的運(yùn)行模式進(jìn)行修改步驟1KVM作為內(nèi)核模塊,負(fù)責(zé)vCPU與vMemory的模擬,作為Daemon進(jìn)程常駐Linux內(nèi)核態(tài);步驟2QEMU作為I/O管理模塊,運(yùn)行在Linux用戶態(tài);步驟3活動(dòng)的虛擬機(jī)進(jìn)程作為普通的Linux用戶進(jìn)程被Linux內(nèi)核調(diào)度程序控制。步驟4如果虛擬機(jī)進(jìn)程需要Ring0級(jí)別權(quán)限,則更新VPCS,將控制權(quán)交給KVM;KVM調(diào)用QEMU處理I/O操作,或直接在內(nèi)核態(tài)下執(zhí)行特權(quán)指令。KVM按照自己所保持的VPCS鏈表中相應(yīng)VPCS結(jié)構(gòu)的映射關(guān)系,將結(jié)果直接寫入某塊物理內(nèi)存,該塊物理內(nèi)存的地址由VPCS結(jié)構(gòu)中描述的地址映射關(guān)系與虛擬機(jī)進(jìn)程掛起前更新在VPCS中的邏輯地址空間共同決定。
全文摘要
本發(fā)明主要是涉及內(nèi)核虛擬機(jī)架構(gòu)及其優(yōu)化技術(shù),以內(nèi)核虛擬機(jī)為基礎(chǔ),對(duì)其軟件結(jié)構(gòu)進(jìn)行優(yōu)化,以達(dá)到降低虛擬機(jī)占用的主機(jī)資源,及提供更加高效的虛擬機(jī)運(yùn)行方式的目的。尤其是為每個(gè)虛擬機(jī)進(jìn)程創(chuàng)建的VPCS結(jié)構(gòu),為實(shí)現(xiàn)物理資源與邏輯資源的直接映射提供了良好的接口。同時(shí)因?yàn)橛布摂M化技術(shù)需要硬件技術(shù)支持,而當(dāng)前各大數(shù)據(jù)中心、公司所擁有的服務(wù)器中仍有很大一部分不支持硬件虛擬化技術(shù),采用這種技術(shù)可以使虛擬化技術(shù)在這部分計(jì)算資源上發(fā)揮更大作用。因此,本發(fā)明具有良好的應(yīng)用前景。
文檔編號(hào)G06F9/455GK101968746SQ20101027142
公開日2011年2月9日 申請(qǐng)日期2010年9月2日 優(yōu)先權(quán)日2010年9月2日
發(fā)明者丁濤, 張鐵剛, 董翰飛, 郝沁汾 申請(qǐng)人:北京航空航天大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
博野县| 自治县| 什邡市| 军事| 永善县| 辉县市| 中山市| 铜山县| 商水县| 三亚市| 富川| 高清| 松溪县| 兴化市| 巩留县| 罗定市| 都昌县| 宣化县| 临颍县| 邛崃市| 东宁县| 长治县| 聊城市| 美姑县| 奇台县| 普安县| 内乡县| 桑日县| 岑溪市| 石嘴山市| 右玉县| 库车县| 华安县| 抚宁县| 开原市| 邹城市| 栾川县| 大安市| 阜新| 德保县| 利津县|