Centos 6.5 KVM 虛擬化平臺部署 (未完)

KVM簡介

       Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模塊,自Linux 2.6.20之後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,所以相對於Xen,其核心源碼很少。KVM目前已成爲學術界的主流VMM之一。

       KVM的虛擬化需要硬件支持(如Intel VT技術或者AMD V技術)。是基於硬件的完全虛擬化。而Xen早期則是基於軟件模擬的Para-Virtualization,新版本則是基於硬件支持的完全虛擬化。但Xen本身有自己的進程調度器,存儲管理模塊等,所以代碼較爲龐大。廣爲流傳的商業系統虛擬化軟件VMware ESX系列是基於軟件模擬的Full-Virtualization。


KVM虛擬化平臺部署

檢查硬件環境是否支持虛擬化

[root@test ~]# egrep --color '(vmx|svm)' /proc/cpuinfo 
vmx 表示INTEL,svm表示AMD

注:(我在vmware中搭建的Centos6.5 x64的,且支持CPU Inter VT-X虛擬化技術,物理機BIOS已經打開,但是檢查模塊沒有vmx.)

解決方法(僅供vmware測試機):在workstation上實現嵌套虛擬化,需要編輯虛擬機的vmx文件,添加vhv.enable = "TRUE" 找到虛擬機安裝文件,帶有.vmx後綴,添加即可。

# cat /proc/cpuinfo 

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi ept vpid

安裝模塊

[root@test ~]# modprobe kvm
[root@test ~]# modprobe kvm_intel
[root@test ~]# lsmod | grep kvm
kvm_intel              55496  0 
kvm                   337772  1 kvm_intel

安裝kvm管理工具

# yum install qemu-kvm qemu-kvm-tools -y
# ln -sv /usr/libexec/qemu-kvm /usr/sbin/
# rpm -qa | grep kvm
qemu-kvm-tools-0.12.1.2-2.479.el6.x86_64
qemu-kvm-0.12.1.2-2.479.el6.x86_64

qemu-kvm的標準選項

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

qemu-kvm的顯示選項

顯示選項用於定義虛擬機啓動後的顯示接口相關類型及屬性等。
-nographic:默認情況下,qemu使用SDL來顯示VGA輸出;而此選項用於禁止圖形接口,此時,qemu類似一個簡單的命令行程序,其仿真串口設備將被重定向到控制檯;
-curses:禁止圖形接口,並使用curses/ncurses作爲交互接口;
-alt-grab:使用Ctrl+Alt+Shift組合鍵釋放鼠標;
-ctrl-grab:使用右Ctrl鍵釋放鼠標;
-sdl:啓用SDL;
-spice option[,option[,...]]:啓用spice遠程桌面協議;其有許多子選項,具體請參照qemu-kvm的手冊;
-vga type:指定要仿真的VGA接口類型,常見類型有:
	cirrus:Cirrus Logic GD5446顯示卡;
	std:帶有Bochs VBI擴展的標準VGA顯示卡;
	vmware:VMWare SVGA-II兼容的顯示適配器;
	qxl:QXL半虛擬化顯示卡;與VGA兼容;在Guest中安裝qxl驅動後能以很好的方式工作,在使用spice協議時推薦使用此類型;
	none:禁用VGA卡;
-vnc display[,option[,option[,...]]]:默認情況下,qemu使用SDL顯示VGA輸出;使用-vnc選項,可以

網絡屬性相關選項

網絡屬性相關選項用於定義網絡設備接口類型及其相關的各屬性等信息。這裏只介紹nic、tap和user三種類型網絡接口的屬性,其它類型請參照qemu-kvm手冊。

-net nic[,vlan=n][,macaddr=mac][,model=type][,name=name][,addr=addr][,vectors=v]:創建一個新的網卡設備並連接至vlan n中;PC架構上默認的NIC爲e1000,macaddr用於爲其指定MAC地址,name用於指定一個在監控時顯示的網上設備名稱;emu可以模擬多個類型的網卡設備,如virtio、i82551、i82557b、i82559er、ne2k_isa、pcnet、rtl8139、e1000、smc91c111、lance及mcf_fec等;不過,不同平臺架構上,其支持的類型可能只包含前述列表的一部分,可以使用“qemu-kvm -net nic,model=?”來獲取當前平臺支持的類型;
-net tap[,vlan=n][,name=name][,fd=h][,ifname=name][,script=file][,downscript=dfile]:通過物理機的TAP網絡接口連接至vlan n中,使用script=file指定的腳本(默認爲/etc/qemu-ifup)來配置當前網絡接口,並使用downscript=file指定的腳本(默認爲/etc/qemu-ifdown)來撤消接口配置;使用script=no和downscript=no可分別用來禁止執行腳本;
-net user[,option][,option][,...]:在用戶模式配置網絡棧,其不依賴於管理權限;有效選項有:
	vlan=n:連接至vlan n,默認n=0;
	name=name:指定接口的顯示名稱,常用於監控模式中;
	net=addr[/mask]:設定GuestOS可見的IP網絡,掩碼可選,默認爲10.0.2.0/8;
	host=addr:指定GuestOS中看到的物理機的IP地址,默認爲指定網絡中的第二個,即x.x.x.2;
	dhcpstart=addr:指定DHCP服務地址池中16個地址的起始IP,默認爲第16個至第31個,即x.x.x.16-x.x.x.31;
	dns=addr:指定GuestOS可見的dns服務器地址;默認爲GuestOS網絡中的第三個地址,即x.x.x.3;
	tftp=dir:激活內置的tftp服務器,並使用指定的dir作爲tftp服務器的默認根目錄;
	bootfile=file:BOOTP文件名稱,用於實現網絡引導GuestOS;如:qemu -hda linux.img -boot n -net user,tftp=/tftpserver/pub,bootfile=/pxelinux.0


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章