基于内核的虚拟化技术KVM

发布者:四川太清信息技术有限公司 时间:2011年6月29日 16:52

kvm是一个独特的管理程序,kvm开发者们发明了一个方法让Linux内核自身变成一个管理程序,通过将KVM作为一个内核模块实现,在虚拟环境下Linux内核集成管理程序将其作为一个可加载的模块可以简化管理和提升性能。这可能是开发者将KVM添加到内核的主要原因。

这种方法有许多优势,通过添加虚拟化功能到一个标准的Linux内核,虚拟环境能从所有正在Linux内核上运行的工作中受益,在这种模式下,每个虚拟机都是一个常规的Linux进程,通过Linux调度程序进行调度,通常,一个标准的Linux进程都有两个执行模式:内核模式和用户模式。对于应用程序而言用户模式是默认模式,当它需要一些来自内核的服务时就进入内核模式,如往磁盘上写入时。KVM添加了第三个模式:客户模式。

客户模式进程是运行在虚拟机内的,它非常象正常模式(无虚拟实例),有它自己的内核和用户空间变量、在客户模式下可以使用正常的kill和ps命令,因为无虚拟实例,KVM虚拟机表现为一个正常的进程,能象其他进程一样被杀掉,KVM利用硬件虚拟技术虚拟处理器的形态,虚拟机的内存管理由内核直接处理,目前的版本I/O在用户空间处理,主要通过QEMU完成。

一个典型的KVM安装包括以下部件:
一个管理虚拟硬件的设备驱动,这个驱动通过一个字符设备/dev/kvm陈列它的功能。
一个模拟pc硬件的用户空间部件,目前,这在用户空间处理,它是一个稍微改动过的QEMU进程。
I/O模型直接衍生于QEMU,支持写时复制磁盘映像和其他QEMU特征。

你如何查明你的系统是否能运行KVM?首先,你需要一个支持虚拟化的处理器,另外,你还可以查/proc/cpuinfo,如果在cpu flags字段看到了vmx或smx,那么你的处理器就支持KVM。