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

下載本文檔

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

文檔簡(jiǎn)介

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

2、行異常處理,之后重新進(jìn)入客戶模式,執(zhí)行客戶代碼。如果發(fā)生I/O事件或者信號(hào)隊(duì)列中有信號(hào)到達(dá),就會(huì)進(jìn)入用戶模式處理。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è)備模擬,需要用戶空間程序QEMU通過/dev/kvm接口設(shè)置一個(gè)虛擬客戶機(jī)的地址空間,向它提供模擬的I/O設(shè)備,并將它的視頻顯示映射回宿主機(jī)的顯示屏。KVM模塊 KVM模塊是KVM虛擬機(jī)的核心部分。其主要功能是初始化CPU硬件,打開虛擬化模式,然后將虛擬客戶機(jī)運(yùn)行在虛擬機(jī)模式下,并對(duì)虛擬客戶機(jī)的運(yùn)行提供一定的

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

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

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

6、當(dāng)于全虛擬化。3)第三種模式則是KVM官方提供的kvm-qemu加速模式。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)度程序。通過將主機(jī)信號(hào)重新映射到目標(biāo)信號(hào)來實(shí)現(xiàn)精確信號(hào)處理。Qemu的特點(diǎn)(4)QEMU全系統(tǒng)仿

7、真具有以下特點(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)器)交談。對(duì)稱多處理(SMP)支持。目前,內(nèi)核加速器需要使用多個(gè)主機(jī)CPU進(jìn)行仿真。KVM和Qemu的關(guān)系03KVM和Qemu的關(guān)系Qemu是一個(gè)獨(dú)立的虛擬化解決方案,通過intel-VT 或AMD SVM實(shí)現(xiàn)全虛擬化,安裝qemu的系統(tǒng),可以直

8、接模擬出另一個(gè)完全不同的系統(tǒng)環(huán)境。QEMU本身可以不依賴于KVM,但是如果有KVM的存在并且硬件(處理器)支持比如Intel VT功能,那么QEMU在對(duì)處理器虛擬化這一塊可以利用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 kernel的一個(gè)模塊。Qemu工具介紹04qemu-imgqemu-img是QEMU的磁盤管理工具,在qemu-kvm

9、源碼編譯后就會(huì)默認(rèn)編譯好qemu-img這個(gè)二進(jìn)制文件。qemu-img也是QEMU/KVM使用過程中一個(gè)比較重要的工具。下面我們將幾條重要的選項(xiàng)講解一下。check -f fmt filename 對(duì)磁盤鏡像文件進(jìn)行一致性檢查,查找鏡像文件中的錯(cuò)誤,目前僅支持對(duì)“qcow2”、“qed”、“vdi”格式文件的檢查。create -f fmt -o options filename size 創(chuàng)建一個(gè)格式為fmt大小為size文件名為filename的鏡像文件。commit -f fmt -t cache filename 提交filename文件中的更改到后端支持鏡像文件(創(chuàng)建時(shí)通過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選項(xiàng)轉(zhuǎn)換為格式為output_fmt的名為output_filename的鏡像文件。qemu-imginfo -f fmt filename 展示filename鏡像文件的信息。snapshot -l | -a snapshot | -c snapshot | -d

11、 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_fmt filename 改變鏡像文件的后端鏡像文件,只有qcow2和qed格式支持rebase命令。resize filename + | -size 改變鏡像文件的大小,使其不同于創(chuàng)建之時(shí)的大小。qemu-kvm此命令用于創(chuàng)建虛擬機(jī),其使用格式為“qemu-kvm options

12、 disk_image”,其選項(xiàng)非常多,大致可分為如下幾類:標(biāo)準(zhǔn)選項(xiàng);USB選項(xiàng);顯示選項(xiàng);i386平臺(tái)專用選項(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-kvmqemu-kvm的標(biāo)準(zhǔn)選項(xiàng) 該選項(xiàng)主要涉及指定主機(jī)類型、CPU模式、NUMA、軟驅(qū)設(shè)備、光驅(qū)設(shè)備及硬件設(shè)備等。qemu-kvm的顯示選項(xiàng) 該選項(xiàng)主要用來配置虛擬機(jī)的顯示狀態(tài)。網(wǎng)絡(luò)屬性相關(guān)選項(xiàng): 該選項(xiàng)用來配置虛擬機(jī)的網(wǎng)絡(luò)信息。具體選項(xiàng)參考教科書上內(nèi)容。qemu-ga qga是一個(gè)運(yùn)行在虛擬機(jī)內(nèi)部的普通應(yīng)用

13、程序(可執(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ī)上可以使用普通的unix socket讀寫方式對(duì)socket文件進(jìn)行讀寫,最終實(shí)現(xiàn)與qga的交互,交互的協(xié)議與qmp(QEMU Monitor Protoc

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

15、;(6)-t, -cache=MODE:對(duì)image使用指定的緩存模式。qemu-nbd qemu-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è)備來使用,就像一塊硬盤一樣。使用它,可以很方便的將另一臺(tái)服務(wù)器的硬盤空間增加到本地服務(wù)器上。 NBD與NFS有所不同,NFS只是提供一個(gè)掛載點(diǎn)供客戶端使用,客戶端無法改變這個(gè)掛載點(diǎn)的分區(qū)格式。而NBD提供的是一個(gè)塊設(shè)備,客戶端可以把這個(gè)塊設(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。 下面對(duì)其中幾種常用的文件格

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論