1、KVM只支持64位系统
2、要求CPU必须支持虚拟化
3、在RETHAT6和CentOS6以后的版本中,KVM已经被编译进内核,不需要单独安装,如果内核中没有,则也只能重新编译内核来支持KVM
在CentOS 6.4 64位系统上安装KVM
1、查看内核是否已经包含KVM
grep -i "kvm" /boot/config-2.6.32-358.el6.x86_64
显示以下信息,表明内核已经支持KVM
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_APIC_ARCHITECTURE=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
2、内核支持,但不一定已经加载了,要手动加载
lsmod | grep kvm 查看是否加载了KVM模块,如果无显示,说明还没有加载
从第一步可以看到,KVM包含三个模块:
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
首先加载kVM: modprobe kvm
然后加载CONFIG_KVM_INTEL或CONFIG_KVM_AMD,在这之前首先要确定下目前的CPU类型,要根据CPU类型来选择加载CONFIG_KVM_INTEL或CONFIG_KVM_AMD
查看CPU类型: cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 60
model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
stepping : 3
cpu MHz : 3292.450
cache size : 6144 KB
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
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 pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi ept vpid fsgsbase bmi1 avx2 smep bmi2 invpcid
bogomips : 6584.90
clflush size : 64
cache_alignment : 64
address sizes : 42 bits physical, 48 bits virtual
power management:
从上面可以看到CPU是INTEL类型的,因此要加载CONFIG_KVM_INTEL
modprobe kvm_intel ------这一步如果要失败,则要确认下当前CPU是否支持虚拟化,如果支持虚拟化,在上面的CPUinfo中的flags字段中会有"vmx"标志,入上红色加粗的部分(在AMD的CPU中会出现'smd'标志)
[root@~]# lsmod |grep kvm
kvm_intel 53484 0
kvm 316506 1 kvm_intel
这样KVM表示已经装载成功了
因为KVM只能虚拟化CPU和内存,而无法虚拟IO设备,因此,还要安装qume-kvm
[root@ ~]# yum groupinfo "Virtualization"
Loaded plugins: fastestmirror
Setting up Group Process
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.opencas.cn
* updates: mirrors.btte.net
Group: 虚拟化
Description: 为托管虚拟客户端提供环境。
Mandatory Packages:
qemu-kvm
Optional Packages:
qemu-kvm-tools
vios-proxy
安装 qemu-kvm 和 qemu-kvm-tools
yum -y install qemu-kvm qemu-kvm-tools
查看安装目录:
[root@ ~]# rpm -ql qemu-kvm
[root@mxd ~]# rpm -ql qemu-kvm
/etc/ksmtuned.conf
/etc/modprobe.d/blacklist-kvm.conf
/etc/rc.d/init.d/ksm
/etc/rc.d/init.d/ksmtuned
/etc/sasl2/qemu-kvm.conf
/etc/sysconfig/ksm
/etc/sysconfig/modules/kvm.modules
/etc/udev/rules.d/80-kvm.rules
/usr/libexec/qemu-kvm
/usr/sbin/ksmtuned
/usr/share/doc/qemu-kvm-0.12.1.2/COPYING
/usr/share/doc/qemu-kvm-0.12.1.2/COPYING.LIB
/usr/share/doc/qemu-kvm-0.12.1.2/Changelog
/usr/share/doc/qemu-kvm-0.12.1.2/LICENSE
/usr/share/doc/qemu-kvm-0.12.1.2/README
/usr/share/doc/qemu-kvm-0.12.1.2/README.systemtap
/usr/share/doc/qemu-kvm-0.12.1.2/TODO
/usr/share/doc/qemu-kvm-0.12.1.2/qemu-doc.html
/usr/share/doc/qemu-kvm-0.12.1.2/qemu-tech.html
/usr/share/man/man1/qemu-kvm.1.gz
/usr/share/qemu-kvm
/usr/share/qemu-kvm/bios.bin
/usr/share/qemu-kvm/dump-guest-memory.py
/usr/share/qemu-kvm/dump-guest-memory.pyc
/usr/share/qemu-kvm/dump-guest-memory.pyo
/usr/share/qemu-kvm/extboot.bin
/usr/share/qemu-kvm/keymaps
/usr/share/qemu-kvm/keymaps/ar
/usr/share/qemu-kvm/keymaps/common
/usr/share/qemu-kvm/keymaps/da
/usr/share/qemu-kvm/keymaps/de
/usr/share/qemu-kvm/keymaps/de-ch
/usr/share/qemu-kvm/keymaps/en-gb
/usr/share/qemu-kvm/keymaps/en-us
/usr/share/qemu-kvm/keymaps/es
/usr/share/qemu-kvm/keymaps/et
/usr/share/qemu-kvm/keymaps/fi
/usr/share/qemu-kvm/keymaps/fo
/usr/share/qemu-kvm/keymaps/fr
/usr/share/qemu-kvm/keymaps/fr-be
/usr/share/qemu-kvm/keymaps/fr-ca
/usr/share/qemu-kvm/keymaps/fr-ch
/usr/share/qemu-kvm/keymaps/hr
/usr/share/qemu-kvm/keymaps/hu
/usr/share/qemu-kvm/keymaps/is
/usr/share/qemu-kvm/keymaps/it
/usr/share/qemu-kvm/keymaps/ja
/usr/share/qemu-kvm/keymaps/lt
/usr/share/qemu-kvm/keymaps/lv
/usr/share/qemu-kvm/keymaps/mk
/usr/share/qemu-kvm/keymaps/modifiers
/usr/share/qemu-kvm/keymaps/nl
/usr/share/qemu-kvm/keymaps/nl-be
/usr/share/qemu-kvm/keymaps/no
/usr/share/qemu-kvm/keymaps/pl
/usr/share/qemu-kvm/keymaps/pt
/usr/share/qemu-kvm/keymaps/pt-br
/usr/share/qemu-kvm/keymaps/ru
/usr/share/qemu-kvm/keymaps/sl
/usr/share/qemu-kvm/keymaps/sv
/usr/share/qemu-kvm/keymaps/th
/usr/share/qemu-kvm/keymaps/tr
/usr/share/qemu-kvm/linuxboot.bin
/usr/share/qemu-kvm/multiboot.bin
/usr/share/qemu-kvm/pxe-e1000.bin
/usr/share/qemu-kvm/pxe-ne2k_pci.bin
/usr/share/qemu-kvm/pxe-pcnet.bin
/usr/share/qemu-kvm/pxe-rtl8139.bin
/usr/share/qemu-kvm/pxe-virtio.bin
/usr/share/qemu-kvm/sgabios.bin
/usr/share/qemu-kvm/simpletrace.py
/usr/share/qemu-kvm/simpletrace.pyc
/usr/share/qemu-kvm/simpletrace.pyo
/usr/share/qemu-kvm/systemtap/conf.d/qemu_kvm.conf
/usr/share/qemu-kvm/systemtap/script.d/qemu_kvm.stp
/usr/share/qemu-kvm/trace-events
/usr/share/qemu-kvm/vapic.bin
/usr/share/qemu-kvm/vgabios-cirrus.bin
/usr/share/qemu-kvm/vgabios-qxl.bin
/usr/share/qemu-kvm/vgabios-stdvga.bin
/usr/share/qemu-kvm/vgabios-vmware.bin
/usr/share/qemu-kvm/vgabios.bin
/usr/share/systemtap/tapset/qemu-kvm-simpletrace.stp
/usr/share/systemtap/tapset/qemu-kvm.stp
因为这个安装目录下的命令不能直接使用,因此要创建一个链接
[root@ ~]# ln -sv /usr/libexec/qemu-kvm /usr/sbin/
"/usr/sbin/qemu-kvm" -> "/usr/libexec/qemu-kvm"
这样qemu-kvm命令就可以直接使用了
首先创建一个磁盘映像,
[root@kvm ~]# mkdir /images/vm1 -pv
[root@kvm ~]# qemu-img create -f qcow2 -o size=100G /images/vm1/centos.qcow2
Formatting '/images/vm1/centos.qcow2', fmt=qcow2 size=107374182400 encryption=off cluster_size=65536
创建KVM虚拟机
qemu-kvm -name "centos" -m 512 -smp 2 -hda /images/vm1/centos.qcow2 -cdrom CentOS-6.5-x86_64-minimal.iso -boot order=dc
安装VNC软件
yum -y install tigervnc-server
设置VNC SERVER
vncserver :1
用VNC Client进行连接即可使用