版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
構(gòu)建KVM環(huán)境3KVM架構(gòu)概述配置硬件環(huán)境安裝宿主機Linux編譯安裝KVM編譯安裝QEMU安裝和啟動客戶機第3章構(gòu)建KVM環(huán)境3.1
LVM架構(gòu)概述KVM全稱是Kernel-basedVirtualMachine,是x86架構(gòu)且硬件支持虛擬化技術(shù)(如IntelVT或AMD-V)的Linux內(nèi)核全虛擬化的解決方案。Hypervisor也叫VMM虛擬機監(jiān)控器,即VirtualMachineMonitor,在物理系統(tǒng)上,通過運行虛擬機監(jiān)控器來生成虛擬機。虛擬機監(jiān)控器的主要任務(wù)就是管理真實的物理硬件平臺,為每一個虛擬客戶機提供對應(yīng)的虛擬硬件平臺。KVM是作為一個模塊放置在Linux內(nèi)核中進行使用的。在2010年11月,RedHat公司推出了新的企業(yè)版Linux-RHEL6,在這個發(fā)行版中集成了最新的KVM虛擬機,而且去掉了在RHEL5.x系列中集成的Xen。在主流Linux內(nèi)核的v2.6.20版本后,KVM已經(jīng)成為了Linux中默認的虛擬化解決方案,也就是說,從主流Linux內(nèi)核的v2.6.20版本后,KVM已經(jīng)成了主流Linux內(nèi)核的一個模塊嵌入其中。KVM支持Linux客戶操作系統(tǒng)的虛擬化,甚至支持其硬件對虛擬化敏感的Windows系統(tǒng)的虛擬化。第3章構(gòu)建KVM環(huán)境3.1.1
KVM和XenXen使用一個虛擬機管理程序來管理虛擬機和相關(guān)的資源,還支持半虛擬化。Xen提供了一個專門執(zhí)行資源和虛擬管理與計劃的開源虛擬機管理程序。在裸機物理硬件上引導(dǎo)系統(tǒng)時,Xen虛擬機管理程序啟動一個名為Domain0或管理域的主虛擬機,該虛擬機提供了對所有在該物理主機上運行的其他虛擬機(稱為DomainU,從Domain1到DomainN,或者簡單地稱為XenGuest)的中央虛擬機管理功能。第3章構(gòu)建KVM環(huán)境KVM是Linux內(nèi)核中一個特殊的模塊,Linux內(nèi)核加載此模塊后,可以將Linux內(nèi)核變成Hypervisor,因為可以很好地實現(xiàn)對硬件資源的調(diào)度和管理。KVM的初始版本只有4萬行代碼,相對于Xen的幾百萬行代碼顯得非常簡潔。KVM在Linux整合中優(yōu)于Xen,其中最明顯并且最重要的因素就是KVM是Linux內(nèi)核的一部分,Xen只是一個安裝在Linux內(nèi)核下層的產(chǎn)品而已。KVM需要AMD或者Intel的CPU虛擬化支持,但是這現(xiàn)在已經(jīng)不能成為KVM發(fā)展的限制條件,因為當(dāng)前大多數(shù)服務(wù)器都有這些支持虛擬化的處理器。第3章構(gòu)建KVM環(huán)境3.1.2KVM虛擬化模型目前,虛擬化的架構(gòu)模型基本分為三類,一類是一般的Hypervisor虛擬化架構(gòu)模型,也叫Hypervisor型虛擬化;另一類是Linux作為Hypervisor的虛擬化架構(gòu)模型,也叫宿主模型虛擬化;還有一類是混合模型的虛擬化架構(gòu)模型,綜合了以上兩種虛擬化技術(shù)。一般的Hypervisor模型如圖3-1所示,其中包含一個軟件層,該軟件層復(fù)用多個客戶操作系統(tǒng)的硬件。Hypervisor運行基本的調(diào)度和內(nèi)存管理,分配I/O資源給特定的客戶機操作系統(tǒng)。第3章構(gòu)建KVM環(huán)境圖3-1一般的Hypervisor模型第3章構(gòu)建KVM環(huán)境
這類虛擬機監(jiān)控程序在系統(tǒng)加電之后首先加載運行,傳統(tǒng)的操作系統(tǒng)運行在其創(chuàng)建的虛擬機中。這類Hypervisor可以視為一個特別為虛擬機而優(yōu)化裁剪的操作系統(tǒng)內(nèi)核,Hypervisor運行在最底層,實現(xiàn)諸如系統(tǒng)的初始化,物理資源的管理等功能。此外,對虛擬機進行創(chuàng)建、調(diào)度和管理,與操作系統(tǒng)對進程的創(chuàng)建、調(diào)度和管理相似。這一類型的Hypervisor通常會提供一個具有一定特權(quán)的特殊虛擬機,由這個特殊虛擬機來運行提供用戶日常操作和管理使用的操作系統(tǒng)環(huán)境。第3章構(gòu)建KVM環(huán)境圖3-2加載進Linux內(nèi)核的KVM模塊第3章構(gòu)建KVM環(huán)境
這類虛擬化模型架構(gòu)在系統(tǒng)加電后運行通常的操作系統(tǒng),這個操作系統(tǒng)也叫宿主機操作系統(tǒng),Hypervisor作為特殊的應(yīng)用程序,是對宿主機操作系統(tǒng)的擴展。這種方式的Hypervisor可以充分利用現(xiàn)有的操作系統(tǒng),不必自己管理物理資源和調(diào)度算法,使得Hypervisor更加簡潔。但是,另一方面,由于Hypervisor依賴于Linux內(nèi)核來實現(xiàn)管理和任務(wù)調(diào)度,因此會受到宿主機操作系統(tǒng)的一些限制。KVM、VMwareWorkstation和VirtualBox都是屬于此類的Hypervisor。如圖3-2所示,KVM作為一個模塊加載進Linux內(nèi)核。第3章構(gòu)建KVM環(huán)境混合模型的虛擬化架構(gòu)模型是上述兩種模式的混合體,虛擬機監(jiān)控器位于最底層,用于所有物理資源。但與Hypervisor模型不同的是,虛擬機監(jiān)控器不會控制大部分I/O設(shè)備,會有一個運行在特權(quán)虛擬機中的特權(quán)操作系統(tǒng)控制大部分硬件,分擔(dān)虛擬機監(jiān)控器的一些職責(zé)。處理器和內(nèi)存的虛擬化由虛擬機監(jiān)控器完成,I/O的虛擬化則由虛擬機監(jiān)控器和特權(quán)操作系統(tǒng)共同合作來完成。WindowsServer2012是Miscrosoft推出的新一代服務(wù)器操作系統(tǒng),其中一項重要的新功能是虛擬化。第3章構(gòu)建KVM環(huán)境3.1.3
KVM模塊
KVM模塊讓Linux主機成為一個虛擬機監(jiān)視器,并且在原有的Linux兩種執(zhí)行模式的(內(nèi)核模式和用戶模式)基礎(chǔ)上新增加了客戶模式,客戶模式擁有自己的內(nèi)核模式和用戶模式。在虛擬機運行時,三種模式的工作如下。(1)客戶模式:執(zhí)行非I/O的客戶代碼,虛擬機運行在這個模式下。(2)用戶模式:代表用戶執(zhí)行I/O指令,QEMU運行在這個模式下。(3)內(nèi)核模式:實現(xiàn)客戶模式的切換,處理因為I/O或者其他指令引起的從客戶模式的退出。第3章構(gòu)建KVM環(huán)境KVM模塊的職責(zé)就是打開并初始化系統(tǒng)硬件以支持虛擬機的運行。以KVM在Intel公司的CPU上運行為例,在KVM模塊被內(nèi)核加載的時候,KVM模塊會先初始化內(nèi)部的數(shù)據(jù)結(jié)構(gòu);做好準(zhǔn)備之后,KVM模塊檢測系統(tǒng)當(dāng)前的CPU,然后打開CPU控制寄存器CR4中的虛擬化模式開關(guān),并通過執(zhí)行VMXON指令將宿主操作系統(tǒng)(包括KVM模塊本身)置于虛擬化模式中的根模式;最后,KVM模塊創(chuàng)建特殊設(shè)備文件/dev/kvm并等待來自用戶空間的命令。第3章構(gòu)建KVM環(huán)境KVM所使用的方法是通過簡單地加載內(nèi)核模塊而將Linux內(nèi)核轉(zhuǎn)換為一個系統(tǒng)管理程序。這個內(nèi)核模塊導(dǎo)出了一個名為/dev/kvm的設(shè)備,它可以啟用Linux內(nèi)核除了傳統(tǒng)的內(nèi)核模式和用戶模式以外的客戶模式。有了/dev/kvm設(shè)備,VM(VirtualMachine)虛擬機使自己的地址空間獨立于內(nèi)核或運行著的任何其他VM的地址空間。設(shè)備樹(/dev)中的設(shè)備對于所有用戶空間進程來說都是通用的,但是,為了支持VM之間的隔離,每個打開/dev/kvm的進程看到的是不同的映射。
第3章構(gòu)建KVM環(huán)境3.1.4
QEMU與KVM的關(guān)系QEMU(quickemulator)本身并不是KVM的一部分,而是一套由FabriceBellard編寫的模擬處理器的自由軟件。與KVM不同的是,QEMU虛擬機是一個純軟件的實現(xiàn),因此性能比較低。QEMU有整套的虛擬機實現(xiàn),包括處理器虛擬化、內(nèi)存虛擬化以及網(wǎng)卡、顯卡、存儲控制器和硬盤等虛擬設(shè)備的模擬。第3章構(gòu)建KVM環(huán)境QEMU的兩種運作模式如下:(1)?UserMode模擬模式,即用戶模式,QEMU能啟動由不同中央處理器編譯的Linux程序,可以在一種架構(gòu)(例如PC機)下運行另一種架構(gòu)(如ARM)下的操作系統(tǒng)和程序。(2)?SystemMode模擬模式,即系統(tǒng)模式,QEMU能模擬整個電腦系統(tǒng),包括中央處理器及其他周邊設(shè)備。在此模式下,QEMU可以直接使用宿主機的系統(tǒng)資源,讓虛擬機獲得接近于宿主機的性能表現(xiàn)。
第3章構(gòu)建KVM環(huán)境KVM模塊是KVM的核心,但是,KVM僅僅是Linux內(nèi)核的一個模塊,管理和創(chuàng)建完整的KVM虛擬機,需要其他的輔助工具。每個KVM虛擬機都是一個由Linux調(diào)度程序管理的標(biāo)準(zhǔn)進程,僅有KVM模塊是遠遠不夠的,因為用戶無法直接控制內(nèi)核模塊去做事情,因此,還必須有一個用戶空間的工具才行。這個輔助的用戶空間的工具,開發(fā)者選擇了已經(jīng)成型的開源虛擬化軟件QEMU。QEMU是一個強大的虛擬化軟件,KVM使用了QEMU的基于x86的部分,并稍加改造,形成可控制KVM內(nèi)核模塊的用戶空間工具QEMU。第3章構(gòu)建KVM環(huán)境3.2
配置硬件環(huán)境KVM需要硬件虛擬化技術(shù)的支持,在x86-64架構(gòu)的處理器中,KVM必需的硬件虛擬化支持分別為:英特爾的虛擬化技術(shù)(IntelVT)和AMD的AMD-V技術(shù)。處理器不僅需要在硬件上支持VT技術(shù),還需要在BIOS中將其功能打開,因為打開后KVM才能使用。目前,多數(shù)流行的服務(wù)器和部分桌面處理器的BIOS都是默認將VT打開了。第3章構(gòu)建KVM環(huán)境圖3-3CPU-Z中查看處理器的虛擬化支持第3章構(gòu)建KVM環(huán)境圖3-4BIOS選項第3章構(gòu)建KVM環(huán)境圖3-5BIOS中的VT選項第3章構(gòu)建KVM環(huán)境圖3-6BIOS中的VT設(shè)置第3章構(gòu)建KVM環(huán)境3.3
安裝宿主機Linux運行KVM,必須安裝一個宿主機的Linux操作系統(tǒng)。KVM作為一個流行的虛擬化技術(shù)方案,可以在絕大多數(shù)流行的Linux系統(tǒng)上編譯和運行,本書選擇以Ubuntu14.04版本為例,當(dāng)然,其他的RHEL、Fedora等Linux操作系統(tǒng)也是不錯的選擇。安裝宿主機Linux就是一個普通的Linux系統(tǒng)的安裝過程,具體細節(jié)這里不再贅述,讀者可參考相關(guān)資料。第3章構(gòu)建KVM環(huán)境3.4
編譯安裝KVM3.4.1下載KVM源碼下載KVM源碼有下面多種不同的方式:(1)進入KVM的官網(wǎng)/page/Downloads下載。(2)到/projects/kvm/files/頁面,選擇最新版本下載。(3)到Git代碼倉庫中進行下載。第3章構(gòu)建KVM環(huán)境圖3-7在Git代碼倉庫中下載KVM第3章構(gòu)建KVM環(huán)境下載KVM的步驟如下:root@kvm-host:~/xjy#gitclonegit:///pub/scm/virt/kvm/kvm.gitCloninginto'kvm'...remote:Countingobjects:3924734,done.remote:Compressingobjects:100%(722579/722579),done.remote:Total3924734(delta3218312),reused3858632(delta3169716)Receivingobjects:100%(3924734/3924734),880.54MiB|1.35MiB/s,done.Resolvingdeltas:100%(3218312/3218312),done.Checkingconnectivity...done.Checkingoutfiles:100%(47986/47986),done.第3章構(gòu)建KVM環(huán)境完成后,在當(dāng)前目錄下,可以看到剛下載的kvm的相關(guān)文件:root@kvm-host:~/xjy#pwd/root/xjyroot@kvm-host:~/xjy#lskvmroot@kvm-host:~/xjy#cdkvmroot@kvm-host:~/xjy/kvm#lsarchDocumentationinitlibREADMEsoundblockdriversipcMAINTAINERSREPORTING-BUGStoolsCOPYINGfirmwareKbuildMakefilesamplesusrCREDITSfsKconfigmmscriptsvirtcryptoincludekernelnetsecurity第3章構(gòu)建KVM環(huán)境3.4.2配置KVM圖3-9KVM的配置界面第3章構(gòu)建KVM環(huán)境圖3-10KVM的虛擬化配置界面第3章構(gòu)建KVM環(huán)境圖3-12.config文件的配置信息第3章構(gòu)建KVM環(huán)境3.4.3編譯KVM
配置好KVM后,就可以進行編譯了。編譯KVM時,直接在KVM的安裝目錄中使用“make”命令編譯即可。為了使編譯速度更快,可以在“make”命令后加“-j”參數(shù),讓make工具啟用多進程進行編譯。例如“make-j10”的含義是使用make工具最多創(chuàng)建10個進程來同時執(zhí)行編譯任務(wù)。在一個比較空閑的系統(tǒng)上面,一般使用一個兩倍于系統(tǒng)上CPU的core的數(shù)量來作為?-j常用的一個參數(shù)。第3章構(gòu)建KVM環(huán)境3.4.4安裝KVMKVM的安裝可分為module的安裝及kernel和initramfs的安裝兩步。安裝module時使用“makemodules_install”命令,該命令可以將編譯好的KVM的module安裝到相應(yīng)的目錄下,在默認情況下將安裝到目錄“/lib/modules/$kernel_version/kernel”下,“$kernel_version”表示根據(jù)內(nèi)核版本的不同分別為不同的內(nèi)核目錄。第3章構(gòu)建KVM環(huán)境KVM的module安裝好后,查看“/lib/modules/$kernel_version/kernel”目錄,在本例中,KVM模塊將安裝在“/lib/modules/3.13.0-24-generic/kernel/arch/x86/kvm”目錄下。在該目錄下,可以看到kvm的內(nèi)核驅(qū)動文件kvm.ko和分別支持Intel和AMD類型的CPU內(nèi)核驅(qū)動文件kvm_intel.ko和kvm_amd.ko。
接下來,使用“makeinstall”命令進行KVM的kernel和initramfs的安裝,執(zhí)行“makeinstall”命令后會將內(nèi)核和模塊的相關(guān)文件復(fù)制到正確的地方,并且修改引導(dǎo)程序的配置以啟用新內(nèi)核。第3章構(gòu)建KVM環(huán)境3.5
編譯安裝QEMU在編譯安裝QEMU時,需要以下內(nèi)容的支持:(1)?qemu-kvm-release.tar.gz文件;(2)?支持VT技術(shù)的Intel處理器,或者是支持SVM的AMD處理器;(3)?QEMU需要以下依賴內(nèi)容:“zlib”庫和頭文件,“SDL”庫和頭文件,“alsa”庫和頭文件,“guntls”庫和頭文件,內(nèi)核頭文件。第3章構(gòu)建KVM環(huán)境3.5.1下載QEMU源碼在內(nèi)核空間安裝加載KVM模塊后,需要用戶空間的QEMU程序來模擬硬件環(huán)境并啟動客戶機操作系統(tǒng)。QEMU通過直接在宿主CPU上執(zhí)行客戶代碼的方式可以獲得接近本地的性能,QEMU支持Xen作為Hypervisor的虛擬化,也支持使用KVM內(nèi)核模塊的虛擬化。在使用KVM時,QEMU能虛擬化x86、服務(wù)器和嵌入式PowerPC等。截至本書定稿時,QEMU的最新版本已更新至2.2.1。第3章構(gòu)建KVM環(huán)境1、在QEMU官網(wǎng)下載第3章構(gòu)建KVM環(huán)境圖3-13QEMU官網(wǎng)下載頁面2、使用gitclone方式下載QEMU源碼第3章構(gòu)建KVM環(huán)境圖3-14下載QEMU代碼的鏈接3.5.2下配置QEMU配置QEMU并不復(fù)雜,如果對配置參數(shù)不熟悉,可以使用“./configure--help”命令來查看配置的幫助選項。執(zhí)行“./configure”文件進行QEMU的配置:root@kvm-host:~/xjy/qemu/qemu-2.2.1#lsconfigureconfigure第3章構(gòu)建KVM環(huán)境3.5.3編譯QEMUroot@kvm-host:~/xjy/qemu/qemu-2.2.1#make-j10GENaarch64-softmmu/config-devices.makGENalpha-softmmu/config-devices.makGENarm-softmmu/config-devices.makGENi386-softmmu/config-devices.makGENcris-softmmu/config-devices.makGENlm32-softmmu/config-devices.mak第3章構(gòu)建KVM環(huán)境3.5.4安裝QEMU編譯完成之后,即可進行QEMU的安裝。在QEMU的源碼目錄下執(zhí)行命令“makeinstall”即可。QEMU在安裝過程中的幾個主要任務(wù)包括:創(chuàng)建QEMU的一些目錄,復(fù)制一些配置文件到相應(yīng)目錄,復(fù)制QEMU的可執(zhí)行文件到相應(yīng)的目錄。安裝完畢后,會有QEMU的命令行工具qemu-system-i386和qemu-system-x86。第3章構(gòu)建KVM環(huán)境3.6
安裝和啟動客戶機虛擬化環(huán)境搭建起來以后,就可以使用QEMU安裝和啟動客戶機操作系統(tǒng)了。如同在實體機上安裝一個普通的操作系統(tǒng)一樣,安裝客戶機操作系統(tǒng)的第一步是必須有一個所需操作系統(tǒng)的ISO文件。在本節(jié)中以Win7和Ubuntu12.04為例制作鏡像,以Ubuntu12.04為例安裝系統(tǒng),以此介紹如何安裝并啟動客戶機。第3章構(gòu)建KVM環(huán)境3.6.1客戶機的安裝步驟第一步,創(chuàng)建一個客戶機的虛擬硬盤(鏡像文件),將來用來存放客戶機虛擬操作系統(tǒng),這個虛擬硬盤是利用Linux文件系統(tǒng)來進行模擬的。第二步,準(zhǔn)備要安裝系統(tǒng)的ISO文件。本例中以Ubuntu12.04為例,以下是系統(tǒng)的ISO文件:root@kvm-host:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職工投資入股協(xié)議
- 鋼筋班組施工合同模板
- 網(wǎng)店經(jīng)營合伙合同協(xié)議(三方)
- 2025農(nóng)村副業(yè)承包經(jīng)營合同
- 房地產(chǎn)采購合同管理辦法
- 大型活動油料供應(yīng)油罐車租賃協(xié)議
- 鐵路沿線安全鐵柵欄施工合同
- 酒店臨時工聘用合同范本
- 醫(yī)院裝修協(xié)議書
- 怎樣寫一份規(guī)范師徒合同范本
- 低壓成套開關(guān)設(shè)備出廠檢驗報告
- 扭剪型高強螺栓重量表
- 關(guān)鍵施工技術(shù)、工藝及工程項目實施的重點、難點和解決方案資料
- 電纜壓降計算用表格
- 二年級乘除法豎式計算題
- 第十二章學(xué)術(shù)論文的撰寫與發(fā)表PPT課件
- 淺談境外工程項目勞動用工的薪酬管理
- 中石化:化工銷售市場的挑戰(zhàn)和對策
- 金光修持法(含咒訣指印、步驟、利益說明)
- 精華版三副面試問題及參考答案
- 鐵路專用線運營管理分析
評論
0/150
提交評論