知識(shí)點(diǎn)19KVM架構(gòu)與KVM模塊_第1頁(yè)
知識(shí)點(diǎn)19KVM架構(gòu)與KVM模塊_第2頁(yè)
知識(shí)點(diǎn)19KVM架構(gòu)與KVM模塊_第3頁(yè)
知識(shí)點(diǎn)19KVM架構(gòu)與KVM模塊_第4頁(yè)
知識(shí)點(diǎn)19KVM架構(gòu)與KVM模塊_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

KVM架構(gòu)與KVM模塊目錄1.KVM架構(gòu)2.

KVM模塊12一、KVM架構(gòu)1.虛擬化模型虛擬化模型3一、KVM架構(gòu)1.虛擬化模型

圖中處于底層是整個(gè)物理系統(tǒng),主要包括處理器、內(nèi)存和輸入輸出設(shè)備。在物理系統(tǒng)之上,運(yùn)行的是虛擬機(jī)監(jiān)控器(縮寫(xiě)為VMM或Hypervisor)。虛擬機(jī)監(jiān)控器的主要職能是:管理真實(shí)的物理硬件平臺(tái),并為每個(gè)虛擬客戶(hù)機(jī)提供對(duì)應(yīng)的虛擬硬件平臺(tái)。4一、KVM架構(gòu)1.虛擬化模型一個(gè)X86平臺(tái)的核心是其中的處理器,處理器運(yùn)行程序代碼,訪問(wèn)內(nèi)存和輸入輸出設(shè)備。所以,X86平臺(tái)虛擬化技術(shù)的核心部分是處理器的虛擬化。5一、KVM架構(gòu)2.KVM架構(gòu)(1)虛擬機(jī)的分類(lèi)從虛擬機(jī)的基本架構(gòu)上來(lái)區(qū)分,虛擬機(jī)一般分為兩種,我們稱(chēng)之為類(lèi)型一和類(lèi)型二。6一、KVM架構(gòu)2.KVM架構(gòu)(1)虛擬機(jī)的分類(lèi)“類(lèi)型一”虛擬機(jī)是在系統(tǒng)上電之后首先加載運(yùn)行虛擬機(jī)監(jiān)控程序,而傳統(tǒng)的操作系統(tǒng)則是運(yùn)行在其創(chuàng)建的虛擬機(jī)中。類(lèi)型一的虛擬機(jī)監(jiān)控程序,從某種意義上可以視為一個(gè)特別為虛擬機(jī)而優(yōu)化裁剪的操作系統(tǒng)內(nèi)核。這一類(lèi)型的虛擬機(jī)監(jiān)控程序一般會(huì)提供一個(gè)具有一定特權(quán)的特殊虛擬機(jī),由這個(gè)特殊虛擬機(jī)來(lái)運(yùn)行需要提供給用戶(hù)日常操作和管理使用的操作系統(tǒng)環(huán)境。7一、KVM架構(gòu)2.KVM架構(gòu)(1)虛擬機(jī)的分類(lèi)“類(lèi)型二”虛擬機(jī)監(jiān)控程序,在系統(tǒng)上電之后仍然運(yùn)行一般意義上的操作系統(tǒng)(也就是俗稱(chēng)的宿主機(jī)操作系統(tǒng)),虛擬機(jī)監(jiān)控程序作為特殊的應(yīng)用程序,可以視作操作系統(tǒng)功能的擴(kuò)展。對(duì)于“類(lèi)型二”的虛擬機(jī)來(lái)說(shuō),其最大的優(yōu)勢(shì)在于可以充分利用現(xiàn)有的操作系統(tǒng)。但是,這一類(lèi)型的虛擬機(jī)監(jiān)控程序既然依賴(lài)操作系統(tǒng)來(lái)實(shí)現(xiàn)管理和調(diào)度,就同樣也會(huì)受到宿主操作系統(tǒng)的一些限制。例如,通常無(wú)法僅僅為了虛擬機(jī)的優(yōu)化,而對(duì)操作系統(tǒng)作出修改。8一、KVM架構(gòu)2.KVM架構(gòu)KVM架構(gòu)9一、KVM架構(gòu)2.KVM架構(gòu)在圖中,左側(cè)部分是一個(gè)標(biāo)準(zhǔn)的Linux操作系統(tǒng),可以是RHEL、Fedora、Ubuntu等。KVM內(nèi)核模塊在運(yùn)行時(shí)按需加載進(jìn)入內(nèi)核空間運(yùn)行。KVM本身不執(zhí)行任何設(shè)備模擬,需要用戶(hù)空間程序QEMU通過(guò)/dev/kvm接口設(shè)置一個(gè)虛擬客戶(hù)機(jī)的地址空間,向它提供模擬的I/O設(shè)備,并將它的視頻顯示映射回宿主機(jī)的顯示屏。10二、KVM模塊1.工作過(guò)程KVM模塊是KVM虛擬機(jī)的核心部分。其主要功能是初始化CPU硬件,打開(kāi)虛擬化模式,然后將虛擬客戶(hù)機(jī)運(yùn)行在虛擬機(jī)模式下,并對(duì)虛擬客戶(hù)機(jī)的運(yùn)行提供一定的支持。11二、KVM模塊1.工作過(guò)程為了軟件的簡(jiǎn)潔和性能,KVM僅支持硬件虛擬化。以KVM在Intel公司的CPU上運(yùn)行為例:(1)在被內(nèi)核加載的時(shí)候,KVM模塊會(huì)先初始化內(nèi)部的數(shù)據(jù)結(jié)構(gòu);(2)做好準(zhǔn)備之后,KVM模塊檢測(cè)系統(tǒng)當(dāng)前的CPU,然后打開(kāi)CPU控制寄存器CR4中的虛擬化模式開(kāi)關(guān),并通過(guò)執(zhí)行VMXON指令將宿主操作系統(tǒng)(包括KVM模塊本身)置于虛擬化模式中的根模式;(3)最后,KVM模塊創(chuàng)建特殊設(shè)備文件/dev/kvm并等待來(lái)自用戶(hù)空間的命令。接下來(lái)虛擬機(jī)的創(chuàng)建和運(yùn)行將是一個(gè)用戶(hù)空間的應(yīng)用程序(QEMU)和KVM模塊相互配合的過(guò)程。12二、KVM模塊1.KVM模塊的應(yīng)用(1)KVM與QEMU之間的通信KVM模塊與用戶(hù)空間QEMU的通信接口主要是一系列針對(duì)特殊設(shè)備文件的IOCTL調(diào)用。如上所述,KVM模塊加載之初,只存在/dev/kvm文件,而針對(duì)該文件的最重要的IOCTL調(diào)用就是“創(chuàng)建虛擬機(jī)”,可以理解成KVM為了某個(gè)特定的虛擬客戶(hù)機(jī)(用戶(hù)空間程序創(chuàng)建并初始化)創(chuàng)建對(duì)應(yīng)的內(nèi)核數(shù)據(jù)結(jié)構(gòu)。同時(shí),KVM還會(huì)返回一個(gè)文件句柄來(lái)代表所創(chuàng)建的虛擬機(jī)。針對(duì)該文件句柄的IOCTL調(diào)用可以對(duì)虛擬機(jī)做相應(yīng)的管理,比如創(chuàng)建用戶(hù)空間虛擬地址和客戶(hù)機(jī)物理地址及真實(shí)內(nèi)存物理地址的映射關(guān)系。13二、KVM模塊1.KVM模塊的應(yīng)用(2)KVM與虛擬處理器針對(duì)虛擬處理器的最重要的IOCTL調(diào)用就是“執(zhí)行虛擬處理器”。通過(guò)它,用戶(hù)空間準(zhǔn)備好的虛擬機(jī)在KVM模塊的支持下,被置于虛擬化模式中的非根模式下,開(kāi)始執(zhí)行二進(jìn)制指令。在非根模式下,所有敏感的二進(jìn)制指令都會(huì)被處理器捕捉到,處理器在保存現(xiàn)場(chǎng)之后自動(dòng)切換到根模式,由KVM決定如何進(jìn)一步處理(要么由KVM模塊直接處理,要么返回用戶(hù)空間交由用戶(hù)空間程序處理)。14二、KVM模塊1.KVM模塊的應(yīng)用(3)KVM與內(nèi)存虛擬化除了處理器的虛擬化,內(nèi)存虛擬化也是由KVM模塊實(shí)現(xiàn)的。實(shí)際上,內(nèi)存虛擬化往往是一個(gè)虛擬機(jī)實(shí)現(xiàn)中代碼量最大、實(shí)現(xiàn)最復(fù)雜的部分。眾所周知,處理器中的內(nèi)存管理單元(MMU)是通過(guò)頁(yè)表的形式將程序運(yùn)行的虛擬地址轉(zhuǎn)換成為物理內(nèi)存地址。在虛擬機(jī)模式下,內(nèi)存管理單元的頁(yè)表則必須在一次查詢(xún)的時(shí)候完成兩次地址轉(zhuǎn)換。這是因?yàn)椋艘獙⒖蛻?hù)機(jī)程序的虛擬地址轉(zhuǎn)換成為客戶(hù)機(jī)物理地址以外,還必

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論