日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
開源KVM內(nèi)核虛擬化技術(shù)詳解及如何管理

開源KVM內(nèi)核虛擬化技術(shù)詳解及如何管理

作者:廈門方根科技有限公司 2020-07-22 15:19:34

云計算

虛擬化 KVM(名稱來自英語:Kernel-basedVirtual Machine的縮寫,即基于內(nèi)核的虛擬機),是一種用于Linux內(nèi)核中的虛擬化基礎(chǔ)設(shè)施,可以將Linux內(nèi)核轉(zhuǎn)化為一個hypervisor。

因為努力和真誠,有更多的客戶和我們聚集在一起,為了共同目標,創(chuàng)新互聯(lián)在工作上密切配合,從創(chuàng)業(yè)型企業(yè)到如今不斷成長,要感謝客戶對我們的高要求,讓我們敢于面對挑戰(zhàn),才有今天的進步與發(fā)展。從網(wǎng)站到微信小程序開發(fā),軟件開發(fā),App定制開發(fā),10余年企業(yè)網(wǎng)站建設(shè)服務(wù)經(jīng)驗,為企業(yè)提供網(wǎng)站設(shè)計,網(wǎng)站托管一條龍服務(wù).為企業(yè)提供營銷型網(wǎng)站,按需設(shè)計,原創(chuàng)設(shè)計,10余年品質(zhì),值得您的信賴.

  [[334645]]

Qemu-kvm創(chuàng)建和管理虛擬機

一.KVM簡介

KVM(名稱來自英語:Kernel-basedVirtual Machine的縮寫,即基于內(nèi)核的虛擬機),是一種用于Linux內(nèi)核中的虛擬化基礎(chǔ)設(shè)施,可以將Linux內(nèi)核轉(zhuǎn)化為一個hypervisor。KVM在2007年2月被導(dǎo)入Linux 2.6.20核心中,以可加載核心模塊的方式被移植到FreeBSD及illumos上。

KVM在具備Intel VT或AMD-V功能的x86平臺上運行。它也被移植到S/390,PowerPC與IA-64平臺上。在Linux內(nèi)核3.9版中,加入ARM架構(gòu)的支持。

關(guān)于KVM:

1).KVM是開源軟件,全稱是kernel-based virtual machine(基于內(nèi)核的虛擬機)。

2).是x86架構(gòu)且硬件支持虛擬化技術(shù)(如 intel VT 或 AMD-V)的Linux全虛擬化解決方案。

3).它包含一個為處理器提供底層虛擬化 可加載的核心模塊kvm.ko(kvm-intel.ko或kvm-AMD.ko)。

4).KVM還需要一個經(jīng)過修改的QEMU軟件(qemu-kvm),作為虛擬機上層控制和界面。

5).KVM能在不改變linux或windows鏡像的情況下同時運行多個虛擬機,(它的意思是多個虛擬機使用同一鏡像)并為每一個虛擬機配置個性化硬件環(huán)境(網(wǎng)卡、磁盤、圖形適配器……)。

6).在主流的Linux內(nèi)核,如2.6.20以上的內(nèi)核均已包含了KVM核心。

KVM 與 vbox的區(qū)別: vbox 是由 qemu 改寫而成,包含大量qemu 代碼。

1).可以使用于"不支持"虛擬化技術(shù)的cpu。

2).值得說的一點:vbox 在圖形方面比較好,能進行2D 3D加速;但cpu控制不理想(估計是因為圖形支持的緣故);操作上有獨立的圖形界面,易于上手。

kvm 是linux內(nèi)核包含的東西,使用qemu作為上層管理(命令行)。

1).要求cpu 必須支持虛擬化。

2).性能:作為服務(wù)器很好,可是圖形能力十分的差。即使放電影,圖像也是像刷油漆一樣,一層一層的。

3).cpu使用率控制很好。

4).控制上比較簡潔,功能比較豐富:比如使用“無敵功能”所有更改指向內(nèi)存,你的鏡像永遠保持干凈?!澳哥R像”功能讓你擁有n個獨立快照點。還有很多參數(shù)。另外,kvm作為內(nèi)核級的虛擬機,剛開始發(fā)展關(guān)注的公司比較多——但是還沒有達到商業(yè)應(yīng)用的水平。

總體而言:在支持虛擬化的情況下,vbox 和 kvm 的性能差不多,主要是面向?qū)ο蟛煌簁vm適用于服務(wù)器,vbox適用于桌面應(yīng)用。

qemu 全稱Quick Emulator。是獨立虛擬軟件,能獨立運行虛擬機(根本不需要kvm)。kqemu是該軟件的加速軟件。kvm并不需要qemu進行虛擬處理,只是需要它的上層管理界面進行虛擬機控制。虛擬機依舊是由kvm驅(qū)動。所以,大家不要把概念弄錯了,盲目的安裝qemu和kqemu。qemu使用模擬器

KVM內(nèi)存管理 KVM繼承了Linux系統(tǒng)管理內(nèi)存的諸多特性,比如,分配給虛擬使用的內(nèi)存可以被交換至交換空間、能夠使用大內(nèi)存頁以實現(xiàn)更好的性能,以及對NUMA的支持能夠讓虛擬機高效訪問更大的內(nèi)存空間等。 KVM基于Intel的EPT(ExtendedPage Table)或AMD的RVI(Rapid Virtualization Indexing)技術(shù)可以支持更新的內(nèi)存虛擬功能,這可以降低CPU的占用率,并提供較好的吞吐量。 此外,KVM還借助于KSM(Kernel Same-pageMerging)這個內(nèi)核特性實現(xiàn)了內(nèi)存頁面共享。KSM通過掃描每個虛擬機的內(nèi)存查找各虛擬機間相同的內(nèi)存頁,并將這些內(nèi)存頁合并為一個被各相關(guān)虛擬機共享的單獨頁面。在某虛擬機試圖修改此頁面中的數(shù)據(jù)時,KSM會重新為其提供一個新的頁面副本。實踐中,運行于同一臺物理主機上的具有相同GuestOS的虛擬機之間出現(xiàn)相同內(nèi)存頁面的概率是很的,比如共享庫、內(nèi)核或其它內(nèi)存對象等都有可能表現(xiàn)為相同的內(nèi)存頁,因此,KSM技術(shù)可以降低內(nèi)存占用進而提高整體性能。

相關(guān)連接:

KVM的官方地址:http://www.linux-kvm.org/page/Main_Page

KVM的Howto文檔:http://www.linux-kvm.org/page/HOWTO

Kqemu源碼地址:http://sourceforge.net/projects/kqemu/

Qemu下載地址:http://wiki.qemu.org/Main_Page

二.KVM虛擬化平臺構(gòu)建

1.安裝準備 查看你的硬件是否支持虛擬化。命令:

  
 
 
 
  1. #egrep '(vmx|svm)' /proc/cpuinfo

vmx.png

注意:要有 vmx 或 svm 的標識才行。總的說來,AMD在虛擬化方面作得更好一些。

2.安裝KVM 由于Linux內(nèi)核已經(jīng)將KVM收錄了,在安裝系統(tǒng)時已經(jīng)加入了KVM,我們只需要在命令行模式下啟用KVM即可: 啟用KVM模塊

  
 
 
 
  1. modprobe kvm

功能區(qū)分intel/amd的啟用:

  
 
 
 
  1. modpobe kvm-intel
  2. lsmod |grep kvm
  3. kvm_intel 55496 0
  4. kvm 337772 1 kvm_intel

3.KVM虛擬機創(chuàng)建和管理所依賴的組件介紹 KVM虛擬機的創(chuàng)建依賴qemu-kvm: 雖然kvm的技術(shù)已經(jīng)相當成熟而且可以對很多東西進行隔離,但是在某些方面還是無法虛擬出真實的機器。比如對網(wǎng)卡的虛擬,那這個時候就需要另外的技術(shù)來做補充,而qemu-kvm則是這樣一種技術(shù)。它補充了kvm技術(shù)的不足,而且在性能上對kvm進行了優(yōu)化。

我們還可以使用virt-manager,virt-viewer來管理虛擬機;

我們在創(chuàng)建和管理KVM虛擬機時還需要libvirt這個重要的組件:

它是一系列提供出來的庫函數(shù),用以其他技術(shù)調(diào)用,來管理機器上的虛擬機。包括各種虛擬機技術(shù),kvm、xen與lxc等,都可以調(diào)用libvirt提供的api對虛擬機進行管理。有這么多的虛擬機技術(shù),它為何能提供這么多的管理功能那。是因為它的設(shè)計理念,它是面向驅(qū)動的架構(gòu)設(shè)計。對任何一種虛擬機技術(shù)都開發(fā)設(shè)計相對于該技術(shù)的驅(qū)動。這樣不同虛擬機技術(shù)就可以使用不同驅(qū)動,而且相互直接不會影響,方便擴展。而且libvirt提供了多種語言的編程接口,可以直接通過編程,調(diào)用libvirt提供的對外接口實現(xiàn)對虛擬機的操作。如今流行的云計算中的IaaS是與該庫聯(lián)系相當密切的。通過下圖可以看出它的架構(gòu)設(shè)計思想。

kvm.jpg

從該圖可以看出,在libvirtapi之上會有很多個driver,對于每一種虛擬機技術(shù)都會有一種driver,用來充當該虛擬機技術(shù)與libvirt之間的包裝接口。如此設(shè)計就可以避免libvirt需要設(shè)計各種針對不同虛擬機技術(shù)的接口,它主要關(guān)注底層的實現(xiàn),提供對外接口調(diào)用,而不同的虛擬機技術(shù)通過調(diào)用libvirt提供的接口來完成自己所需要的功能。

4.安裝KVM所需組件

yum源提供了,直接安裝:

  
 
 
 
  1. yum install -y qemu-kvm libvirt virt-manager

安裝完成后啟動libvirtd服務(wù):

  
 
 
 
  1. [root@luckyall network-scripts]# service libvirtd start
  2. Starting libvirtd daemon: libvirtd: relocation error: libvirtd: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference
  3. [FAILED]
  4. [root@luckyall network-scripts]# Starting libvirtd daemon: libvirtd: relocation error: libvirtd: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference

既然有個報錯。百度下發(fā)現(xiàn)需要升級下組件

  
 
 
 
  1. [root@luckyall network-scripts]# yum -y upgrade device-mapper-libs

然后重新啟動libvirtd發(fā)現(xiàn)已經(jīng)正常

ifconfig.png

使用網(wǎng)橋管理命令查看:

  
 
 
 
  1. [root@luckyall ~]# brctl show
  2. bridge name bridge id STP enabled interfaces
  3. virbr0 8000.5254008a9355 yes virbr0-nic

像VMware Workstation中我們需要創(chuàng)建物理橋接設(shè)備,可以使用virsh創(chuàng)建橋設(shè)備關(guān)聯(lián)網(wǎng)卡到橋接設(shè)備上: 需要將NetworkManager服務(wù)關(guān)閉,開機啟動也關(guān)閉:

  
 
 
 
  1. chkconfig NetworkManager off
  2. service NetworkManager stop

然后在創(chuàng)建橋接設(shè)備及關(guān)聯(lián)網(wǎng)卡到橋接設(shè)備上:

  
 
 
 
  1. virsh iface-bridge eth0 br0

br0.png

查看橋接設(shè)備:

brctrshow.png

至此,我們的虛擬化平臺就構(gòu)建完畢,下面就開始在KVM虛擬化平臺上創(chuàng)建和管理虛擬機,我們先使用qemu-kvm來創(chuàng)建和管理虛擬機。

三、使用qemu-kvm管理KVM虛擬機

1.Qemu-kvm介紹

Qemu是一個廣泛使用的開源計算機仿真器和虛擬機。當作為仿真器時,可以在一種架構(gòu)(如PC機)下運行另一種架構(gòu)(如ARM)下的操作系統(tǒng)和程序。而通過動態(tài)轉(zhuǎn)化,其可以獲得很高的運行效率。當作為一個虛擬機時,qemu可以通過直接使用真機的系統(tǒng)資源,讓虛擬系統(tǒng)能夠獲得接近于物理機的性能表現(xiàn)。qemu支持xen或者kvm模式下的虛擬化。當用kvm時,qemu可以虛擬x86、服務(wù)器和嵌入式powerpc,以及s390的系統(tǒng)。

QEMU 當運行與主機架構(gòu)相同的目標架構(gòu)時可以使用KVM。例如,當在一個x86兼容處理器上運行 qemu-system-x86 時,可以利用 KVM 加速——為宿主機和客戶機提供更好的性能。

Qemu有如下幾個部分組成:

處理器模擬器(x86、PowerPC和Sparc); 仿真設(shè)備(顯卡、網(wǎng)卡、硬盤、鼠標等); 用于將仿真設(shè)備連接至主機設(shè)備(真實設(shè)備)的通用設(shè)備; 模擬機的描述信息; 調(diào)試器; 與模擬器交互的用戶接口;

基于libvirt的工具如virt-manager和virt-install提供了非常便捷的虛擬機管理接口,但它們事實上上經(jīng)二次開發(fā)后又封裝了qemu-kvm的工具。因此,直接使用qemu-kvm命令也能夠完成此前的任務(wù)。

2.Qemu-kvm的使用幫助

在RHEL6/CentOS6上,qemu-kvm位于/usr/libexec目錄中。由于此目錄不屬于PATH環(huán)境變量,故無法直接使用,這樣也阻止了可以直接使用qemu作為創(chuàng)建并管理虛擬機。如若想使用qemu虛擬機,可以通過將/usr/libexec/qemu-kvm鏈接為/usr/bin/qemu實現(xiàn)。

  
 
 
 
  1. ln -sv /usr/libexec/qemu-kvm /usr/bin/qemu-kvm

qemu-kvm命令使用格式為“qemu-kvm [options] [disk_image]”,其選項非常多,不過,大致可分為如下幾類。

標準選項; USB選項; 顯示選項; i386平臺專用選項; 網(wǎng)絡(luò)選項; 字符設(shè)備選項; 藍牙相關(guān)選項; Linux系統(tǒng)引導(dǎo)專用選項; 調(diào)試/專家模式選項; PowerPC專用選項; Sparc32專用選項;

qemu-kvm的標準選項 qemu-kvm的標準選項主要涉及指定主機類型、CPU模式、NUMA、軟驅(qū)設(shè)備、光驅(qū)設(shè)備及硬件設(shè)備等。

  1. -name name:設(shè)定虛擬機名稱;
  2. -M machine:指定要模擬的主機類型,如Standard PC、ISA-only PC或Intel-Mac等,可以使用“qemu-kvm -M ?”獲取所支持的所有類型;
  3. -m megs:設(shè)定虛擬機的RAM大小;
  4. -cpu model:設(shè)定CPU模型,如coreduo、qemu64等,可以使用“qemu-kvm -cpu ?”獲取所支持的所有模型;
  5. -smp n[,cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus]:設(shè)定模擬的SMP架構(gòu)中CPU的個數(shù)等、每個CPU的核心數(shù)及CPU的socket數(shù)目等;PC機上最多可以模擬255顆CPU;maxcpus用于指定熱插入的CPU個數(shù)上限;
  6. -numa opts:指定模擬多節(jié)點的numa設(shè)備;
  7. -fda file
  8. -fdb file:使用指定文件(file)作為軟盤鏡像,file為/dev/fd0表示使用物理軟驅(qū);
  9. -hda file
  10. -hdb file
  11. -hdc file
  12. -hdd file:使用指定file作為硬盤鏡像;
  13. -cdrom file:使用指定file作為CD-ROM鏡像,需要注意的是-cdrom和-hdc不能同時使用;將file指定為/dev/cdrom可以直接使用物理光驅(qū);
  14. -drive option[,option[,option[,...]]]:定義一個硬盤設(shè)備;可用子選項有很多。
  15. file=/path/to/somefile:硬件映像文件路徑;
  16. if=interface:指定硬盤設(shè)備所連接的接口類型,即控制器類型,如ide、scsi、sd、mtd、floppy、pflash及virtio等;
  17. index=index:設(shè)定同一種控制器類型中不同設(shè)備的索引號,即標識號;
  18. media=media:定義介質(zhì)類型為硬盤(disk)還是光盤(cdrom);
  19. snapshot=snapshot:指定當前硬盤設(shè)備是否支持快照功能:on或off;
  20. cache=cache:定義如何使用物理機緩存來訪問塊數(shù)據(jù),其可用值有none、writeback、unsafe和writethrough四個;
  21. format=format:指定映像文件的格式,具體格式可參見qemu-img命令;
  22. -boot [order=drives][,once=drives][,menu=on|off]:定義啟動設(shè)備的引導(dǎo)次序,每種設(shè)備使用一個字符表示;不同的架構(gòu)所支持的設(shè)備及其表示字符不盡相同,在x86 PC架構(gòu)上,a、b表示軟驅(qū)、c表示第一塊硬盤,d表示第一個光驅(qū)設(shè)備,n-p表示網(wǎng)絡(luò)適配器;默認為硬盤設(shè)備;
  23. -boot order=dc,once=d

qemu-kvm的顯示選項 顯示選項用于定義虛擬機啟動后的顯示接口相關(guān)類型及屬性等。

  1. -nographic:默認情況下,qemu使用SDL來顯示VGA輸出;而此選項用于禁止圖形接口,此時,qemu類似一個簡單的命令行程序,其仿真串口設(shè)備將被重定向到控制臺;
  2. -curses:禁止圖形接口,并使用curses/ncurses作為交互接口;
  3. -alt-grab:使用Ctrl+Alt+Shift組合鍵釋放鼠標;
  4. -ctrl-grab:使用右Ctrl鍵釋放鼠標;
  5. -sdl:啟用SDL;
  6. -spice option[,option[,...]]:啟用spice遠程桌面協(xié)議;其有許多子選項,具體請參照qemu-kvm的手冊;
  7. -vga type:指定要仿真的VGA接口類型,常見類型有:
  8. cirrus:Cirrus Logic GD5446顯示卡;
  9. std:帶有Bochs VBI擴展的標準VGA顯示卡;
  10. vmware:VMWare SVGA-II兼容的顯示適配器;
  11. qxl:QXL半虛擬化顯示卡;與VGA兼容;在Guest中安裝qxl驅(qū)動后能以很好的方式工作,在使用spice協(xié)議時推薦使用此類型;
  12. none:禁用VGA卡;
  13. -vnc display[,option[,option[,...]]]:默認情況下,qemu使用SDL顯示VGA輸出;使用-vnc選項,可以讓qemu監(jiān)聽在VNC上,并將VGA輸出重定向至VNC會話;使用此選項時,必須使用-k選項指定鍵盤布局類型;其有許多子選項,具體請參照qemu-kvm的手冊;

i386平臺專用選項

  1. -no-acpi:禁用ACPI功能,GuestOS與ACPI出現(xiàn)兼容問題時使用此選項;
  2. -balloon none:禁用balloon設(shè)備;
  3. -balloon virtio[,addr=addr]:啟用virtio balloon設(shè)備;

網(wǎng)絡(luò)屬性相關(guān)選項 網(wǎng)絡(luò)屬性相關(guān)選項用于定義網(wǎng)絡(luò)設(shè)備接口類型及其相關(guān)的各屬性等信息。這里只介紹nic、tap和user三種類型網(wǎng)絡(luò)接口的屬性,其它類型請參照qemu-kvm手冊。

  • -net nic[,vlan=n][,macaddr=mac][,model=type][,name=name][,addr=addr][,vectors=v]:創(chuàng)建一個新的網(wǎng)卡設(shè)備并連接至vlan n中;PC架構(gòu)上默認的NIC為e1000,macaddr用于為其指定MAC地址,name用于指定一個在監(jiān)控時顯示的網(wǎng)上設(shè)備名稱;emu可以模擬多個類型的網(wǎng)卡設(shè)備,如virtio、i82551、i82557b、i82559er、ne2k_isa、pcnet、rtl8139、e1000、smc91c111、lance及mcf_fec等;不過,不同平臺架構(gòu)上,其支持的類型可能只包含前述列表的一部分,可以使用“qemu-kvm -net nic,model=?”來獲取當前平臺支持的類型;
  • -net tap[,vlan=n][,name=name][,fd=h][,ifname=name][,script=file][,downscript=dfile]:通過物理機的TAP網(wǎng)絡(luò)接口連接至vlan n中,使用script=file指定的腳本(默認為/etc/qemu-ifup)來配置當前網(wǎng)絡(luò)接口,并使用downscript=file指定的腳本(默認為/etc/qemu-ifdown)來撤消接口配置;使用script=no和downscript=no可分別用來禁止執(zhí)行腳本;
  • -net user[,option][,option][,...]:在用戶模式配置網(wǎng)絡(luò)棧,其不依賴于管理權(quán)限;有效選項有:
  • vlan=n:連接至vlan n,默認n=0;
  • name=name:指定接口的顯示名稱,常用于監(jiān)控模式中;
  • net=addr[/mask]:設(shè)定GuestOS可見的IP網(wǎng)絡(luò),掩碼可選,默認為10.0.2.0/8;
  • host=addr:指定GuestOS中看到的物理機的IP地址,默認為指定網(wǎng)絡(luò)中的第二個,即x.x.x.2;
  • dhcpstart=addr:指定DHCP服務(wù)地址池中16個地址的起始IP,默認為第16個至第31個,即x.x.x.16-x.x.x.31;
  • dns=addr:指定GuestOS可見的dns服務(wù)器地址;默認為GuestOS網(wǎng)絡(luò)中的第三個地址,即x.x.x.3;

3.使用qemu-kvm安裝虛擬機Guest OS

測試安裝windows 2003 1)下載系統(tǒng)鏡像文件,我這里有個windows 2003系統(tǒng),我們來試著安裝。 創(chuàng)建虛擬機的磁盤文件存放目錄:

  
 
 
 
  1. [root@luckyall ~]# mkdir /kvm/images -pv
  2. mkdir: created directory `/kvm'
  3. mkdir: created directory `/kvm/images'

創(chuàng)建虛擬磁盤文件:

  
 
 
 
  1. [root@luckyall images]# qemu-img create -o preallocation=metadata -f qcow2 /kvm/images/win2003.qcow2 10G
  2. Formatting '/kvm/images/win2003.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 preallocation='metadata'
  3. [root@luckyall images]# ll -h /kvm/images/
  4. total 1.8M
  5. -rw-r--r--. 1 root root 11G Dec 19 23:46 win2003.qcow2

2)在kvm平臺安裝vnc-server和tigervnc這個vncviewer

此處不做介紹 參考我的博客:http://blog.sina.com.cn/s/blog_6e470cb00102wazp.html

  
 
 
 
  1. [root@luckyall ~]# qemu-kvm -cpu host -smp 1 -name win2003 -m 512 -drive file=/kvm/images/win2003.qcow2,if=ide,format=qcow2 -drive file=/root/Downloads/win2003.iso,media=cdrom -boot dc -usbdevice tablet
  2. VNC server running on `::1:5900'

我們到圖形界面上進行連接: #vncviewer :5900

qemu-kvm.png

后續(xù)直至安裝完成即可。

也可以使用virt-manager創(chuàng)建和管理虛擬機,這個是圖形管理工具,再次就不再多介紹;


網(wǎng)站題目:開源KVM內(nèi)核虛擬化技術(shù)詳解及如何管理
當前鏈接:http://m.5511xx.com/article/cddddph.html