Qemu-kvm虛擬化技術(shù)介紹_第1頁
Qemu-kvm虛擬化技術(shù)介紹_第2頁
Qemu-kvm虛擬化技術(shù)介紹_第3頁
Qemu-kvm虛擬化技術(shù)介紹_第4頁
Qemu-kvm虛擬化技術(shù)介紹_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Qemu-kvm虛擬化技術(shù)介紹技術(shù)創(chuàng)新,變革未來目 錄 Contents05Qemu支持的磁盤格式介紹06Qemu-kvm虛擬化環(huán)境搭建07Qemu-img生產(chǎn)虛擬機硬盤08Qemu-kvm命令創(chuàng)建虛擬機01KVM原理簡介02Qemu原理介紹03KVM和Qemu的關(guān)系04Qemu工具介紹KVM原理簡介01KVM工作流程 用戶模式的qemu利用libkvm通過ioctl進入內(nèi)核模式,kvm模塊為虛擬機創(chuàng)建虛擬內(nèi)存,虛擬CPU后執(zhí)行VMLauch指令進入客戶模式。加載Guest OS并執(zhí)行。如果Guest OS 發(fā)生外部中斷或者影子頁表缺頁之類的情況,會暫停Guest OS的執(zhí)行,退出客戶模式,執(zhí)

2、行異常處理,之后重新進入客戶模式,執(zhí)行客戶代碼。如果發(fā)生I/O事件或者信號隊列中有信號到達,就會進入用戶模式處理。KVM架構(gòu)如圖所示,左側(cè)部分是一個標(biāo)準(zhǔn)的Linux操作系統(tǒng),可以是RHEL、Fedora、Ubuntu等。KVM內(nèi)核模塊在運行時按需加載進入內(nèi)核空間運行。KVM本身不執(zhí)行任何設(shè)備模擬,需要用戶空間程序QEMU通過/dev/kvm接口設(shè)置一個虛擬客戶機的地址空間,向它提供模擬的I/O設(shè)備,并將它的視頻顯示映射回宿主機的顯示屏。KVM模塊 KVM模塊是KVM虛擬機的核心部分。其主要功能是初始化CPU硬件,打開虛擬化模式,然后將虛擬客戶機運行在虛擬機模式下,并對虛擬客戶機的運行提供一定的

3、支持。 KVM模塊加載之初,只存在/dev/kvm文件,而針對該文件的最重要的IOCTL調(diào)用就是“創(chuàng)建虛擬機”。在這里,“創(chuàng)建虛擬機”可以理解成KVM為了某個特定的虛擬客戶機(用戶空間程序創(chuàng)建并初始化)創(chuàng)建對應(yīng)的內(nèi)核數(shù)據(jù)結(jié)構(gòu)。 處理器對設(shè)備的訪問主要是通過IO指令和MMIO,其中IO指令會被處理器直接截獲,MMIO會通過配置內(nèi)存虛擬化來捕捉。但是,外設(shè)的模擬一般并不由KVM模塊負責(zé)。一般來說,只有對性能要求比較高的虛擬設(shè)備才會由KVM內(nèi)核模塊來直接負責(zé),比如虛擬終端控制器和虛擬時鐘,這樣可以大量減少處理器的模式切換的開銷。Qemu原理介紹02Qemu架構(gòu) Qemu是純軟件實現(xiàn)的虛擬化模擬器,幾

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

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

6、當(dāng)于全虛擬化。3)第三種模式則是KVM官方提供的kvm-qemu加速模式。Qemu的特點(1)QEMU的兩種操作模式:完整的系統(tǒng)仿真和用戶模式仿真。(2)QEMU具有以下特點:QEMU可以在沒有主機內(nèi)核驅(qū)動程序的情況下運行。它適用于多種操作系統(tǒng)(GNU / Linux,* BSD,Mac OS X,Windows)和體系結(jié)構(gòu)。它執(zhí)行FPU的精確軟件仿真。(3)QEMU用戶模式仿真具有以下功能:通用Linux系統(tǒng)調(diào)用轉(zhuǎn)換器,包括大部分ioctls。使用本機CPU clone的仿真為線程使用Linux調(diào)度程序。通過將主機信號重新映射到目標(biāo)信號來實現(xiàn)精確信號處理。Qemu的特點(4)QEMU全系統(tǒng)仿

7、真具有以下特點:QEMU使用完整的軟件MMU來實現(xiàn)最大的便攜性。QEMU可以選擇使用內(nèi)核加速器,如kvm。加速器本地執(zhí)行大部分客戶代碼,同時繼續(xù)模擬機器的其余部分。可以仿真各種硬件設(shè)備,并且在某些情況下,客戶機操作系統(tǒng)可以透明地使用主機設(shè)備(例如串行和并行端口,USB,驅(qū)動器)。主機設(shè)備傳遞可用于與外部物理外圍設(shè)備(例如網(wǎng)絡(luò)攝像頭,調(diào)制解調(diào)器或磁帶驅(qū)動器)交談。對稱多處理(SMP)支持。目前,內(nèi)核加速器需要使用多個主機CPU進行仿真。KVM和Qemu的關(guān)系03KVM和Qemu的關(guān)系Qemu是一個獨立的虛擬化解決方案,通過intel-VT 或AMD SVM實現(xiàn)全虛擬化,安裝qemu的系統(tǒng),可以直

8、接模擬出另一個完全不同的系統(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的一個很小的模塊,利用Linux做大量的事,如任務(wù)調(diào)度、內(nèi)存管理與硬件設(shè)備交互等。準(zhǔn)確來說,KVM是Linux kernel的一個模塊。Qemu工具介紹04qemu-imgqemu-img是QEMU的磁盤管理工具,在qemu-kvm

9、源碼編譯后就會默認編譯好qemu-img這個二進制文件。qemu-img也是QEMU/KVM使用過程中一個比較重要的工具。下面我們將幾條重要的選項講解一下。check -f fmt filename 對磁盤鏡像文件進行一致性檢查,查找鏡像文件中的錯誤,目前僅支持對“qcow2”、“qed”、“vdi”格式文件的檢查。create -f fmt -o options filename size 創(chuàng)建一個格式為fmt大小為size文件名為filename的鏡像文件。commit -f fmt -t cache filename 提交filename文件中的更改到后端支持鏡像文件(創(chuàng)建時通過back

10、ing_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選項轉(zhuǎn)換為格式為output_fmt的名為output_filename的鏡像文件。qemu-imginfo -f fmt filename 展示filename鏡像文件的信息。snapshot -l | -a snapshot | -c snapshot | -d

11、 snapshot filename “-l” 選項是查詢并列出鏡像文件中的所有快照,“-a snapshot”是讓鏡像文件使用某個快照,“-c snapshot”是創(chuàng)建一個快照,“-d”是刪除一個快照。rebase -f fmt -t cache -p -u -b backing_file -F backing_fmt filename 改變鏡像文件的后端鏡像文件,只有qcow2和qed格式支持rebase命令。resize filename + | -size 改變鏡像文件的大小,使其不同于創(chuàng)建之時的大小。qemu-kvm此命令用于創(chuàng)建虛擬機,其使用格式為“qemu-kvm options

12、 disk_image”,其選項非常多,大致可分為如下幾類:標(biāo)準(zhǔn)選項;USB選項;顯示選項;i386平臺專用選項;網(wǎng)絡(luò)選項;字符設(shè)備選項;藍牙相關(guān)選項;Linux系統(tǒng)引導(dǎo)專用選項;調(diào)試/專家模式選項;PowerPC專用選項;Sparc32專用選項。下面我們將講解幾個重要的選項。qemu-kvmqemu-kvm的標(biāo)準(zhǔn)選項 該選項主要涉及指定主機類型、CPU模式、NUMA、軟驅(qū)設(shè)備、光驅(qū)設(shè)備及硬件設(shè)備等。qemu-kvm的顯示選項 該選項主要用來配置虛擬機的顯示狀態(tài)。網(wǎng)絡(luò)屬性相關(guān)選項: 該選項用來配置虛擬機的網(wǎng)絡(luò)信息。具體選項參考教科書上內(nèi)容。qemu-ga qga是一個運行在虛擬機內(nèi)部的普通應(yīng)用

13、程序(可執(zhí)行文件名稱默認為qemu-ga,服務(wù)名稱默認為qemu-guest-agent),其目的是實現(xiàn)一種宿主機和虛擬機進行交互的方式,這種方式不依賴于網(wǎng)絡(luò),而是依賴于virtio-serial(默認首選方式)或者isa-serial,而QEMU則提供了串口設(shè)備的模擬及數(shù)據(jù)交換的通道,最終呈現(xiàn)出來的是一個串口設(shè)備(虛擬機內(nèi)部)和一個unix socket文件(宿主機上)。 qga通過讀寫串口設(shè)備與宿主機上的socket通道進行交互,宿主機上可以使用普通的unix socket讀寫方式對socket文件進行讀寫,最終實現(xiàn)與qga的交互,交互的協(xié)議與qmp(QEMU Monitor Protoc

14、ol)相同(簡單來說就是使用JSON格式進行數(shù)據(jù)交換),串口設(shè)備的速率通常都較低,所以比較適合小數(shù)據(jù)量的交換。qemu-io這是一個執(zhí)行 Qemu I/O 操作的命令行工具,可以對qemu-img創(chuàng)建的鏡像進行I/O測試,其幫助文檔為,使用格式為qemu-io -h -V -rsnm -c cmd . file,下面是常用的選項:(1)-c, -cmd:執(zhí)行指令;(2)-r, -read-only:設(shè)置出口為只讀模式;(3)-s, -snapshot:使用快照文件進行測試;(4)-n, -nocache:禁用主機緩存;(5)-k, -native-aio:使用內(nèi)核AIO實現(xiàn)(僅在Linux上)

15、;(6)-t, -cache=MODE:對image使用指定的緩存模式。qemu-nbd qemu-nbd在有的系統(tǒng)上叫kvm-nbd,qemu-nbd-xen等?;旧隙家粯印S胵emu-nbd實現(xiàn)mount虛擬硬盤到Host上的功能。 網(wǎng)絡(luò)塊設(shè)備: Network Block Device??梢詫⒁粋€遠程主機的磁盤空間,當(dāng)作一個塊設(shè)備來使用,就像一塊硬盤一樣。使用它,可以很方便的將另一臺服務(wù)器的硬盤空間增加到本地服務(wù)器上。 NBD與NFS有所不同,NFS只是提供一個掛載點供客戶端使用,客戶端無法改變這個掛載點的分區(qū)格式。而NBD提供的是一個塊設(shè)備,客戶端可以把這個塊設(shè)備格式化成各種類型的分

16、區(qū),更便于用戶的使用。 Qemu支持的磁盤格式介紹05qemu-nbd qemu-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、ftps、ftp、https、http、cloop、bochs、blkverify、blkdebug。 下面對其中幾種常用的文件格

17、式做簡單的介紹。raw raw格式是簡單的二進制鏡像文件,一次性會把分配的磁盤空間占用。host_device 在需要將鏡像轉(zhuǎn)化到不支持空洞的磁盤設(shè)備時需要用這種格式來代替raw格式。qcow2 qcow2是QEMU目前推薦的鏡像格式,它是功能最多的格式。qemu-nbdqcow 較舊的QEMU鏡像格式,現(xiàn)在已經(jīng)很少使用了,一般用于兼容比較老版本的QEMU。它支持backing_file(后端鏡像)和encryption(加密)兩個選項。cow copy-on-write format,寫時復(fù)制格式。曾經(jīng)qemu的寫時拷貝的鏡像格式,目前由于歷史遺留原因不支持窗口模式,后來被qcow格式所取代

18、。vdi 兼容Oracle(Sun)VirtualBox1.1的鏡像文件格式(Virtual Disk Image)。vmdk VMDK(VMWare Virtual Machine Disk Format)是虛擬機VMware創(chuàng)建的虛擬硬盤格式,文件存在于VMware文件系統(tǒng)中,被稱為VMFS(虛擬機文件系統(tǒng))。qemu-nbdvpc 兼容Microsoft的Virtual PC的鏡像文件格式(Virtual Hard Disk format)。sheepdog Sheepdog項目是由日本的NTT實驗室發(fā)起的,為QEMU/KVM做的一個開源的分布式存儲系統(tǒng),為KVM虛擬化提供塊存儲。cloop 壓縮的loop格式,主要用于可直接引導(dǎo)優(yōu)盤或者光盤的一種鏡像格式。實驗一:Qemu-kvm虛擬化環(huán)境搭建06Qemu-kvm虛擬化環(huán)境搭建一、實驗?zāi)康恼莆帐褂肰Mware Workstation創(chuàng)建虛擬機;掌握安裝過程中如何配置虛擬化;了解如何在沒有虛擬化環(huán)境下安裝軟件包實現(xiàn)qemu-kvm環(huán)境;學(xué)會配置vncserver環(huán)境。二、實驗內(nèi)容 通過VMware Workstation創(chuàng)建一臺虛擬機,并將其虛擬化引擎設(shè)置為Intel VT-x或AMD-V/RVI(V)。本實驗也包含了在沒有安裝

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論