首先说下KVM是什么?KVM是指基于linux内核的虚拟机(Kernel-base Virtual Machine)。这儿提到了虚拟化。虚拟化是云计算的基础,它使得我们可以在一台物理服务器上跑多台虚拟机。各个虚拟机共享物理机的CPU、内存、IO硬件等资源。但是,它们在逻辑上是相互隔离的。

  那么,物理机是如何将硬件资源提供给虚拟机使用的呢?主要是通过Hypervisor来实现。根据Hypervisor所处的位置,又可以将虚拟化分为两类。一种是Hypervisor直接安装在物理机上,然后虚拟机在Hypervisor上运行。Xen和Vmware的ESXI都属于这种类型。另一种是物理机上先安装操作系统,然后Hypervisor作为操作系统上的一个模块来运行,并对虚拟机进行管理。KVM、Vbox、VMware workstation都属于这种类型。

  一般来说,第一种虚拟化类型性能比较好,因为它对硬件虚拟化功能进行了优化。而第二种虚拟化类型更为灵活,比如支持虚拟机嵌套,可以在KVM中再运行KVM。

  接下来说说KVM的安装过程。Centos6.7已经将KVM作为模块整合进内核了,现在看下内核有没有加载上。使用lsmod|grep kvm,如果有输出,则说明已经加载上,否则用modprobe kvm来加载。

  然后看看你的cpu是否支持虚拟化。使用grep -E -o 'vmx|svm' /proc/cpuinfo来查看。一样,若输出svm或者vmx就说明支持,否则得开启虚拟化。

  在centos6.7上,安装KVM很简单,只需要用yum安装qemu-kvm包就可以了。yum install qemu-kvm即可。qemu-kvm是kvm的核心包,负责虚拟CPU和内存的调度。其他的IO资源由linux内核和qemu来实现。此外,我们还需安装libvirt,用于管理KVM。因为qemu对于kvm的管理效率不是很高。libvirt包含3个东东:包括后台libvirtd程序、API库(使其他人可以开发基于libvirt的工具,比如virt-manager这种图形化的KVM管理工具)以及命令行工具virsh。如果要实现网络虚拟化的话,还要安装bridge-utils和vlan。

  最后,以上两个工具安装完毕后,可以用virsh list --all命令来验证KVM是否安装成功。