前言:原本想寫出關於KVM的精品文章,然而學的時間不夠長,理解也不夠透徹。因此有關KVM的高級功能只能等下一次在寫。本次只涉及到KVM的基礎核心功能,平時常常會使用的功能.。python
1、環境準備:linux
1、BIOS啓用Virtualication。api
2、在linux系統上查看系統是否支持硬件虛擬化。Intel系列CPU支持虛擬化標識爲vmx,AMD系列CPU標識爲svm。緩存
[root@kvm ~]# egrep --color "svm|vmx" /proc/cpuinfobash
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 ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c hypervisor lahf_lm arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep網絡
3、安裝kvm軟件包。架構
yum install qemu-kvm libvirt python-virtinst -y dom
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
socket
2、客戶機管理ide
1、安裝客戶機。
qemu-img create -f raw /opt/kvm_demo/CentOS.raw 5G #建立一個5G的raw格式的虛擬磁盤 virt-install --virt-type kvm --name kvm-demo --ram 512 --cdrom=/dev/sr0 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --disk path=/opt/kvm_demo/CentOS.raw #系統會默認開啓5900端口,而後經過VNC安裝
2、修改客戶機磁盤大小
qemu-img resize /opt/kvm_demo/CentOS1.raw +1G #修改磁盤文件大小,resize不支持qcow2的磁盤格式。 virsh define <domain> #這個domain爲使用這個磁盤文件的domain #重啓客戶機,便可
3、修改客戶機內存
virsh edit kvm-demo #kvm-demo 爲domain名稱 #修改數字,memory爲最大分配內存。currentMemory爲啓動時候分配給客戶機的內存。通常二者同時修改。 <memory unit='KiB'>524288</memory> <currentMemory unit='KiB'>524288</currentMemory>
4、克隆虛擬機
複製xml文件,和磁盤文件。而後修改這幾項。
< <name>kvm-demo</name> < <uuid>3f1bcefa-76f7-0482-d36a-70a91ff7ae5c</uuid> --- > <name>kvm-demo1</name> > <uuid>3f1bcefa-76f7-0482-d36a-70a91ff7ae5d</uuid> 24c24 < <source file='/opt/kvm_demo/CentOS.raw'/> --- > <source file='/opt/kvm_demo/CentOS1.raw'/> 60c60 < <mac address='52:54:00:cd:cc:2d'/> --- > <mac address='52:54:00:cd:cc:2e'/> virsh define new.xml virsh start new_domain_name
#在客戶機裏面,刪除70-persistent-net.rules #修改ifcfg-eth0: 刪除UUID,MAC,而後可使用
五、轉換磁盤格式
qemu-img convert -c -f raw -O qcow2 source dest
六、建立磁盤快照
snapshot [-l | -a snapshot | -c snapshot | -d snapshot] filename
七、建立橋接模式的虛擬機
默認network建立的爲NAT模式的網絡,地址範圍通常在192.168.122.2~192.168.122.254之間。使用橋接模式
brctl addbr br0 #添加橋 brctl addif br0 eth0 #將eth0綁定到br0上面 brctl stp br0 on #將br0設置爲啓用stp協議 ifconfig eth0 0 #將eth0的IP設置爲0 dhclient br0 #將br0的網絡配置好 qemu-img create -f raw /opt/test.raw 5G virt-install -n test -r 800 --vcpus=2 -c /dev/sr0 --os-type=linux --os-variant=rhel6 --disk=/opt/test.raw --network bridge=br0 --graphics vnc,listen=0.0.0.0 -v #重點在於--network bridge=br0,而後安裝虛擬機,修改防火牆規則便可。
3、附錄:使用qemu-kvm管理虛擬機
1、使用qemu-kvm安裝Guest
基於libvirt的工具如virt-manager和virt-install提供了很是便捷的虛擬機管理接口,但它們事實上上經二次開發後又封裝了qemu-kvm的工具。所以,直接使用qemu-kvm命令也可以完成此前的任務。
2、qemu-kvm命令
在RHEL6上,qemu-kvm位於/usr/libexec目錄中。因爲此目錄不屬於PATH環境變量,故沒法直接使用,這樣也阻止了能夠直接使用qemu做爲建立並管理虛擬機。如若想使用qemu虛擬機,能夠經過將/usr/libexec/qemu-kvm連接爲/usr/bin/qemu實現。
# ln -sv /usr/lib/exec/qemu-kvm /usr/bin/qemu-kvm
qemu-kvm命令使用格式爲「qemu-kvm [options] [disk_p_w_picpath]」,其選項很是多,不過,大體可分爲以下幾類。
標準選項;
USB選項;
顯示選項;
i386平臺專用選項;
網絡選項;
字符設備選項;
藍牙相關選項;
Linux系統引導專用選項;
調試/專家模式選項;
PowerPC專用選項;
Sparc32專用選項;
考慮到篇幅及使用須要,這裏介紹的選項主要涉及到標準選項、顯示選項、i386平臺專用選項及Linux系統引導專用選項等相關的選項。
4.1qemu-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
4.2 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選項,可讓qemu監聽在VNC上,並將VGA輸出重定向至VNC會話;使用此選項時,必須使用-k選項指定鍵盤佈局類型;其有許多子選項,具體請參照qemu-kvm的手冊; display: (1)host:N 172.16.100.7:1, 監聽於172.16.100.7主的5900+N的端口上 (2) unix:/path/to/socket_file (3) none options# password 3 鏈接時須要驗正密碼;設定密碼經過monitor接口使用change reverse: #「反向」鏈接至某處於監聽狀態的vncview上; -monitor stdio #表示在標準輸入輸出上顯示monitor界面 -nographic Ctrl-a, c: 在console和monitor之間切換 Ctrl-a, h: 顯示幫助信息
4、總結
一、此次博客沒有實例,上面的命令你們都能看懂,直接就能夠實現了。
二、我對KVM理解的不夠深,此次就是先開個頭,寫一下KVM,之後對KVM的理解更上一層樓以後,會再次總結的。
三、對KVM的操做仍是多動手,多嘗試幾回。