教學(xué)ppt第2章 qemu-kvm介紹_第1頁
教學(xué)ppt第2章 qemu-kvm介紹_第2頁
教學(xué)ppt第2章 qemu-kvm介紹_第3頁
教學(xué)ppt第2章 qemu-kvm介紹_第4頁
教學(xué)ppt第2章 qemu-kvm介紹_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章 Qemu-kvm介紹北京西普陽光教育科技股份有限公司授課講師:顧軍林目 錄ContentsQemu支持的磁盤格式介紹KVM原理簡介0501Qemu-kvm虛擬化環(huán)境搭建Qemu原理介紹0602Qemu-img生產(chǎn)虛擬機(jī)硬盤KVM和Qemu的關(guān)系070308Qemu-kvm命令創(chuàng)建虛擬機(jī)04Qemu工具介紹01KVM原理簡介內(nèi)核模式KVMDriver客戶模式Guest OS用戶模式的qemu利用libkvm通過ioctl進(jìn)入內(nèi)核模式,kvm模塊為虛擬機(jī)創(chuàng)建虛擬內(nèi)存,虛擬CPU后執(zhí)行VMLauch 指令進(jìn)入客戶模式。加載Guest OS并執(zhí)行。如果Guest OS 發(fā)用戶模式Qemu執(zhí)行L

2、OCTL系統(tǒng)調(diào)用進(jìn)入客戶模式執(zhí)行客戶代碼生外部中斷或者頁表缺頁之類的情況,會(huì)暫停Guest OS的Yes執(zhí)行,退出客戶模式,執(zhí)行異常處理,之后重新進(jìn)入客戶模式,I/ONo信號到達(dá)就會(huì)進(jìn)入用戶模式處理。VMX Root OperationVMX Non-Root Operation處理I/O處理退出開始KVM工作流程如圖所示,左側(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è)備模擬,需要用戶空間程序QEMU通過/dev/kvm接口設(shè)置一個(gè)虛擬客戶機(jī)的地址空間,向它提供模擬的I/O設(shè)備,并將它

3、的視頻顯示映射回宿主機(jī)的顯示屏。Linux(Host)用戶空間內(nèi)核空間KVM模塊硬件系統(tǒng)輸入輸出設(shè)備內(nèi)存處理器QEMU虛擬機(jī)1虛擬硬件虛擬機(jī)1虛擬硬件KVM架構(gòu)KVM模塊KVM模塊是KVM虛擬機(jī)的核心部分。其主要功能是初始化CPU硬件,打開虛擬化模式,然后將虛擬客戶機(jī)運(yùn)行在虛擬機(jī)模式下,并對虛擬客戶機(jī)的運(yùn)行提供一定的支持。KVM模塊加載之初,只存在/dev/kvm文件,而針對該文件的最重要的IOCTL調(diào)用就是“創(chuàng)建虛擬機(jī)”。在這里,“創(chuàng)建虛擬機(jī)”可以理解成KVM為了某個(gè)特定的虛擬客戶機(jī)(用戶空間程序創(chuàng)建并初始化)創(chuàng)建對應(yīng)的內(nèi)核數(shù)據(jù)結(jié)構(gòu)。處理器對設(shè)備的訪問主要是通過IO指令和MMIO,其中IO指

4、令會(huì)被處理器直接截獲,MMIO會(huì)通過配置內(nèi)存虛擬化來捕捉。但是,外設(shè)的模擬一般并不由KVM模塊負(fù)責(zé)。一般來說,只有對性能要求比較高的虛擬設(shè)備才會(huì)由KVM內(nèi)核模塊來直接負(fù)責(zé),比如虛擬終端控制器和虛擬時(shí)鐘,這樣可以大量減少處理器的模式切換的開銷。02Qemu原理介紹APPsAPPsAPPsQEMU模塊客戶機(jī)系統(tǒng)(Guest)客戶機(jī)系統(tǒng)客戶機(jī)系統(tǒng)(Guest)(Guest).QEMU(X86架構(gòu))QEMU(ARM架構(gòu))QEMU(X86架構(gòu))宿主系統(tǒng)(Host).硬件平臺(X86架構(gòu))Qemu是純軟件實(shí)現(xiàn)的虛擬化模擬器,幾乎可以模擬任何硬件設(shè)備,是一個(gè)完整的可以運(yùn)行的軟件,非常靈活可移植,我們最熟悉的

5、就是能夠模擬一臺能夠獨(dú)立運(yùn)行操作系統(tǒng)的虛擬機(jī),虛擬機(jī)認(rèn)為自己和硬件打交道,但其實(shí)是和Qemu模擬出來的硬件打交道,Qemu將這些指令轉(zhuǎn)譯給真正的硬件。CPU模擬CPU模擬CPU模擬CPU模擬Qemu架構(gòu)Qemu模塊QEMU本身并不是KVM的一部分,其自身就是一個(gè)著名的開源虛擬機(jī)軟件。與KVM不同,QEMU虛擬機(jī)是一個(gè)純軟件的實(shí)現(xiàn),所以性能地下。但是,其優(yōu)點(diǎn)是在支持QEMU本身編譯運(yùn)行的平臺上就可以實(shí)現(xiàn)虛擬機(jī)的功能,甚至虛擬機(jī)可以與宿主機(jī)并不是同一個(gè)架構(gòu)。作為一個(gè)存在已久的虛擬機(jī),QEMU的代碼中有整套的虛擬機(jī)實(shí)現(xiàn),包括處理器虛擬化、內(nèi)存虛擬化,以及KVM使用到的虛擬設(shè)備模擬(比如網(wǎng)卡、顯卡、存

6、儲控制器和硬盤等)。從QEMU和KVM模塊之間的關(guān)系可以看出,這是典型的開源社區(qū)在代碼共用和開發(fā)項(xiàng)目共用上面的合作。誠然,QEMU可以選擇其他的虛擬機(jī)或技術(shù)來加速, 比如Xen或者KQEMU;KVM也可以選擇其他的用戶空間程序作為虛擬機(jī)實(shí)現(xiàn),只要它按照KVM提供的API來設(shè)計(jì)。但是在現(xiàn)實(shí)中,QEMU與KVM兩者的結(jié)合是最成熟的選擇,這對一個(gè)新開發(fā)和后起的項(xiàng)目(KVM)來說,無疑多了一份未來成功的保障。QemuQemuQemuLibkvm/dev/kqemu/dev/kvmKqemukvmLinux內(nèi)核空間1) 第一種模式是通過kqemu模塊實(shí)現(xiàn)內(nèi)核態(tài)的加速。2) 第二種模式是在用戶態(tài)直接運(yùn)行Q

7、EMU,由QEMU對目標(biāo)機(jī)的 所有指令進(jìn)行翻譯后執(zhí)行,相當(dāng)于全虛擬化。3) 第三種模式則是KVM官方提供的kvm-qemu加速模式。Qemu的三種運(yùn)行模式Qemu的特點(diǎn)(1)QEMU的兩種操作模式:完整的系統(tǒng)仿真和用戶模式仿真。(2) QEMU具有以下特點(diǎn): QEMU可以在沒有主機(jī)內(nèi)核驅(qū)動(dòng)程序的情況下運(yùn)行。 它適用于多種操作系統(tǒng)(GNU / Linux,* BSD, Mac OS X,Windows)和體系結(jié)構(gòu)。 它執(zhí)行FPU的精確軟件仿真。(3) QEMU用戶模式仿真具有以下功能: 通用Linux系統(tǒng)調(diào)用轉(zhuǎn)換器,包括大部分ioctls。 使用本機(jī)CPU clone的仿真為線程使用Linux調(diào)

8、度程序。 通過將主機(jī)信號重新映射到目標(biāo)信號來實(shí)現(xiàn)精確信號處理。Qemu的特點(diǎn)(4) QEMU全系統(tǒng)仿真具有以下特點(diǎn): QEMU使用完整的軟件MMU來實(shí)現(xiàn)最大的便攜性。 QEMU可以選擇使用內(nèi)核加速器,如kvm。加速器本地執(zhí)行大部分客戶代碼,同時(shí)繼續(xù)模擬機(jī)器的其余部分。 可以仿真各種硬件設(shè)備,并且在某些情況下,客戶機(jī)操作系統(tǒng)可以透明地使用主機(jī)設(shè)備(例如串行和并行端口,USB,驅(qū)動(dòng)器)。主機(jī)設(shè)備傳遞可用于與外部物理外圍設(shè)備(例如網(wǎng)絡(luò)攝像頭,調(diào)制解調(diào)器或磁帶驅(qū)動(dòng)器)交談。 對稱多處理(SMP)支持。目前,內(nèi)核加速器需要使用多個(gè)主機(jī)CPU進(jìn)行仿真。03KVM和Qemu的關(guān)系KVM和Qemu的關(guān)系 Qe

9、mu是一個(gè)獨(dú)立的虛擬化解決方案,通過intel-VT 或AMD SVM實(shí)現(xiàn)全虛擬化,安裝qemu的系統(tǒng),可以直接模擬出另一個(gè)完全不同的系統(tǒng)環(huán)境。QEMU本身可以不依賴于KVM,但是如果有KVM的存在并且硬件(處理器)支持比如Intel VT功能,那么QEMU在對處理器虛擬化這一塊可以利用KVM提供的功能來提升性能。 KVM是集成到Linux內(nèi)核的Hypervisor,是X86架構(gòu)且硬件支持虛擬化技術(shù)(Intel-VT或AMD-V)的Linux的全虛擬化解決方案。它是Linux的一個(gè)很小的模塊,利用Linux做大量的事,如任務(wù)調(diào)度、內(nèi)存管理與硬件設(shè)備交互等。準(zhǔn)確來說,KVM是Linux kern

10、el的一個(gè)模塊。04Qemu工具介紹qemu-imgqemu-img是QEMU的磁盤管理工具,在qemu-kvm源碼編譯后就會(huì)默認(rèn)編譯好qemu-img這個(gè)二進(jìn)制文件。qemu-img也是QEMU/KVM使用過程中一個(gè)比較重要的工具。下面我們將幾條重要的選項(xiàng)講解一下。 check -f fmt filename對磁盤鏡像文件進(jìn)行一致性檢查,查找鏡像文件中的錯(cuò)誤,目前僅支持對“qcow2”、“qed”、“vdi”格式文件的檢查。 create -f fmt -o options filename size創(chuàng)建一個(gè)格式為fmt大小為size文件名為filename的鏡像文件。 commit -f

11、fmt -t cache filename提交filename文件中的更改到后端支持鏡像文件(創(chuàng)建時(shí)通過backing_file指定的)中去。 convert -c -p -f fmt -t cache -O output_fmt -o options -s snapshot_name -S sparse_size filename filename2 . output_filename 將fmt格式的filename鏡像文件根據(jù)options選項(xiàng)轉(zhuǎn)換為格式為output_fmt的名為output_filename的鏡像文件。qemu-img info -f fmt filename展示fil

12、ename鏡像文件的信息。 snapshot -l | -a snapshot | -c snapshot | -d snapshot filename“-l” 選項(xiàng)是查詢并列出鏡像文件中的所有快照,“-a snapshot”是讓鏡像文件使用某個(gè)快照,“-c snapshot”是創(chuàng)建一個(gè)快照,“-d”是刪除一個(gè)快照。 rebase -f fmt -t cache -p -u -b backing_file -F backing_fmtfilename改變鏡像文件的后端鏡像文件,只有qcow2和qed格式支持rebase命令。 resize filename + | -size改變鏡像文件的大小

13、,使其不同于創(chuàng)建之時(shí)的大小。qemu-kvm此命令用于創(chuàng)建虛擬機(jī),其使用格式為“qemu-kvm options disk_image”, 其選項(xiàng)非常多,大致可分為如下幾類:標(biāo)準(zhǔn)選項(xiàng); USB選項(xiàng); 顯示選項(xiàng);i386平臺專用選項(xiàng); 網(wǎng)絡(luò)選項(xiàng);字符設(shè)備選項(xiàng); 藍(lán)牙相關(guān)選項(xiàng);Linux系統(tǒng)引導(dǎo)專用選項(xiàng); 調(diào)試/專家模式選項(xiàng); PowerPC 專 用 選 項(xiàng) ; Sparc32專用選項(xiàng)。下面我們將講解幾個(gè)重要的選項(xiàng)。qemu-kvm qemu-kvm的標(biāo)準(zhǔn)選項(xiàng)該選項(xiàng)主要涉及指定主機(jī)類型、CPU模式、NUMA、軟驅(qū)設(shè)備、光驅(qū)設(shè)備及硬件設(shè)備等。 qemu-kvm的顯示選項(xiàng)該選項(xiàng)主要用來配置虛擬機(jī)的顯示

14、狀態(tài)。 網(wǎng)絡(luò)屬性相關(guān)選項(xiàng):該選項(xiàng)用來配置虛擬機(jī)的網(wǎng)絡(luò)信息。具體選項(xiàng)參考教科書上內(nèi)容。qemu-gaqga是一個(gè)運(yùn)行在虛擬機(jī)內(nèi)部的普通應(yīng)用程序(可執(zhí)行文件名稱默認(rèn)為qemu- ga,服務(wù)名稱默認(rèn)為qemu-guest-agent),其目的是實(shí)現(xiàn)一種宿主機(jī)和虛擬機(jī)進(jìn)行交互的方式,這種方式不依賴于網(wǎng)絡(luò),而是依賴于virtio-serial(默認(rèn)首選方式) 或者isa-serial,而QEMU則提供了串口設(shè)備的模擬及數(shù)據(jù)交換的通道,最終呈現(xiàn)出來的是一個(gè)串口設(shè)備(虛擬機(jī)內(nèi)部)和一個(gè)unix socket文件(宿主機(jī)上)。qga通過讀寫串口設(shè)備與宿主機(jī)上的socket通道進(jìn)行交互,宿主機(jī)上可以使用普通的u

15、nix socket讀寫方式對socket文件進(jìn)行讀寫,最終實(shí)現(xiàn)與qga的交互,交互的協(xié)議與qmp(QEMU Monitor Protocol)相同(簡單來說就是使用JSON格式進(jìn)行數(shù)據(jù)交換),串口設(shè)備的速率通常都較低,所以比較適合小數(shù)據(jù)量的交換。qemu-io這是一個(gè)執(zhí)行 Qemu I/O 操作的命令行工具,可以對qemu-img創(chuàng)建的鏡像進(jìn)行I/O測試,其幫助文檔為,使用格式為qemu-io -h -V -rsnm -c cmd . file,下面是常用的選項(xiàng):(1)-c, -cmd:執(zhí)行指令;(2)-r, -read-only:設(shè)置出口為只讀模式;(3)-s, -snapshot:使用快

16、照文件進(jìn)行測試;(4)-n, -nocache:禁用主機(jī)緩存;(5)-k, -native-aio:使用內(nèi)核AIO實(shí)現(xiàn)(僅在Linux上);(6)-t, -cache=MODE:對image使用指定的緩存模式。qemu-nbdqemu-nbd在有的系統(tǒng)上叫kvm-nbd,qemu-nbd-xen等。基本上都一樣。用qemu-nbd實(shí)現(xiàn)mount虛擬硬盤到Host上的功能。網(wǎng)絡(luò)塊設(shè)備: Network Block Device??梢詫⒁粋€(gè)遠(yuǎn)程主機(jī)的磁盤空間,當(dāng)作一個(gè)塊設(shè)備來使用,就像一塊硬盤一樣。使用它,可以很方便的將另一臺服務(wù)器的硬盤空間增加到本地服務(wù)器上。NBD與NFS有所不同,NFS只是提

17、供一個(gè)掛載點(diǎn)供客戶端使用,客戶端無法改變這個(gè)掛載點(diǎn)的分區(qū)格式。而NBD提供的是一個(gè)塊設(shè)備,客戶端可以把這個(gè)塊設(shè)備格式化成各種類型的分區(qū),更便于用戶的使用。05Qemu支持的磁盤格式介紹qemu-nbdqemu-img支持非常多種的文件格式,我們可以通過“qemu-img -help”查看幫助文檔得到,它支持二十多種格式:vvfat、vpc、vmdk、vhdx、vdi、ssh、sheepdog、rbd、raw、host_cdrom、host_floppy、host_device、file qed、qcow2、qcow、parallels、nbd、iscsi、gluster、 dmg、tftp、f

18、tps、ftp、https、http、cloop、bochs、blkverify、blkdebug。下面對其中幾種常用的文件格式做簡單的介紹。rawraw格式是簡單的二進(jìn)制鏡像文件,一次性會(huì)把分配的磁盤空間占用。host_device在需要將鏡像轉(zhuǎn)化到不支持空洞的磁盤設(shè)備時(shí)需要用這種格式來代替raw格式。qcow2qcow2是QEMU目前推薦的鏡像格式,它是功能最多的格式。qemu-nbd qcow較舊的QEMU鏡像格式,現(xiàn)在已經(jīng)很少使用了,一般用于兼容比較老版本的QEMU。它支持backing_file(后端鏡像)和encryption(加密)兩個(gè)選項(xiàng)。 cowcopy-on-write f

19、ormat,寫時(shí)復(fù)制格式。曾經(jīng)qemu的寫時(shí)拷貝的鏡像格式,目前由于歷史遺留原因不支持窗口模式,后來被qcow格式所取代。 vdi兼容Oracle(Sun)VirtualBox1.1的鏡像文件格式(Virtual Disk Image)。 vmdkVMDK(VMWare Virtual Machine Disk Format)是虛擬機(jī)VMware創(chuàng)建的虛擬硬盤格式,文件存在于VMware文件系統(tǒng)中,被稱為VMFS(虛擬機(jī)文件系統(tǒng))。qemu-nbd vpc兼容Microsoft的Virtual PC的鏡像文件格式(Virtual Hard Disk format)。 sheepdogSheepdog項(xiàng)目是由日本的NTT實(shí)驗(yàn)室發(fā)起的,為QEMU/KVM做的一個(gè)開源的分布式存儲系統(tǒng),為KVM虛擬化提供塊存儲。 cloop壓縮的loop格式,主要用于可直接引導(dǎo)優(yōu)盤或者光盤的一種鏡像格式。06實(shí)驗(yàn)一:Qemu-kvm虛擬化環(huán)境搭建Qemu-kvm虛擬化環(huán)境搭建一、實(shí)驗(yàn)?zāi)康?掌握使用VMware Workstation創(chuàng)建虛擬機(jī); 掌握安裝過程中如何配置虛擬化; 了解如何在沒有虛擬化環(huán)境下安裝軟件包實(shí)現(xiàn)qemu-kvm環(huán)境; 學(xué)會(huì)配置vncserver環(huán)境。二、實(shí)驗(yàn)內(nèi)容通過VMware Workstation創(chuàng)建一臺虛擬機(jī),并將其虛擬化引擎設(shè)置為Intel V

溫馨提示

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

評論

0/150

提交評論