Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模塊,自Linux 2.6.20以後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,因此相對於Xen,其核心源碼不多。KVM目前已成爲學術界的主流VMM之一。python
KVM的虛擬化須要硬件支持(如Intel VT技術或者AMD V技術)。是基於硬件的徹底虛擬化。而Xen早期則是基於軟件模擬的Para-Virtualization,新版本則是基於硬件支持的徹底虛擬化。但Xen自己有本身的進程調度器,存儲管理模塊等,因此代碼較爲龐大。廣爲流傳的商業系統虛擬化軟件VMware ESX系列是基於軟件模擬的Full-Virtualization。linux
1.肯定機器有VTshell
終端輸入命令:vim
grep vmx /proc/cpuinfo (INTEL芯片) grep svm /proc/cpuinfo (AMD芯片)
不知道芯片的生產廠商則輸入:egrep '(vmx|svm)' /proc/cpuinfo網絡
若是flags: 裏有vmx 或者svm就說明支持VT;若是沒有任何的輸出,說明你的cpu不支持,將沒法成功安裝KVM虛擬機。oop
2. 確保BIOS裏開啓VTui
Intel(R) Virtualization Tech [Enabled]spa
若有必要,還需在BIOS中開啓VT-drest
3. 確保內核版本較新,支持KVMcode
用uname –r查看內核版本,若是在2.6.20如下的linux版本,需升級內核。
安裝必要的軟件包
yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v installacpid
啓動服務並加入開機自啓動
/etc/init.d/messagebus start /etc/init.d/haldaemon start /etc/init.d/libvirtd start /etc/init.d/acpid start chkconfig messagebus on chkonfig haldaemon on chkconfig libvirtd on chkconfig acpid on
檢測安裝是否成功
virsh list
kvm模塊
/sbin/lsmod | grep kvm kvm_intel 55656 16 kvm 345460 1 kvm_intel
關閉NetworkManager
/etc/init.d/NetworkManager stop Stopping NetworkManager daemon: [ OK ] chkconfig NetworkManager off
配置橋接網絡
#br0 vim /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.83 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 #eth0 vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BRIDGE=br0 /etc/init.d/network restart #虛擬機上網 echo 1 > /proc/sys/net/ipv4/ip_forward
查看網絡
ifconfig br0 Link encap:Ethernet HWaddr F0:92:1C:F2:C7:D0 inet addr:192.168.1.83 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::f292:1cff:fef2:c7d0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1021912 errors:0 dropped:36 overruns:0 frame:0 TX packets:522545 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:131702194 (125.6 MiB) TX bytes:46325194 (44.1 MiB) eth0 Link encap:Ethernet HWaddr F0:92:1C:F2:C7:D0 inet6 addr: fe80::f292:1cff:fef2:c7d0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1114980 errors:0 dropped:15 overruns:0 frame:0 TX packets:522796 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:174122406 (166.0 MiB) TX bytes:48666660 (46.4 MiB) Interrupt:20 Memory:f7c00000-f7c20000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:1083 errors:0 dropped:0 overruns:0 frame:0 TX packets:1083 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:363451 (354.9 KiB) TX bytes:363451 (354.9 KiB) virbr0 Link encap:Ethernet HWaddr 52:54:00:AD:B6:0D inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
brctl show bridge name bridge id STP enabled interfaces br0 8000.f0921cf2c7d0 no eth0 virbr0 8000.525400adb60d yes virbr0-nic