前言:本來想寫出關于KVM的精品文章,然而學的時間不夠長,理解也不夠透徹。所以有關KVM的高級功能只能等下一次在寫。本次只涉及到KVM的基礎核心功能,平時經常會使用的功能.。
一、環境準備:
1、BIOS啟用Virtualication。
2、在linux系統上查看系統是否支持硬件虛擬化。Intel系列CPU支持虛擬化標識為vmx,AMD系列CPU標識為svm。
[root@kvm ~]# egrep –color "svm|vmx" /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 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
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
二、客戶機管理
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,然后可以使用
5、轉換磁盤格式
qemu-img convert -c -f raw -O qcow2 source dest
6、創建磁盤快照
snapshot [-l | -a snapshot | -c snapshot | -d snapshot] filename
7、創建橋接模式的虛擬機
默認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,然后安裝虛擬機,修改防火墻規則即可。
三、附錄:使用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_image]”,其選項非常多,不過,大致可分為如下幾類。
標準選項;
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: 顯示幫助信息
四、總結
1、這次博客沒有實例,上面的命令大家都能看懂,直接就可以實現了。
2、我對KVM理解的不夠深,這次就是先開個頭,寫一下KVM,以后對KVM的理解更上一層樓之后,會再次總結的。
3、對KVM的操作還是多動手,多嘗試幾次。
原創文章,作者:艾賀,如若轉載,請注明出處:http://www.www58058.com/8936
小伙子寫的非常不錯,字里行間看的出認真。和練肌肉一樣,加油